Merge changes from topic "VIXL_UPDATE_11_20" am: c4b1310f4f

Original change: https://android-review.googlesource.com/c/platform/external/vixl/+/1492919

Change-Id: Ie9159eb5298239c455e6e99af7c94a20827c4fda
diff --git a/.gitignore b/.gitignore
index 930e753..78477d3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,5 +4,4 @@
 .sconsign.dblite
 log/
 obj/
-vixl_stats.csv
 tools/.cached_lint_results.pkl
diff --git a/README.md b/README.md
index 01ea26d..57e94b7 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,7 @@
  * Licence
  * Requirements
  * Known limitations
+ * Bug reports
  * Usage
 
 
@@ -43,7 +44,7 @@
 
  1. Python 2.7
  2. SCons 2.0
- 3. GCC 4.8+ or Clang 3.4+
+ 3. GCC 4.8+ or Clang 4.0+
 
 A 64-bit host machine is required, implementing an LP64 data model. VIXL has
 been tested using GCC on AArch64 Debian, GCC and Clang on amd64 Ubuntu
@@ -54,13 +55,17 @@
 
  1. Git
  2. [Google's `cpplint.py`][cpplint]
- 3. clang-format-3.8
+ 3. clang-format-4.0
+ 4. clang-tidy-4.0
 
 Refer to the 'Usage' section for details.
 
+Note that in Ubuntu 18.04, clang-tidy-4.0 will only work if the clang-4.0
+package is also installed.
 
-Known Limitations for AArch64 code generation
-=============================================
+
+Known Limitations
+=================
 
 VIXL was developed for JavaScript engines so a number of features from A64 were
 deemed unnecessary:
@@ -79,11 +84,6 @@
 floating-point operations which do not work correctly, and a number of tests
 fail as a result.
 
-VIXL may not build using Clang 3.7, due to a compiler warning. A workaround is
-to disable conversion of warnings to errors, or to delete the offending
-`return` statement reported and rebuild. This problem will be fixed in the next
-release.
-
 Debug Builds
 ------------
 
@@ -125,6 +125,45 @@
   `stlxrh`, `stlxr`, `ldaxrb`, `ldaxrh`, `ldaxr`, `stlxp`, `ldaxp`, `stlrb`,
   `stlrh`, `stlr`, `ldarb`, `ldarh`, `ldar`, `clrex`.
 
+Security Considerations
+-----------------------
+
+VIXL allows callers to generate any code they want. The generated code is
+arbitrary, and can therefore call back into any other component in the process.
+As with any self-modifying code, vulnerabilities in the client or in VIXL itself
+could lead to arbitrary code generation.
+
+For performance reasons, VIXL's Assembler only performs debug-mode checking of
+instruction operands (such as immediate field encodability). This can minimise
+code-generation overheads for advanced compilers that already model instructions
+accurately, and might consider the Assembler's checks to be redundant. The
+Assembler should only be used directly where encodability is independently
+checked, and where fine control over all generated code is required.
+
+The MacroAssembler synthesises multiple-instruction sequences to support _some_
+unencodable operand combinations. The MacroAssembler can provide a useful safety
+check in cases where the Assembler's precision is not required; an unexpected
+unencodable operand should result in a macro with the correct behaviour, rather
+than an invalid instruction.
+
+In general, the MacroAssembler handles operands which are likely to vary with
+user-supplied data, but does not usually handle inputs which are likely to be
+easily covered by tests. For example, move-immediate arguments are likely to be
+data-dependent, but register types (e.g. `x` vs `w`) are not.
+
+We recommend that _all_ users use the MacroAssembler, using `ExactAssemblyScope`
+to invoke the Assembler when specific instruction sequences are required. This
+approach is recommended even in cases where a compiler can model the
+instructions precisely, because, subject to the limitations described above, it
+offers an additional layer of protection against logic bugs in instruction
+selection.
+
+Bug reports
+===========
+
+Bug reports may be sent to vixl@arm.com. Please provide any steps required to
+recreate a bug, along with build environment and host system information.
+
 
 Usage
 =====
@@ -151,9 +190,10 @@
 `--nolint`. This removes the dependency on `cpplint.py` and Git. The `--nolint`
 option is implied if the VIXL project is a snapshot (with no `.git` directory).
 
-Additionally, `tools/test.py` tests code formatting using `clang-format-3.8`.
-If you don't have `clang-format-3.8`, disable the test using the
-`--noclang-format` option.
+Additionally, `tools/test.py` tests code formatting using `clang-format-4.0`,
+and performs static analysis using `clang-tidy-4.0`. If you don't have these
+tools, disable the test using `--noclang-format` or `--noclang-tidy`,
+respectively.
 
 Also note that the tests for the tracing features depend upon external `diff`
 and `sed` tools. If these tools are not available in `PATH`, these tests will
diff --git a/SConstruct b/SConstruct
index 8e1b1a7..6c1f563 100644
--- a/SConstruct
+++ b/SConstruct
@@ -207,6 +207,19 @@
   return (name, help, default_value, validator)
 
 
+def SortListVariable(iterator):
+  # Previously this code relied on the order of items in a list
+  # converted from a set. However in Python 3 the order changes each run.
+  # Here we do a custom partial sort to ensure that the build directory
+  # name is stable, the same across Python 2 and 3, and the same as the
+  # old code.
+  result = list(sorted(iterator))
+  result = sorted(result, key=lambda x: x == 't32', reverse=True)
+  result = sorted(result, key=lambda x: x == 'a32', reverse=True)
+  result = sorted(result, key=lambda x: x == 'a64', reverse=True)
+  return result
+
+
 def AliasedListVariable(name, help, default_value, allowed_values, aliasing):
   help = '%s (all|auto|comma-separated list) (any combination from [%s])' % \
          (help, ', '.join(allowed_values))
@@ -222,10 +235,10 @@
     if value == 'auto': return []
     if value == 'all':
       translated = [aliasing[v] for v in allowed_values]
-      return list(set(itertools.chain.from_iterable(translated)))
+      return SortListVariable(itertools.chain.from_iterable(translated))
     # The validator is run later hence the get.
     translated = [aliasing.get(v, v) for v in value.split(',')]
-    return list(set(itertools.chain.from_iterable(translated)))
+    return SortListVariable(itertools.chain.from_iterable(translated))
 
   return (name, help, default_value, validator, converter)
 
@@ -251,8 +264,10 @@
     DefaultVariable('code_buffer_allocator',
                     'Configure the allocation mechanism in the CodeBuffer',
                     ['malloc', 'mmap']),
-    ('std', 'C++ standard. The standards tested are: %s.' % \
-                                         ', '.join(config.tested_cpp_standards)),
+    ('std',
+     'C++ standard. The standards tested are: %s.' % \
+     ', '.join(config.tested_cpp_standards),
+     config.tested_cpp_standards[0]),
     ('compiler_wrapper', 'Command to prefix to the C and C++ compiler (e.g ccache)', '')
     )
 
@@ -292,9 +307,9 @@
   if Is32BitHost(env):
     # We use list(set(...)) to keep the same order as if it was specify as
     # an option.
-    env['target'] = list(set(['a32', 't32']))
+    env['target'] = SortListVariable(['a32', 't32'])
   else:
-    env['target'] = list(set(['a64', 'a32', 't32']))
+    env['target'] = SortListVariable(['a64', 'a32', 't32'])
 
 
 def target_validator(env):
@@ -381,21 +396,12 @@
   if env['negative_testing'] == 'on' and env['mode'] == 'debug' \
       and compiler >= 'gcc-6':
     env.Append(CPPFLAGS = ['-Wno-terminate'])
-    # The C++11 compatibility warning will also be triggered for this case, as
-    # the behavior of throwing from desctructors has changed.
-    if 'std' in env and env['std'] == 'c++98':
-      env.Append(CPPFLAGS = ['-Wno-c++11-compat'])
 
-  # When compiling with c++98 (the default), allow long long constants.
-  if 'std' not in env or env['std'] == 'c++98':
-    env.Append(CPPFLAGS = ['-Wno-long-long'])
-    env.Append(CPPFLAGS = ['-Wno-variadic-macros'])
-  # When compiling with c++11, suggest missing override keywords on methods.
-  if 'std' in env and env['std'] in ['c++11', 'c++14']:
-    if compiler >= 'gcc-5':
-      env.Append(CPPFLAGS = ['-Wsuggest-override'])
-    elif compiler >= 'clang-3.6':
-      env.Append(CPPFLAGS = ['-Winconsistent-missing-override'])
+  # Suggest missing override keywords on methods.
+  if compiler >= 'gcc-5':
+    env.Append(CPPFLAGS = ['-Wsuggest-override'])
+  elif compiler >= 'clang-3.6':
+    env.Append(CPPFLAGS = ['-Winconsistent-missing-override'])
 
 
 def ConfigureEnvironment(env):
@@ -459,11 +465,11 @@
 # Abort the build if any command line option is unknown or invalid.
 unknown_build_options = vars.UnknownVariables()
 if unknown_build_options:
-  print 'Unknown build options:',  unknown_build_options.keys()
+  print('Unknown build options: ' + str(unknown_build_options.keys()))
   Exit(1)
 
 if env['negative_testing'] == 'on' and env['mode'] != 'debug':
-  print 'negative_testing only works in debug mode'
+  print('negative_testing only works in debug mode')
   Exit(1)
 
 ConfigureEnvironment(env)
diff --git a/doc/aarch64/topics/state-trace.md b/doc/aarch64/topics/state-trace.md
new file mode 100644
index 0000000..4d37af1
--- /dev/null
+++ b/doc/aarch64/topics/state-trace.md
@@ -0,0 +1,231 @@
+AArch64 Simulator state trace
+=============================
+
+The AArch64 Simulator can be configured to produce traces of instruction
+execution, register contents, and memory accesses. The trace is designed to be
+intuitive for human readers, but this document describes the format of the
+trace, so that post-processing tools can confidently parse the output.
+
+In VIXL's own test runner, the trace is controlled by the `--trace*` options.
+Run `test-runner --help` for details.
+
+Basic structure
+---------------
+
+Executed instructions show the address, the encoding of the instruction and the
+disassembly (as produced by VIXL's Disassembler). For example:
+
+    0x00007fbe2a6a9044  d299d200		mov x0, #0xce90
+
+The first field is the address of the instruction, with exactly 16 hexadecimal
+characters and a leading 0x, and is followed by two spaces. The second field is
+the instruction encoding, with exactly eight hexadecimal characters (and no
+leading 0x). This is followed by two _tab_ characters, and the instruction
+disassembly. The following regular expression can be used to capture each field:
+
+    (0x[0-9a-f]{16})  ([0-9a-f]{8})\t\t(.*)
+
+Following each instruction are zero or more lines of state update. Most notably,
+these represent the register state updates and memory accesses that occurred
+during simulation of the instruction. All of these lines begin with a '#'
+character, so that they can be easily identified, and filtered if necessary. For
+example:
+
+    0x00007fd2221c907c  8b82200e		add x14, x0, x2, asr #8
+    #            x14: 0xfffedcba98765432
+    0x00007fd2221c9080  0b81200f		add w15, w0, w1, asr #8
+    #            w15:         0xff89abcd
+
+Note that the Simulator uses these state update lines to describe its initial
+state. As a result, there will be state trace output before the first simulated
+instruction, and parsers need to be tolerant of this.
+
+Note that padding white space is used liberally to keep values vertically
+aligned throughout the trace (as shown with the write to `w15` in the example
+above). Similarly, some compound values are split into parts using the C++14
+literal separator (`'`) character. Refer to the "Memory accesses" section
+(below) for examples.
+
+Ordering
+--------
+
+VIXL guarantees that each instruction is printed before its associated state
+trace.
+
+State trace must be interpreted sequentially, line by line. VIXL avoids updating
+the same register more than once (because it makes the trace hard for humans to
+read), but this can occur in some situations, and should be supported by
+parsers.
+
+The state is intended to be consistent with architectural execution at the start
+of each instruction and at the end of the whole trace, but no such guarantees
+are made about the traced state _between_ instructions. VIXL prioritises
+human-readability when choosing the ordering of state updates.
+
+If simulated registers are modified externally, for example using
+`WriteRegister` from C++ code, their state will (by default) be logged
+immediately. In the full trace, it will appear as though the (runtime) call or
+return instruction modified the state. This is consistent with the guarantees
+above, but it can result in single instructions appearing to generate a large
+number of state updates.
+
+There is no upper limit on the number of state update lines that any one
+instruction can generate.
+
+Whole register trace
+--------------------
+
+The simplest form of state trace has the form "`REG: VALUE`", meaning that
+the register `REG` has the specified value, and any high-order bits in aliased
+registers are set to zero.
+
+    0x00007fd2221c907c  8b82200e		add x14, x0, x2, asr #8
+    #            x14: 0xfffedcba98765432
+
+Note that to correctly track state, parsers need to be aware of architectural
+register aliasing rules. Also, VIXL uses some standard register aliases, such as
+`lr` (`x30`). To avoid misinterpreting a register alias (and thereby potentially
+missing an aliased register update), some tools may need to treat an
+unrecognised register name as an error.
+
+This trace format attempts to represent _architectural_ register writes.
+However, this is not strictly checked or enforced.
+
+`VALUE` is always shown in hexadecimal (raw bits) form, with a leading `0x` and
+enough digits to exactly fill `REG`. `VALUE` may also include annotations (for
+example to show FP arithmetic values) in parentheses. These annotations are for
+the benefit of human readers, and parsers may ignore them.
+
+Note that SVE registers _always_ use the partial register trace format,
+described below, so a plain `z` or `p` register will never be used in a whole
+register trace. This is true even if the vector length is configured to 16
+bytes.
+
+Partial register trace
+----------------------
+
+Sometimes, VIXL needs to show _part_ of a register without implying that the
+rest of the register is zeroed. A partial register value is indicated by a bit
+range in angled brackets after the register name: "`REG<MSB:LSB>: VALUE`".
+This format is used for stores, for example.
+
+SVE register updates are split across multiple lines, and therefore always use
+the partial register trace format. For example (with a 384-bit VL):
+
+    0x00007fb1978da044  04214000		index z0.b, #0, #1
+    #   z0<383:256>: 0x2f2e2d2c2b2a29282726252423222120
+    #   z0<255:128>: 0x1f1e1d1c1b1a19181716151413121110
+    #     z0<127:0>: 0x0f0e0d0c0b0a09080706050403020100
+
+Note that VIXL will omit whole lines where they are unnecessary, for example if
+they have no active (predicated) lanes. Parsers should not assume that every
+part of a register will appear in such cases.
+
+The `VALUE` has the same format as in the whole register trace, except in the
+case of SVE `p` registers (as described below).
+
+SVE `p` registers
+-----------------
+
+For `p` registers, we try to keep the lanes vertically aligned with the
+corresponding parts of the `z` registers that they affect. To do this, we use a
+binary format, with a leading `0b`, and spaces between each digit. For example:
+
+    0x00007f66e539b0b8  04f54607		index z7.d, x16, #-11
+    #     z7<127:0>: 0x00000000000000150000000000000020
+    0x00007f66e539b0bc  25d8e3a7		ptrue p7.d, all
+    #      p7<15:0>: 0b 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
+
+Memory accesses
+---------------
+
+The pattern for a memory access is "`VALUE OP ADDRESS`", where:
+
+- `VALUE` is a hexadecimal value, with visual separators (') between
+  structure components,
+- `OP` is `"->"` for a store, or `"<-"` for a load,
+- `ADDRESS` is the (hexadecimal) address of the access.
+
+Accesses shown in this style are always contiguous, and with little-endian
+semantics. However, a given instruction might have multiple lines of memory
+access trace, particularly if the instruction performs non-contiguous accesses.
+
+In the case of simple accesses, the `VALUE` is shared with register value trace:
+
+    0x00007f3835372058  e400e401		st1b { z1.b }, p1, [x0]
+    #      z1<127:0>: 0xd4d7dadde0e3e6e9eceff2f5f8fbfe01 -> 0x000055d170298e90
+
+Sign-extending loads show the whole resulting register value, with the (smaller)
+access represented on a separate line. This makes the (differing) values in the
+register and in memory unambiguous, without parsers needing to understand the
+instruction set:
+
+    0x00007f47922d0068  79800306		ldrsh x6, [x24]
+    #             x6: 0xffffffffffff8080
+    #                                  ╙─ 0x8080 <- 0x00007fffbc197708
+
+Some instructions access several different memory locations. In these cases,
+each access is given its own line, with the highest lane index first so that
+(for contiguous accesses) the lowest address ends up at the bottom:
+
+    0x00007fa6001e9060  e4217c0a		st2b { z10.b, z11.b }, p7, [x0, x1]
+    #     z10<127:0>: 0x0f0e0d0c0b0a09080706050403020100
+    #     z11<127:0>: 0x1f1e1d1c1b1a19181716151413121110
+    #                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x10'00 -> 0x00007ffe485d2f90
+    #                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x11'01 -> 0x00007ffe485d2f92
+    #                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x12'02 -> 0x00007ffe485d2f94
+    #                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x13'03 -> 0x00007ffe485d2f96
+    #                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x14'04 -> 0x00007ffe485d2f98
+    #                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x15'05 -> 0x00007ffe485d2f9a
+    #                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x16'06 -> 0x00007ffe485d2f9c
+    #                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17'07 -> 0x00007ffe485d2f9e
+    #                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18'08 -> 0x00007ffe485d2fa0
+    #                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19'09 -> 0x00007ffe485d2fa2
+    #                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a'0a -> 0x00007ffe485d2fa4
+    #                    ║ ║ ║ ║ ╙─────────────────────── 0x1b'0b -> 0x00007ffe485d2fa6
+    #                    ║ ║ ║ ╙───────────────────────── 0x1c'0c -> 0x00007ffe485d2fa8
+    #                    ║ ║ ╙─────────────────────────── 0x1d'0d -> 0x00007ffe485d2faa
+    #                    ║ ╙───────────────────────────── 0x1e'0e -> 0x00007ffe485d2fac
+    #                    ╙─────────────────────────────── 0x1f'0f -> 0x00007ffe485d2fae
+
+The line-drawing characters are encoded as UTF-8 (as is this document). There is
+currently no locale handling in VIXL, so this is not configurable. However,
+since these annotations are for the benefit of human readers, parsers can safely
+ignore them, and treat the whole trace as an ASCII byte stream (ignoring 8-bit
+characters). This is useful in situations where UTF-8 handling carries an
+unacceptable performance cost.
+
+In the future, VIXL may offer an option to avoid printing these annotations, so
+that the trace is restricted to single-byte characters.
+
+Floating-point value annotations
+--------------------------------
+
+Some floating-point operations produce register trace that annotates the raw
+values with the corresponding FP arithmetic values. This is for the benefit of
+human readers (and has limited precision). Such annotations follow the `VALUE`
+in parentheses.
+
+Scalar form:
+
+    #             s1:                         0x3f800000 (1.000) <- 0x00007ffdc64d2314
+
+Vector form, updating all S lanes using a load:
+
+    #            v16: 0x1211100f0e0d0c0b0a09080706050403 (4.577e-28, 1.739e-30, 6.598e-33, 2.502e-35)
+    #                          ║       ║       ║       ╙─ 0x06050403 <- 0x00007ffe56fd7863
+    #                          ║       ║       ╙───────── 0x0a090807 <- 0x00007ffe56fd7867
+    #                          ║       ╙───────────────── 0x0e0d0c0b <- 0x00007ffe56fd786b
+    #                          ╙───────────────────────── 0x1211100f <- 0x00007ffe56fd786f
+
+Vector form, updating a single S lane using a load:
+
+    #             v2: 0x03020100040302017ff0f0027f80f000 (..., 1.540e-36, ...)
+    #                                  ╙───────────────── 0x04030201 <- 0x00007ffc7b2e3ca1
+
+Vector form, replicating a single struct load to all S lanes:
+
+    #            v15: 0x100f0e0d100f0e0d100f0e0d100f0e0d (2.821e-29, 2.821e-29, 2.821e-29, 2.821e-29)
+    #            v16: 0x14131211141312111413121114131211 (7.425e-27, 7.425e-27, 7.425e-27, 7.425e-27)
+    #            v17: 0x18171615181716151817161518171615 (1.953e-24, 1.953e-24, 1.953e-24, 1.953e-24)
+    #                          ╙───────╨───────╨───────╨─ 0x18171615'14131211'100f0e0d <- 0x00007ffdd64d847d
diff --git a/examples/aarch32/getting-started.cc b/examples/aarch32/getting-started.cc
index 35fcbf5..a4ab3f8 100644
--- a/examples/aarch32/getting-started.cc
+++ b/examples/aarch32/getting-started.cc
@@ -60,8 +60,10 @@
   uint32_t code_size = masm.GetSizeOfCodeGenerated();
   ExecutableMemory memory(code, code_size);
   // Run the example function.
-  uint32_t (*demo_function)(uint32_t) = memory.GetEntryPoint<uint32_t (*)(
-      uint32_t)>(demo, masm.GetInstructionSetInUse());
+  uint32_t (*demo_function)(uint32_t) =
+      memory
+          .GetEntryPoint<uint32_t (*)(uint32_t)>(demo,
+                                                 masm.GetInstructionSetInUse());
   uint32_t input_value = 0x89abcdef;
   uint32_t output_value = (*demo_function)(input_value);
   printf("native: demo(0x%08x) = 0x%08x\n", input_value, output_value);
diff --git a/examples/aarch64/add2-vectors.cc b/examples/aarch64/add2-vectors.cc
index 2ca109a..85fc5c7 100644
--- a/examples/aarch64/add2-vectors.cc
+++ b/examples/aarch64/add2-vectors.cc
@@ -38,12 +38,12 @@
  * and returns the results in the first vector.
  */
 void GenerateAdd2Vectors(MacroAssembler* masm) {
-  // void add2_vectors(uint8_t *vec*, const uint8_t *vecB, unsigned size)
+  // void add2_vectors(uint8_t *vec_a, const uint8_t *vec_b, unsigned size)
   // Argument locations:
-  //    vecA (pointer) -> x0
-  //    vecB (pointer) -> x1
+  //    vec_a (pointer) -> x0
+  //    vec_b (pointer) -> x1
   //    size (integer) -> w2
-  // Result returned in vecA.
+  // Result returned in vec_a.
 
   Label loop16, loopr, end;
 
@@ -109,48 +109,48 @@
 
   // Initialize input data for the example function.
   // clang-format: off
-  uint8_t vecA[] = {0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-                    13, 14, 15, 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
-                    10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
-  uint8_t vecB[] = {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
-                    29, 30, 31, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-                    26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36};
+  uint8_t vec_a[] = {0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12,
+                     13, 14, 15, 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
+                     10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
+  uint8_t vec_b[] = {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+                     29, 30, 31, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+                     26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36};
   // clang-format on
-  uint8_t vecC[ARRAY_SIZE(vecA)];
+  uint8_t vec_c[ARRAY_SIZE(vec_a)];
 
   // Check whether the number of elements in both vectors match.
-  VIXL_CHECK(ARRAY_SIZE(vecA) == ARRAY_SIZE(vecB));
+  VIXL_CHECK(ARRAY_SIZE(vec_a) == ARRAY_SIZE(vec_b));
 
   // Compute the result in C.
-  for (unsigned i = 0; i < ARRAY_SIZE(vecA); i++) {
-    vecC[i] = vecA[i] + vecB[i];
+  for (unsigned i = 0; i < ARRAY_SIZE(vec_a); i++) {
+    vec_c[i] = vec_a[i] + vec_b[i];
   }
 
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
-  uintptr_t vecA_addr = reinterpret_cast<uintptr_t>(vecA);
-  uintptr_t vecB_addr = reinterpret_cast<uintptr_t>(vecB);
+  uintptr_t vec_a_addr = reinterpret_cast<uintptr_t>(vec_a);
+  uintptr_t vec_b_addr = reinterpret_cast<uintptr_t>(vec_b);
 
   // Configure register environment in the simulator.
   Decoder decoder;
   Simulator simulator(&decoder);
-  simulator.WriteXRegister(0, vecA_addr);
-  simulator.WriteXRegister(1, vecB_addr);
-  simulator.WriteXRegister(2, ARRAY_SIZE(vecA));
-  PrintVector(vecA, ARRAY_SIZE(vecA));
+  simulator.WriteXRegister(0, vec_a_addr);
+  simulator.WriteXRegister(1, vec_b_addr);
+  simulator.WriteXRegister(2, ARRAY_SIZE(vec_a));
+  PrintVector(vec_a, ARRAY_SIZE(vec_a));
   printf(" +\n");
-  PrintVector(vecB, ARRAY_SIZE(vecB));
+  PrintVector(vec_b, ARRAY_SIZE(vec_b));
 
   // Run the example function in the simulator.
   simulator.RunFrom(masm.GetLabelAddress<Instruction*>(&add2_vectors));
   printf(" =\n");
-  PrintVector(vecA, ARRAY_SIZE(vecA));
+  PrintVector(vec_a, ARRAY_SIZE(vec_a));
 
   // Check that the computed value in NEON matches the C version.
-  for (unsigned i = 0; i < ARRAY_SIZE(vecA); i++) {
-    VIXL_CHECK(vecC[i] == vecA[i]);
+  for (unsigned i = 0; i < ARRAY_SIZE(vec_a); i++) {
+    VIXL_CHECK(vec_c[i] == vec_a[i]);
   }
 #else
-  USE(vecC);
+  USE(vec_c);
 
   // Placeholder to run test natively.
   printf("Running tests natively is not supported yet.\n");
diff --git a/examples/aarch64/cpu-features.cc b/examples/aarch64/cpu-features.cc
new file mode 100644
index 0000000..74ddc98
--- /dev/null
+++ b/examples/aarch64/cpu-features.cc
@@ -0,0 +1,53 @@
+// Copyright 2020, VIXL authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//   * Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//   * Neither the name of ARM Limited nor the names of its contributors may be
+//     used to endorse or promote products derived from this software without
+//     specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "examples.h"
+
+using namespace vixl;
+using namespace vixl::aarch64;
+
+// Demonstrate the use of VIXL's CPU feature detection, printing the features
+// that VIXL detects.
+
+#ifndef TEST_EXAMPLES
+int main() {
+  // Simple native deployments should initialise CPU features using
+  // `InferFromOS()`. If not on an AArch64 host, this returns nothing.
+  std::cout << "==== CPUFeatures::InferFromOS() ====\n";
+  std::cout << CPUFeatures::InferFromOS() << "\n";
+
+  // VIXL assumes support for FP, NEON and CRC32 by default. These features were
+  // implemented before the CPUFeatures mechanism.
+  std::cout << "==== CPUFeatures::AArch64LegacyBaseline() ====\n";
+  std::cout << CPUFeatures::AArch64LegacyBaseline() << "\n";
+
+  // Retrieve a list of all supported CPU features.
+  std::cout << "==== CPUFeatures::All() ====\n";
+  std::cout << CPUFeatures::All() << "\n";
+
+  return 0;
+}
+#endif
diff --git a/examples/aarch64/crc-checksums.cc b/examples/aarch64/crc-checksums.cc
index d997f6d..38a5641 100644
--- a/examples/aarch64/crc-checksums.cc
+++ b/examples/aarch64/crc-checksums.cc
@@ -68,7 +68,7 @@
 
 #ifndef TEST_EXAMPLES
 
-void runExample(const char* msg) {
+void RunExample(const char* msg) {
   MacroAssembler masm;
 
   // Generate the code for the example function.
@@ -96,10 +96,10 @@
 
 
 int main(void) {
-  runExample("Hello World!");
-  runExample("do");
-  runExample("1");
-  runExample("");
+  RunExample("Hello World!");
+  RunExample("do");
+  RunExample("1");
+  RunExample("");
 
   return 0;
 }
diff --git a/examples/aarch64/disasm.cc b/examples/aarch64/disasm.cc
new file mode 100644
index 0000000..1c58027
--- /dev/null
+++ b/examples/aarch64/disasm.cc
@@ -0,0 +1,134 @@
+// Copyright 2020, VIXL authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//   * Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//   * Neither the name of ARM Limited nor the names of its contributors may be
+//     used to endorse or promote products derived from this software without
+//     specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "code-buffer-vixl.h"
+#include "aarch64/decoder-aarch64.h"
+#include "aarch64/disasm-aarch64.h"
+
+// This example is interactive, and isn't tested systematically.
+#ifndef TEST_EXAMPLES
+
+using namespace vixl;
+using namespace vixl::aarch64;
+
+void PrintUsage(char const* name) {
+  printf("Usage: %s [OPTION]... <INSTRUCTION>...\n", name);
+  printf("\n");
+  printf("Disassemble ad-hoc A64 instructions.\n");
+  printf("\n");
+  printf(
+      "Options:\n"
+      "  --start-at <address>\n"
+      "    Start disassembling from <address> Any signed 64-bit value\n"
+      "    accepted by strtoll can be specified. The address is printed\n"
+      "    alongside each instruction, and it is also used to decode\n"
+      "    PC-relative offsets.\n"
+      "\n"
+      "    Defaults to 0.\n"
+      "\n");
+  printf(
+      "<instruction>\n"
+      "  A hexadecimal representation of an A64 instruction. The leading '0x'\n"
+      "  (or '0X') is optional.\n"
+      "\n"
+      "  Multiple instructions can be provided; they will be disassembled as\n"
+      "  if they were read sequentially from memory.\n"
+      "\n");
+  printf("Examples:\n");
+  printf("  $ %s d2824685\n", name);
+  printf("   0x0000000000000000:  d2824685  movz x5, #0x1234\n");
+  printf("\n");
+  printf("  $ %s --start-at -4 0x10fffe85 0xd61f00a0\n", name);
+  printf("  -0x0000000000000004:  10fffe85  adr x5, #-0x30 (addr -0x34)\n");
+  printf("   0x0000000000000000:  d61f00a0  br x5\n");
+}
+
+Instr ParseInstr(char const* arg) {
+  // TODO: Error handling for out-of-range inputs.
+  return (Instr)strtoul(arg, NULL, 16);
+}
+
+int64_t ParseInt64(char const* arg) {
+  // TODO: Error handling for out-of-range inputs.
+  return (int64_t)strtoll(arg, NULL, 0);
+}
+
+int main(int argc, char* argv[]) {
+  for (int i = 1; i < argc; i++) {
+    char const* arg = argv[i];
+    if ((strcmp(arg, "--help") == 0) || (strcmp(arg, "-h") == 0)) {
+      PrintUsage(argv[0]);
+      return 0;
+    }
+  }
+
+  // Assume an address of 0, unless otherwise specified.
+  int64_t start_address = 0;
+  // Allocate space for one instruction per argument.
+  CodeBuffer buffer((argc - 1) * kInstructionSize);
+
+  bool expect_start_at = false;
+  for (int i = 1; i < argc; i++) {
+    char* arg = argv[i];
+    if (expect_start_at) {
+      start_address = ParseInt64(arg);
+      expect_start_at = false;
+    } else if (strcmp(arg, "--start-at") == 0) {
+      expect_start_at = true;
+    } else {
+      // Assume that everything else is an instruction.
+      buffer.Emit(ParseInstr(arg));
+    }
+  }
+  buffer.SetClean();
+
+  if (expect_start_at) {
+    printf("No address given. Use: --start-at <address>\n");
+    return 1;
+  }
+
+  if (buffer.GetSizeInBytes() == 0) {
+    printf("Nothing to disassemble.\n");
+    return 0;
+  }
+
+  // Disassemble the buffer.
+  const Instruction* start = buffer.GetStartAddress<Instruction*>();
+  const Instruction* end = buffer.GetEndAddress<Instruction*>();
+  vixl::aarch64::PrintDisassembler disasm(stdout);
+  disasm.PrintSignedAddresses(true);
+  disasm.MapCodeAddress(start_address, start);
+  disasm.DisassembleBuffer(start, end);
+
+  return 0;
+}
+
+#endif  // TEST_EXAMPLES
diff --git a/examples/aarch64/examples.h b/examples/aarch64/examples.h
index 1292e81..ca1f3cc 100644
--- a/examples/aarch64/examples.h
+++ b/examples/aarch64/examples.h
@@ -49,9 +49,9 @@
 void GenerateNEONMatrixMultiply(vixl::aarch64::MacroAssembler* masm);
 
 // Generate a function with the following prototype:
-//   void add2_vectors(int8_t *vecA, const int8_t *vecB, unsigned size)
+//   void add2_vectors(int8_t *vec_a, const int8_t *vec_b, unsigned size)
 //
-// Demonstrate how to add two vectors using NEON. The result is stored in vecA.
+// Demonstrate how to add two vectors using NEON. The result is stored in vec_a.
 void GenerateAdd2Vectors(vixl::aarch64::MacroAssembler* masm);
 
 // Generate a function with the following prototype:
@@ -119,4 +119,10 @@
 // Generate a few examples of runtime calls.
 void GenerateRuntimeCallExamples(vixl::aarch64::MacroAssembler* masm);
 
+// Generate a function with the following prototype:
+//    size_t sve_strlen(const char* str);
+//
+// The function implements the standard `strlen` using SVE.
+void GenerateSVEStrlen(vixl::aarch64::MacroAssembler* masm);
+
 #endif  // VIXL_EXAMPLE_EXAMPLES_H_
diff --git a/examples/aarch64/non-const-visitor.h b/examples/aarch64/non-const-visitor.h
index 81c0c9c..243cc15 100644
--- a/examples/aarch64/non-const-visitor.h
+++ b/examples/aarch64/non-const-visitor.h
@@ -30,109 +30,17 @@
 #include "aarch64/decoder-aarch64.h"
 #include "aarch64/macro-assembler-aarch64.h"
 
-class SwitchAddSubRegisterSources : public vixl::aarch64::DecoderVisitor {
+class SwitchAddSubRegisterSources
+    : public vixl::aarch64::DecoderVisitorWithDefaults {
  public:
   SwitchAddSubRegisterSources()
-      : vixl::aarch64::DecoderVisitor(kNonConstVisitor) {}
+      : vixl::aarch64::DecoderVisitorWithDefaults(kNonConstVisitor) {}
 
   // Our visitor switches the register sources for some add and sub instructions
-  // (not all add and sub instructions). Visitors are listed by the macro
-  // `VISITOR_LIST` in aarch64/decoder-aarch64.h.
+  // (not all add and sub instructions).
 
   virtual void VisitAddSubShifted(const vixl::aarch64::Instruction* instr)
       VIXL_OVERRIDE;
-
-// Define the remaining visitors to do nothing.
-#define UNUSED_VISITOR_LIST(V)          \
-  V(PCRelAddressing)                    \
-  V(AddSubImmediate)                    \
-  V(LogicalImmediate)                   \
-  V(MoveWideImmediate)                  \
-  V(Bitfield)                           \
-  V(Extract)                            \
-  V(UnconditionalBranch)                \
-  V(UnconditionalBranchToRegister)      \
-  V(CompareBranch)                      \
-  V(TestBranch)                         \
-  V(ConditionalBranch)                  \
-  V(System)                             \
-  V(Exception)                          \
-  V(RotateRightIntoFlags)               \
-  V(EvaluateIntoFlags)                  \
-  V(LoadStorePAC)                       \
-  V(LoadStorePairPostIndex)             \
-  V(LoadStorePairOffset)                \
-  V(LoadStorePairPreIndex)              \
-  V(LoadStorePairNonTemporal)           \
-  V(LoadStoreRCpcUnscaledOffset)        \
-  V(LoadLiteral)                        \
-  V(LoadStoreUnscaledOffset)            \
-  V(LoadStorePostIndex)                 \
-  V(LoadStorePreIndex)                  \
-  V(LoadStoreRegisterOffset)            \
-  V(LoadStoreUnsignedOffset)            \
-  V(LoadStoreExclusive)                 \
-  V(AtomicMemory)                       \
-  V(LogicalShifted)                     \
-  V(AddSubExtended)                     \
-  V(AddSubWithCarry)                    \
-  V(ConditionalCompareRegister)         \
-  V(ConditionalCompareImmediate)        \
-  V(ConditionalSelect)                  \
-  V(DataProcessing1Source)              \
-  V(DataProcessing2Source)              \
-  V(DataProcessing3Source)              \
-  V(FPCompare)                          \
-  V(FPConditionalCompare)               \
-  V(FPConditionalSelect)                \
-  V(FPImmediate)                        \
-  V(FPDataProcessing1Source)            \
-  V(FPDataProcessing2Source)            \
-  V(FPDataProcessing3Source)            \
-  V(FPIntegerConvert)                   \
-  V(FPFixedPointConvert)                \
-  V(Crypto2RegSHA)                      \
-  V(Crypto3RegSHA)                      \
-  V(CryptoAES)                          \
-  V(NEON2RegMisc)                       \
-  V(NEON2RegMiscFP16)                   \
-  V(NEON3Different)                     \
-  V(NEON3Same)                          \
-  V(NEON3SameFP16)                      \
-  V(NEONAcrossLanes)                    \
-  V(NEONByIndexedElement)               \
-  V(NEONCopy)                           \
-  V(NEONExtract)                        \
-  V(NEONLoadStoreMultiStruct)           \
-  V(NEONLoadStoreMultiStructPostIndex)  \
-  V(NEONLoadStoreSingleStruct)          \
-  V(NEONLoadStoreSingleStructPostIndex) \
-  V(NEONModifiedImmediate)              \
-  V(NEONScalar2RegMisc)                 \
-  V(NEONScalar2RegMiscFP16)             \
-  V(NEONScalar3Diff)                    \
-  V(NEONScalar3Same)                    \
-  V(NEONScalar3SameFP16)                \
-  V(NEONScalar3SameExtra)               \
-  V(NEON3SameExtra)                     \
-  V(NEONScalarByIndexedElement)         \
-  V(NEONScalarCopy)                     \
-  V(NEONScalarPairwise)                 \
-  V(NEONScalarShiftImmediate)           \
-  V(NEONShiftImmediate)                 \
-  V(NEONTable)                          \
-  V(NEONPerm)                           \
-  V(Reserved)                           \
-  V(Unallocated)                        \
-  V(Unimplemented)
-#define DEFINE_UNUSED_VISITOR(Name)                                  \
-  virtual void Visit##Name(const vixl::aarch64::Instruction* i)      \
-      VIXL_OVERRIDE {                                                \
-    USE(i); /* Prevents compiler warnings about unused variables. */ \
-  }
-  UNUSED_VISITOR_LIST(DEFINE_UNUSED_VISITOR)
-#undef DEFINE_UNUSED_VISITOR
-#undef UNUSED_VISITOR_LIST
 };
 
 
diff --git a/examples/aarch64/sve-strlen.cc b/examples/aarch64/sve-strlen.cc
new file mode 100644
index 0000000..02804d5
--- /dev/null
+++ b/examples/aarch64/sve-strlen.cc
@@ -0,0 +1,117 @@
+// Copyright 2020, VIXL authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//   * Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//   * Neither the name of ARM Limited nor the names of its contributors may be
+//     used to endorse or promote products derived from this software without
+//     specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "examples.h"
+
+using namespace vixl;
+using namespace vixl::aarch64;
+
+#define __ masm->
+
+// size_t sve_strlen(const char* str);
+void GenerateSVEStrlen(MacroAssembler* masm) {
+  // We will accumulate the length as we load each chunk.
+  Register len = x1;
+  __ Mov(len, 0);
+
+  // We want to load as much as we can on each iteration, so set up an all-true
+  // predicate for that purpose.
+  PRegister all_true = p0;
+  __ Ptrue(all_true.VnB());
+
+  Label loop;
+  __ Bind(&loop);
+  // FFR is cumulative, so reset it to all-true for each iteration.
+  __ Setffr();
+
+  // Load as many characters as we can from &str[len]. We have to use a NF or FF
+  // load, because we don't know how long the string is. An FF load is a good
+  // choice, because we know that we will see at least a NULL termination, even
+  // for an empty string.
+  __ Ldff1b(z0.VnB(), all_true.Zeroing(), SVEMemOperand(x0, len));
+  // For example, if str = "Test string.", and we load every byte:
+  //   z0.b:      \0 . g n i r t s   t s e T
+
+  // FFR now represents the number of bytes that we actually loaded, so use it
+  // to predicate the data processing instructions.
+  __ Rdffr(p1.VnB());
+
+  // Find the NULL termination (if there is one), and set the flags.
+  __ Cmpeq(p2.VnB(), p1.Zeroing(), z0.VnB(), 0);
+  //   p2.b:       1 0 0 0 0 0 0 0 0 0 0 0 0
+
+  // Activate every lane up to (but not including) the NULL termination. If we
+  // found no NULL termination, this activates every lane, and indicates that we
+  // have to load another vector of characters. Lanes activated in this way
+  // represent string characters that we need to count.
+  __ Brkb(p1.VnB(), p1.Zeroing(), p2.VnB());
+  //   p1.b: 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+
+  // Count the active lanes, and add them to the length count.
+  __ Incp(len, p1.VnB());
+
+  // Loop until `cmpeq` finds a NULL termination.
+  __ B(sve_none, &loop);
+
+  // Put the length in the AAPCS64 return register.
+  __ Mov(x0, len);
+  __ Ret();
+}
+
+#ifndef TEST_EXAMPLES
+#ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
+int main(void) {
+  MacroAssembler masm;
+  Decoder decoder;
+  Simulator simulator(&decoder);
+
+  // We're running on the simulator, so we can assume that SVE is present.
+  masm.GetCPUFeatures()->Combine(CPUFeatures::kSVE);
+
+  // Generate the code for the example function.
+  Label sve_strlen;
+  masm.Bind(&sve_strlen);
+  GenerateSVEStrlen(&masm);
+  masm.FinalizeCode();
+
+  const char* example_input = "This is a string of exactly 42 characters.";
+  VIXL_ASSERT(strlen(example_input) == 42);
+
+  simulator.ResetState();
+  simulator.WriteXRegister(0, reinterpret_cast<uintptr_t>(example_input));
+  simulator.RunFrom(masm.GetLabelAddress<Instruction*>(&sve_strlen));
+
+  printf("strlen(\"%s\") == %" PRIu64 "\n",
+         example_input,
+         simulator.ReadXRegister(0));
+
+  return 0;
+}
+#else
+// Without the simulator there is nothing to test.
+int main(void) { return 0; }
+#endif  // VIXL_INCLUDE_SIMULATOR_AARCH64
+#endif  // TEST_EXAMPLES
diff --git a/src/aarch32/disasm-aarch32.cc b/src/aarch32/disasm-aarch32.cc
index 9ed3a83..535f60c 100644
--- a/src/aarch32/disasm-aarch32.cc
+++ b/src/aarch32/disasm-aarch32.cc
@@ -8288,13 +8288,13 @@
                             UnallocatedT32(instr);
                             return;
                           }
-                          unsigned firstcond = (instr >> 20) & 0xf;
+                          unsigned first_cond = (instr >> 20) & 0xf;
                           unsigned mask = (instr >> 16) & 0xf;
-                          bool wasInITBlock = InITBlock();
-                          SetIT(Condition(firstcond), mask);
-                          it(Condition(firstcond), mask);
-                          if (wasInITBlock || (firstcond == 15) ||
-                              ((firstcond == al) &&
+                          bool was_in_it_block = InITBlock();
+                          SetIT(Condition(first_cond), mask);
+                          it(Condition(first_cond), mask);
+                          if (was_in_it_block || (first_cond == 15) ||
+                              ((first_cond == al) &&
                                (BitCount(Uint32(mask)) != 1))) {
                             UnpredictableT32(instr);
                           }
diff --git a/src/aarch32/location-aarch32.h b/src/aarch32/location-aarch32.h
index 9a57f15..512b9c7 100644
--- a/src/aarch32/location-aarch32.h
+++ b/src/aarch32/location-aarch32.h
@@ -58,7 +58,7 @@
   // with the assembler methods for generating instructions, but will never
   // be handled by the pool manager.
   Location()
-      : LocationBase<int32_t>(kRawLocation, 1 /* dummy size*/),
+      : LocationBase<int32_t>(kRawLocation, 1 /* placeholder size*/),
         referenced_(false) {}
 
   typedef int32_t Offset;
diff --git a/src/aarch32/macro-assembler-aarch32.h b/src/aarch32/macro-assembler-aarch32.h
index d0ff52b..6d76642 100644
--- a/src/aarch32/macro-assembler-aarch32.h
+++ b/src/aarch32/macro-assembler-aarch32.h
@@ -268,7 +268,8 @@
         generate_simulator_code_(VIXL_AARCH32_GENERATE_SIMULATOR_CODE),
         pool_end_(NULL) {
 #ifdef VIXL_DEBUG
-    SetAllowMacroInstructions(true);
+    SetAllowMacroInstructions(  // NOLINT(clang-analyzer-optin.cplusplus.VirtualCall)
+        true);
 #else
     USE(allow_macro_instructions_);
 #endif
@@ -283,7 +284,8 @@
         generate_simulator_code_(VIXL_AARCH32_GENERATE_SIMULATOR_CODE),
         pool_end_(NULL) {
 #ifdef VIXL_DEBUG
-    SetAllowMacroInstructions(true);
+    SetAllowMacroInstructions(  // NOLINT(clang-analyzer-optin.cplusplus.VirtualCall)
+        true);
 #endif
   }
   MacroAssembler(byte* buffer, size_t size, InstructionSet isa = kDefaultISA)
@@ -296,7 +298,8 @@
         generate_simulator_code_(VIXL_AARCH32_GENERATE_SIMULATOR_CODE),
         pool_end_(NULL) {
 #ifdef VIXL_DEBUG
-    SetAllowMacroInstructions(true);
+    SetAllowMacroInstructions(  // NOLINT(clang-analyzer-optin.cplusplus.VirtualCall)
+        true);
 #endif
   }
 
diff --git a/src/aarch32/operands-aarch32.h b/src/aarch32/operands-aarch32.h
index 1d18bfd..2b45295 100644
--- a/src/aarch32/operands-aarch32.h
+++ b/src/aarch32/operands-aarch32.h
@@ -54,28 +54,16 @@
   // This is allowed to be an implicit constructor because Operand is
   // a wrapper class that doesn't normally perform any type conversion.
   Operand(uint32_t immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        rm_(NoReg),
-        shift_(LSL),
-        amount_(0),
-        rs_(NoReg) {}
+      : imm_(immediate), rm_(NoReg), shift_(LSL), amount_(0), rs_(NoReg) {}
   Operand(int32_t immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        rm_(NoReg),
-        shift_(LSL),
-        amount_(0),
-        rs_(NoReg) {}
+      : imm_(immediate), rm_(NoReg), shift_(LSL), amount_(0), rs_(NoReg) {}
 
   // rm
   // where rm is the base register
   // This is allowed to be an implicit constructor because Operand is
   // a wrapper class that doesn't normally perform any type conversion.
   Operand(Register rm)  // NOLINT(runtime/explicit)
-      : imm_(0),
-        rm_(rm),
-        shift_(LSL),
-        amount_(0),
-        rs_(NoReg) {
+      : imm_(0), rm_(rm), shift_(LSL), amount_(0), rs_(NoReg) {
     VIXL_ASSERT(rm_.IsValid());
   }
 
@@ -245,22 +233,18 @@
   // This is allowed to be an implicit constructor because NeonImmediate is
   // a wrapper class that doesn't normally perform any type conversion.
   NeonImmediate(uint32_t immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        immediate_type_(I32) {}
+      : imm_(immediate), immediate_type_(I32) {}
   NeonImmediate(int immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        immediate_type_(I32) {}
+      : imm_(immediate), immediate_type_(I32) {}
 
   // { #<immediate> }
   // where <immediate> is a 64 bit number
   // This is allowed to be an implicit constructor because NeonImmediate is
   // a wrapper class that doesn't normally perform any type conversion.
   NeonImmediate(int64_t immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        immediate_type_(I64) {}
+      : imm_(immediate), immediate_type_(I64) {}
   NeonImmediate(uint64_t immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        immediate_type_(I64) {}
+      : imm_(immediate), immediate_type_(I64) {}
 
   // { #<immediate> }
   // where <immediate> is a non zero floating point number which can be encoded
@@ -268,11 +252,9 @@
   // This is allowed to be an implicit constructor because NeonImmediate is
   // a wrapper class that doesn't normally perform any type conversion.
   NeonImmediate(float immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        immediate_type_(F32) {}
+      : imm_(immediate), immediate_type_(F32) {}
   NeonImmediate(double immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        immediate_type_(F64) {}
+      : imm_(immediate), immediate_type_(F64) {}
 
   NeonImmediate(const NeonImmediate& src)
       : imm_(src.imm_), immediate_type_(src.immediate_type_) {}
@@ -374,29 +356,21 @@
 class NeonOperand {
  public:
   NeonOperand(int32_t immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        rm_(NoDReg) {}
+      : imm_(immediate), rm_(NoDReg) {}
   NeonOperand(uint32_t immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        rm_(NoDReg) {}
+      : imm_(immediate), rm_(NoDReg) {}
   NeonOperand(int64_t immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        rm_(NoDReg) {}
+      : imm_(immediate), rm_(NoDReg) {}
   NeonOperand(uint64_t immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        rm_(NoDReg) {}
+      : imm_(immediate), rm_(NoDReg) {}
   NeonOperand(float immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        rm_(NoDReg) {}
+      : imm_(immediate), rm_(NoDReg) {}
   NeonOperand(double immediate)  // NOLINT(runtime/explicit)
-      : imm_(immediate),
-        rm_(NoDReg) {}
+      : imm_(immediate), rm_(NoDReg) {}
   NeonOperand(const NeonImmediate& imm)  // NOLINT(runtime/explicit)
-      : imm_(imm),
-        rm_(NoDReg) {}
+      : imm_(imm), rm_(NoDReg) {}
   NeonOperand(const VRegister& rm)  // NOLINT(runtime/explicit)
-      : imm_(0),
-        rm_(rm) {
+      : imm_(0), rm_(rm) {
     VIXL_ASSERT(rm_.IsValid());
   }
 
diff --git a/src/aarch64/assembler-aarch64.cc b/src/aarch64/assembler-aarch64.cc
index 9e73ffa..e98de89 100644
--- a/src/aarch64/assembler-aarch64.cc
+++ b/src/aarch64/assembler-aarch64.cc
@@ -1044,7 +1044,7 @@
   V(auti, AUTI)             \
   V(autd, AUTD)
 
-#define DEFINE_ASM_FUNCS(PRE, OP)                                  \
+#define VIXL_DEFINE_ASM_FUNC(PRE, OP)                              \
   void Assembler::PRE##a(const Register& xd, const Register& xn) { \
     VIXL_ASSERT(CPUHas(CPUFeatures::kPAuth));                      \
     VIXL_ASSERT(xd.Is64Bits() && xn.Is64Bits());                   \
@@ -1069,8 +1069,8 @@
     Emit(SF(xd) | OP##ZB | Rd(xd));                                \
   }
 
-PAUTH_VARIATIONS(DEFINE_ASM_FUNCS)
-#undef DEFINE_ASM_FUNCS
+PAUTH_VARIATIONS(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 void Assembler::pacga(const Register& xd,
                       const Register& xn,
@@ -1141,7 +1141,13 @@
       addrmodeop = LoadStorePairPostIndexFixed;
     }
   }
-  Emit(addrmodeop | memop);
+
+  Instr emitop = addrmodeop | memop;
+
+  // Only X registers may be specified for ldpsw.
+  VIXL_ASSERT(((emitop & LoadStorePairMask) != LDPSW_x) || rt.IsX());
+
+  Emit(emitop);
 }
 
 
@@ -1381,10 +1387,16 @@
 }
 
 
-void Assembler::prfm(PrefetchOperation op, int64_t imm19) {
+void Assembler::prfm(int op, int64_t imm19) {
   Emit(PRFM_lit | ImmPrefetchOperation(op) | ImmLLiteral(imm19));
 }
 
+void Assembler::prfm(PrefetchOperation op, int64_t imm19) {
+  // Passing unnamed values in 'op' is undefined behaviour in C++.
+  VIXL_ASSERT(IsNamedPrefetchOperation(op));
+  prfm(static_cast<int>(op), imm19);
+}
+
 
 // Exclusive-access instructions.
 void Assembler::stxrb(const Register& rs,
@@ -1635,17 +1647,18 @@
   V(casal, CASAL)
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, OP)                                          \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP)                                     \
   void Assembler::FN(const Register& rs,                                 \
                      const Register& rt,                                 \
                      const MemOperand& src) {                            \
     VIXL_ASSERT(CPUHas(CPUFeatures::kAtomics));                          \
     VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));      \
+    VIXL_ASSERT(AreSameFormat(rs, rt));                                  \
     LoadStoreExclusive op = rt.Is64Bits() ? OP##_x : OP##_w;             \
     Emit(op | Rs(rs) | Rt(rt) | Rt2_mask | RnSP(src.GetBaseRegister())); \
   }
-COMPARE_AND_SWAP_W_X_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+COMPARE_AND_SWAP_W_X_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 // clang-format off
 #define COMPARE_AND_SWAP_W_LIST(V) \
@@ -1659,7 +1672,7 @@
   V(casalh, CASALH)
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, OP)                                          \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP)                                     \
   void Assembler::FN(const Register& rs,                                 \
                      const Register& rt,                                 \
                      const MemOperand& src) {                            \
@@ -1667,8 +1680,8 @@
     VIXL_ASSERT(src.IsImmediateOffset() && (src.GetOffset() == 0));      \
     Emit(OP | Rs(rs) | Rt(rt) | Rt2_mask | RnSP(src.GetBaseRegister())); \
   }
-COMPARE_AND_SWAP_W_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+COMPARE_AND_SWAP_W_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 
 // clang-format off
@@ -1679,7 +1692,7 @@
   V(caspal, CASPAL)
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, OP)                                          \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP)                                     \
   void Assembler::FN(const Register& rs,                                 \
                      const Register& rs1,                                \
                      const Register& rt,                                 \
@@ -1691,11 +1704,12 @@
     VIXL_ASSERT(AreEven(rs, rt));                                        \
     VIXL_ASSERT(AreConsecutive(rs, rs1));                                \
     VIXL_ASSERT(AreConsecutive(rt, rt1));                                \
+    VIXL_ASSERT(AreSameFormat(rs, rs1, rt, rt1));                        \
     LoadStoreExclusive op = rt.Is64Bits() ? OP##_x : OP##_w;             \
     Emit(op | Rs(rs) | Rt(rt) | Rt2_mask | RnSP(src.GetBaseRegister())); \
   }
-COMPARE_AND_SWAP_PAIR_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+COMPARE_AND_SWAP_PAIR_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 // These macros generate all the variations of the atomic memory operations,
 // e.g. ldadd, ldadda, ldaddb, staddl, etc.
@@ -1846,7 +1860,7 @@
   Emit(LDAPURSW | Rt(rt) | base | ImmLS(static_cast<int>(offset)));
 }
 
-void Assembler::prfm(PrefetchOperation op,
+void Assembler::prfm(int op,
                      const MemOperand& address,
                      LoadStoreScalingOption option) {
   VIXL_ASSERT(option != RequireUnscaledOffset);
@@ -1854,8 +1868,16 @@
   Prefetch(op, address, option);
 }
 
+void Assembler::prfm(PrefetchOperation op,
+                     const MemOperand& address,
+                     LoadStoreScalingOption option) {
+  // Passing unnamed values in 'op' is undefined behaviour in C++.
+  VIXL_ASSERT(IsNamedPrefetchOperation(op));
+  prfm(static_cast<int>(op), address, option);
+}
 
-void Assembler::prfum(PrefetchOperation op,
+
+void Assembler::prfum(int op,
                       const MemOperand& address,
                       LoadStoreScalingOption option) {
   VIXL_ASSERT(option != RequireScaledOffset);
@@ -1863,9 +1885,23 @@
   Prefetch(op, address, option);
 }
 
+void Assembler::prfum(PrefetchOperation op,
+                      const MemOperand& address,
+                      LoadStoreScalingOption option) {
+  // Passing unnamed values in 'op' is undefined behaviour in C++.
+  VIXL_ASSERT(IsNamedPrefetchOperation(op));
+  prfum(static_cast<int>(op), address, option);
+}
+
+
+void Assembler::prfm(int op, RawLiteral* literal) {
+  prfm(op, static_cast<int>(LinkAndGetWordOffsetTo(literal)));
+}
 
 void Assembler::prfm(PrefetchOperation op, RawLiteral* literal) {
-  prfm(op, static_cast<int>(LinkAndGetWordOffsetTo(literal)));
+  // Passing unnamed values in 'op' is undefined behaviour in C++.
+  VIXL_ASSERT(IsNamedPrefetchOperation(op));
+  prfm(static_cast<int>(op), literal);
 }
 
 
@@ -1933,6 +1969,7 @@
   // Assert that addressing mode is either offset (with immediate 0), post
   // index by immediate of the size of the register list, or post index by a
   // value in a core register.
+  VIXL_ASSERT(vt.HasSize() && vt.HasLaneSize());
   if (addr.IsImmediateOffset()) {
     VIXL_ASSERT(addr.GetOffset() == 0);
   } else {
@@ -2290,6 +2327,7 @@
   // We support vt arguments of the form vt.VxT() or vt.T(), where x is the
   // number of lanes, and T is b, h, s or d.
   unsigned lane_size = vt.GetLaneSizeInBytes();
+  VIXL_ASSERT(lane_size > 0);
   VIXL_ASSERT(lane < (kQRegSizeInBytes / lane_size));
 
   // Lane size is encoded in the opcode field. Lane index is encoded in the Q,
@@ -2424,7 +2462,7 @@
 // clang-format on
 
 
-#define DEFINE_ASM_FUNC(FN, OP, AS)                   \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP, AS)                   \
 void Assembler::FN(const VRegister& vd,               \
                    const VRegister& vn,               \
                    const VRegister& vm) {             \
@@ -2432,8 +2470,8 @@
   VIXL_ASSERT(AS);                                    \
   NEON3DifferentL(vd, vn, vm, OP);                    \
 }
-NEON_3DIFF_LONG_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_3DIFF_LONG_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 // clang-format off
 #define NEON_3DIFF_HN_LIST(V)         \
@@ -2447,7 +2485,7 @@
   V(rsubhn2, NEON_RSUBHN2, vd.IsQ())
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, OP, AS)          \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP, AS)     \
   void Assembler::FN(const VRegister& vd,    \
                      const VRegister& vn,    \
                      const VRegister& vm) {  \
@@ -2455,8 +2493,8 @@
     VIXL_ASSERT(AS);                         \
     NEON3DifferentHN(vd, vn, vm, OP);        \
   }
-NEON_3DIFF_HN_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_3DIFF_HN_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 void Assembler::uaddw(const VRegister& vd,
                       const VRegister& vn,
@@ -3104,7 +3142,7 @@
   V(fcvtau, NEON_FCVTAU, FCVTAU)     \
   V(fcvtas, NEON_FCVTAS, FCVTAS)
 
-#define DEFINE_ASM_FUNCS(FN, VEC_OP, SCA_OP)                     \
+#define VIXL_DEFINE_ASM_FUNC(FN, VEC_OP, SCA_OP)                 \
   void Assembler::FN(const Register& rd, const VRegister& vn) {  \
     VIXL_ASSERT(CPUHas(CPUFeatures::kFP));                       \
     if (vn.IsH()) VIXL_ASSERT(CPUHas(CPUFeatures::kFPHalf));     \
@@ -3119,8 +3157,8 @@
       NEONFPConvertToInt(vd, vn, VEC_OP);                        \
     }                                                            \
   }
-NEON_FP2REGMISC_FCVT_LIST(DEFINE_ASM_FUNCS)
-#undef DEFINE_ASM_FUNCS
+NEON_FP2REGMISC_FCVT_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 
 void Assembler::fcvtzs(const Register& rd, const VRegister& vn, int fbits) {
@@ -3308,7 +3346,7 @@
   V(frecpe,  NEON_FRECPE,  NEON_FRECPE_scalar,  NEON_FRECPE_H_scalar)
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, VEC_OP, SCA_OP, SCA_OP_H)                        \
+#define VIXL_DEFINE_ASM_FUNC(FN, VEC_OP, SCA_OP, SCA_OP_H)                   \
   void Assembler::FN(const VRegister& vd, const VRegister& vn) {             \
     VIXL_ASSERT(CPUHas(CPUFeatures::kFP));                                   \
     Instr op;                                                                \
@@ -3348,8 +3386,8 @@
       NEONFP2RegMisc(vd, vn, op);                                            \
     }                                                                        \
   }
-NEON_FP2REGMISC_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_FP2REGMISC_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 // clang-format off
 #define NEON_FP2REGMISC_V85_LIST(V)       \
@@ -3359,7 +3397,7 @@
   V(frint64z,  NEON_FRINT64Z,  FRINT64Z)
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, VEC_OP, SCA_OP)                                    \
+#define VIXL_DEFINE_ASM_FUNC(FN, VEC_OP, SCA_OP)                               \
   void Assembler::FN(const VRegister& vd, const VRegister& vn) {               \
     VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kFrintToFixedSizedInt)); \
     Instr op;                                                                  \
@@ -3373,8 +3411,8 @@
     }                                                                          \
     NEONFP2RegMisc(vd, vn, op);                                                \
   }
-NEON_FP2REGMISC_V85_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_FP2REGMISC_V85_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 void Assembler::NEONFP2RegMiscFP16(const VRegister& vd,
                                    const VRegister& vn,
@@ -3638,7 +3676,7 @@
   V(uqrshl,   NEON_UQRSHL,   true)
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, OP, AS)          \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP, AS)     \
   void Assembler::FN(const VRegister& vd,    \
                      const VRegister& vn,    \
                      const VRegister& vm) {  \
@@ -3646,8 +3684,8 @@
     VIXL_ASSERT(AS);                         \
     NEON3Same(vd, vn, vm, OP);               \
   }
-NEON_3SAME_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_3SAME_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 // clang-format off
 #define NEON_FP3SAME_OP_LIST(V)                                        \
@@ -3680,7 +3718,7 @@
 // TODO: This macro is complicated because it classifies the instructions in the
 // macro list above, and treats each case differently. It could be somewhat
 // simpler if we were to split the macro, at the cost of some duplication.
-#define DEFINE_ASM_FUNC(FN, VEC_OP, SCA_OP, SCA_OP_H)                    \
+#define VIXL_DEFINE_ASM_FUNC(FN, VEC_OP, SCA_OP, SCA_OP_H)               \
   void Assembler::FN(const VRegister& vd,                                \
                      const VRegister& vn,                                \
                      const VRegister& vm) {                              \
@@ -3720,8 +3758,8 @@
       NEONFP3Same(vd, vn, vm, op);                                       \
     }                                                                    \
   }
-NEON_FP3SAME_OP_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_FP3SAME_OP_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 
 // clang-format off
@@ -3732,7 +3770,7 @@
   V(fmlsl2,  NEON_FMLSL2)
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, VEC_OP)                         \
+#define VIXL_DEFINE_ASM_FUNC(FN, VEC_OP)                    \
   void Assembler::FN(const VRegister& vd,                   \
                      const VRegister& vn,                   \
                      const VRegister& vm) {                 \
@@ -3744,8 +3782,8 @@
                 (vd.Is4S() && vn.Is4H() && vm.Is4H()));     \
     Emit(FPFormat(vd) | VEC_OP | Rm(vm) | Rn(vn) | Rd(vd)); \
   }
-NEON_FHM_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_FHM_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 
 void Assembler::addp(const VRegister& vd, const VRegister& vn) {
@@ -4138,7 +4176,7 @@
   V(sqrdmulh, NEON_SQRDMULH_byelement, true)          \
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, OP, AS)                     \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP, AS)                     \
   void Assembler::FN(const VRegister& vd,               \
                      const VRegister& vn,               \
                      const VRegister& vm,               \
@@ -4147,8 +4185,8 @@
     VIXL_ASSERT(AS);                                    \
     NEONByElement(vd, vn, vm, vm_index, OP);            \
   }
-NEON_BYELEMENT_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_BYELEMENT_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 
 // clang-format off
@@ -4157,7 +4195,7 @@
   V(sqrdmlsh, NEON_SQRDMLSH_byelement)
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, OP)                                 \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP)                            \
   void Assembler::FN(const VRegister& vd,                       \
                      const VRegister& vn,                       \
                      const VRegister& vm,                       \
@@ -4165,8 +4203,8 @@
     VIXL_ASSERT(CPUHas(CPUFeatures::kNEON, CPUFeatures::kRDM)); \
     NEONByElement(vd, vn, vm, vm_index, OP);                    \
   }
-NEON_BYELEMENT_RDM_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_BYELEMENT_RDM_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 
 // clang-format off
@@ -4177,7 +4215,7 @@
   V(fmulx, NEON_FMULX_byelement, NEON_FMULX_H_byelement)
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, OP, OP_H)                                  \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP, OP_H)                             \
   void Assembler::FN(const VRegister& vd,                              \
                      const VRegister& vn,                              \
                      const VRegister& vm,                              \
@@ -4186,8 +4224,8 @@
     if (vd.IsLaneSizeH()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf)); \
     NEONFPByElement(vd, vn, vm, vm_index, OP, OP_H);                   \
   }
-NEON_FPBYELEMENT_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_FPBYELEMENT_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 
 // clang-format off
@@ -4213,7 +4251,7 @@
 // clang-format on
 
 
-#define DEFINE_ASM_FUNC(FN, OP, AS)           \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP, AS)      \
   void Assembler::FN(const VRegister& vd,     \
                      const VRegister& vn,     \
                      const VRegister& vm,     \
@@ -4222,8 +4260,8 @@
     VIXL_ASSERT(AS);                          \
     NEONByElementL(vd, vn, vm, vm_index, OP); \
   }
-NEON_BYELEMENT_LONG_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_BYELEMENT_LONG_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 
 // clang-format off
@@ -4235,7 +4273,7 @@
 // clang-format on
 
 
-#define DEFINE_ASM_FUNC(FN, OP)                                        \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP)                                   \
   void Assembler::FN(const VRegister& vd,                              \
                      const VRegister& vn,                              \
                      const VRegister& vm,                              \
@@ -4252,8 +4290,8 @@
     Emit(FPFormat(vd) | OP | Rd(vd) | Rn(vn) | Rm(vm) |                \
          ImmNEONHLM(vm_index, 3));                                     \
   }
-NEON_BYELEMENT_FHM_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_BYELEMENT_FHM_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 void Assembler::suqadd(const VRegister& vd, const VRegister& vn) {
   VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));
@@ -4763,13 +4801,13 @@
   V(uminv,   NEON_UMINV)
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, OP)                                  \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP)                             \
   void Assembler::FN(const VRegister& vd, const VRegister& vn) { \
     VIXL_ASSERT(CPUHas(CPUFeatures::kNEON));                     \
     NEONAcrossLanes(vd, vn, OP, 0);                              \
   }
-NEON_ACROSSLANES_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_ACROSSLANES_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 
 // clang-format off
@@ -4780,15 +4818,15 @@
   V(fminnmv, NEON_FMINNMV, NEON_FMINNMV_H) \
 // clang-format on
 
-#define DEFINE_ASM_FUNC(FN, OP, OP_H)                            \
+#define VIXL_DEFINE_ASM_FUNC(FN, OP, OP_H)                            \
   void Assembler::FN(const VRegister& vd, const VRegister& vn) { \
     VIXL_ASSERT(CPUHas(CPUFeatures::kFP, CPUFeatures::kNEON));   \
     if (vd.Is1H()) VIXL_ASSERT(CPUHas(CPUFeatures::kNEONHalf));  \
     VIXL_ASSERT(vd.Is1S() || vd.Is1H());                         \
     NEONAcrossLanes(vd, vn, OP, OP_H);                           \
   }
-NEON_ACROSSLANES_FP_LIST(DEFINE_ASM_FUNC)
-#undef DEFINE_ASM_FUNC
+NEON_ACROSSLANES_FP_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
 
 
 void Assembler::NEONPerm(const VRegister& vd,
@@ -4870,9 +4908,9 @@
                                        const VRegister& vn,
                                        int shift,
                                        NEONShiftImmediateOp op) {
-  int laneSizeInBits = vn.GetLaneSizeInBits();
-  VIXL_ASSERT((shift >= 0) && (shift < laneSizeInBits));
-  NEONShiftImmediate(vd, vn, op, (laneSizeInBits + shift) << 16);
+  int lane_size_in_bits = vn.GetLaneSizeInBits();
+  VIXL_ASSERT((shift >= 0) && (shift < lane_size_in_bits));
+  NEONShiftImmediate(vd, vn, op, (lane_size_in_bits + shift) << 16);
 }
 
 
@@ -4880,9 +4918,9 @@
                                         const VRegister& vn,
                                         int shift,
                                         NEONShiftImmediateOp op) {
-  int laneSizeInBits = vn.GetLaneSizeInBits();
-  VIXL_ASSERT((shift >= 1) && (shift <= laneSizeInBits));
-  NEONShiftImmediate(vd, vn, op, ((2 * laneSizeInBits) - shift) << 16);
+  int lane_size_in_bits = vn.GetLaneSizeInBits();
+  VIXL_ASSERT((shift >= 1) && (shift <= lane_size_in_bits));
+  NEONShiftImmediate(vd, vn, op, ((2 * lane_size_in_bits) - shift) << 16);
 }
 
 
@@ -4890,9 +4928,9 @@
                                     const VRegister& vn,
                                     int shift,
                                     NEONShiftImmediateOp op) {
-  int laneSizeInBits = vn.GetLaneSizeInBits();
-  VIXL_ASSERT((shift >= 0) && (shift < laneSizeInBits));
-  int immh_immb = (laneSizeInBits + shift) << 16;
+  int lane_size_in_bits = vn.GetLaneSizeInBits();
+  VIXL_ASSERT((shift >= 0) && (shift < lane_size_in_bits));
+  int immh_immb = (lane_size_in_bits + shift) << 16;
 
   VIXL_ASSERT((vn.Is8B() && vd.Is8H()) || (vn.Is4H() && vd.Is4S()) ||
               (vn.Is2S() && vd.Is2D()) || (vn.Is16B() && vd.Is8H()) ||
@@ -4908,9 +4946,9 @@
                                     int shift,
                                     NEONShiftImmediateOp op) {
   Instr q, scalar;
-  int laneSizeInBits = vd.GetLaneSizeInBits();
-  VIXL_ASSERT((shift >= 1) && (shift <= laneSizeInBits));
-  int immh_immb = (2 * laneSizeInBits - shift) << 16;
+  int lane_size_in_bits = vd.GetLaneSizeInBits();
+  VIXL_ASSERT((shift >= 1) && (shift <= lane_size_in_bits));
+  int immh_immb = (2 * lane_size_in_bits - shift) << 16;
 
   if (vn.IsScalar()) {
     VIXL_ASSERT((vd.Is1B() && vn.Is1H()) || (vd.Is1H() && vn.Is1S()) ||
@@ -5271,6 +5309,7 @@
   } else {
     // Calculate a new immediate and shift combination to encode the immediate
     // argument.
+    VIXL_ASSERT(shift == -1);
     shift = 0;
     if ((imm & 0xffffffffffff0000) == 0) {
       // Nothing to do.
@@ -5604,7 +5643,7 @@
 
 
 Instr Assembler::LoadStoreMemOperand(const MemOperand& addr,
-                                     unsigned access_size,
+                                     unsigned access_size_in_bytes_log2,
                                      LoadStoreScalingOption option) {
   Instr base = RnSP(addr.GetBaseRegister());
   int64_t offset = addr.GetOffset();
@@ -5614,21 +5653,22 @@
         (option == PreferUnscaledOffset) || (option == RequireUnscaledOffset);
     if (prefer_unscaled && IsImmLSUnscaled(offset)) {
       // Use the unscaled addressing mode.
-      return base | LoadStoreUnscaledOffsetFixed |
-             ImmLS(static_cast<int>(offset));
+      return base | LoadStoreUnscaledOffsetFixed | ImmLS(offset);
     }
 
     if ((option != RequireUnscaledOffset) &&
-        IsImmLSScaled(offset, access_size)) {
+        IsImmLSScaled(offset, access_size_in_bytes_log2)) {
+      // We need `offset` to be positive for the shift to be well-defined.
+      // IsImmLSScaled should check this.
+      VIXL_ASSERT(offset >= 0);
       // Use the scaled addressing mode.
       return base | LoadStoreUnsignedOffsetFixed |
-             ImmLSUnsigned(static_cast<int>(offset) >> access_size);
+             ImmLSUnsigned(offset >> access_size_in_bytes_log2);
     }
 
     if ((option != RequireScaledOffset) && IsImmLSUnscaled(offset)) {
       // Use the unscaled addressing mode.
-      return base | LoadStoreUnscaledOffsetFixed |
-             ImmLS(static_cast<int>(offset));
+      return base | LoadStoreUnscaledOffsetFixed | ImmLS(offset);
     }
   }
 
@@ -5649,17 +5689,17 @@
 
     // Shifts are encoded in one bit, indicating a left shift by the memory
     // access size.
-    VIXL_ASSERT((shift_amount == 0) || (shift_amount == access_size));
+    VIXL_ASSERT((shift_amount == 0) || (shift_amount == access_size_in_bytes_log2));
     return base | LoadStoreRegisterOffsetFixed | Rm(addr.GetRegisterOffset()) |
            ExtendMode(ext) | ImmShiftLS((shift_amount > 0) ? 1 : 0);
   }
 
   if (addr.IsPreIndex() && IsImmLSUnscaled(offset)) {
-    return base | LoadStorePreIndexFixed | ImmLS(static_cast<int>(offset));
+    return base | LoadStorePreIndexFixed | ImmLS(offset);
   }
 
   if (addr.IsPostIndex() && IsImmLSUnscaled(offset)) {
-    return base | LoadStorePostIndexFixed | ImmLS(static_cast<int>(offset));
+    return base | LoadStorePostIndexFixed | ImmLS(offset);
   }
 
   // If this point is reached, the MemOperand (addr) cannot be encoded.
@@ -5694,7 +5734,7 @@
 }
 
 
-void Assembler::Prefetch(PrefetchOperation op,
+void Assembler::Prefetch(int op,
                          const MemOperand& addr,
                          LoadStoreScalingOption option) {
   VIXL_ASSERT(addr.IsRegisterOffset() || addr.IsImmediateOffset());
@@ -5703,6 +5743,14 @@
   Emit(PRFM | prfop | LoadStoreMemOperand(addr, kXRegSizeInBytesLog2, option));
 }
 
+void Assembler::Prefetch(PrefetchOperation op,
+                         const MemOperand& addr,
+                         LoadStoreScalingOption option) {
+  // Passing unnamed values in 'op' is undefined behaviour in C++.
+  VIXL_ASSERT(IsNamedPrefetchOperation(op));
+  Prefetch(static_cast<int>(op), addr, option);
+}
+
 
 bool Assembler::IsImmAddSub(int64_t immediate) {
   return IsUint12(immediate) ||
@@ -5788,17 +5836,17 @@
 }
 
 
-bool Assembler::IsImmLSPair(int64_t offset, unsigned access_size) {
-  VIXL_ASSERT(access_size <= kQRegSizeInBytesLog2);
-  return IsMultiple(offset, 1 << access_size) &&
-         IsInt7(offset / (1 << access_size));
+bool Assembler::IsImmLSPair(int64_t offset, unsigned access_size_in_bytes_log2) {
+  VIXL_ASSERT(access_size_in_bytes_log2 <= kQRegSizeInBytesLog2);
+  return IsMultiple(offset, 1 << access_size_in_bytes_log2) &&
+         IsInt7(offset / (1 << access_size_in_bytes_log2));
 }
 
 
-bool Assembler::IsImmLSScaled(int64_t offset, unsigned access_size) {
-  VIXL_ASSERT(access_size <= kQRegSizeInBytesLog2);
-  return IsMultiple(offset, 1 << access_size) &&
-         IsUint12(offset / (1 << access_size));
+bool Assembler::IsImmLSScaled(int64_t offset, unsigned access_size_in_bytes_log2) {
+  VIXL_ASSERT(access_size_in_bytes_log2 <= kQRegSizeInBytesLog2);
+  return IsMultiple(offset, 1 << access_size_in_bytes_log2) &&
+         IsUint12(offset / (1 << access_size_in_bytes_log2));
 }
 
 
@@ -5832,7 +5880,8 @@
                              unsigned* n,
                              unsigned* imm_s,
                              unsigned* imm_r) {
-  VIXL_ASSERT((width == kWRegSize) || (width == kXRegSize));
+  VIXL_ASSERT((width == kBRegSize) || (width == kHRegSize) ||
+              (width == kSRegSize) || (width == kDRegSize));
 
   bool negate = false;
 
@@ -5873,16 +5922,18 @@
     value = ~value;
   }
 
-  if (width == kWRegSize) {
-    // To handle 32-bit logical immediates, the very easiest thing is to repeat
-    // the input value twice to make a 64-bit word. The correct encoding of that
-    // as a logical immediate will also be the correct encoding of the 32-bit
-    // value.
+  if (width <= kWRegSize) {
+    // To handle 8/16/32-bit logical immediates, the very easiest thing is to repeat
+    // the input value to fill a 64-bit word. The correct encoding of that as a
+    // logical immediate will also be the correct encoding of the value.
 
-    // Avoid making the assumption that the most-significant 32 bits are zero by
+    // Avoid making the assumption that the most-significant 56/48/32 bits are zero by
     // shifting the value left and duplicating it.
-    value <<= kWRegSize;
-    value |= value >> kWRegSize;
+    for (unsigned bits = width; bits <= kWRegSize; bits *= 2) {
+      value <<= bits;
+      uint64_t mask = (UINT64_C(1) << bits) - 1;
+      value |= ((value >> bits) & mask);
+    }
   }
 
   // The basic analysis idea: imagine our input word looks like this.
@@ -6186,152 +6237,5 @@
 }
 
 
-bool AreAliased(const CPURegister& reg1,
-                const CPURegister& reg2,
-                const CPURegister& reg3,
-                const CPURegister& reg4,
-                const CPURegister& reg5,
-                const CPURegister& reg6,
-                const CPURegister& reg7,
-                const CPURegister& reg8) {
-  int number_of_valid_regs = 0;
-  int number_of_valid_fpregs = 0;
-
-  RegList unique_regs = 0;
-  RegList unique_fpregs = 0;
-
-  const CPURegister regs[] = {reg1, reg2, reg3, reg4, reg5, reg6, reg7, reg8};
-
-  for (size_t i = 0; i < ArrayLength(regs); i++) {
-    if (regs[i].IsRegister()) {
-      number_of_valid_regs++;
-      unique_regs |= regs[i].GetBit();
-    } else if (regs[i].IsVRegister()) {
-      number_of_valid_fpregs++;
-      unique_fpregs |= regs[i].GetBit();
-    } else {
-      VIXL_ASSERT(!regs[i].IsValid());
-    }
-  }
-
-  int number_of_unique_regs = CountSetBits(unique_regs);
-  int number_of_unique_fpregs = CountSetBits(unique_fpregs);
-
-  VIXL_ASSERT(number_of_valid_regs >= number_of_unique_regs);
-  VIXL_ASSERT(number_of_valid_fpregs >= number_of_unique_fpregs);
-
-  return (number_of_valid_regs != number_of_unique_regs) ||
-         (number_of_valid_fpregs != number_of_unique_fpregs);
-}
-
-
-bool AreSameSizeAndType(const CPURegister& reg1,
-                        const CPURegister& reg2,
-                        const CPURegister& reg3,
-                        const CPURegister& reg4,
-                        const CPURegister& reg5,
-                        const CPURegister& reg6,
-                        const CPURegister& reg7,
-                        const CPURegister& reg8) {
-  VIXL_ASSERT(reg1.IsValid());
-  bool match = true;
-  match &= !reg2.IsValid() || reg2.IsSameSizeAndType(reg1);
-  match &= !reg3.IsValid() || reg3.IsSameSizeAndType(reg1);
-  match &= !reg4.IsValid() || reg4.IsSameSizeAndType(reg1);
-  match &= !reg5.IsValid() || reg5.IsSameSizeAndType(reg1);
-  match &= !reg6.IsValid() || reg6.IsSameSizeAndType(reg1);
-  match &= !reg7.IsValid() || reg7.IsSameSizeAndType(reg1);
-  match &= !reg8.IsValid() || reg8.IsSameSizeAndType(reg1);
-  return match;
-}
-
-bool AreEven(const CPURegister& reg1,
-             const CPURegister& reg2,
-             const CPURegister& reg3,
-             const CPURegister& reg4,
-             const CPURegister& reg5,
-             const CPURegister& reg6,
-             const CPURegister& reg7,
-             const CPURegister& reg8) {
-  VIXL_ASSERT(reg1.IsValid());
-  bool even = (reg1.GetCode() % 2) == 0;
-  even &= !reg2.IsValid() || ((reg2.GetCode() % 2) == 0);
-  even &= !reg3.IsValid() || ((reg3.GetCode() % 2) == 0);
-  even &= !reg4.IsValid() || ((reg4.GetCode() % 2) == 0);
-  even &= !reg5.IsValid() || ((reg5.GetCode() % 2) == 0);
-  even &= !reg6.IsValid() || ((reg6.GetCode() % 2) == 0);
-  even &= !reg7.IsValid() || ((reg7.GetCode() % 2) == 0);
-  even &= !reg8.IsValid() || ((reg8.GetCode() % 2) == 0);
-  return even;
-}
-
-
-bool AreConsecutive(const CPURegister& reg1,
-                    const CPURegister& reg2,
-                    const CPURegister& reg3,
-                    const CPURegister& reg4) {
-  VIXL_ASSERT(reg1.IsValid());
-
-  if (!reg2.IsValid()) {
-    return true;
-  } else if (reg2.GetCode() != ((reg1.GetCode() + 1) % kNumberOfRegisters)) {
-    return false;
-  }
-
-  if (!reg3.IsValid()) {
-    return true;
-  } else if (reg3.GetCode() != ((reg2.GetCode() + 1) % kNumberOfRegisters)) {
-    return false;
-  }
-
-  if (!reg4.IsValid()) {
-    return true;
-  } else if (reg4.GetCode() != ((reg3.GetCode() + 1) % kNumberOfRegisters)) {
-    return false;
-  }
-
-  return true;
-}
-
-
-bool AreSameFormat(const VRegister& reg1,
-                   const VRegister& reg2,
-                   const VRegister& reg3,
-                   const VRegister& reg4) {
-  VIXL_ASSERT(reg1.IsValid());
-  bool match = true;
-  match &= !reg2.IsValid() || reg2.IsSameFormat(reg1);
-  match &= !reg3.IsValid() || reg3.IsSameFormat(reg1);
-  match &= !reg4.IsValid() || reg4.IsSameFormat(reg1);
-  return match;
-}
-
-
-bool AreConsecutive(const VRegister& reg1,
-                    const VRegister& reg2,
-                    const VRegister& reg3,
-                    const VRegister& reg4) {
-  VIXL_ASSERT(reg1.IsValid());
-
-  if (!reg2.IsValid()) {
-    return true;
-  } else if (reg2.GetCode() != ((reg1.GetCode() + 1) % kNumberOfVRegisters)) {
-    return false;
-  }
-
-  if (!reg3.IsValid()) {
-    return true;
-  } else if (reg3.GetCode() != ((reg2.GetCode() + 1) % kNumberOfVRegisters)) {
-    return false;
-  }
-
-  if (!reg4.IsValid()) {
-    return true;
-  } else if (reg4.GetCode() != ((reg3.GetCode() + 1) % kNumberOfVRegisters)) {
-    return false;
-  }
-
-  return true;
-}
 }  // namespace aarch64
 }  // namespace vixl
diff --git a/src/aarch64/assembler-aarch64.h b/src/aarch64/assembler-aarch64.h
index 3ccda1a..f7aafd0 100644
--- a/src/aarch64/assembler-aarch64.h
+++ b/src/aarch64/assembler-aarch64.h
@@ -1089,18 +1089,6 @@
   // zero [Armv8.3].
   void pacdza(const Register& xd);
 
-  // Pointer Authentication Code for Data address, using key A, with address in
-  // x17 and modifier in x16 [Armv8.3].
-  void pacda1716();
-
-  // Pointer Authentication Code for Data address, using key A, with address in
-  // LR and modifier in SP [Armv8.3].
-  void pacdasp();
-
-  // Pointer Authentication Code for Data address, using key A, with address in
-  // LR and a modifier of zero [Armv8.3].
-  void pacdaz();
-
   // Pointer Authentication Code for Data address, using key B [Armv8.3].
   void pacdb(const Register& xd, const Register& xn);
 
@@ -1108,18 +1096,6 @@
   // zero [Armv8.3].
   void pacdzb(const Register& xd);
 
-  // Pointer Authentication Code for Data address, using key B, with address in
-  // x17 and modifier in x16 [Armv8.3].
-  void pacdb1716();
-
-  // Pointer Authentication Code for Data address, using key B, with address in
-  // LR and modifier in SP [Armv8.3].
-  void pacdbsp();
-
-  // Pointer Authentication Code for Data address, using key B, with address in
-  // LR and a modifier of zero [Armv8.3].
-  void pacdbz();
-
   // Pointer Authentication Code, using Generic key [Armv8.3].
   void pacga(const Register& xd, const Register& xn, const Register& xm);
 
@@ -1167,36 +1143,12 @@
   // Authenticate Data address, using key A and a modifier of zero [Armv8.3].
   void autdza(const Register& xd);
 
-  // Authenticate Data address, using key A, with address in x17 and modifier in
-  // x16 [Armv8.3].
-  void autda1716();
-
-  // Authenticate Data address, using key A, with address in LR and modifier in
-  // SP [Armv8.3].
-  void autdasp();
-
-  // Authenticate Data address, using key A, with address in LR and a modifier
-  // of zero [Armv8.3].
-  void autdaz();
-
   // Authenticate Data address, using key B [Armv8.3].
   void autdb(const Register& xd, const Register& xn);
 
   // Authenticate Data address, using key B and a modifier of zero [Armv8.3].
   void autdzb(const Register& xd);
 
-  // Authenticate Data address, using key B, with address in x17 and modifier in
-  // x16 [Armv8.3].
-  void autdb1716();
-
-  // Authenticate Data address, using key B, with address in LR and modifier in
-  // SP [Armv8.3].
-  void autdbsp();
-
-  // Authenticate Data address, using key B, with address in LR and a modifier
-  // of zero [Armv8.3].
-  void autdbz();
-
   // Strip Pointer Authentication Code of Data address [Armv8.3].
   void xpacd(const Register& xd);
 
@@ -2112,6 +2064,22 @@
   // Prefetch from pc + imm19 << 2.
   void prfm(PrefetchOperation op, int64_t imm19);
 
+  // Prefetch memory (allowing unallocated hints).
+  void prfm(int op,
+            const MemOperand& addr,
+            LoadStoreScalingOption option = PreferScaledOffset);
+
+  // Prefetch memory (with unscaled offset, allowing unallocated hints).
+  void prfum(int op,
+             const MemOperand& addr,
+             LoadStoreScalingOption option = PreferUnscaledOffset);
+
+  // Prefetch memory in the literal pool (allowing unallocated hints).
+  void prfm(int op, RawLiteral* literal);
+
+  // Prefetch from pc + imm19 << 2 (allowing unallocated hints).
+  void prfm(int op, int64_t imm19);
+
   // Move instructions. The default shift of -1 indicates that the move
   // instruction will calculate an appropriate 16-bit immediate and left shift
   // that is equal to the 64-bit immediate argument. If an explicit left shift
@@ -3618,6 +3586,2240 @@
              const VRegister& vm,
              int rot);
 
+  // Scalable Vector Extensions.
+
+  // Absolute value (predicated).
+  void abs(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Add vectors (predicated).
+  void add(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Add vectors (unpredicated).
+  void add(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Add immediate (unpredicated).
+  void add(const ZRegister& zd, const ZRegister& zn, int imm8, int shift = -1);
+
+  // Add multiple of predicate register size to scalar register.
+  void addpl(const Register& xd, const Register& xn, int imm6);
+
+  // Add multiple of vector register size to scalar register.
+  void addvl(const Register& xd, const Register& xn, int imm6);
+
+  // Compute vector address.
+  void adr(const ZRegister& zd, const SVEMemOperand& addr);
+
+  // Bitwise AND predicates.
+  void and_(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Bitwise AND vectors (predicated).
+  void and_(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Bitwise AND with immediate (unpredicated).
+  void and_(const ZRegister& zd, const ZRegister& zn, uint64_t imm);
+
+  // Bitwise AND vectors (unpredicated).
+  void and_(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Bitwise AND predicates.
+  void ands(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Bitwise AND reduction to scalar.
+  void andv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Arithmetic shift right by immediate (predicated).
+  void asr(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           int shift);
+
+  // Arithmetic shift right by 64-bit wide elements (predicated).
+  void asr(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Arithmetic shift right by immediate (unpredicated).
+  void asr(const ZRegister& zd, const ZRegister& zn, int shift);
+
+  // Arithmetic shift right by 64-bit wide elements (unpredicated).
+  void asr(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Arithmetic shift right for divide by immediate (predicated).
+  void asrd(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            int shift);
+
+  // Reversed arithmetic shift right by vector (predicated).
+  void asrr(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Bitwise clear predicates.
+  void bic(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm);
+
+  // Bitwise clear vectors (predicated).
+  void bic(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Bitwise clear bits using immediate (unpredicated).
+  void bic(const ZRegister& zd, const ZRegister& zn, uint64_t imm);
+
+  // Bitwise clear vectors (unpredicated).
+  void bic(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Bitwise clear predicates.
+  void bics(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Break after first true condition.
+  void brka(const PRegisterWithLaneSize& pd,
+            const PRegister& pg,
+            const PRegisterWithLaneSize& pn);
+
+  // Break after first true condition.
+  void brkas(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn);
+
+  // Break before first true condition.
+  void brkb(const PRegisterWithLaneSize& pd,
+            const PRegister& pg,
+            const PRegisterWithLaneSize& pn);
+
+  // Break before first true condition.
+  void brkbs(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn);
+
+  // Propagate break to next partition.
+  void brkn(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Propagate break to next partition.
+  void brkns(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn,
+             const PRegisterWithLaneSize& pm);
+
+  // Break after first true condition, propagating from previous partition.
+  void brkpa(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn,
+             const PRegisterWithLaneSize& pm);
+
+  // Break after first true condition, propagating from previous partition.
+  void brkpas(const PRegisterWithLaneSize& pd,
+              const PRegisterZ& pg,
+              const PRegisterWithLaneSize& pn,
+              const PRegisterWithLaneSize& pm);
+
+  // Break before first true condition, propagating from previous partition.
+  void brkpb(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn,
+             const PRegisterWithLaneSize& pm);
+
+  // Break before first true condition, propagating from previous partition.
+  void brkpbs(const PRegisterWithLaneSize& pd,
+              const PRegisterZ& pg,
+              const PRegisterWithLaneSize& pn,
+              const PRegisterWithLaneSize& pm);
+
+  // Conditionally extract element after last to general-purpose register.
+  void clasta(const Register& rd,
+              const PRegister& pg,
+              const Register& rn,
+              const ZRegister& zm);
+
+  // Conditionally extract element after last to SIMD&FP scalar register.
+  void clasta(const VRegister& vd,
+              const PRegister& pg,
+              const VRegister& vn,
+              const ZRegister& zm);
+
+  // Conditionally extract element after last to vector register.
+  void clasta(const ZRegister& zd,
+              const PRegister& pg,
+              const ZRegister& zn,
+              const ZRegister& zm);
+
+  // Conditionally extract last element to general-purpose register.
+  void clastb(const Register& rd,
+              const PRegister& pg,
+              const Register& rn,
+              const ZRegister& zm);
+
+  // Conditionally extract last element to SIMD&FP scalar register.
+  void clastb(const VRegister& vd,
+              const PRegister& pg,
+              const VRegister& vn,
+              const ZRegister& zm);
+
+  // Conditionally extract last element to vector register.
+  void clastb(const ZRegister& zd,
+              const PRegister& pg,
+              const ZRegister& zn,
+              const ZRegister& zm);
+
+  // Count leading sign bits (predicated).
+  void cls(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Count leading zero bits (predicated).
+  void clz(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  void cmp(Condition cond,
+           const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Compare vector to 64-bit wide elements.
+  void cmpeq(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Compare vector to immediate.
+  void cmpeq(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             int imm5);
+
+  // Compare vector to 64-bit wide elements.
+  void cmpge(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Compare vector to immediate.
+  void cmpge(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             int imm5);
+
+  // Compare vector to 64-bit wide elements.
+  void cmpgt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Compare vector to immediate.
+  void cmpgt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             int imm5);
+
+  // Compare vector to 64-bit wide elements.
+  void cmphi(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Compare vector to immediate.
+  void cmphi(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             unsigned imm7);
+
+  // Compare vector to 64-bit wide elements.
+  void cmphs(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Compare vector to immediate.
+  void cmphs(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             unsigned imm7);
+
+  // Compare vector to 64-bit wide elements.
+  void cmple(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Compare vector to immediate.
+  void cmple(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             int imm5);
+
+  // Compare vector to 64-bit wide elements.
+  void cmplo(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Compare vector to immediate.
+  void cmplo(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             unsigned imm7);
+
+  // Compare vector to 64-bit wide elements.
+  void cmpls(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Compare vector to immediate.
+  void cmpls(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             unsigned imm7);
+
+  // Compare vector to 64-bit wide elements.
+  void cmplt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Compare vector to immediate.
+  void cmplt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             int imm5);
+
+  // Compare vector to 64-bit wide elements.
+  void cmpne(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Compare vector to immediate.
+  void cmpne(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             int imm5);
+
+  // Logically invert boolean condition in vector (predicated).
+  void cnot(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Count non-zero bits (predicated).
+  void cnt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Set scalar to multiple of predicate constraint element count.
+  void cntb(const Register& rd, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Set scalar to multiple of predicate constraint element count.
+  void cntd(const Register& rd, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Set scalar to multiple of predicate constraint element count.
+  void cnth(const Register& rd, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Set scalar to active predicate element count.
+  void cntp(const Register& xd,
+            const PRegister& pg,
+            const PRegisterWithLaneSize& pn);
+
+  // Set scalar to multiple of predicate constraint element count.
+  void cntw(const Register& rd, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Shuffle active elements of vector to the right and fill with zero.
+  void compact(const ZRegister& zd, const PRegister& pg, const ZRegister& zn);
+
+  // Copy signed integer immediate to vector elements (predicated).
+  void cpy(const ZRegister& zd, const PRegister& pg, int imm8, int shift = -1);
+
+  // Copy general-purpose register to vector elements (predicated).
+  void cpy(const ZRegister& zd, const PRegisterM& pg, const Register& rn);
+
+  // Copy SIMD&FP scalar register to vector elements (predicated).
+  void cpy(const ZRegister& zd, const PRegisterM& pg, const VRegister& vn);
+
+  // Compare and terminate loop.
+  void ctermeq(const Register& rn, const Register& rm);
+
+  // Compare and terminate loop.
+  void ctermne(const Register& rn, const Register& rm);
+
+  // Decrement scalar by multiple of predicate constraint element count.
+  void decb(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Decrement scalar by multiple of predicate constraint element count.
+  void decd(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Decrement vector by multiple of predicate constraint element count.
+  void decd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Decrement scalar by multiple of predicate constraint element count.
+  void dech(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Decrement vector by multiple of predicate constraint element count.
+  void dech(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Decrement scalar by active predicate element count.
+  void decp(const Register& rdn, const PRegisterWithLaneSize& pg);
+
+  // Decrement vector by active predicate element count.
+  void decp(const ZRegister& zdn, const PRegister& pg);
+
+  // Decrement scalar by multiple of predicate constraint element count.
+  void decw(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Decrement vector by multiple of predicate constraint element count.
+  void decw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Broadcast general-purpose register to vector elements (unpredicated).
+  void dup(const ZRegister& zd, const Register& xn);
+
+  // Broadcast indexed element to vector (unpredicated).
+  void dup(const ZRegister& zd, const ZRegister& zn, unsigned index);
+
+  // As for movz/movk/movn, if the default shift of -1 is specified to dup, the
+  // assembler will pick an appropriate immediate and left shift that is
+  // equivalent to the immediate argument. If an explicit left shift is
+  // specified (0 or 8), the immediate must be a signed 8-bit integer.
+
+  // Broadcast signed immediate to vector elements (unpredicated).
+  void dup(const ZRegister& zd, int imm8, int shift = -1);
+
+  // Broadcast logical bitmask immediate to vector (unpredicated).
+  void dupm(const ZRegister& zd, uint64_t imm);
+
+  // Bitwise exclusive OR with inverted immediate (unpredicated).
+  void eon(const ZRegister& zd, const ZRegister& zn, uint64_t imm);
+
+  // Bitwise exclusive OR predicates.
+  void eor(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm);
+
+  // Bitwise exclusive OR vectors (predicated).
+  void eor(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Bitwise exclusive OR with immediate (unpredicated).
+  void eor(const ZRegister& zd, const ZRegister& zn, uint64_t imm);
+
+  // Bitwise exclusive OR vectors (unpredicated).
+  void eor(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Bitwise exclusive OR predicates.
+  void eors(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Bitwise XOR reduction to scalar.
+  void eorv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Extract vector from pair of vectors.
+  void ext(const ZRegister& zd,
+           const ZRegister& zn,
+           const ZRegister& zm,
+           unsigned offset);
+
+  // Floating-point absolute difference (predicated).
+  void fabd(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Floating-point absolute value (predicated).
+  void fabs(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point absolute compare vectors.
+  void facge(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Floating-point absolute compare vectors.
+  void facgt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Floating-point add immediate (predicated).
+  void fadd(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            double imm);
+
+  // Floating-point add vector (predicated).
+  void fadd(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Floating-point add vector (unpredicated).
+  void fadd(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Floating-point add strictly-ordered reduction, accumulating in scalar.
+  void fadda(const VRegister& vd,
+             const PRegister& pg,
+             const VRegister& vn,
+             const ZRegister& zm);
+
+  // Floating-point add recursive reduction to scalar.
+  void faddv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Floating-point complex add with rotate (predicated).
+  void fcadd(const ZRegister& zd,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm,
+             int rot);
+
+  // Floating-point compare vector with zero.
+  void fcmeq(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero);
+
+  // Floating-point compare vectors.
+  void fcmeq(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Floating-point compare vector with zero.
+  void fcmge(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero);
+
+  // Floating-point compare vectors.
+  void fcmge(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Floating-point compare vector with zero.
+  void fcmgt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero);
+
+  // Floating-point compare vectors.
+  void fcmgt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Floating-point complex multiply-add with rotate (predicated).
+  void fcmla(const ZRegister& zda,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm,
+             int rot);
+
+  // Floating-point complex multiply-add by indexed values with rotate.
+  void fcmla(const ZRegister& zda,
+             const ZRegister& zn,
+             const ZRegister& zm,
+             int index,
+             int rot);
+
+  // Floating-point compare vector with zero.
+  void fcmle(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero);
+
+  // Floating-point compare vector with zero.
+  void fcmlt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero);
+
+  // Floating-point compare vector with zero.
+  void fcmne(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero);
+
+  // Floating-point compare vectors.
+  void fcmne(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Floating-point compare vectors.
+  void fcmuo(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Copy floating-point immediate to vector elements (predicated).
+  void fcpy(const ZRegister& zd, const PRegisterM& pg, double imm);
+
+  // Copy half-precision floating-point immediate to vector elements
+  // (predicated).
+  void fcpy(const ZRegister& zd, const PRegisterM& pg, Float16 imm) {
+    fcpy(zd, pg, FPToDouble(imm, kIgnoreDefaultNaN));
+  }
+
+  // Floating-point convert precision (predicated).
+  void fcvt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point convert to signed integer, rounding toward zero
+  // (predicated).
+  void fcvtzs(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point convert to unsigned integer, rounding toward zero
+  // (predicated).
+  void fcvtzu(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point divide by vector (predicated).
+  void fdiv(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Floating-point reversed divide by vector (predicated).
+  void fdivr(const ZRegister& zd,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Broadcast floating-point immediate to vector elements.
+  void fdup(const ZRegister& zd, double imm);
+
+  // Broadcast half-precision floating-point immediate to vector elements.
+  void fdup(const ZRegister& zd, Float16 imm) {
+    fdup(zd, FPToDouble(imm, kIgnoreDefaultNaN));
+  }
+
+  // Floating-point exponential accelerator.
+  void fexpa(const ZRegister& zd, const ZRegister& zn);
+
+  // Floating-point fused multiply-add vectors (predicated), writing
+  // multiplicand [Zdn = Za + Zdn * Zm].
+  void fmad(const ZRegister& zdn,
+            const PRegisterM& pg,
+            const ZRegister& zm,
+            const ZRegister& za);
+
+  // Floating-point maximum with immediate (predicated).
+  void fmax(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            double imm);
+
+  // Floating-point maximum (predicated).
+  void fmax(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Floating-point maximum number with immediate (predicated).
+  void fmaxnm(const ZRegister& zd,
+              const PRegisterM& pg,
+              const ZRegister& zn,
+              double imm);
+
+  // Floating-point maximum number (predicated).
+  void fmaxnm(const ZRegister& zd,
+              const PRegisterM& pg,
+              const ZRegister& zn,
+              const ZRegister& zm);
+
+  // Floating-point maximum number recursive reduction to scalar.
+  void fmaxnmv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Floating-point maximum recursive reduction to scalar.
+  void fmaxv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Floating-point minimum with immediate (predicated).
+  void fmin(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            double imm);
+
+  // Floating-point minimum (predicated).
+  void fmin(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Floating-point minimum number with immediate (predicated).
+  void fminnm(const ZRegister& zd,
+              const PRegisterM& pg,
+              const ZRegister& zn,
+              double imm);
+
+  // Floating-point minimum number (predicated).
+  void fminnm(const ZRegister& zd,
+              const PRegisterM& pg,
+              const ZRegister& zn,
+              const ZRegister& zm);
+
+  // Floating-point minimum number recursive reduction to scalar.
+  void fminnmv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Floating-point minimum recursive reduction to scalar.
+  void fminv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Floating-point fused multiply-add vectors (predicated), writing addend
+  // [Zda = Zda + Zn * Zm].
+  void fmla(const ZRegister& zda,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Floating-point fused multiply-add by indexed elements
+  // (Zda = Zda + Zn * Zm[indexed]).
+  void fmla(const ZRegister& zda,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            int index);
+
+  // Floating-point fused multiply-subtract vectors (predicated), writing
+  // addend [Zda = Zda + -Zn * Zm].
+  void fmls(const ZRegister& zda,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Floating-point fused multiply-subtract by indexed elements
+  // (Zda = Zda + -Zn * Zm[indexed]).
+  void fmls(const ZRegister& zda,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            int index);
+
+  // Move 8-bit floating-point immediate to vector elements (unpredicated).
+  void fmov(const ZRegister& zd, double imm);
+
+  // Move 8-bit floating-point immediate to vector elements (predicated).
+  void fmov(const ZRegister& zd, const PRegisterM& pg, double imm);
+
+  // Floating-point fused multiply-subtract vectors (predicated), writing
+  // multiplicand [Zdn = Za + -Zdn * Zm].
+  void fmsb(const ZRegister& zdn,
+            const PRegisterM& pg,
+            const ZRegister& zm,
+            const ZRegister& za);
+
+  // Floating-point multiply by immediate (predicated).
+  void fmul(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            double imm);
+
+  // Floating-point multiply vectors (predicated).
+  void fmul(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Floating-point multiply by indexed elements.
+  void fmul(const ZRegister& zd,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            unsigned index);
+
+  // Floating-point multiply vectors (unpredicated).
+  void fmul(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Floating-point multiply-extended vectors (predicated).
+  void fmulx(const ZRegister& zd,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Floating-point negate (predicated).
+  void fneg(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point negated fused multiply-add vectors (predicated), writing
+  // multiplicand [Zdn = -Za + -Zdn * Zm].
+  void fnmad(const ZRegister& zdn,
+             const PRegisterM& pg,
+             const ZRegister& zm,
+             const ZRegister& za);
+
+  // Floating-point negated fused multiply-add vectors (predicated), writing
+  // addend [Zda = -Zda + -Zn * Zm].
+  void fnmla(const ZRegister& zda,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Floating-point negated fused multiply-subtract vectors (predicated),
+  // writing addend [Zda = -Zda + Zn * Zm].
+  void fnmls(const ZRegister& zda,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Floating-point negated fused multiply-subtract vectors (predicated),
+  // writing multiplicand [Zdn = -Za + Zdn * Zm].
+  void fnmsb(const ZRegister& zdn,
+             const PRegisterM& pg,
+             const ZRegister& zm,
+             const ZRegister& za);
+
+  // Floating-point reciprocal estimate (unpredicated).
+  void frecpe(const ZRegister& zd, const ZRegister& zn);
+
+  // Floating-point reciprocal step (unpredicated).
+  void frecps(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Floating-point reciprocal exponent (predicated).
+  void frecpx(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point round to integral value (predicated).
+  void frinta(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point round to integral value (predicated).
+  void frinti(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point round to integral value (predicated).
+  void frintm(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point round to integral value (predicated).
+  void frintn(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point round to integral value (predicated).
+  void frintp(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point round to integral value (predicated).
+  void frintx(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point round to integral value (predicated).
+  void frintz(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point reciprocal square root estimate (unpredicated).
+  void frsqrte(const ZRegister& zd, const ZRegister& zn);
+
+  // Floating-point reciprocal square root step (unpredicated).
+  void frsqrts(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Floating-point adjust exponent by vector (predicated).
+  void fscale(const ZRegister& zd,
+              const PRegisterM& pg,
+              const ZRegister& zn,
+              const ZRegister& zm);
+
+  // Floating-point square root (predicated).
+  void fsqrt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Floating-point subtract immediate (predicated).
+  void fsub(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            double imm);
+
+  // Floating-point subtract vectors (predicated).
+  void fsub(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Floating-point subtract vectors (unpredicated).
+  void fsub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Floating-point reversed subtract from immediate (predicated).
+  void fsubr(const ZRegister& zd,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             double imm);
+
+  // Floating-point reversed subtract vectors (predicated).
+  void fsubr(const ZRegister& zd,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Floating-point trigonometric multiply-add coefficient.
+  void ftmad(const ZRegister& zd,
+             const ZRegister& zn,
+             const ZRegister& zm,
+             int imm3);
+
+  // Floating-point trigonometric starting value.
+  void ftsmul(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Floating-point trigonometric select coefficient.
+  void ftssel(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Increment scalar by multiple of predicate constraint element count.
+  void incb(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Increment scalar by multiple of predicate constraint element count.
+  void incd(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Increment vector by multiple of predicate constraint element count.
+  void incd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Increment scalar by multiple of predicate constraint element count.
+  void inch(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Increment vector by multiple of predicate constraint element count.
+  void inch(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Increment scalar by active predicate element count.
+  void incp(const Register& rdn, const PRegisterWithLaneSize& pg);
+
+  // Increment vector by active predicate element count.
+  void incp(const ZRegister& zdn, const PRegister& pg);
+
+  // Increment scalar by multiple of predicate constraint element count.
+  void incw(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Increment vector by multiple of predicate constraint element count.
+  void incw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Create index starting from and incremented by immediate.
+  void index(const ZRegister& zd, int start, int step);
+
+  // Create index starting from and incremented by general-purpose register.
+  void index(const ZRegister& zd, const Register& rn, const Register& rm);
+
+  // Create index starting from general-purpose register and incremented by
+  // immediate.
+  void index(const ZRegister& zd, const Register& rn, int imm5);
+
+  // Create index starting from immediate and incremented by general-purpose
+  // register.
+  void index(const ZRegister& zd, int imm5, const Register& rm);
+
+  // Insert general-purpose register in shifted vector.
+  void insr(const ZRegister& zdn, const Register& rm);
+
+  // Insert SIMD&FP scalar register in shifted vector.
+  void insr(const ZRegister& zdn, const VRegister& vm);
+
+  // Extract element after last to general-purpose register.
+  void lasta(const Register& rd, const PRegister& pg, const ZRegister& zn);
+
+  // Extract element after last to SIMD&FP scalar register.
+  void lasta(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Extract last element to general-purpose register.
+  void lastb(const Register& rd, const PRegister& pg, const ZRegister& zn);
+
+  // Extract last element to SIMD&FP scalar register.
+  void lastb(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Contiguous/gather load bytes to vector.
+  void ld1b(const ZRegister& zt,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous/gather load halfwords to vector.
+  void ld1h(const ZRegister& zt,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous/gather load words to vector.
+  void ld1w(const ZRegister& zt,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous/gather load doublewords to vector.
+  void ld1d(const ZRegister& zt,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // TODO: Merge other loads into the SVEMemOperand versions.
+
+  // Load and broadcast unsigned byte to vector.
+  void ld1rb(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr);
+
+  // Load and broadcast unsigned halfword to vector.
+  void ld1rh(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr);
+
+  // Load and broadcast unsigned word to vector.
+  void ld1rw(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr);
+
+  // Load and broadcast doubleword to vector.
+  void ld1rd(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr);
+
+  // Contiguous load and replicate sixteen bytes.
+  void ld1rqb(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load and replicate eight halfwords.
+  void ld1rqh(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load and replicate four words.
+  void ld1rqw(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load and replicate two doublewords.
+  void ld1rqd(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Load and broadcast signed byte to vector.
+  void ld1rsb(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Load and broadcast signed halfword to vector.
+  void ld1rsh(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Load and broadcast signed word to vector.
+  void ld1rsw(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous/gather load signed bytes to vector.
+  void ld1sb(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr);
+
+  // Contiguous/gather load signed halfwords to vector.
+  void ld1sh(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr);
+
+  // Contiguous/gather load signed words to vector.
+  void ld1sw(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr);
+
+  // TODO: Merge other loads into the SVEMemOperand versions.
+
+  // Contiguous load two-byte structures to two vectors.
+  void ld2b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load two-halfword structures to two vectors.
+  void ld2h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load two-word structures to two vectors.
+  void ld2w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load two-doubleword structures to two vectors.
+  void ld2d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load three-byte structures to three vectors.
+  void ld3b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load three-halfword structures to three vectors.
+  void ld3h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load three-word structures to three vectors.
+  void ld3w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load three-doubleword structures to three vectors.
+  void ld3d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load four-byte structures to four vectors.
+  void ld4b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load four-halfword structures to four vectors.
+  void ld4h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load four-word structures to four vectors.
+  void ld4w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load four-doubleword structures to four vectors.
+  void ld4d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous load first-fault unsigned bytes to vector.
+  void ldff1b(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load first-fault unsigned halfwords to vector.
+  void ldff1h(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load first-fault unsigned words to vector.
+  void ldff1w(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load first-fault doublewords to vector.
+  void ldff1d(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load first-fault signed bytes to vector.
+  void ldff1sb(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr);
+
+  // Contiguous load first-fault signed halfwords to vector.
+  void ldff1sh(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr);
+
+  // Contiguous load first-fault signed words to vector.
+  void ldff1sw(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr);
+
+  // Gather load first-fault unsigned bytes to vector.
+  void ldff1b(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const Register& xn,
+              const ZRegister& zm);
+
+  // Gather load first-fault unsigned bytes to vector (immediate index).
+  void ldff1b(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const ZRegister& zn,
+              int imm5);
+
+  // Gather load first-fault doublewords to vector (vector index).
+  void ldff1d(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const Register& xn,
+              const ZRegister& zm);
+
+  // Gather load first-fault doublewords to vector (immediate index).
+  void ldff1d(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const ZRegister& zn,
+              int imm5);
+
+  // Gather load first-fault unsigned halfwords to vector (vector index).
+  void ldff1h(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const Register& xn,
+              const ZRegister& zm);
+
+  // Gather load first-fault unsigned halfwords to vector (immediate index).
+  void ldff1h(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const ZRegister& zn,
+              int imm5);
+
+  // Gather load first-fault signed bytes to vector (vector index).
+  void ldff1sb(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const Register& xn,
+               const ZRegister& zm);
+
+  // Gather load first-fault signed bytes to vector (immediate index).
+  void ldff1sb(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const ZRegister& zn,
+               int imm5);
+
+  // Gather load first-fault signed halfwords to vector (vector index).
+  void ldff1sh(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const Register& xn,
+               const ZRegister& zm);
+
+  // Gather load first-fault signed halfwords to vector (immediate index).
+  void ldff1sh(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const ZRegister& zn,
+               int imm5);
+
+  // Gather load first-fault signed words to vector (vector index).
+  void ldff1sw(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const Register& xn,
+               const ZRegister& zm);
+
+  // Gather load first-fault signed words to vector (immediate index).
+  void ldff1sw(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const ZRegister& zn,
+               int imm5);
+
+  // Gather load first-fault unsigned words to vector (vector index).
+  void ldff1w(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const Register& xn,
+              const ZRegister& zm);
+
+  // Gather load first-fault unsigned words to vector (immediate index).
+  void ldff1w(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const ZRegister& zn,
+              int imm5);
+
+  // Contiguous load non-fault unsigned bytes to vector (immediate index).
+  void ldnf1b(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load non-fault doublewords to vector (immediate index).
+  void ldnf1d(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load non-fault unsigned halfwords to vector (immediate
+  // index).
+  void ldnf1h(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load non-fault signed bytes to vector (immediate index).
+  void ldnf1sb(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr);
+
+  // Contiguous load non-fault signed halfwords to vector (immediate index).
+  void ldnf1sh(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr);
+
+  // Contiguous load non-fault signed words to vector (immediate index).
+  void ldnf1sw(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr);
+
+  // Contiguous load non-fault unsigned words to vector (immediate index).
+  void ldnf1w(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load non-temporal bytes to vector.
+  void ldnt1b(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load non-temporal halfwords to vector.
+  void ldnt1h(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load non-temporal words to vector.
+  void ldnt1w(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous load non-temporal doublewords to vector.
+  void ldnt1d(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+
+  // Load SVE predicate/vector register.
+  void ldr(const CPURegister& rt, const SVEMemOperand& addr);
+
+  // Logical shift left by immediate (predicated).
+  void lsl(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           int shift);
+
+  // Logical shift left by 64-bit wide elements (predicated).
+  void lsl(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Logical shift left by immediate (unpredicated).
+  void lsl(const ZRegister& zd, const ZRegister& zn, int shift);
+
+  // Logical shift left by 64-bit wide elements (unpredicated).
+  void lsl(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Reversed logical shift left by vector (predicated).
+  void lslr(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Logical shift right by immediate (predicated).
+  void lsr(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           int shift);
+
+  // Logical shift right by 64-bit wide elements (predicated).
+  void lsr(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Logical shift right by immediate (unpredicated).
+  void lsr(const ZRegister& zd, const ZRegister& zn, int shift);
+
+  // Logical shift right by 64-bit wide elements (unpredicated).
+  void lsr(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Reversed logical shift right by vector (predicated).
+  void lsrr(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Bitwise invert predicate.
+  void not_(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn);
+
+  // Bitwise invert predicate, setting the condition flags.
+  void nots(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn);
+
+  // Multiply-add vectors (predicated), writing multiplicand
+  // [Zdn = Za + Zdn * Zm].
+  void mad(const ZRegister& zdn,
+           const PRegisterM& pg,
+           const ZRegister& zm,
+           const ZRegister& za);
+
+  // Multiply-add vectors (predicated), writing addend
+  // [Zda = Zda + Zn * Zm].
+  void mla(const ZRegister& zda,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Multiply-subtract vectors (predicated), writing addend
+  // [Zda = Zda - Zn * Zm].
+  void mls(const ZRegister& zda,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Move predicates (unpredicated)
+  void mov(const PRegister& pd, const PRegister& pn);
+
+  // Move predicates (merging)
+  void mov(const PRegisterWithLaneSize& pd,
+           const PRegisterM& pg,
+           const PRegisterWithLaneSize& pn);
+
+  // Move predicates (zeroing)
+  void mov(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn);
+
+  // Move general-purpose register to vector elements (unpredicated)
+  void mov(const ZRegister& zd, const Register& xn);
+
+  // Move SIMD&FP scalar register to vector elements (unpredicated)
+  void mov(const ZRegister& zd, const VRegister& vn);
+
+  // Move vector register (unpredicated)
+  void mov(const ZRegister& zd, const ZRegister& zn);
+
+  // Move indexed element to vector elements (unpredicated)
+  void mov(const ZRegister& zd, const ZRegister& zn, unsigned index);
+
+  // Move general-purpose register to vector elements (predicated)
+  void mov(const ZRegister& zd, const PRegisterM& pg, const Register& rn);
+
+  // Move SIMD&FP scalar register to vector elements (predicated)
+  void mov(const ZRegister& zd, const PRegisterM& pg, const VRegister& vn);
+
+  // Move vector elements (predicated)
+  void mov(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Move signed integer immediate to vector elements (predicated)
+  void mov(const ZRegister& zd, const PRegister& pg, int imm8, int shift = -1);
+
+  // Move signed immediate to vector elements (unpredicated).
+  void mov(const ZRegister& zd, int imm8, int shift);
+
+  // Move logical bitmask immediate to vector (unpredicated).
+  void mov(const ZRegister& zd, uint64_t imm);
+
+  // Move predicate (unpredicated), setting the condition flags
+  void movs(const PRegister& pd, const PRegister& pn);
+
+  // Move predicates (zeroing), setting the condition flags
+  void movs(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn);
+
+  // Move prefix (predicated).
+  void movprfx(const ZRegister& zd, const PRegister& pg, const ZRegister& zn);
+
+  // Move prefix (unpredicated).
+  void movprfx(const ZRegister& zd, const ZRegister& zn);
+
+  // Multiply-subtract vectors (predicated), writing multiplicand
+  // [Zdn = Za - Zdn * Zm].
+  void msb(const ZRegister& zdn,
+           const PRegisterM& pg,
+           const ZRegister& zm,
+           const ZRegister& za);
+
+  // Multiply vectors (predicated).
+  void mul(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Multiply by immediate (unpredicated).
+  void mul(const ZRegister& zd, const ZRegister& zn, int imm8);
+
+  // Bitwise NAND predicates.
+  void nand(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Bitwise NAND predicates.
+  void nands(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn,
+             const PRegisterWithLaneSize& pm);
+
+  // Negate (predicated).
+  void neg(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Bitwise NOR predicates.
+  void nor(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm);
+
+  // Bitwise NOR predicates.
+  void nors(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Bitwise invert vector (predicated).
+  void not_(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Bitwise OR inverted predicate.
+  void orn(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm);
+
+  // Bitwise OR inverted predicate.
+  void orns(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Bitwise OR with inverted immediate (unpredicated).
+  void orn(const ZRegister& zd, const ZRegister& zn, uint64_t imm);
+
+  // Bitwise OR predicate.
+  void orr(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm);
+
+  // Bitwise OR vectors (predicated).
+  void orr(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Bitwise OR with immediate (unpredicated).
+  void orr(const ZRegister& zd, const ZRegister& zn, uint64_t imm);
+
+  // Bitwise OR vectors (unpredicated).
+  void orr(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Bitwise OR predicate.
+  void orrs(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Bitwise OR reduction to scalar.
+  void orv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Set all predicate elements to false.
+  void pfalse(const PRegisterWithLaneSize& pd);
+
+  // Set the first active predicate element to true.
+  void pfirst(const PRegisterWithLaneSize& pd,
+              const PRegister& pg,
+              const PRegisterWithLaneSize& pn);
+
+  // Find next active predicate.
+  void pnext(const PRegisterWithLaneSize& pd,
+             const PRegister& pg,
+             const PRegisterWithLaneSize& pn);
+
+  // Prefetch bytes.
+  void prfb(PrefetchOperation prfop,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Prefetch halfwords.
+  void prfh(PrefetchOperation prfop,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Prefetch words.
+  void prfw(PrefetchOperation prfop,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Prefetch doublewords.
+  void prfd(PrefetchOperation prfop,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Set condition flags for predicate.
+  void ptest(const PRegister& pg, const PRegisterWithLaneSize& pn);
+
+  // Initialise predicate from named constraint.
+  void ptrue(const PRegisterWithLaneSize& pd, int pattern = SVE_ALL);
+
+  // Initialise predicate from named constraint.
+  void ptrues(const PRegisterWithLaneSize& pd, int pattern = SVE_ALL);
+
+  // Unpack and widen half of predicate.
+  void punpkhi(const PRegisterWithLaneSize& pd,
+               const PRegisterWithLaneSize& pn);
+
+  // Unpack and widen half of predicate.
+  void punpklo(const PRegisterWithLaneSize& pd,
+               const PRegisterWithLaneSize& pn);
+
+  // Reverse bits (predicated).
+  void rbit(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Read the first-fault register.
+  void rdffr(const PRegisterWithLaneSize& pd);
+
+  // Return predicate of succesfully loaded elements.
+  void rdffr(const PRegisterWithLaneSize& pd, const PRegisterZ& pg);
+
+  // Return predicate of succesfully loaded elements.
+  void rdffrs(const PRegisterWithLaneSize& pd, const PRegisterZ& pg);
+
+  // Read multiple of vector register size to scalar register.
+  void rdvl(const Register& xd, int imm6);
+
+  // Reverse all elements in a predicate.
+  void rev(const PRegisterWithLaneSize& pd, const PRegisterWithLaneSize& pn);
+
+  // Reverse all elements in a vector (unpredicated).
+  void rev(const ZRegister& zd, const ZRegister& zn);
+
+  // Reverse bytes / halfwords / words within elements (predicated).
+  void revb(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Reverse bytes / halfwords / words within elements (predicated).
+  void revh(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Reverse bytes / halfwords / words within elements (predicated).
+  void revw(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Signed absolute difference (predicated).
+  void sabd(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Signed add reduction to scalar.
+  void saddv(const VRegister& dd, const PRegister& pg, const ZRegister& zn);
+
+  // Signed integer convert to floating-point (predicated).
+  void scvtf(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Signed divide (predicated).
+  void sdiv(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Signed reversed divide (predicated).
+  void sdivr(const ZRegister& zd,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Signed dot product by indexed quadtuplet.
+  void sdot(const ZRegister& zda,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            int index);
+
+  // Signed dot product.
+  void sdot(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm);
+
+  // Conditionally select elements from two predicates.
+  void sel(const PRegisterWithLaneSize& pd,
+           const PRegister& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm);
+
+  // Conditionally select elements from two vectors.
+  void sel(const ZRegister& zd,
+           const PRegister& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Initialise the first-fault register to all true.
+  void setffr();
+
+  // Signed maximum vectors (predicated).
+  void smax(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Signed maximum with immediate (unpredicated).
+  void smax(const ZRegister& zd, const ZRegister& zn, int imm8);
+
+  // Signed maximum reduction to scalar.
+  void smaxv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Signed minimum vectors (predicated).
+  void smin(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Signed minimum with immediate (unpredicated).
+  void smin(const ZRegister& zd, const ZRegister& zn, int imm8);
+
+  // Signed minimum reduction to scalar.
+  void sminv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Signed multiply returning high half (predicated).
+  void smulh(const ZRegister& zd,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Splice two vectors under predicate control.
+  void splice(const ZRegister& zd,
+              const PRegister& pg,
+              const ZRegister& zn,
+              const ZRegister& zm);
+
+  // Signed saturating add vectors (unpredicated).
+  void sqadd(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Signed saturating add immediate (unpredicated).
+  void sqadd(const ZRegister& zd,
+             const ZRegister& zn,
+             int imm8,
+             int shift = -1);
+
+  // Signed saturating decrement scalar by multiple of 8-bit predicate
+  // constraint element count.
+  void sqdecb(const Register& xd,
+              const Register& wn,
+              int pattern,
+              int multiplier);
+
+  // Signed saturating decrement scalar by multiple of 8-bit predicate
+  // constraint element count.
+  void sqdecb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating decrement scalar by multiple of 64-bit predicate
+  // constraint element count.
+  void sqdecd(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1);
+
+  // Signed saturating decrement scalar by multiple of 64-bit predicate
+  // constraint element count.
+  void sqdecd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating decrement vector by multiple of 64-bit predicate
+  // constraint element count.
+  void sqdecd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating decrement scalar by multiple of 16-bit predicate
+  // constraint element count.
+  void sqdech(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1);
+
+  // Signed saturating decrement scalar by multiple of 16-bit predicate
+  // constraint element count.
+  void sqdech(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating decrement vector by multiple of 16-bit predicate
+  // constraint element count.
+  void sqdech(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating decrement scalar by active predicate element count.
+  void sqdecp(const Register& xd,
+              const PRegisterWithLaneSize& pg,
+              const Register& wn);
+
+  // Signed saturating decrement scalar by active predicate element count.
+  void sqdecp(const Register& xdn, const PRegisterWithLaneSize& pg);
+
+  // Signed saturating decrement vector by active predicate element count.
+  void sqdecp(const ZRegister& zdn, const PRegister& pg);
+
+  // Signed saturating decrement scalar by multiple of 32-bit predicate
+  // constraint element count.
+  void sqdecw(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1);
+
+  // Signed saturating decrement scalar by multiple of 32-bit predicate
+  // constraint element count.
+  void sqdecw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating decrement vector by multiple of 32-bit predicate
+  // constraint element count.
+  void sqdecw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating increment scalar by multiple of 8-bit predicate
+  // constraint element count.
+  void sqincb(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1);
+
+  // Signed saturating increment scalar by multiple of 8-bit predicate
+  // constraint element count.
+  void sqincb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating increment scalar by multiple of 64-bit predicate
+  // constraint element count.
+  void sqincd(const Register& xd,
+              const Register& wn,
+              int pattern,
+              int multiplier);
+
+  // Signed saturating increment scalar by multiple of 64-bit predicate
+  // constraint element count.
+  void sqincd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating increment vector by multiple of 64-bit predicate
+  // constraint element count.
+  void sqincd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating increment scalar by multiple of 16-bit predicate
+  // constraint element count.
+  void sqinch(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1);
+
+  // Signed saturating increment scalar by multiple of 16-bit predicate
+  // constraint element count.
+  void sqinch(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating increment vector by multiple of 16-bit predicate
+  // constraint element count.
+  void sqinch(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating increment scalar by active predicate element count.
+  void sqincp(const Register& xd,
+              const PRegisterWithLaneSize& pg,
+              const Register& wn);
+
+  // Signed saturating increment scalar by active predicate element count.
+  void sqincp(const Register& xdn, const PRegisterWithLaneSize& pg);
+
+  // Signed saturating increment vector by active predicate element count.
+  void sqincp(const ZRegister& zdn, const PRegister& pg);
+
+  // Signed saturating increment scalar by multiple of 32-bit predicate
+  // constraint element count.
+  void sqincw(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1);
+
+  // Signed saturating increment scalar by multiple of 32-bit predicate
+  // constraint element count.
+  void sqincw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating increment vector by multiple of 32-bit predicate
+  // constraint element count.
+  void sqincw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Signed saturating subtract vectors (unpredicated).
+  void sqsub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Signed saturating subtract immediate (unpredicated).
+  void sqsub(const ZRegister& zd,
+             const ZRegister& zn,
+             int imm8,
+             int shift = -1);
+
+  // Contiguous/scatter store bytes from vector.
+  void st1b(const ZRegister& zt,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous/scatter store halfwords from vector.
+  void st1h(const ZRegister& zt,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous/scatter store words from vector.
+  void st1w(const ZRegister& zt,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous/scatter store doublewords from vector.
+  void st1d(const ZRegister& zt,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store two-byte structures from two vectors.
+  void st2b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store two-halfword structures from two vectors.
+  void st2h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store two-word structures from two vectors.
+  void st2w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store two-doubleword structures from two vectors,
+  void st2d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store three-byte structures from three vectors.
+  void st3b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store three-halfword structures from three vectors.
+  void st3h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store three-word structures from three vectors.
+  void st3w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store three-doubleword structures from three vectors.
+  void st3d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store four-byte structures from four vectors.
+  void st4b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store four-halfword structures from four vectors.
+  void st4h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store four-word structures from four vectors.
+  void st4w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store four-doubleword structures from four vectors.
+  void st4d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+
+  // Contiguous store non-temporal bytes from vector.
+  void stnt1b(const ZRegister& zt,
+              const PRegister& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous store non-temporal halfwords from vector.
+  void stnt1h(const ZRegister& zt,
+              const PRegister& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous store non-temporal words from vector.
+  void stnt1w(const ZRegister& zt,
+              const PRegister& pg,
+              const SVEMemOperand& addr);
+
+  // Contiguous store non-temporal doublewords from vector.
+  void stnt1d(const ZRegister& zt,
+              const PRegister& pg,
+              const SVEMemOperand& addr);
+
+  // Store SVE predicate/vector register.
+  void str(const CPURegister& rt, const SVEMemOperand& addr);
+
+  // Subtract vectors (predicated).
+  void sub(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+
+  // Subtract vectors (unpredicated).
+  void sub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Subtract immediate (unpredicated).
+  void sub(const ZRegister& zd, const ZRegister& zn, int imm8, int shift = -1);
+
+  // Reversed subtract vectors (predicated).
+  void subr(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Reversed subtract from immediate (unpredicated).
+  void subr(const ZRegister& zd, const ZRegister& zn, int imm8, int shift = -1);
+
+  // Signed unpack and extend half of vector.
+  void sunpkhi(const ZRegister& zd, const ZRegister& zn);
+
+  // Signed unpack and extend half of vector.
+  void sunpklo(const ZRegister& zd, const ZRegister& zn);
+
+  // Signed byte extend (predicated).
+  void sxtb(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Signed halfword extend (predicated).
+  void sxth(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Signed word extend (predicated).
+  void sxtw(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Programmable table lookup/permute using vector of indices into a
+  // vector.
+  void tbl(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Interleave even or odd elements from two predicates.
+  void trn1(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Interleave even or odd elements from two vectors.
+  void trn1(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Interleave even or odd elements from two predicates.
+  void trn2(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Interleave even or odd elements from two vectors.
+  void trn2(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Unsigned absolute difference (predicated).
+  void uabd(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Unsigned add reduction to scalar.
+  void uaddv(const VRegister& dd, const PRegister& pg, const ZRegister& zn);
+
+  // Unsigned integer convert to floating-point (predicated).
+  void ucvtf(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Unsigned divide (predicated).
+  void udiv(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Unsigned reversed divide (predicated).
+  void udivr(const ZRegister& zd,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Unsigned dot product by indexed quadtuplet.
+  void udot(const ZRegister& zda,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            int index);
+
+  // Unsigned dot product.
+  void udot(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm);
+
+  // Unsigned maximum vectors (predicated).
+  void umax(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Unsigned maximum with immediate (unpredicated).
+  void umax(const ZRegister& zd, const ZRegister& zn, int imm8);
+
+  // Unsigned maximum reduction to scalar.
+  void umaxv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Unsigned minimum vectors (predicated).
+  void umin(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+
+  // Unsigned minimum with immediate (unpredicated).
+  void umin(const ZRegister& zd, const ZRegister& zn, int imm8);
+
+  // Unsigned minimum reduction to scalar.
+  void uminv(const VRegister& vd, const PRegister& pg, const ZRegister& zn);
+
+  // Unsigned multiply returning high half (predicated).
+  void umulh(const ZRegister& zd,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm);
+
+  // Unsigned saturating add vectors (unpredicated).
+  void uqadd(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Unsigned saturating add immediate (unpredicated).
+  void uqadd(const ZRegister& zd,
+             const ZRegister& zn,
+             int imm8,
+             int shift = -1);
+
+  // Unsigned saturating decrement scalar by multiple of 8-bit predicate
+  // constraint element count.
+  void uqdecb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating decrement scalar by multiple of 64-bit predicate
+  // constraint element count.
+  void uqdecd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating decrement vector by multiple of 64-bit predicate
+  // constraint element count.
+  void uqdecd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating decrement scalar by multiple of 16-bit predicate
+  // constraint element count.
+  void uqdech(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating decrement vector by multiple of 16-bit predicate
+  // constraint element count.
+  void uqdech(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating decrement scalar by active predicate element count.
+  void uqdecp(const Register& rdn, const PRegisterWithLaneSize& pg);
+
+  // Unsigned saturating decrement vector by active predicate element count.
+  void uqdecp(const ZRegister& zdn, const PRegister& pg);
+
+  // Unsigned saturating decrement scalar by multiple of 32-bit predicate
+  // constraint element count.
+  void uqdecw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating decrement vector by multiple of 32-bit predicate
+  // constraint element count.
+  void uqdecw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating increment scalar by multiple of 8-bit predicate
+  // constraint element count.
+  void uqincb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating increment scalar by multiple of 64-bit predicate
+  // constraint element count.
+  void uqincd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating increment vector by multiple of 64-bit predicate
+  // constraint element count.
+  void uqincd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating increment scalar by multiple of 16-bit predicate
+  // constraint element count.
+  void uqinch(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating increment vector by multiple of 16-bit predicate
+  // constraint element count.
+  void uqinch(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating increment scalar by active predicate element count.
+  void uqincp(const Register& rdn, const PRegisterWithLaneSize& pg);
+
+  // Unsigned saturating increment vector by active predicate element count.
+  void uqincp(const ZRegister& zdn, const PRegister& pg);
+
+  // Unsigned saturating increment scalar by multiple of 32-bit predicate
+  // constraint element count.
+  void uqincw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating increment vector by multiple of 32-bit predicate
+  // constraint element count.
+  void uqincw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1);
+
+  // Unsigned saturating subtract vectors (unpredicated).
+  void uqsub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Unsigned saturating subtract immediate (unpredicated).
+  void uqsub(const ZRegister& zd,
+             const ZRegister& zn,
+             int imm8,
+             int shift = -1);
+
+  // Unsigned unpack and extend half of vector.
+  void uunpkhi(const ZRegister& zd, const ZRegister& zn);
+
+  // Unsigned unpack and extend half of vector.
+  void uunpklo(const ZRegister& zd, const ZRegister& zn);
+
+  // Unsigned byte extend (predicated).
+  void uxtb(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Unsigned halfword extend (predicated).
+  void uxth(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Unsigned word extend (predicated).
+  void uxtw(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn);
+
+  // Concatenate even or odd elements from two predicates.
+  void uzp1(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Concatenate even or odd elements from two vectors.
+  void uzp1(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Concatenate even or odd elements from two predicates.
+  void uzp2(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Concatenate even or odd elements from two vectors.
+  void uzp2(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // While incrementing signed scalar less than or equal to scalar.
+  void whilele(const PRegisterWithLaneSize& pd,
+               const Register& rn,
+               const Register& rm);
+
+  // While incrementing unsigned scalar lower than scalar.
+  void whilelo(const PRegisterWithLaneSize& pd,
+               const Register& rn,
+               const Register& rm);
+
+  // While incrementing unsigned scalar lower or same as scalar.
+  void whilels(const PRegisterWithLaneSize& pd,
+               const Register& rn,
+               const Register& rm);
+
+  // While incrementing signed scalar less than scalar.
+  void whilelt(const PRegisterWithLaneSize& pd,
+               const Register& rn,
+               const Register& rm);
+
+  // Write the first-fault register.
+  void wrffr(const PRegisterWithLaneSize& pn);
+
+  // Interleave elements from two half predicates.
+  void zip1(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Interleave elements from two half vectors.
+  void zip1(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
+  // Interleave elements from two half predicates.
+  void zip2(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm);
+
+  // Interleave elements from two half vectors.
+  void zip2(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm);
+
   // Emit generic instructions.
 
   // Emit raw instructions into the instruction stream.
@@ -3650,20 +5852,20 @@
   // Code generation helpers.
 
   // Register encoding.
-  static Instr Rd(CPURegister rd) {
-    VIXL_ASSERT(rd.GetCode() != kSPRegInternalCode);
-    return rd.GetCode() << Rd_offset;
+  template <int hibit, int lobit>
+  static Instr Rx(CPURegister rx) {
+    VIXL_ASSERT(rx.GetCode() != kSPRegInternalCode);
+    return ImmUnsignedField<hibit, lobit>(rx.GetCode());
   }
 
-  static Instr Rn(CPURegister rn) {
-    VIXL_ASSERT(rn.GetCode() != kSPRegInternalCode);
-    return rn.GetCode() << Rn_offset;
+#define CPU_REGISTER_FIELD_NAMES(V) V(d) V(n) V(m) V(a) V(t) V(t2) V(s)
+#define REGISTER_ENCODER(N)                                           \
+  static Instr R##N(CPURegister r##N) {                               \
+    return Rx<R##N##_offset + R##N##_width - 1, R##N##_offset>(r##N); \
   }
-
-  static Instr Rm(CPURegister rm) {
-    VIXL_ASSERT(rm.GetCode() != kSPRegInternalCode);
-    return rm.GetCode() << Rm_offset;
-  }
+  CPU_REGISTER_FIELD_NAMES(REGISTER_ENCODER)
+#undef REGISTER_ENCODER
+#undef CPU_REGISTER_FIELD_NAMES
 
   static Instr RmNot31(CPURegister rm) {
     VIXL_ASSERT(rm.GetCode() != kSPRegInternalCode);
@@ -3671,26 +5873,6 @@
     return Rm(rm);
   }
 
-  static Instr Ra(CPURegister ra) {
-    VIXL_ASSERT(ra.GetCode() != kSPRegInternalCode);
-    return ra.GetCode() << Ra_offset;
-  }
-
-  static Instr Rt(CPURegister rt) {
-    VIXL_ASSERT(rt.GetCode() != kSPRegInternalCode);
-    return rt.GetCode() << Rt_offset;
-  }
-
-  static Instr Rt2(CPURegister rt2) {
-    VIXL_ASSERT(rt2.GetCode() != kSPRegInternalCode);
-    return rt2.GetCode() << Rt2_offset;
-  }
-
-  static Instr Rs(CPURegister rs) {
-    VIXL_ASSERT(rs.GetCode() != kSPRegInternalCode);
-    return rs.GetCode() << Rs_offset;
-  }
-
   // These encoding functions allow the stack pointer to be encoded, and
   // disallow the zero register.
   static Instr RdSP(Register rd) {
@@ -3708,6 +5890,33 @@
     return (rm.GetCode() & kRegCodeMask) << Rm_offset;
   }
 
+  static Instr Pd(PRegister pd) {
+    return Rx<Pd_offset + Pd_width - 1, Pd_offset>(pd);
+  }
+
+  static Instr Pm(PRegister pm) {
+    return Rx<Pm_offset + Pm_width - 1, Pm_offset>(pm);
+  }
+
+  static Instr Pn(PRegister pn) {
+    return Rx<Pn_offset + Pn_width - 1, Pn_offset>(pn);
+  }
+
+  static Instr PgLow8(PRegister pg) {
+    // Governing predicates can be merging, zeroing, or unqualified. They should
+    // never have a lane size.
+    VIXL_ASSERT(!pg.HasLaneSize());
+    return Rx<PgLow8_offset + PgLow8_width - 1, PgLow8_offset>(pg);
+  }
+
+  template <int hibit, int lobit>
+  static Instr Pg(PRegister pg) {
+    // Governing predicates can be merging, zeroing, or unqualified. They should
+    // never have a lane size.
+    VIXL_ASSERT(!pg.HasLaneSize());
+    return Rx<hibit, lobit>(pg);
+  }
+
   // Flags encoding.
   static Instr Flags(FlagsUpdate S) {
     if (S == SetFlags) {
@@ -3721,6 +5930,26 @@
 
   static Instr Cond(Condition cond) { return cond << Condition_offset; }
 
+  // Generic immediate encoding.
+  template <int hibit, int lobit>
+  static Instr ImmField(int64_t imm) {
+    VIXL_STATIC_ASSERT((hibit >= lobit) && (lobit >= 0));
+    VIXL_STATIC_ASSERT(hibit < (sizeof(Instr) * kBitsPerByte));
+    int fieldsize = hibit - lobit + 1;
+    VIXL_ASSERT(IsIntN(fieldsize, imm));
+    return static_cast<Instr>(TruncateToUintN(fieldsize, imm) << lobit);
+  }
+
+  // For unsigned immediate encoding.
+  // TODO: Handle signed and unsigned immediate in satisfactory way.
+  template <int hibit, int lobit>
+  static Instr ImmUnsignedField(uint64_t imm) {
+    VIXL_STATIC_ASSERT((hibit >= lobit) && (lobit >= 0));
+    VIXL_STATIC_ASSERT(hibit < (sizeof(Instr) * kBitsPerByte));
+    VIXL_ASSERT(IsUintN(hibit - lobit + 1, imm));
+    return static_cast<Instr>(imm << lobit);
+  }
+
   // PC-relative address encoding.
   static Instr ImmPCRelAddress(int64_t imm21) {
     VIXL_ASSERT(IsInt21(imm21));
@@ -3771,11 +6000,60 @@
     if (IsUint12(imm)) {  // No shift required.
       imm <<= ImmAddSub_offset;
     } else {
-      imm = ((imm >> 12) << ImmAddSub_offset) | (1 << ShiftAddSub_offset);
+      imm = ((imm >> 12) << ImmAddSub_offset) | (1 << ImmAddSubShift_offset);
     }
     return imm;
   }
 
+  static Instr SVEImmSetBits(unsigned imms, unsigned lane_size) {
+    VIXL_ASSERT(IsUint6(imms));
+    VIXL_ASSERT((lane_size == kDRegSize) || IsUint6(imms + 3));
+    USE(lane_size);
+    return imms << SVEImmSetBits_offset;
+  }
+
+  static Instr SVEImmRotate(unsigned immr, unsigned lane_size) {
+    VIXL_ASSERT(IsUintN(WhichPowerOf2(lane_size), immr));
+    USE(lane_size);
+    return immr << SVEImmRotate_offset;
+  }
+
+  static Instr SVEBitN(unsigned bitn) {
+    VIXL_ASSERT(IsUint1(bitn));
+    return bitn << SVEBitN_offset;
+  }
+
+  static Instr SVEDtype(unsigned msize_in_bytes_log2,
+                        unsigned esize_in_bytes_log2,
+                        bool is_signed,
+                        int dtype_h_lsb = 23,
+                        int dtype_l_lsb = 21) {
+    VIXL_ASSERT(msize_in_bytes_log2 <= kDRegSizeInBytesLog2);
+    VIXL_ASSERT(esize_in_bytes_log2 <= kDRegSizeInBytesLog2);
+    Instr dtype_h = msize_in_bytes_log2;
+    Instr dtype_l = esize_in_bytes_log2;
+    // Signed forms use the encodings where msize would be greater than esize.
+    if (is_signed) {
+      dtype_h = dtype_h ^ 0x3;
+      dtype_l = dtype_l ^ 0x3;
+    }
+    VIXL_ASSERT(IsUint2(dtype_h));
+    VIXL_ASSERT(IsUint2(dtype_l));
+    VIXL_ASSERT((dtype_h > dtype_l) == is_signed);
+
+    return (dtype_h << dtype_h_lsb) | (dtype_l << dtype_l_lsb);
+  }
+
+  static Instr SVEDtypeSplit(unsigned msize_in_bytes_log2,
+                             unsigned esize_in_bytes_log2,
+                             bool is_signed) {
+    return SVEDtype(msize_in_bytes_log2,
+                    esize_in_bytes_log2,
+                    is_signed,
+                    23,
+                    13);
+  }
+
   static Instr ImmS(unsigned imms, unsigned reg_size) {
     VIXL_ASSERT(((reg_size == kXRegSize) && IsUint6(imms)) ||
                 ((reg_size == kWRegSize) && IsUint5(imms)));
@@ -3856,9 +6134,9 @@
     return TruncateToUint9(imm9) << ImmLS_offset;
   }
 
-  static Instr ImmLSPair(int64_t imm7, unsigned access_size) {
-    VIXL_ASSERT(IsMultiple(imm7, 1 << access_size));
-    int64_t scaled_imm7 = imm7 / (1 << access_size);
+  static Instr ImmLSPair(int64_t imm7, unsigned access_size_in_bytes_log2) {
+    VIXL_ASSERT(IsMultiple(imm7, 1 << access_size_in_bytes_log2));
+    int64_t scaled_imm7 = imm7 / (1 << access_size_in_bytes_log2);
     VIXL_ASSERT(IsInt7(scaled_imm7));
     return TruncateToUint7(scaled_imm7) << ImmLSPair_offset;
   }
@@ -3990,8 +6268,8 @@
                            unsigned* n = NULL,
                            unsigned* imm_s = NULL,
                            unsigned* imm_r = NULL);
-  static bool IsImmLSPair(int64_t offset, unsigned access_size);
-  static bool IsImmLSScaled(int64_t offset, unsigned access_size);
+  static bool IsImmLSPair(int64_t offset, unsigned access_size_in_bytes_log2);
+  static bool IsImmLSScaled(int64_t offset, unsigned access_size_in_bytes_log2);
   static bool IsImmLSUnscaled(int64_t offset);
   static bool IsImmMovn(uint64_t imm, unsigned reg_size);
   static bool IsImmMovz(uint64_t imm, unsigned reg_size);
@@ -4126,6 +6404,30 @@
     }
   }
 
+  template <typename T>
+  static Instr SVESize(const T& rd) {
+    VIXL_ASSERT(rd.IsZRegister() || rd.IsPRegister());
+    VIXL_ASSERT(rd.HasLaneSize());
+    switch (rd.GetLaneSizeInBytes()) {
+      case 1:
+        return SVE_B;
+      case 2:
+        return SVE_H;
+      case 4:
+        return SVE_S;
+      case 8:
+        return SVE_D;
+      default:
+        return 0xffffffff;
+    }
+  }
+
+  static Instr ImmSVEPredicateConstraint(int pattern) {
+    VIXL_ASSERT(IsUint5(pattern));
+    return (pattern << ImmSVEPredicateConstraint_offset) &
+           ImmSVEPredicateConstraint_mask;
+  }
+
   static Instr ImmNEONHLM(int index, int num_bits) {
     int h, l, m;
     if (num_bits == 3) {
@@ -4277,9 +6579,93 @@
                              const MemOperand& addr,
                              Instr op);
 
+  // Set `is_load` to false in default as it's only used in the
+  // scalar-plus-vector form.
+  Instr SVEMemOperandHelper(unsigned msize_in_bytes_log2,
+                            int num_regs,
+                            const SVEMemOperand& addr,
+                            bool is_load = false);
+
+  // E.g. st1b, st1h, ...
+  // This supports both contiguous and scatter stores.
+  void SVESt1Helper(unsigned msize_in_bytes_log2,
+                    const ZRegister& zt,
+                    const PRegister& pg,
+                    const SVEMemOperand& addr);
+
+  // E.g. ld1b, ld1h, ...
+  // This supports both contiguous and gather loads.
+  void SVELd1Helper(unsigned msize_in_bytes_log2,
+                    const ZRegister& zt,
+                    const PRegisterZ& pg,
+                    const SVEMemOperand& addr,
+                    bool is_signed);
+
+  // E.g. ld1rb, ld1rh, ...
+  void SVELd1BroadcastHelper(unsigned msize_in_bytes_log2,
+                             const ZRegister& zt,
+                             const PRegisterZ& pg,
+                             const SVEMemOperand& addr,
+                             bool is_signed);
+
+  // E.g. ldff1b, ldff1h, ...
+  // This supports both contiguous and gather loads.
+  void SVELdff1Helper(unsigned msize_in_bytes_log2,
+                      const ZRegister& zt,
+                      const PRegisterZ& pg,
+                      const SVEMemOperand& addr,
+                      bool is_signed);
+
+  // Common code for the helpers above.
+  void SVELdSt1Helper(unsigned msize_in_bytes_log2,
+                      const ZRegister& zt,
+                      const PRegister& pg,
+                      const SVEMemOperand& addr,
+                      bool is_signed,
+                      Instr op);
+
+  // Common code for the helpers above.
+  void SVEScatterGatherHelper(unsigned msize_in_bytes_log2,
+                              const ZRegister& zt,
+                              const PRegister& pg,
+                              const SVEMemOperand& addr,
+                              bool is_load,
+                              bool is_signed,
+                              bool is_first_fault);
+
+  // E.g. st2b, st3h, ...
+  void SVESt234Helper(int num_regs,
+                      const ZRegister& zt1,
+                      const PRegister& pg,
+                      const SVEMemOperand& addr);
+
+  // E.g. ld2b, ld3h, ...
+  void SVELd234Helper(int num_regs,
+                      const ZRegister& zt1,
+                      const PRegisterZ& pg,
+                      const SVEMemOperand& addr);
+
+  // Common code for the helpers above.
+  void SVELdSt234Helper(int num_regs,
+                        const ZRegister& zt1,
+                        const PRegister& pg,
+                        const SVEMemOperand& addr,
+                        Instr op);
+
+  // E.g. ld1qb, ld1qh, ldnt1b, ...
+  void SVELd1St1ScaImmHelper(const ZRegister& zt,
+                             const PRegister& pg,
+                             const SVEMemOperand& addr,
+                             Instr regoffset_op,
+                             Instr immoffset_op,
+                             int imm_divisor = 1);
+
   void Prefetch(PrefetchOperation op,
                 const MemOperand& addr,
                 LoadStoreScalingOption option = PreferScaledOffset);
+  void Prefetch(int op,
+                const MemOperand& addr,
+                LoadStoreScalingOption option = PreferScaledOffset);
 
   // TODO(all): The third parameter should be passed by reference but gcc 4.8.2
   // reports a bogus uninitialised warning then.
@@ -4287,6 +6673,9 @@
                const Register& rn,
                const Operand operand,
                LogicalOp op);
+
+  void SVELogicalImmediate(const ZRegister& zd, uint64_t imm, Instr op);
+
   void LogicalImmediate(const Register& rd,
                         const Register& rn,
                         unsigned n,
@@ -4306,6 +6695,92 @@
                        FlagsUpdate S,
                        AddSubWithCarryOp op);
 
+  void CompareVectors(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm,
+                      SVEIntCompareVectorsOp op);
+
+  void CompareVectors(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      int imm,
+                      SVEIntCompareSignedImmOp op);
+
+  void CompareVectors(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      unsigned imm,
+                      SVEIntCompareUnsignedImmOp op);
+
+  void SVEIntAddSubtractImmUnpredicatedHelper(
+      SVEIntAddSubtractImm_UnpredicatedOp op,
+      const ZRegister& zd,
+      int imm8,
+      int shift);
+
+  void SVEElementCountToRegisterHelper(Instr op,
+                                       const Register& rd,
+                                       int pattern,
+                                       int multiplier);
+
+  Instr EncodeSVEShiftImmediate(Shift shift_op,
+                                int shift,
+                                int lane_size_in_bits);
+
+  void SVEBitwiseShiftImmediate(const ZRegister& zd,
+                                const ZRegister& zn,
+                                Instr encoded_imm,
+                                SVEBitwiseShiftUnpredicatedOp op);
+
+  void SVEBitwiseShiftImmediatePred(const ZRegister& zdn,
+                                    const PRegisterM& pg,
+                                    Instr encoded_imm,
+                                    SVEBitwiseShiftByImm_PredicatedOp op);
+
+  Instr SVEFPMulIndexHelper(unsigned lane_size_in_bytes_log2,
+                            const ZRegister& zm,
+                            int index,
+                            Instr op_h,
+                            Instr op_s,
+                            Instr op_d);
+
+
+  void SVEContiguousPrefetchScalarPlusScalarHelper(PrefetchOperation prfop,
+                                                   const PRegister& pg,
+                                                   const SVEMemOperand& addr,
+                                                   int prefetch_size);
+
+  void SVEContiguousPrefetchScalarPlusVectorHelper(PrefetchOperation prfop,
+                                                   const PRegister& pg,
+                                                   const SVEMemOperand& addr,
+                                                   int prefetch_size);
+
+  void SVEGatherPrefetchVectorPlusImmediateHelper(PrefetchOperation prfop,
+                                                  const PRegister& pg,
+                                                  const SVEMemOperand& addr,
+                                                  int prefetch_size);
+
+  void SVEGatherPrefetchScalarPlusImmediateHelper(PrefetchOperation prfop,
+                                                  const PRegister& pg,
+                                                  const SVEMemOperand& addr,
+                                                  int prefetch_size);
+
+  void SVEPrefetchHelper(PrefetchOperation prfop,
+                         const PRegister& pg,
+                         const SVEMemOperand& addr,
+                         int prefetch_size);
+
+  static Instr SVEImmPrefetchOperation(PrefetchOperation prfop) {
+    // SVE only supports PLD and PST, not PLI.
+    VIXL_ASSERT(((prfop >= PLDL1KEEP) && (prfop <= PLDL3STRM)) ||
+                ((prfop >= PSTL1KEEP) && (prfop <= PSTL3STRM)));
+    // Check that we can simply map bits.
+    VIXL_STATIC_ASSERT(PLDL1KEEP == 0b00000);
+    VIXL_STATIC_ASSERT(PSTL1KEEP == 0b10000);
+    // Remaining operations map directly.
+    return ((prfop & 0b10000) >> 1) | (prfop & 0b00111);
+  }
 
   // Functions for emulating operands not directly supported by the instruction
   // set.
@@ -4507,12 +6982,16 @@
                            NEONShiftImmediateOp op);
   void NEONXtn(const VRegister& vd, const VRegister& vn, NEON2RegMiscOp vop);
 
+  // If *shift is -1, find values of *imm8 and *shift such that IsInt8(*imm8)
+  // and *shift is either 0 or 8. Otherwise, leave the values unchanged.
+  void ResolveSVEImm8Shift(int* imm8, int* shift);
+
   Instr LoadStoreStructAddrModeField(const MemOperand& addr);
 
   // Encode the specified MemOperand for the specified access size and scaling
   // preference.
   Instr LoadStoreMemOperand(const MemOperand& addr,
-                            unsigned access_size,
+                            unsigned access_size_in_bytes_log2,
                             LoadStoreScalingOption option);
 
   // Link the current (not-yet-emitted) instruction to the specified label, then
diff --git a/src/aarch64/assembler-sve-aarch64.cc b/src/aarch64/assembler-sve-aarch64.cc
new file mode 100644
index 0000000..f7cf8b2
--- /dev/null
+++ b/src/aarch64/assembler-sve-aarch64.cc
@@ -0,0 +1,6489 @@
+// Copyright 2019, VIXL authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//   * Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//   * Neither the name of ARM Limited nor the names of its contributors may be
+//     used to endorse or promote products derived from this software without
+//     specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "assembler-aarch64.h"
+
+namespace vixl {
+namespace aarch64 {
+
+void Assembler::ResolveSVEImm8Shift(int* imm8, int* shift) {
+  if (*shift < 0) {
+    VIXL_ASSERT(*shift == -1);
+    // Derive the shift amount from the immediate.
+    if (IsInt8(*imm8)) {
+      *shift = 0;
+    } else if ((*imm8 % 256) == 0) {
+      *imm8 /= 256;
+      *shift = 8;
+    }
+  }
+
+  VIXL_ASSERT(IsInt8(*imm8));
+  VIXL_ASSERT((*shift == 0) || (*shift == 8));
+}
+
+// SVEAddressGeneration.
+
+void Assembler::adr(const ZRegister& zd, const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(addr.IsVectorPlusVector());
+  VIXL_ASSERT(
+      AreSameLaneSize(zd, addr.GetVectorBase(), addr.GetVectorOffset()));
+
+  int lane_size = zd.GetLaneSizeInBits();
+  VIXL_ASSERT((lane_size == kSRegSize) || (lane_size == kDRegSize));
+
+  int shift_amount = addr.GetShiftAmount();
+  VIXL_ASSERT((shift_amount >= 0) && (shift_amount <= 3));
+
+  Instr op = 0xffffffff;
+  Instr msz = shift_amount << 10;
+  SVEOffsetModifier mod = addr.GetOffsetModifier();
+  switch (mod) {
+    case SVE_UXTW:
+      VIXL_ASSERT(lane_size == kDRegSize);
+      op = ADR_z_az_d_u32_scaled;
+      break;
+    case SVE_SXTW:
+      VIXL_ASSERT(lane_size == kDRegSize);
+      op = ADR_z_az_d_s32_scaled;
+      break;
+    case SVE_LSL:
+    case NO_SVE_OFFSET_MODIFIER:
+      op = (lane_size == kSRegSize) ? ADR_z_az_s_same_scaled
+                                    : ADR_z_az_d_same_scaled;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+  }
+  Emit(op | msz | Rd(zd) | Rn(addr.GetVectorBase()) |
+       Rm(addr.GetVectorOffset()));
+}
+
+void Assembler::SVELogicalImmediate(const ZRegister& zdn,
+                                    uint64_t imm,
+                                    Instr op) {
+  unsigned bit_n, imm_s, imm_r;
+  unsigned lane_size = zdn.GetLaneSizeInBits();
+  // Check that the immediate can be encoded in the instruction.
+  if (IsImmLogical(imm, lane_size, &bit_n, &imm_s, &imm_r)) {
+    Emit(op | Rd(zdn) | SVEBitN(bit_n) | SVEImmRotate(imm_r, lane_size) |
+         SVEImmSetBits(imm_s, lane_size));
+  } else {
+    VIXL_UNREACHABLE();
+  }
+}
+
+void Assembler::and_(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  SVELogicalImmediate(zd, imm, AND_z_zi);
+}
+
+void Assembler::dupm(const ZRegister& zd, uint64_t imm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  // DUPM_z_i is an SVEBroadcastBitmaskImmOp, but its encoding and constraints
+  // are similar enough to SVEBitwiseLogicalWithImm_UnpredicatedOp, that we can
+  // use the logical immediate encoder to get the correct behaviour.
+  SVELogicalImmediate(zd, imm, DUPM_z_i);
+}
+
+void Assembler::eor(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  SVELogicalImmediate(zd, imm, EOR_z_zi);
+}
+
+void Assembler::orr(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  SVELogicalImmediate(zd, imm, ORR_z_zi);
+}
+
+// SVEBitwiseLogicalUnpredicated.
+void Assembler::and_(const ZRegister& zd,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.IsLaneSizeD());
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+  Emit(AND_z_zz | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::bic(const ZRegister& zd,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.IsLaneSizeD());
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+  Emit(BIC_z_zz | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::eor(const ZRegister& zd,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.IsLaneSizeD());
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+  Emit(EOR_z_zz | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::orr(const ZRegister& zd,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.IsLaneSizeD());
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+  Emit(ORR_z_zz | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+// SVEBitwiseShiftPredicated.
+
+void Assembler::SVEBitwiseShiftImmediatePred(
+    const ZRegister& zdn,
+    const PRegisterM& pg,
+    Instr encoded_imm_and_tsz,
+    SVEBitwiseShiftByImm_PredicatedOp op) {
+  Instr tszl_and_imm = ExtractUnsignedBitfield32(4, 0, encoded_imm_and_tsz)
+                       << 5;
+  Instr tszh = ExtractUnsignedBitfield32(6, 5, encoded_imm_and_tsz) << 22;
+  Emit(op | tszh | tszl_and_imm | PgLow8(pg) | Rd(zdn));
+}
+
+void Assembler::asr(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    int shift) {
+  // ASR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, #<const>
+  //  0000 0100 ..00 0000 100. .... .... ....
+  //  tszh<23:22> | opc<19:18> = 00 | L<17> = 0 | U<16> = 0 | Pg<12:10> |
+  //  tszl<9:8> | imm3<7:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  Instr encoded_imm =
+      EncodeSVEShiftImmediate(ASR, shift, zd.GetLaneSizeInBits());
+  SVEBitwiseShiftImmediatePred(zd, pg, encoded_imm, ASR_z_p_zi);
+}
+
+void Assembler::asr(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // ASR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.D
+  //  0000 0100 ..01 1000 100. .... .... ....
+  //  size<23:22> | R<18> = 0 | L<17> = 0 | U<16> = 0 | Pg<12:10> | Zm<9:5> |
+  //  Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm) ||
+              ((zm.GetLaneSizeInBytes() == kDRegSizeInBytes) &&
+               (zd.GetLaneSizeInBytes() != kDRegSizeInBytes)));
+  Instr op = ASR_z_p_zw;
+  if (AreSameLaneSize(zd, zn, zm)) {
+    op = ASR_z_p_zz;
+  }
+  Emit(op | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::asrd(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     int shift) {
+  // ASRD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, #<const>
+  //  0000 0100 ..00 0100 100. .... .... ....
+  //  tszh<23:22> | opc<19:18> = 01 | L<17> = 0 | U<16> = 0 | Pg<12:10> |
+  //  tszl<9:8> | imm3<7:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+
+  Instr encoded_imm =
+      EncodeSVEShiftImmediate(ASR, shift, zd.GetLaneSizeInBits());
+  SVEBitwiseShiftImmediatePred(zd, pg, encoded_imm, ASRD_z_p_zi);
+}
+
+void Assembler::asrr(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // ASRR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 0100 100. .... .... ....
+  //  size<23:22> | R<18> = 1 | L<17> = 0 | U<16> = 0 | Pg<12:10> | Zm<9:5> |
+  //  Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(ASRR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::lsl(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    int shift) {
+  // LSL <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, #<const>
+  //  0000 0100 ..00 0011 100. .... .... ....
+  //  tszh<23:22> | opc<19:18> = 00 | L<17> = 1 | U<16> = 1 | Pg<12:10> |
+  //  tszl<9:8> | imm3<7:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+
+  Instr encoded_imm =
+      EncodeSVEShiftImmediate(LSL, shift, zd.GetLaneSizeInBits());
+  SVEBitwiseShiftImmediatePred(zd, pg, encoded_imm, LSL_z_p_zi);
+}
+
+void Assembler::lsl(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // LSL <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.D
+  //  0000 0100 ..01 1011 100. .... .... ....
+  //  size<23:22> | R<18> = 0 | L<17> = 1 | U<16> = 1 | Pg<12:10> | Zm<9:5> |
+  //  Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm) ||
+              ((zm.GetLaneSizeInBytes() == kDRegSizeInBytes) &&
+               (zd.GetLaneSizeInBytes() != kDRegSizeInBytes)));
+  Instr op = LSL_z_p_zw;
+  if (AreSameLaneSize(zd, zn, zm)) {
+    op = LSL_z_p_zz;
+  }
+  Emit(op | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::lslr(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // LSLR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 0111 100. .... .... ....
+  //  size<23:22> | R<18> = 1 | L<17> = 1 | U<16> = 1 | Pg<12:10> | Zm<9:5> |
+  //  Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(LSLR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::lsr(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    int shift) {
+  // LSR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, #<const>
+  //  0000 0100 ..00 0001 100. .... .... ....
+  //  tszh<23:22> | opc<19:18> = 00 | L<17> = 0 | U<16> = 1 | Pg<12:10> |
+  //  tszl<9:8> | imm3<7:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+
+  Instr encoded_imm =
+      EncodeSVEShiftImmediate(LSR, shift, zd.GetLaneSizeInBits());
+  SVEBitwiseShiftImmediatePred(zd, pg, encoded_imm, LSR_z_p_zi);
+}
+
+void Assembler::lsr(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // LSR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.D
+  //  0000 0100 ..01 1001 100. .... .... ....
+  //  size<23:22> | R<18> = 0 | L<17> = 0 | U<16> = 1 | Pg<12:10> | Zm<9:5> |
+  //  Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm) ||
+              ((zm.GetLaneSizeInBytes() == kDRegSizeInBytes) &&
+               (zd.GetLaneSizeInBytes() != kDRegSizeInBytes)));
+  Instr op = LSR_z_p_zw;
+  if (AreSameLaneSize(zd, zn, zm)) {
+    op = LSR_z_p_zz;
+  }
+  Emit(op | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::lsrr(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // LSRR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 0101 100. .... .... ....
+  //  size<23:22> | R<18> = 1 | L<17> = 0 | U<16> = 1 | Pg<12:10> | Zm<9:5> |
+  //  Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(LSRR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+// SVEBitwiseShiftUnpredicated.
+
+Instr Assembler::EncodeSVEShiftImmediate(Shift shift_op,
+                                         int shift,
+                                         int lane_size_in_bits) {
+  if (shift_op == LSL) {
+    VIXL_ASSERT((shift >= 0) && (shift < lane_size_in_bits));
+    return lane_size_in_bits + shift;
+  }
+
+  VIXL_ASSERT((shift_op == ASR) || (shift_op == LSR));
+  VIXL_ASSERT((shift > 0) && (shift <= lane_size_in_bits));
+  return (2 * lane_size_in_bits) - shift;
+}
+
+void Assembler::SVEBitwiseShiftImmediate(const ZRegister& zd,
+                                         const ZRegister& zn,
+                                         Instr encoded_imm_and_tsz,
+                                         SVEBitwiseShiftUnpredicatedOp op) {
+  Instr tszl_and_imm = ExtractUnsignedBitfield32(4, 0, encoded_imm_and_tsz)
+                       << 16;
+  Instr tszh = ExtractUnsignedBitfield32(6, 5, encoded_imm_and_tsz) << 22;
+  Emit(op | tszh | tszl_and_imm | Rd(zd) | Rn(zn));
+}
+
+void Assembler::asr(const ZRegister& zd, const ZRegister& zn, int shift) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  Instr encoded_imm =
+      EncodeSVEShiftImmediate(ASR, shift, zd.GetLaneSizeInBits());
+  SVEBitwiseShiftImmediate(zd, zn, encoded_imm, ASR_z_zi);
+}
+
+void Assembler::asr(const ZRegister& zd,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kDRegSizeInBytes);
+
+  Emit(ASR_z_zw | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::lsl(const ZRegister& zd, const ZRegister& zn, int shift) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  Instr encoded_imm =
+      EncodeSVEShiftImmediate(LSL, shift, zd.GetLaneSizeInBits());
+  SVEBitwiseShiftImmediate(zd, zn, encoded_imm, LSL_z_zi);
+}
+
+void Assembler::lsl(const ZRegister& zd,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kDRegSizeInBytes);
+
+  Emit(LSL_z_zw | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::lsr(const ZRegister& zd, const ZRegister& zn, int shift) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  Instr encoded_imm =
+      EncodeSVEShiftImmediate(LSR, shift, zd.GetLaneSizeInBits());
+  SVEBitwiseShiftImmediate(zd, zn, encoded_imm, LSR_z_zi);
+}
+
+void Assembler::lsr(const ZRegister& zd,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kDRegSizeInBytes);
+
+  Emit(LSR_z_zw | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+// SVEElementCount.
+
+#define VIXL_SVE_INC_DEC_LIST(V) \
+  V(cntb, CNTB_r_s)              \
+  V(cnth, CNTH_r_s)              \
+  V(cntw, CNTW_r_s)              \
+  V(cntd, CNTD_r_s)              \
+  V(decb, DECB_r_rs)             \
+  V(dech, DECH_r_rs)             \
+  V(decw, DECW_r_rs)             \
+  V(decd, DECD_r_rs)             \
+  V(incb, INCB_r_rs)             \
+  V(inch, INCH_r_rs)             \
+  V(incw, INCW_r_rs)             \
+  V(incd, INCD_r_rs)             \
+  V(sqdecb, SQDECB_r_rs_x)       \
+  V(sqdech, SQDECH_r_rs_x)       \
+  V(sqdecw, SQDECW_r_rs_x)       \
+  V(sqdecd, SQDECD_r_rs_x)       \
+  V(sqincb, SQINCB_r_rs_x)       \
+  V(sqinch, SQINCH_r_rs_x)       \
+  V(sqincw, SQINCW_r_rs_x)       \
+  V(sqincd, SQINCD_r_rs_x)
+
+#define VIXL_DEFINE_ASM_FUNC(FN, OP)                                     \
+  void Assembler::FN(const Register& rdn, int pattern, int multiplier) { \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));                              \
+    VIXL_ASSERT(rdn.IsX());                                              \
+    Emit(OP | Rd(rdn) | ImmSVEPredicateConstraint(pattern) |             \
+         ImmUnsignedField<19, 16>(multiplier - 1));                      \
+  }
+VIXL_SVE_INC_DEC_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
+
+#define VIXL_SVE_UQINC_UQDEC_LIST(V)                      \
+  V(uqdecb, (rdn.IsX() ? UQDECB_r_rs_x : UQDECB_r_rs_uw)) \
+  V(uqdech, (rdn.IsX() ? UQDECH_r_rs_x : UQDECH_r_rs_uw)) \
+  V(uqdecw, (rdn.IsX() ? UQDECW_r_rs_x : UQDECW_r_rs_uw)) \
+  V(uqdecd, (rdn.IsX() ? UQDECD_r_rs_x : UQDECD_r_rs_uw)) \
+  V(uqincb, (rdn.IsX() ? UQINCB_r_rs_x : UQINCB_r_rs_uw)) \
+  V(uqinch, (rdn.IsX() ? UQINCH_r_rs_x : UQINCH_r_rs_uw)) \
+  V(uqincw, (rdn.IsX() ? UQINCW_r_rs_x : UQINCW_r_rs_uw)) \
+  V(uqincd, (rdn.IsX() ? UQINCD_r_rs_x : UQINCD_r_rs_uw))
+
+#define VIXL_DEFINE_ASM_FUNC(FN, OP)                                     \
+  void Assembler::FN(const Register& rdn, int pattern, int multiplier) { \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));                              \
+    Emit(OP | Rd(rdn) | ImmSVEPredicateConstraint(pattern) |             \
+         ImmUnsignedField<19, 16>(multiplier - 1));                      \
+  }
+VIXL_SVE_UQINC_UQDEC_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
+
+#define VIXL_SVE_SQX_INC_DEC_LIST(V) \
+  V(sqdecb, SQDECB)                  \
+  V(sqdech, SQDECH)                  \
+  V(sqdecw, SQDECW)                  \
+  V(sqdecd, SQDECD)                  \
+  V(sqincb, SQINCB)                  \
+  V(sqinch, SQINCH)                  \
+  V(sqincw, SQINCW)                  \
+  V(sqincd, SQINCD)
+
+#define VIXL_DEFINE_ASM_FUNC(FN, OP)                                  \
+  void Assembler::FN(const Register& xd,                              \
+                     const Register& wn,                              \
+                     int pattern,                                     \
+                     int multiplier) {                                \
+    USE(wn);                                                          \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));                           \
+    VIXL_ASSERT(wn.IsW() && xd.Is(wn.X()));                           \
+    Emit(OP##_r_rs_sx | Rd(xd) | ImmSVEPredicateConstraint(pattern) | \
+         ImmUnsignedField<19, 16>(multiplier - 1));                   \
+  }
+VIXL_SVE_SQX_INC_DEC_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
+
+#define VIXL_SVE_INC_DEC_VEC_LIST(V) \
+  V(dech, DEC, H)                    \
+  V(decw, DEC, W)                    \
+  V(decd, DEC, D)                    \
+  V(inch, INC, H)                    \
+  V(incw, INC, W)                    \
+  V(incd, INC, D)                    \
+  V(sqdech, SQDEC, H)                \
+  V(sqdecw, SQDEC, W)                \
+  V(sqdecd, SQDEC, D)                \
+  V(sqinch, SQINC, H)                \
+  V(sqincw, SQINC, W)                \
+  V(sqincd, SQINC, D)                \
+  V(uqdech, UQDEC, H)                \
+  V(uqdecw, UQDEC, W)                \
+  V(uqdecd, UQDEC, D)                \
+  V(uqinch, UQINC, H)                \
+  V(uqincw, UQINC, W)                \
+  V(uqincd, UQINC, D)
+
+#define VIXL_DEFINE_ASM_FUNC(FN, OP, T)                                   \
+  void Assembler::FN(const ZRegister& zdn, int pattern, int multiplier) { \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));                               \
+    VIXL_ASSERT(zdn.GetLaneSizeInBytes() == k##T##RegSizeInBytes);        \
+    Emit(OP##T##_z_zs | Rd(zdn) | ImmSVEPredicateConstraint(pattern) |    \
+         ImmUnsignedField<19, 16>(multiplier - 1));                       \
+  }
+VIXL_SVE_INC_DEC_VEC_LIST(VIXL_DEFINE_ASM_FUNC)
+#undef VIXL_DEFINE_ASM_FUNC
+
+// SVEFPAccumulatingReduction.
+
+void Assembler::fadda(const VRegister& vd,
+                      const PRegister& pg,
+                      const VRegister& vn,
+                      const ZRegister& zm) {
+  // FADDA <V><dn>, <Pg>, <V><dn>, <Zm>.<T>
+  //  0110 0101 ..01 1000 001. .... .... ....
+  //  size<23:22> | opc<18:16> = 000 | Pg<12:10> | Zm<9:5> | Vdn<4:0>
+
+  USE(vn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.Is(vn));
+  VIXL_ASSERT(vd.IsScalar());
+  VIXL_ASSERT(zm.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(AreSameLaneSize(zm, vd));
+
+  Emit(FADDA_v_p_z | SVESize(zm) | Rd(vd) | PgLow8(pg) | Rn(zm));
+}
+
+// SVEFPArithmetic_Predicated.
+
+void Assembler::fabd(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FABD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 1000 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 1000 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FABD_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fadd(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     double imm) {
+  // FADD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <const>
+  //  0110 0101 ..01 1000 100. ..00 00.. ....
+  //  size<23:22> | opc<18:16> = 000 | Pg<12:10> | i1<5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT((imm == 0.5) || (imm == 1.0));
+
+  Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
+  Emit(FADD_z_p_zs | SVESize(zd) | Rd(zd) | PgLow8(pg) | i1);
+}
+
+void Assembler::fadd(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FADD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 0000 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 0000 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FADD_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fdiv(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FDIV <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 1101 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 1101 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FDIV_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fdivr(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FDIVR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 1100 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 1100 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FDIVR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fmax(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     double imm) {
+  // FMAX <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <const>
+  //  0110 0101 ..01 1110 100. ..00 00.. ....
+  //  size<23:22> | opc<18:16> = 110 | Pg<12:10> | i1<5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(((imm == 0.0) && (copysign(1.0, imm) == 1.0)) || (imm == 1.0));
+
+  Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
+  Emit(FMAX_z_p_zs | SVESize(zd) | Rd(zd) | PgLow8(pg) | i1);
+}
+
+void Assembler::fmax(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FMAX <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 0110 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 0110 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FMAX_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fmaxnm(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn,
+                       double imm) {
+  // FMAXNM <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <const>
+  //  0110 0101 ..01 1100 100. ..00 00.. ....
+  //  size<23:22> | opc<18:16> = 100 | Pg<12:10> | i1<5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(((imm == 0.0) && (copysign(1.0, imm) == 1.0)) || (imm == 1.0));
+
+  Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
+  Emit(FMAXNM_z_p_zs | SVESize(zd) | Rd(zd) | PgLow8(pg) | i1);
+}
+
+void Assembler::fmaxnm(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn,
+                       const ZRegister& zm) {
+  // FMAXNM <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 0100 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 0100 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FMAXNM_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fmin(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     double imm) {
+  // FMIN <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <const>
+  //  0110 0101 ..01 1111 100. ..00 00.. ....
+  //  size<23:22> | opc<18:16> = 111 | Pg<12:10> | i1<5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(((imm == 0.0) && (copysign(1.0, imm) == 1.0)) || (imm == 1.0));
+
+  Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
+  Emit(FMIN_z_p_zs | SVESize(zd) | Rd(zd) | PgLow8(pg) | i1);
+}
+
+void Assembler::fmin(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FMIN <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 0111 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 0111 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FMIN_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fminnm(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn,
+                       double imm) {
+  // FMINNM <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <const>
+  //  0110 0101 ..01 1101 100. ..00 00.. ....
+  //  size<23:22> | opc<18:16> = 101 | Pg<12:10> | i1<5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(((imm == 0.0) && (copysign(1.0, imm) == 1.0)) || (imm == 1.0));
+
+  Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
+  Emit(FMINNM_z_p_zs | SVESize(zd) | Rd(zd) | PgLow8(pg) | i1);
+}
+
+void Assembler::fminnm(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn,
+                       const ZRegister& zm) {
+  // FMINNM <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 0101 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 0101 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FMINNM_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fmul(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     double imm) {
+  // FMUL <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <const>
+  //  0110 0101 ..01 1010 100. ..00 00.. ....
+  //  size<23:22> | opc<18:16> = 010 | Pg<12:10> | i1<5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT((imm == 0.5) || (imm == 2.0));
+
+  Instr i1 = (imm == 2.0) ? (1 << 5) : 0;
+  Emit(FMUL_z_p_zs | SVESize(zd) | Rd(zd) | PgLow8(pg) | i1);
+}
+
+void Assembler::fmul(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FMUL <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 0010 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 0010 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FMUL_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fmulx(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FMULX <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 1010 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 1010 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FMULX_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fscale(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn,
+                       const ZRegister& zm) {
+  // FSCALE <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 1001 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 1001 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FSCALE_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fsub(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     double imm) {
+  // FSUB <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <const>
+  //  0110 0101 ..01 1001 100. ..00 00.. ....
+  //  size<23:22> | opc<18:16> = 001 | Pg<12:10> | i1<5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT((imm == 0.5) || (imm == 1.0));
+
+  Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
+  Emit(FSUB_z_p_zs | SVESize(zd) | Rd(zd) | PgLow8(pg) | i1);
+}
+
+void Assembler::fsub(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FSUB <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 0001 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 0001 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FSUB_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::fsubr(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      double imm) {
+  // FSUBR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <const>
+  //  0110 0101 ..01 1011 100. ..00 00.. ....
+  //  size<23:22> | opc<18:16> = 011 | Pg<12:10> | i1<5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT((imm == 0.5) || (imm == 1.0));
+
+  Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
+  Emit(FSUBR_z_p_zs | SVESize(zd) | Rd(zd) | PgLow8(pg) | i1);
+}
+
+void Assembler::fsubr(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FSUBR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0110 0101 ..00 0011 100. .... .... ....
+  //  size<23:22> | opc<19:16> = 0011 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FSUBR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::ftmad(const ZRegister& zd,
+                      const ZRegister& zn,
+                      const ZRegister& zm,
+                      int imm3) {
+  // FTMAD <Zdn>.<T>, <Zdn>.<T>, <Zm>.<T>, #<imm>
+  //  0110 0101 ..01 0... 1000 00.. .... ....
+  //  size<23:22> | imm3<18:16> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FTMAD_z_zzi | SVESize(zd) | Rd(zd) | Rn(zm) |
+       ImmUnsignedField<18, 16>(imm3));
+}
+
+// SVEFPArithmeticUnpredicated.
+
+void Assembler::fadd(const ZRegister& zd,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FADD <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 0000 00.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 000 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FADD_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::fmul(const ZRegister& zd,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FMUL <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 0000 10.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 010 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FMUL_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::frecps(const ZRegister& zd,
+                       const ZRegister& zn,
+                       const ZRegister& zm) {
+  // FRECPS <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 0001 10.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 110 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRECPS_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::frsqrts(const ZRegister& zd,
+                        const ZRegister& zn,
+                        const ZRegister& zm) {
+  // FRSQRTS <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 0001 11.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 111 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRSQRTS_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::fsub(const ZRegister& zd,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FSUB <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 0000 01.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 001 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FSUB_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::ftsmul(const ZRegister& zd,
+                       const ZRegister& zn,
+                       const ZRegister& zm) {
+  // FTSMUL <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 0000 11.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 011 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FTSMUL_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+// SVEFPCompareVectors.
+
+void Assembler::facge(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FACGE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 110. .... ...1 ....
+  //  size<23:22> | Zm<20:16> | op<15> = 1 | o2<13> = 0 | Pg<12:10> | Zn<9:5> |
+  //  o3<4> = 1 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zn, zm));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FACGE_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::facgt(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FACGT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 111. .... ...1 ....
+  //  size<23:22> | Zm<20:16> | op<15> = 1 | o2<13> = 1 | Pg<12:10> | Zn<9:5> |
+  //  o3<4> = 1 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zn, zm));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FACGT_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::fcmeq(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FCMEQ <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 011. .... ...0 ....
+  //  size<23:22> | Zm<20:16> | op<15> = 0 | o2<13> = 1 | Pg<12:10> | Zn<9:5> |
+  //  o3<4> = 0 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zn, zm));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FCMEQ_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::fcmge(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FCMGE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 010. .... ...0 ....
+  //  size<23:22> | Zm<20:16> | op<15> = 0 | o2<13> = 0 | Pg<12:10> | Zn<9:5> |
+  //  o3<4> = 0 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zn, zm));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FCMGE_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::fcmgt(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FCMGT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 010. .... ...1 ....
+  //  size<23:22> | Zm<20:16> | op<15> = 0 | o2<13> = 0 | Pg<12:10> | Zn<9:5> |
+  //  o3<4> = 1 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zn, zm));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FCMGT_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::fcmne(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FCMNE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 011. .... ...1 ....
+  //  size<23:22> | Zm<20:16> | op<15> = 0 | o2<13> = 1 | Pg<12:10> | Zn<9:5> |
+  //  o3<4> = 1 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zn, zm));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FCMNE_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::fcmuo(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FCMUO <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..0. .... 110. .... ...0 ....
+  //  size<23:22> | Zm<20:16> | op<15> = 1 | o2<13> = 0 | Pg<12:10> | Zn<9:5> |
+  //  o3<4> = 0 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zn, zm));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FCMUO_p_p_zz | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+// SVEFPCompareWithZero.
+
+void Assembler::fcmeq(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      double zero) {
+  // FCMEQ <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #0.0
+  //  0110 0101 ..01 0010 001. .... ...0 ....
+  //  size<23:22> | eq<17> = 1 | lt<16> = 0 | Pg<12:10> | Zn<9:5> | ne<4> = 0 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(zero == 0.0);
+  USE(zero);
+
+  Emit(FCMEQ_p_p_z0 | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fcmge(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      double zero) {
+  // FCMGE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #0.0
+  //  0110 0101 ..01 0000 001. .... ...0 ....
+  //  size<23:22> | eq<17> = 0 | lt<16> = 0 | Pg<12:10> | Zn<9:5> | ne<4> = 0 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(zero == 0.0);
+  USE(zero);
+
+  Emit(FCMGE_p_p_z0 | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fcmgt(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      double zero) {
+  // FCMGT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #0.0
+  //  0110 0101 ..01 0000 001. .... ...1 ....
+  //  size<23:22> | eq<17> = 0 | lt<16> = 0 | Pg<12:10> | Zn<9:5> | ne<4> = 1 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(zero == 0.0);
+  USE(zero);
+
+  Emit(FCMGT_p_p_z0 | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fcmle(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      double zero) {
+  // FCMLE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #0.0
+  //  0110 0101 ..01 0001 001. .... ...1 ....
+  //  size<23:22> | eq<17> = 0 | lt<16> = 1 | Pg<12:10> | Zn<9:5> | ne<4> = 1 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(zero == 0.0);
+  USE(zero);
+
+  Emit(FCMLE_p_p_z0 | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fcmlt(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      double zero) {
+  // FCMLT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #0.0
+  //  0110 0101 ..01 0001 001. .... ...0 ....
+  //  size<23:22> | eq<17> = 0 | lt<16> = 1 | Pg<12:10> | Zn<9:5> | ne<4> = 0 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(zero == 0.0);
+  USE(zero);
+
+  Emit(FCMLT_p_p_z0 | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fcmne(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      double zero) {
+  // FCMNE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #0.0
+  //  0110 0101 ..01 0011 001. .... ...0 ....
+  //  size<23:22> | eq<17> = 1 | lt<16> = 1 | Pg<12:10> | Zn<9:5> | ne<4> = 0 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(zero == 0.0);
+  USE(zero);
+
+  Emit(FCMNE_p_p_z0 | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn));
+}
+
+// SVEFPComplexAddition.
+
+void Assembler::fcadd(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm,
+                      int rot) {
+  // FCADD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>, <const>
+  //  0110 0100 ..00 000. 100. .... .... ....
+  //  size<23:22> | rot<16> | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT((rot == 90) || (rot == 270));
+
+  Instr rotate_bit = (rot == 90) ? 0 : (1 << 16);
+  Emit(FCADD_z_p_zz | rotate_bit | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+// SVEFPComplexMulAdd.
+
+void Assembler::fcmla(const ZRegister& zda,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm,
+                      int rot) {
+  // FCMLA <Zda>.<T>, <Pg>/M, <Zn>.<T>, <Zm>.<T>, <const>
+  //  0110 0100 ..0. .... 0... .... .... ....
+  //  size<23:22> | Zm<20:16> | rot<14:13> | Pg<12:10> | Zn<9:5> | Zda<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
+  VIXL_ASSERT(zda.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT((rot == 0) || (rot == 90) || (rot == 180) || (rot == 270));
+
+  Instr rotate_bit = (rot / 90) << 13;
+  Emit(FCMLA_z_p_zzz | rotate_bit | SVESize(zda) | Rd(zda) | PgLow8(pg) |
+       Rn(zn) | Rm(zm));
+}
+
+// SVEFPComplexMulAddIndex.
+
+void Assembler::fcmla(const ZRegister& zda,
+                      const ZRegister& zn,
+                      const ZRegister& zm,
+                      int index,
+                      int rot) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
+  VIXL_ASSERT((rot == 0) || (rot == 90) || (rot == 180) || (rot == 270));
+  VIXL_ASSERT(index >= 0);
+
+  int lane_size = zda.GetLaneSizeInBytes();
+
+  Instr zm_and_idx = 0;
+  Instr op = FCMLA_z_zzzi_h;
+  if (lane_size == kHRegSizeInBytes) {
+    // Zm<18:16> | i2<20:19>
+    VIXL_ASSERT((zm.GetCode() <= 7) && (index <= 3));
+    zm_and_idx = (index << 19) | Rx<18, 16>(zm);
+  } else {
+    // Zm<19:16> | i1<20>
+    VIXL_ASSERT(lane_size == kSRegSizeInBytes);
+    VIXL_ASSERT((zm.GetCode() <= 15) && (index <= 1));
+    zm_and_idx = (index << 20) | Rx<19, 16>(zm);
+    op = FCMLA_z_zzzi_s;
+  }
+
+  Instr rotate_bit = (rot / 90) << 10;
+  Emit(op | zm_and_idx | rotate_bit | Rd(zda) | Rn(zn));
+}
+
+// SVEFPFastReduction.
+
+void Assembler::faddv(const VRegister& vd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  // FADDV <V><d>, <Pg>, <Zn>.<T>
+  //  0110 0101 ..00 0000 001. .... .... ....
+  //  size<23:22> | opc<18:16> = 000 | Pg<12:10> | Zn<9:5> | Vd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(AreSameLaneSize(zn, vd));
+
+  Emit(FADDV_v_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fmaxnmv(const VRegister& vd,
+                        const PRegister& pg,
+                        const ZRegister& zn) {
+  // FMAXNMV <V><d>, <Pg>, <Zn>.<T>
+  //  0110 0101 ..00 0100 001. .... .... ....
+  //  size<23:22> | opc<18:16> = 100 | Pg<12:10> | Zn<9:5> | Vd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(AreSameLaneSize(zn, vd));
+
+  Emit(FMAXNMV_v_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fmaxv(const VRegister& vd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  // FMAXV <V><d>, <Pg>, <Zn>.<T>
+  //  0110 0101 ..00 0110 001. .... .... ....
+  //  size<23:22> | opc<18:16> = 110 | Pg<12:10> | Zn<9:5> | Vd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(AreSameLaneSize(zn, vd));
+
+  Emit(FMAXV_v_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fminnmv(const VRegister& vd,
+                        const PRegister& pg,
+                        const ZRegister& zn) {
+  // FMINNMV <V><d>, <Pg>, <Zn>.<T>
+  //  0110 0101 ..00 0101 001. .... .... ....
+  //  size<23:22> | opc<18:16> = 101 | Pg<12:10> | Zn<9:5> | Vd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(AreSameLaneSize(zn, vd));
+
+  Emit(FMINNMV_v_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fminv(const VRegister& vd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  // FMINV <V><d>, <Pg>, <Zn>.<T>
+  //  0110 0101 ..00 0111 001. .... .... ....
+  //  size<23:22> | opc<18:16> = 111 | Pg<12:10> | Zn<9:5> | Vd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(AreSameLaneSize(zn, vd));
+
+  Emit(FMINV_v_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+// SVEFPMulAdd.
+
+void Assembler::fmad(const ZRegister& zdn,
+                     const PRegisterM& pg,
+                     const ZRegister& zm,
+                     const ZRegister& za) {
+  // FMAD <Zdn>.<T>, <Pg>/M, <Zm>.<T>, <Za>.<T>
+  //  0110 0101 ..1. .... 100. .... .... ....
+  //  size<23:22> | Za<20:16> | opc<14:13> = 00 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
+  VIXL_ASSERT(zdn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FMAD_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rn(zm) | Rm(za));
+}
+
+void Assembler::fmla(const ZRegister& zda,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FMLA <Zda>.<T>, <Pg>/M, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..1. .... 000. .... .... ....
+  //  size<23:22> | Zm<20:16> | opc<14:13> = 00 | Pg<12:10> | Zn<9:5> | Zda<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
+  VIXL_ASSERT(zda.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FMLA_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::fmls(const ZRegister& zda,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // FMLS <Zda>.<T>, <Pg>/M, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..1. .... 001. .... .... ....
+  //  size<23:22> | Zm<20:16> | opc<14:13> = 01 | Pg<12:10> | Zn<9:5> | Zda<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
+  VIXL_ASSERT(zda.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FMLS_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::fmsb(const ZRegister& zdn,
+                     const PRegisterM& pg,
+                     const ZRegister& zm,
+                     const ZRegister& za) {
+  // FMSB <Zdn>.<T>, <Pg>/M, <Zm>.<T>, <Za>.<T>
+  //  0110 0101 ..1. .... 101. .... .... ....
+  //  size<23:22> | Za<20:16> | opc<14:13> = 01 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
+  VIXL_ASSERT(zdn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FMSB_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rn(zm) | Rm(za));
+}
+
+void Assembler::fnmad(const ZRegister& zdn,
+                      const PRegisterM& pg,
+                      const ZRegister& zm,
+                      const ZRegister& za) {
+  // FNMAD <Zdn>.<T>, <Pg>/M, <Zm>.<T>, <Za>.<T>
+  //  0110 0101 ..1. .... 110. .... .... ....
+  //  size<23:22> | Za<20:16> | opc<14:13> = 10 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
+  VIXL_ASSERT(zdn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FNMAD_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rn(zm) | Rm(za));
+}
+
+void Assembler::fnmla(const ZRegister& zda,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FNMLA <Zda>.<T>, <Pg>/M, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..1. .... 010. .... .... ....
+  //  size<23:22> | Zm<20:16> | opc<14:13> = 10 | Pg<12:10> | Zn<9:5> | Zda<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
+  VIXL_ASSERT(zda.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FNMLA_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::fnmls(const ZRegister& zda,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // FNMLS <Zda>.<T>, <Pg>/M, <Zn>.<T>, <Zm>.<T>
+  //  0110 0101 ..1. .... 011. .... .... ....
+  //  size<23:22> | Zm<20:16> | opc<14:13> = 11 | Pg<12:10> | Zn<9:5> | Zda<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
+  VIXL_ASSERT(zda.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FNMLS_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::fnmsb(const ZRegister& zdn,
+                      const PRegisterM& pg,
+                      const ZRegister& zm,
+                      const ZRegister& za) {
+  // FNMSB <Zdn>.<T>, <Pg>/M, <Zm>.<T>, <Za>.<T>
+  //  0110 0101 ..1. .... 111. .... .... ....
+  //  size<23:22> | Za<20:16> | opc<14:13> = 11 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
+  VIXL_ASSERT(zdn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FNMSB_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rn(zm) | Rm(za));
+}
+
+Instr Assembler::SVEFPMulIndexHelper(unsigned lane_size_in_bytes_log2,
+                                     const ZRegister& zm,
+                                     int index,
+                                     Instr op_h,
+                                     Instr op_s,
+                                     Instr op_d) {
+  Instr size = lane_size_in_bytes_log2 << SVESize_offset;
+  Instr zm_with_index = Rm(zm);
+  Instr op = 0xffffffff;
+  // Allowable register number and lane index depends on the lane size.
+  switch (lane_size_in_bytes_log2) {
+    case kHRegSizeInBytesLog2:
+      VIXL_ASSERT(zm.GetCode() <= 7);
+      VIXL_ASSERT(IsUint3(index));
+      // For H-sized lanes, size is encoded as 0b0x, where x is used as the top
+      // bit of the index. So, if index is less than four, the top bit of index
+      // is zero, and therefore size is 0b00. Otherwise, it's 0b01, the usual
+      // encoding for H-sized lanes.
+      if (index < 4) size = 0;
+      // Top two bits of "zm" encode the index.
+      zm_with_index |= (index & 3) << (Rm_offset + 3);
+      op = op_h;
+      break;
+    case kSRegSizeInBytesLog2:
+      VIXL_ASSERT(zm.GetCode() <= 7);
+      VIXL_ASSERT(IsUint2(index));
+      // Top two bits of "zm" encode the index.
+      zm_with_index |= (index & 3) << (Rm_offset + 3);
+      op = op_s;
+      break;
+    case kDRegSizeInBytesLog2:
+      VIXL_ASSERT(zm.GetCode() <= 15);
+      VIXL_ASSERT(IsUint1(index));
+      // Top bit of "zm" encodes the index.
+      zm_with_index |= (index & 1) << (Rm_offset + 4);
+      op = op_d;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+  }
+  return op | zm_with_index | size;
+}
+
+// SVEFPMulAddIndex.
+
+void Assembler::fmla(const ZRegister& zda,
+                     const ZRegister& zn,
+                     const ZRegister& zm,
+                     int index) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
+
+  // The encoding of opcode, index, Zm, and size are synthesized in this
+  // variable.
+  Instr synthesized_op = SVEFPMulIndexHelper(zda.GetLaneSizeInBytesLog2(),
+                                             zm,
+                                             index,
+                                             FMLA_z_zzzi_h,
+                                             FMLA_z_zzzi_s,
+                                             FMLA_z_zzzi_d);
+
+  Emit(synthesized_op | Rd(zda) | Rn(zn));
+}
+
+void Assembler::fmls(const ZRegister& zda,
+                     const ZRegister& zn,
+                     const ZRegister& zm,
+                     int index) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
+
+  // The encoding of opcode, index, Zm, and size are synthesized in this
+  // variable.
+  Instr synthesized_op = SVEFPMulIndexHelper(zda.GetLaneSizeInBytesLog2(),
+                                             zm,
+                                             index,
+                                             FMLS_z_zzzi_h,
+                                             FMLS_z_zzzi_s,
+                                             FMLS_z_zzzi_d);
+
+  Emit(synthesized_op | Rd(zda) | Rn(zn));
+}
+
+// SVEFPMulIndex.
+
+// This prototype maps to 3 instruction encodings:
+void Assembler::fmul(const ZRegister& zd,
+                     const ZRegister& zn,
+                     const ZRegister& zm,
+                     unsigned index) {
+  // FMUL <Zd>.<T>, <Zn>.<T>, <Zm>.<T>[<imm>]
+  //  0110 0100 ..1. .... 0010 00.. .... ....
+  //  size<23:22> | opc<20:16> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  // The encoding of opcode, index, Zm, and size are synthesized in this
+  // variable.
+  Instr synthesized_op = SVEFPMulIndexHelper(zd.GetLaneSizeInBytesLog2(),
+                                             zm,
+                                             index,
+                                             FMUL_z_zzi_h,
+                                             FMUL_z_zzi_s,
+                                             FMUL_z_zzi_d);
+
+  Emit(synthesized_op | Rd(zd) | Rn(zn));
+}
+
+// SVEFPUnaryOpPredicated.
+
+void Assembler::fcvt(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Instr op = 0xffffffff;
+  switch (zn.GetLaneSizeInBytes()) {
+    case kHRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kSRegSizeInBytes:
+          op = FCVT_z_p_z_h2s;
+          break;
+        case kDRegSizeInBytes:
+          op = FCVT_z_p_z_h2d;
+          break;
+      }
+      break;
+    case kSRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kHRegSizeInBytes:
+          op = FCVT_z_p_z_s2h;
+          break;
+        case kDRegSizeInBytes:
+          op = FCVT_z_p_z_s2d;
+          break;
+      }
+      break;
+    case kDRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kHRegSizeInBytes:
+          op = FCVT_z_p_z_d2h;
+          break;
+        case kSRegSizeInBytes:
+          op = FCVT_z_p_z_d2s;
+          break;
+      }
+      break;
+  }
+  VIXL_ASSERT(op != 0xffffffff);
+
+  Emit(op | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fcvtzs(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  Instr op = 0xffffffff;
+  switch (zn.GetLaneSizeInBytes()) {
+    case kHRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kHRegSizeInBytes:
+          op = FCVTZS_z_p_z_fp162h;
+          break;
+        case kSRegSizeInBytes:
+          op = FCVTZS_z_p_z_fp162w;
+          break;
+        case kDRegSizeInBytes:
+          op = FCVTZS_z_p_z_fp162x;
+          break;
+      }
+      break;
+    case kSRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kSRegSizeInBytes:
+          op = FCVTZS_z_p_z_s2w;
+          break;
+        case kDRegSizeInBytes:
+          op = FCVTZS_z_p_z_s2x;
+          break;
+      }
+      break;
+    case kDRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kSRegSizeInBytes:
+          op = FCVTZS_z_p_z_d2w;
+          break;
+        case kDRegSizeInBytes:
+          op = FCVTZS_z_p_z_d2x;
+          break;
+      }
+      break;
+  }
+  VIXL_ASSERT(op != 0xffffffff);
+
+  Emit(op | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fcvtzu(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  Instr op = 0xffffffff;
+  switch (zn.GetLaneSizeInBytes()) {
+    case kHRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kHRegSizeInBytes:
+          op = FCVTZU_z_p_z_fp162h;
+          break;
+        case kSRegSizeInBytes:
+          op = FCVTZU_z_p_z_fp162w;
+          break;
+        case kDRegSizeInBytes:
+          op = FCVTZU_z_p_z_fp162x;
+          break;
+      }
+      break;
+    case kSRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kSRegSizeInBytes:
+          op = FCVTZU_z_p_z_s2w;
+          break;
+        case kDRegSizeInBytes:
+          op = FCVTZU_z_p_z_s2x;
+          break;
+      }
+      break;
+    case kDRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kSRegSizeInBytes:
+          op = FCVTZU_z_p_z_d2w;
+          break;
+        case kDRegSizeInBytes:
+          op = FCVTZU_z_p_z_d2x;
+          break;
+      }
+      break;
+  }
+  VIXL_ASSERT(op != 0xffffffff);
+
+  Emit(op | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::frecpx(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn) {
+  // FRECPX <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0110 0101 ..00 1100 101. .... .... ....
+  //  size<23:22> | opc<17:16> = 00 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRECPX_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::frinta(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRINTA_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::frinti(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRINTI_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::frintm(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRINTM_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::frintn(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRINTN_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::frintp(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRINTP_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::frintx(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRINTX_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::frintz(const ZRegister& zd,
+                       const PRegisterM& pg,
+                       const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRINTZ_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fsqrt(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn) {
+  // FSQRT <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0110 0101 ..00 1101 101. .... .... ....
+  //  size<23:22> | opc<17:16> = 01 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FSQRT_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::scvtf(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  Instr op = 0xffffffff;
+  switch (zn.GetLaneSizeInBytes()) {
+    case kHRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kHRegSizeInBytes:
+          op = SCVTF_z_p_z_h2fp16;
+          break;
+      }
+      break;
+    case kSRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kHRegSizeInBytes:
+          op = SCVTF_z_p_z_w2fp16;
+          break;
+        case kSRegSizeInBytes:
+          op = SCVTF_z_p_z_w2s;
+          break;
+        case kDRegSizeInBytes:
+          op = SCVTF_z_p_z_w2d;
+          break;
+      }
+      break;
+    case kDRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kHRegSizeInBytes:
+          op = SCVTF_z_p_z_x2fp16;
+          break;
+        case kSRegSizeInBytes:
+          op = SCVTF_z_p_z_x2s;
+          break;
+        case kDRegSizeInBytes:
+          op = SCVTF_z_p_z_x2d;
+          break;
+      }
+      break;
+  }
+  VIXL_ASSERT(op != 0xffffffff);
+
+  Emit(op | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::ucvtf(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  Instr op = 0xffffffff;
+  switch (zn.GetLaneSizeInBytes()) {
+    case kHRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kHRegSizeInBytes:
+          op = UCVTF_z_p_z_h2fp16;
+          break;
+      }
+      break;
+    case kSRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kHRegSizeInBytes:
+          op = UCVTF_z_p_z_w2fp16;
+          break;
+        case kSRegSizeInBytes:
+          op = UCVTF_z_p_z_w2s;
+          break;
+        case kDRegSizeInBytes:
+          op = UCVTF_z_p_z_w2d;
+          break;
+      }
+      break;
+    case kDRegSizeInBytes:
+      switch (zd.GetLaneSizeInBytes()) {
+        case kHRegSizeInBytes:
+          op = UCVTF_z_p_z_x2fp16;
+          break;
+        case kSRegSizeInBytes:
+          op = UCVTF_z_p_z_x2s;
+          break;
+        case kDRegSizeInBytes:
+          op = UCVTF_z_p_z_x2d;
+          break;
+      }
+      break;
+  }
+  VIXL_ASSERT(op != 0xffffffff);
+
+  Emit(op | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+// SVEFPUnaryOpUnpredicated.
+
+void Assembler::frecpe(const ZRegister& zd, const ZRegister& zn) {
+  // FRECPE <Zd>.<T>, <Zn>.<T>
+  //  0110 0101 ..00 1110 0011 00.. .... ....
+  //  size<23:22> | opc<18:16> = 110 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRECPE_z_z | SVESize(zd) | Rd(zd) | Rn(zn));
+}
+
+void Assembler::frsqrte(const ZRegister& zd, const ZRegister& zn) {
+  // FRSQRTE <Zd>.<T>, <Zn>.<T>
+  //  0110 0101 ..00 1111 0011 00.. .... ....
+  //  size<23:22> | opc<18:16> = 111 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FRSQRTE_z_z | SVESize(zd) | Rd(zd) | Rn(zn));
+}
+
+// SVEIncDecByPredicateCount.
+
+void Assembler::decp(const Register& rdn, const PRegisterWithLaneSize& pg) {
+  // DECP <Xdn>, <Pg>.<T>
+  //  0010 0101 ..10 1101 1000 100. .... ....
+  //  size<23:22> | op<17> = 0 | D<16> = 1 | opc2<10:9> = 00 | Pg<8:5> |
+  //  Rdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(rdn.IsX());
+
+  Emit(DECP_r_p_r | SVESize(pg) | Rd(rdn) | Rx<8, 5>(pg));
+}
+
+void Assembler::decp(const ZRegister& zdn, const PRegister& pg) {
+  // DECP <Zdn>.<T>, <Pg>
+  //  0010 0101 ..10 1101 1000 000. .... ....
+  //  size<23:22> | op<17> = 0 | D<16> = 1 | opc2<10:9> = 00 | Pg<8:5> |
+  //  Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zdn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(pg.IsUnqualified());
+
+  Emit(DECP_z_p_z | SVESize(zdn) | Rd(zdn) | Pg<8, 5>(pg));
+}
+
+void Assembler::incp(const Register& rdn, const PRegisterWithLaneSize& pg) {
+  // INCP <Xdn>, <Pg>.<T>
+  //  0010 0101 ..10 1100 1000 100. .... ....
+  //  size<23:22> | op<17> = 0 | D<16> = 0 | opc2<10:9> = 00 | Pg<8:5> |
+  //  Rdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(rdn.IsX());
+
+  Emit(INCP_r_p_r | SVESize(pg) | Rd(rdn) | Rx<8, 5>(pg));
+}
+
+void Assembler::incp(const ZRegister& zdn, const PRegister& pg) {
+  // INCP <Zdn>.<T>, <Pg>
+  //  0010 0101 ..10 1100 1000 000. .... ....
+  //  size<23:22> | op<17> = 0 | D<16> = 0 | opc2<10:9> = 00 | Pg<8:5> |
+  //  Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zdn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(pg.IsUnqualified());
+
+  Emit(INCP_z_p_z | SVESize(zdn) | Rd(zdn) | Pg<8, 5>(pg));
+}
+
+void Assembler::sqdecp(const Register& xd,
+                       const PRegisterWithLaneSize& pg,
+                       const Register& wn) {
+  // SQDECP <Xdn>, <Pg>.<T>, <Wdn>
+  //  0010 0101 ..10 1010 1000 100. .... ....
+  //  size<23:22> | D<17> = 1 | U<16> = 0 | sf<10> = 0 | op<9> = 0 | Pg<8:5> |
+  //  Rdn<4:0>
+
+  USE(wn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(xd.IsX() && wn.IsW() && xd.Aliases(wn));
+
+  Emit(SQDECP_r_p_r_sx | SVESize(pg) | Rd(xd) | Rx<8, 5>(pg));
+}
+
+void Assembler::sqdecp(const Register& xdn, const PRegisterWithLaneSize& pg) {
+  // SQDECP <Xdn>, <Pg>.<T>
+  //  0010 0101 ..10 1010 1000 110. .... ....
+  //  size<23:22> | D<17> = 1 | U<16> = 0 | sf<10> = 1 | op<9> = 0 | Pg<8:5> |
+  //  Rdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(xdn.IsX());
+
+  Emit(SQDECP_r_p_r_x | SVESize(pg) | Rd(xdn) | Rx<8, 5>(pg));
+}
+
+void Assembler::sqdecp(const ZRegister& zdn, const PRegister& pg) {
+  // SQDECP <Zdn>.<T>, <Pg>
+  //  0010 0101 ..10 1010 1000 000. .... ....
+  //  size<23:22> | D<17> = 1 | U<16> = 0 | opc<10:9> = 00 | Pg<8:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zdn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(pg.IsUnqualified());
+
+  Emit(SQDECP_z_p_z | SVESize(zdn) | Rd(zdn) | Pg<8, 5>(pg));
+}
+
+void Assembler::sqincp(const Register& xd,
+                       const PRegisterWithLaneSize& pg,
+                       const Register& wn) {
+  // SQINCP <Xdn>, <Pg>.<T>, <Wdn>
+  //  0010 0101 ..10 1000 1000 100. .... ....
+  //  size<23:22> | D<17> = 0 | U<16> = 0 | sf<10> = 0 | op<9> = 0 | Pg<8:5> |
+  //  Rdn<4:0>
+
+  USE(wn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(xd.IsX() && wn.IsW() && xd.Aliases(wn));
+
+  Emit(SQINCP_r_p_r_sx | SVESize(pg) | Rd(xd) | Rx<8, 5>(pg));
+}
+
+void Assembler::sqincp(const Register& xdn, const PRegisterWithLaneSize& pg) {
+  // SQINCP <Xdn>, <Pg>.<T>
+  //  0010 0101 ..10 1000 1000 110. .... ....
+  //  size<23:22> | D<17> = 0 | U<16> = 0 | sf<10> = 1 | op<9> = 0 | Pg<8:5> |
+  //  Rdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(xdn.IsX());
+
+  Emit(SQINCP_r_p_r_x | SVESize(pg) | Rd(xdn) | Rx<8, 5>(pg));
+}
+
+void Assembler::sqincp(const ZRegister& zdn, const PRegister& pg) {
+  // SQINCP <Zdn>.<T>, <Pg>
+  //  0010 0101 ..10 1000 1000 000. .... ....
+  //  size<23:22> | D<17> = 0 | U<16> = 0 | opc<10:9> = 00 | Pg<8:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zdn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(pg.IsUnqualified());
+
+  Emit(SQINCP_z_p_z | SVESize(zdn) | Rd(zdn) | Pg<8, 5>(pg));
+}
+
+void Assembler::uqdecp(const Register& rdn, const PRegisterWithLaneSize& pg) {
+  // UQDECP <Wdn>, <Pg>.<T>
+  // UQDECP <Xdn>, <Pg>.<T>
+  //  0010 0101 ..10 1011 1000 10.. .... ....
+  //  size<23:22> | D<17> = 1 | U<16> = 1 | sf<10> | op<9> = 0 | Pg<8:5> |
+  //  Rdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Instr op = rdn.IsX() ? UQDECP_r_p_r_x : UQDECP_r_p_r_uw;
+  Emit(op | SVESize(pg) | Rd(rdn) | Rx<8, 5>(pg));
+}
+
+void Assembler::uqdecp(const ZRegister& zdn, const PRegister& pg) {
+  // UQDECP <Zdn>.<T>, <Pg>
+  //  0010 0101 ..10 1011 1000 000. .... ....
+  //  size<23:22> | D<17> = 1 | U<16> = 1 | opc<10:9> = 00 | Pg<8:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zdn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(pg.IsUnqualified());
+
+  Emit(UQDECP_z_p_z | SVESize(zdn) | Rd(zdn) | Pg<8, 5>(pg));
+}
+
+void Assembler::uqincp(const Register& rdn, const PRegisterWithLaneSize& pg) {
+  // UQINCP <Wdn>, <Pg>.<T>
+  //  0010 0101 ..10 1001 1000 100. .... ....
+  //  size<23:22> | D<17> = 0 | U<16> = 1 | sf<10> = 0 | op<9> = 0 | Pg<8:5> |
+  //  Rdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Instr op = rdn.IsX() ? UQINCP_r_p_r_x : UQINCP_r_p_r_uw;
+  Emit(op | SVESize(pg) | Rd(rdn) | Rx<8, 5>(pg));
+}
+
+void Assembler::uqincp(const ZRegister& zdn, const PRegister& pg) {
+  // UQINCP <Zdn>.<T>, <Pg>
+  //  0010 0101 ..10 1001 1000 000. .... ....
+  //  size<23:22> | D<17> = 0 | U<16> = 1 | opc<10:9> = 00 | Pg<8:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zdn.GetLaneSizeInBytes() != kBRegSizeInBytes);
+  VIXL_ASSERT(pg.IsUnqualified());
+
+  Emit(UQINCP_z_p_z | SVESize(zdn) | Rd(zdn) | Pg<8, 5>(pg));
+}
+
+// SVEIndexGeneration.
+
+void Assembler::index(const ZRegister& zd, int start, int step) {
+  // INDEX <Zd>.<T>, #<imm1>, #<imm2>
+  //  0000 0100 ..1. .... 0100 00.. .... ....
+  //  size<23:22> | step<20:16> | start<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(INDEX_z_ii | SVESize(zd) | ImmField<20, 16>(step) |
+       ImmField<9, 5>(start) | Rd(zd));
+}
+
+void Assembler::index(const ZRegister& zd,
+                      const Register& rn,
+                      const Register& rm) {
+  // INDEX <Zd>.<T>, <R><n>, <R><m>
+  //  0000 0100 ..1. .... 0100 11.. .... ....
+  //  size<23:22> | Rm<20:16> | Rn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(static_cast<unsigned>(rn.GetSizeInBits()) >=
+              zd.GetLaneSizeInBits());
+  VIXL_ASSERT(static_cast<unsigned>(rm.GetSizeInBits()) >=
+              zd.GetLaneSizeInBits());
+
+  Emit(INDEX_z_rr | SVESize(zd) | Rd(zd) | Rn(rn) | Rm(rm));
+}
+
+void Assembler::index(const ZRegister& zd, const Register& rn, int imm5) {
+  // INDEX <Zd>.<T>, <R><n>, #<imm>
+  //  0000 0100 ..1. .... 0100 01.. .... ....
+  //  size<23:22> | imm5<20:16> | Rn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(static_cast<unsigned>(rn.GetSizeInBits()) >=
+              zd.GetLaneSizeInBits());
+
+  Emit(INDEX_z_ri | SVESize(zd) | Rd(zd) | Rn(rn) | ImmField<20, 16>(imm5));
+}
+
+void Assembler::index(const ZRegister& zd, int imm5, const Register& rm) {
+  // INDEX <Zd>.<T>, #<imm>, <R><m>
+  //  0000 0100 ..1. .... 0100 10.. .... ....
+  //  size<23:22> | Rm<20:16> | imm5<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(static_cast<unsigned>(rm.GetSizeInBits()) >=
+              zd.GetLaneSizeInBits());
+
+  Emit(INDEX_z_ir | SVESize(zd) | Rd(zd) | ImmField<9, 5>(imm5) | Rm(rm));
+}
+
+// SVEIntArithmeticUnpredicated.
+
+void Assembler::add(const ZRegister& zd,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // ADD <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0100 ..1. .... 0000 00.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 000 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(ADD_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::sqadd(const ZRegister& zd,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // SQADD <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0100 ..1. .... 0001 00.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 100 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(SQADD_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::sqsub(const ZRegister& zd,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // SQSUB <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0100 ..1. .... 0001 10.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 110 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(SQSUB_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::sub(const ZRegister& zd,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // SUB <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0100 ..1. .... 0000 01.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 001 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(SUB_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::uqadd(const ZRegister& zd,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // UQADD <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0100 ..1. .... 0001 01.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 101 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(UQADD_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::uqsub(const ZRegister& zd,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // UQSUB <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0100 ..1. .... 0001 11.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 111 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(UQSUB_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+// SVEIntBinaryArithmeticPredicated.
+
+void Assembler::add(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // ADD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..00 0000 000. .... .... ....
+  //  size<23:22> | opc<18:16> = 000 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(ADD_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::and_(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // AND <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 1010 000. .... .... ....
+  //  size<23:22> | opc<18:16> = 010 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(AND_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::bic(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // BIC <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 1011 000. .... .... ....
+  //  size<23:22> | opc<18:16> = 011 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(BIC_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::eor(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // EOR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 1001 000. .... .... ....
+  //  size<23:22> | opc<18:16> = 001 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(EOR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::mul(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // MUL <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 0000 000. .... .... ....
+  //  size<23:22> | H<17> = 0 | U<16> = 0 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(MUL_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::orr(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // ORR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 1000 000. .... .... ....
+  //  size<23:22> | opc<18:16> = 000 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(ORR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::sabd(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // SABD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..00 1100 000. .... .... ....
+  //  size<23:22> | opc<18:17> = 10 | U<16> = 0 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(SABD_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::sdiv(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // SDIV <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 0100 000. .... .... ....
+  //  size<23:22> | R<17> = 0 | U<16> = 0 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+  VIXL_ASSERT(zd.IsLaneSizeS() || zd.IsLaneSizeD());
+
+  Emit(SDIV_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::sdivr(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // SDIVR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 0110 000. .... .... ....
+  //  size<23:22> | R<17> = 1 | U<16> = 0 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+  VIXL_ASSERT(zd.IsLaneSizeS() || zd.IsLaneSizeD());
+
+  Emit(SDIVR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::smax(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // SMAX <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..00 1000 000. .... .... ....
+  //  size<23:22> | opc<18:17> = 00 | U<16> = 0 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(SMAX_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::smin(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // SMIN <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..00 1010 000. .... .... ....
+  //  size<23:22> | opc<18:17> = 01 | U<16> = 0 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(SMIN_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::smulh(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // SMULH <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 0010 000. .... .... ....
+  //  size<23:22> | H<17> = 1 | U<16> = 0 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(SMULH_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::sub(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // SUB <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..00 0001 000. .... .... ....
+  //  size<23:22> | opc<18:16> = 001 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(SUB_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::subr(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // SUBR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..00 0011 000. .... .... ....
+  //  size<23:22> | opc<18:16> = 011 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(SUBR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::uabd(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // UABD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..00 1101 000. .... .... ....
+  //  size<23:22> | opc<18:17> = 10 | U<16> = 1 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(UABD_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::udiv(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // UDIV <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 0101 000. .... .... ....
+  //  size<23:22> | R<17> = 0 | U<16> = 1 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+  VIXL_ASSERT(zd.IsLaneSizeS() || zd.IsLaneSizeD());
+
+  Emit(UDIV_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::udivr(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // UDIVR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 0111 000. .... .... ....
+  //  size<23:22> | R<17> = 1 | U<16> = 1 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+  VIXL_ASSERT(zd.IsLaneSizeS() || zd.IsLaneSizeD());
+
+  Emit(UDIVR_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::umax(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // UMAX <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..00 1001 000. .... .... ....
+  //  size<23:22> | opc<18:17> = 00 | U<16> = 1 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(UMAX_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::umin(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // UMIN <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..00 1011 000. .... .... ....
+  //  size<23:22> | opc<18:17> = 01 | U<16> = 1 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(UMIN_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::umulh(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  // UMULH <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0100 ..01 0011 000. .... .... ....
+  //  size<23:22> | H<17> = 1 | U<16> = 1 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(UMULH_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+// SVEIntCompareScalars.
+
+void Assembler::ctermeq(const Register& rn, const Register& rm) {
+  // CTERMEQ <R><n>, <R><m>
+  //  0010 0101 1.1. .... 0010 00.. ...0 0000
+  //  op<23> = 1 | sz<22> | Rm<20:16> | Rn<9:5> | ne<4> = 0
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameSizeAndType(rn, rm));
+  const Instr sz = rn.Is64Bits() ? 0x00400000 : 0x00000000;
+
+  Emit(CTERMEQ_rr | sz | Rn(rn) | Rm(rm));
+}
+
+void Assembler::ctermne(const Register& rn, const Register& rm) {
+  // CTERMNE <R><n>, <R><m>
+  //  0010 0101 1.1. .... 0010 00.. ...1 0000
+  //  op<23> = 1 | sz<22> | Rm<20:16> | Rn<9:5> | ne<4> = 1
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameSizeAndType(rn, rm));
+  const Instr sz = rn.Is64Bits() ? 0x00400000 : 0x00000000;
+
+  Emit(CTERMNE_rr | sz | Rn(rn) | Rm(rm));
+}
+
+void Assembler::whilele(const PRegisterWithLaneSize& pd,
+                        const Register& rn,
+                        const Register& rm) {
+  // WHILELE <Pd>.<T>, <R><n>, <R><m>
+  //  0010 0101 ..1. .... 000. 01.. ...1 ....
+  //  size<23:22> | Rm<20:16> | sf<12> | U<11> = 0 | lt<10> = 1 | Rn<9:5> |
+  //  eq<4> = 1 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameSizeAndType(rn, rm));
+  const Instr sf = rn.Is64Bits() ? 0x00001000 : 0x00000000;
+
+  Emit(WHILELE_p_p_rr | SVESize(pd) | sf | Pd(pd) | Rn(rn) | Rm(rm));
+}
+
+void Assembler::whilelo(const PRegisterWithLaneSize& pd,
+                        const Register& rn,
+                        const Register& rm) {
+  // WHILELO <Pd>.<T>, <R><n>, <R><m>
+  //  0010 0101 ..1. .... 000. 11.. ...0 ....
+  //  size<23:22> | Rm<20:16> | sf<12> | U<11> = 1 | lt<10> = 1 | Rn<9:5> |
+  //  eq<4> = 0 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameSizeAndType(rn, rm));
+  const Instr sf = rn.Is64Bits() ? 0x00001000 : 0x00000000;
+
+  Emit(WHILELO_p_p_rr | SVESize(pd) | sf | Pd(pd) | Rn(rn) | Rm(rm));
+}
+
+void Assembler::whilels(const PRegisterWithLaneSize& pd,
+                        const Register& rn,
+                        const Register& rm) {
+  // WHILELS <Pd>.<T>, <R><n>, <R><m>
+  //  0010 0101 ..1. .... 000. 11.. ...1 ....
+  //  size<23:22> | Rm<20:16> | sf<12> | U<11> = 1 | lt<10> = 1 | Rn<9:5> |
+  //  eq<4> = 1 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameSizeAndType(rn, rm));
+  const Instr sf = rn.Is64Bits() ? 0x00001000 : 0x00000000;
+
+  Emit(WHILELS_p_p_rr | SVESize(pd) | sf | Pd(pd) | Rn(rn) | Rm(rm));
+}
+
+void Assembler::whilelt(const PRegisterWithLaneSize& pd,
+                        const Register& rn,
+                        const Register& rm) {
+  // WHILELT <Pd>.<T>, <R><n>, <R><m>
+  //  0010 0101 ..1. .... 000. 01.. ...0 ....
+  //  size<23:22> | Rm<20:16> | sf<12> | U<11> = 0 | lt<10> = 1 | Rn<9:5> |
+  //  eq<4> = 0 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameSizeAndType(rn, rm));
+  const Instr sf = rn.Is64Bits() ? 0x00001000 : 0x00000000;
+
+  Emit(WHILELT_p_p_rr | SVESize(pd) | sf | Pd(pd) | Rn(rn) | Rm(rm));
+}
+
+void Assembler::CompareVectors(const PRegisterWithLaneSize& pd,
+                               const PRegisterZ& pg,
+                               const ZRegister& zn,
+                               const ZRegister& zm,
+                               SVEIntCompareVectorsOp op) {
+  Emit(op | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::CompareVectors(const PRegisterWithLaneSize& pd,
+                               const PRegisterZ& pg,
+                               const ZRegister& zn,
+                               int imm,
+                               SVEIntCompareSignedImmOp op) {
+  Emit(op | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | ImmField<20, 16>(imm));
+}
+
+void Assembler::CompareVectors(const PRegisterWithLaneSize& pd,
+                               const PRegisterZ& pg,
+                               const ZRegister& zn,
+                               unsigned imm,
+                               SVEIntCompareUnsignedImmOp op) {
+  Emit(op | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) |
+       ImmUnsignedField<20, 14>(imm));
+}
+
+void Assembler::cmp(Condition cond,
+                    const PRegisterWithLaneSize& pd,
+                    const PRegisterZ& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  switch (cond) {
+    case eq:
+      cmpeq(pd, pg, zn, zm);
+      break;
+    case ge:
+      cmpge(pd, pg, zn, zm);
+      break;
+    case gt:
+      cmpgt(pd, pg, zn, zm);
+      break;
+    case le:
+      cmple(pd, pg, zn, zm);
+      break;
+    case lt:
+      cmplt(pd, pg, zn, zm);
+      break;
+    case ne:
+      cmpne(pd, pg, zn, zm);
+      break;
+    case hi:
+      cmphi(pd, pg, zn, zm);
+      break;
+    case hs:
+      cmphs(pd, pg, zn, zm);
+      break;
+    case lo:
+      cmplo(pd, pg, zn, zm);
+      break;
+    case ls:
+      cmpls(pd, pg, zn, zm);
+      break;
+    default:
+      VIXL_UNREACHABLE();
+  }
+}
+
+// SVEIntCompareSignedImm.
+
+void Assembler::cmpeq(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      int imm5) {
+  // CMPEQ <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
+  //  0010 0101 ..0. .... 100. .... ...0 ....
+  //  size<23:22> | imm5<20:16> | op<15> = 1 | o2<13> = 0 | Pg<12:10> | Zn<9:5>
+  //  | ne<4> = 0 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+
+  CompareVectors(pd, pg, zn, imm5, CMPEQ_p_p_zi);
+}
+
+void Assembler::cmpge(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      int imm5) {
+  // CMPGE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
+  //  0010 0101 ..0. .... 000. .... ...0 ....
+  //  size<23:22> | imm5<20:16> | op<15> = 0 | o2<13> = 0 | Pg<12:10> | Zn<9:5>
+  //  | ne<4> = 0 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+
+  CompareVectors(pd, pg, zn, imm5, CMPGE_p_p_zi);
+}
+
+void Assembler::cmpgt(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      int imm5) {
+  // CMPGT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
+  //  0010 0101 ..0. .... 000. .... ...1 ....
+  //  size<23:22> | imm5<20:16> | op<15> = 0 | o2<13> = 0 | Pg<12:10> | Zn<9:5>
+  //  | ne<4> = 1 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+
+  CompareVectors(pd, pg, zn, imm5, CMPGT_p_p_zi);
+}
+
+void Assembler::cmple(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      int imm5) {
+  // CMPLE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
+  //  0010 0101 ..0. .... 001. .... ...1 ....
+  //  size<23:22> | imm5<20:16> | op<15> = 0 | o2<13> = 1 | Pg<12:10> | Zn<9:5>
+  //  | ne<4> = 1 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+
+  CompareVectors(pd, pg, zn, imm5, CMPLE_p_p_zi);
+}
+
+void Assembler::cmplt(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      int imm5) {
+  // CMPLT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
+  //  0010 0101 ..0. .... 001. .... ...0 ....
+  //  size<23:22> | imm5<20:16> | op<15> = 0 | o2<13> = 1 | Pg<12:10> | Zn<9:5>
+  //  | ne<4> = 0 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+
+  CompareVectors(pd, pg, zn, imm5, CMPLT_p_p_zi);
+}
+
+void Assembler::cmpne(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      int imm5) {
+  // CMPNE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
+  //  0010 0101 ..0. .... 100. .... ...1 ....
+  //  size<23:22> | imm5<20:16> | op<15> = 1 | o2<13> = 0 | Pg<12:10> | Zn<9:5>
+  //  | ne<4> = 1 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+
+  CompareVectors(pd, pg, zn, imm5, CMPNE_p_p_zi);
+}
+
+// SVEIntCompareUnsignedImm.
+
+void Assembler::cmphi(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      unsigned imm7) {
+  // CMPHI <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
+  //  0010 0100 ..1. .... ..0. .... ...1 ....
+  //  size<23:22> | imm7<20:14> | lt<13> = 0 | Pg<12:10> | Zn<9:5> | ne<4> = 1 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+
+  CompareVectors(pd, pg, zn, imm7, CMPHI_p_p_zi);
+}
+
+void Assembler::cmphs(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      unsigned imm7) {
+  // CMPHS <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
+  //  0010 0100 ..1. .... ..0. .... ...0 ....
+  //  size<23:22> | imm7<20:14> | lt<13> = 0 | Pg<12:10> | Zn<9:5> | ne<4> = 0 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+
+  CompareVectors(pd, pg, zn, imm7, CMPHS_p_p_zi);
+}
+
+void Assembler::cmplo(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      unsigned imm7) {
+  // CMPLO <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
+  //  0010 0100 ..1. .... ..1. .... ...0 ....
+  //  size<23:22> | imm7<20:14> | lt<13> = 1 | Pg<12:10> | Zn<9:5> | ne<4> = 0 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+
+  CompareVectors(pd, pg, zn, imm7, CMPLO_p_p_zi);
+}
+
+void Assembler::cmpls(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      unsigned imm7) {
+  // CMPLS <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
+  //  0010 0100 ..1. .... ..1. .... ...1 ....
+  //  size<23:22> | imm7<20:14> | lt<13> = 1 | Pg<12:10> | Zn<9:5> | ne<4> = 1 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+
+  CompareVectors(pd, pg, zn, imm7, CMPLS_p_p_zi);
+}
+
+// SVEIntCompareVectors.
+
+// This prototype maps to 2 instruction encodings:
+//  CMPEQ_p_p_zw
+//  CMPEQ_p_p_zz
+void Assembler::cmpeq(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+  SVEIntCompareVectorsOp op = CMPEQ_p_p_zz;
+  if (!AreSameLaneSize(zn, zm)) {
+    VIXL_ASSERT(zm.IsLaneSizeD());
+    op = CMPEQ_p_p_zw;
+  }
+  CompareVectors(pd, pg, zn, zm, op);
+}
+
+// This prototype maps to 2 instruction encodings:
+//  CMPGE_p_p_zw
+//  CMPGE_p_p_zz
+void Assembler::cmpge(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+  SVEIntCompareVectorsOp op = CMPGE_p_p_zz;
+  if (!AreSameLaneSize(zn, zm)) {
+    VIXL_ASSERT(zm.IsLaneSizeD());
+    op = CMPGE_p_p_zw;
+  }
+  CompareVectors(pd, pg, zn, zm, op);
+}
+
+// This prototype maps to 2 instruction encodings:
+//  CMPGT_p_p_zw
+//  CMPGT_p_p_zz
+void Assembler::cmpgt(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+  SVEIntCompareVectorsOp op = CMPGT_p_p_zz;
+  if (!AreSameLaneSize(zn, zm)) {
+    VIXL_ASSERT(zm.IsLaneSizeD());
+    op = CMPGT_p_p_zw;
+  }
+  CompareVectors(pd, pg, zn, zm, op);
+}
+
+// This prototype maps to 2 instruction encodings:
+//  CMPHI_p_p_zw
+//  CMPHI_p_p_zz
+void Assembler::cmphi(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+  SVEIntCompareVectorsOp op = CMPHI_p_p_zz;
+  if (!AreSameLaneSize(zn, zm)) {
+    VIXL_ASSERT(zm.IsLaneSizeD());
+    op = CMPHI_p_p_zw;
+  }
+  CompareVectors(pd, pg, zn, zm, op);
+}
+
+// This prototype maps to 2 instruction encodings:
+//  CMPHS_p_p_zw
+//  CMPHS_p_p_zz
+void Assembler::cmphs(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+  SVEIntCompareVectorsOp op = CMPHS_p_p_zz;
+  if (!AreSameLaneSize(zn, zm)) {
+    VIXL_ASSERT(zm.IsLaneSizeD());
+    op = CMPHS_p_p_zw;
+  }
+  CompareVectors(pd, pg, zn, zm, op);
+}
+
+void Assembler::cmple(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+  if (AreSameLaneSize(zn, zm)) {
+    cmpge(pd, pg, zm, zn);
+    return;
+  }
+  VIXL_ASSERT(zm.IsLaneSizeD());
+  VIXL_ASSERT(!zn.IsLaneSizeD());
+
+  CompareVectors(pd, pg, zn, zm, CMPLE_p_p_zw);
+}
+
+void Assembler::cmplo(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+  if (AreSameLaneSize(zn, zm)) {
+    cmphi(pd, pg, zm, zn);
+    return;
+  }
+  VIXL_ASSERT(zm.IsLaneSizeD());
+  VIXL_ASSERT(!zn.IsLaneSizeD());
+
+  CompareVectors(pd, pg, zn, zm, CMPLO_p_p_zw);
+}
+
+void Assembler::cmpls(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+  if (AreSameLaneSize(zn, zm)) {
+    cmphs(pd, pg, zm, zn);
+    return;
+  }
+  VIXL_ASSERT(zm.IsLaneSizeD());
+  VIXL_ASSERT(!zn.IsLaneSizeD());
+
+  CompareVectors(pd, pg, zn, zm, CMPLS_p_p_zw);
+}
+
+void Assembler::cmplt(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+  if (AreSameLaneSize(zn, zm)) {
+    cmpgt(pd, pg, zm, zn);
+    return;
+  }
+  VIXL_ASSERT(zm.IsLaneSizeD());
+  VIXL_ASSERT(!zn.IsLaneSizeD());
+
+  CompareVectors(pd, pg, zn, zm, CMPLT_p_p_zw);
+}
+
+// This prototype maps to 2 instruction encodings:
+//  CMPNE_p_p_zw
+//  CMPNE_p_p_zz
+void Assembler::cmpne(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const ZRegister& zn,
+                      const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, zn));
+  SVEIntCompareVectorsOp op = CMPNE_p_p_zz;
+  if (!AreSameLaneSize(zn, zm)) {
+    VIXL_ASSERT(zm.IsLaneSizeD());
+    op = CMPNE_p_p_zw;
+  }
+  CompareVectors(pd, pg, zn, zm, op);
+}
+
+// SVEIntMiscUnpredicated.
+
+void Assembler::fexpa(const ZRegister& zd, const ZRegister& zn) {
+  // FEXPA <Zd>.<T>, <Zn>.<T>
+  //  0000 0100 ..10 0000 1011 10.. .... ....
+  //  size<23:22> | opc<20:16> = 00000 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FEXPA_z_z | SVESize(zd) | Rd(zd) | Rn(zn));
+}
+
+void Assembler::ftssel(const ZRegister& zd,
+                       const ZRegister& zn,
+                       const ZRegister& zm) {
+  // FTSSEL <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0100 ..1. .... 1011 00.. .... ....
+  //  size<23:22> | Zm<20:16> | op<10> = 0 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FTSSEL_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::movprfx(const ZRegister& zd, const ZRegister& zn) {
+  // MOVPRFX <Zd>, <Zn>
+  //  0000 0100 0010 0000 1011 11.. .... ....
+  //  opc<23:22> = 00 | opc2<20:16> = 00000 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(MOVPRFX_z_z | Rd(zd) | Rn(zn));
+}
+
+// SVEIntMulAddPredicated.
+
+void Assembler::mad(const ZRegister& zdn,
+                    const PRegisterM& pg,
+                    const ZRegister& zm,
+                    const ZRegister& za) {
+  // MAD <Zdn>.<T>, <Pg>/M, <Zm>.<T>, <Za>.<T>
+  //  0000 0100 ..0. .... 110. .... .... ....
+  //  size<23:22> | Zm<20:16> | op<13> = 0 | Pg<12:10> | Za<9:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
+
+  Emit(MAD_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rm(zm) | Rn(za));
+}
+
+void Assembler::mla(const ZRegister& zda,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // MLA <Zda>.<T>, <Pg>/M, <Zn>.<T>, <Zm>.<T>
+  //  0000 0100 ..0. .... 010. .... .... ....
+  //  size<23:22> | Zm<20:16> | op<13> = 0 | Pg<12:10> | Zn<9:5> | Zda<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
+
+  Emit(MLA_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::mls(const ZRegister& zda,
+                    const PRegisterM& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // MLS <Zda>.<T>, <Pg>/M, <Zn>.<T>, <Zm>.<T>
+  //  0000 0100 ..0. .... 011. .... .... ....
+  //  size<23:22> | Zm<20:16> | op<13> = 1 | Pg<12:10> | Zn<9:5> | Zda<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zda, zn, zm));
+
+  Emit(MLS_z_p_zzz | SVESize(zda) | Rd(zda) | PgLow8(pg) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::msb(const ZRegister& zdn,
+                    const PRegisterM& pg,
+                    const ZRegister& zm,
+                    const ZRegister& za) {
+  // MSB <Zdn>.<T>, <Pg>/M, <Zm>.<T>, <Za>.<T>
+  //  0000 0100 ..0. .... 111. .... .... ....
+  //  size<23:22> | Zm<20:16> | op<13> = 1 | Pg<12:10> | Za<9:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zdn, zm, za));
+
+  Emit(MSB_z_p_zzz | SVESize(zdn) | Rd(zdn) | PgLow8(pg) | Rm(zm) | Rn(za));
+}
+
+// SVEIntMulAddUnpredicated.
+
+void Assembler::sdot(const ZRegister& zda,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zda.IsLaneSizeS() || zda.IsLaneSizeD());
+  VIXL_ASSERT(zda.GetLaneSizeInBytes() == (zn.GetLaneSizeInBytes() * 4));
+  VIXL_ASSERT(AreSameLaneSize(zm, zn));
+
+  Emit(SDOT_z_zzz | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::udot(const ZRegister& zda,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zda.IsLaneSizeS() || zda.IsLaneSizeD());
+  VIXL_ASSERT(zda.GetLaneSizeInBytes() == (zn.GetLaneSizeInBytes() * 4));
+  VIXL_ASSERT(AreSameLaneSize(zm, zn));
+
+  Emit(UDOT_z_zzz | SVESize(zda) | Rd(zda) | Rn(zn) | Rm(zm));
+}
+
+// SVEIntReduction.
+
+void Assembler::andv(const VRegister& vd,
+                     const PRegister& pg,
+                     const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+
+  Emit(ANDV_r_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::eorv(const VRegister& vd,
+                     const PRegister& pg,
+                     const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+
+  Emit(EORV_r_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::movprfx(const ZRegister& zd,
+                        const PRegister& pg,
+                        const ZRegister& zn) {
+  // MOVPRFX <Zd>.<T>, <Pg>/<ZM>, <Zn>.<T>
+  //  0000 0100 ..01 000. 001. .... .... ....
+  //  size<23:22> | opc<18:17> = 00 | M<16> | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(pg.IsMerging() || pg.IsZeroing());
+  VIXL_ASSERT(!pg.HasLaneSize());
+
+  Instr m = pg.IsMerging() ? 0x00010000 : 0x00000000;
+  Emit(MOVPRFX_z_p_z | SVESize(zd) | m | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::orv(const VRegister& vd,
+                    const PRegister& pg,
+                    const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+
+  Emit(ORV_r_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::saddv(const VRegister& dd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zn.GetLaneSizeInBytes() != kDRegSizeInBytes);
+
+  Emit(SADDV_r_p_z | SVESize(zn) | Rd(dd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::smaxv(const VRegister& vd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+
+  Emit(SMAXV_r_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::sminv(const VRegister& vd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+
+  Emit(SMINV_r_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::uaddv(const VRegister& dd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(UADDV_r_p_z | SVESize(zn) | Rd(dd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::umaxv(const VRegister& vd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+
+  Emit(UMAXV_r_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::uminv(const VRegister& vd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+
+  Emit(UMINV_r_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+// SVEIntUnaryArithmeticPredicated.
+
+void Assembler::abs(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn) {
+  // ABS <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 0110 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 110 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(ABS_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::cls(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn) {
+  // CLS <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 1000 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 000 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(CLS_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::clz(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn) {
+  // CLZ <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 1001 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 001 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(CLZ_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::cnot(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // CNOT <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 1011 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 011 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(CNOT_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::cnt(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn) {
+  // CNT <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 1010 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 010 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(CNT_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fabs(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // FABS <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 1100 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 100 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FABS_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::fneg(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // FNEG <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 1101 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 101 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Emit(FNEG_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::neg(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn) {
+  // NEG <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 0111 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 111 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(NEG_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::not_(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // NOT <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 1110 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 110 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(NOT_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::sxtb(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // SXTB <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 0000 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 000 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() > kBRegSizeInBytes);
+
+  Emit(SXTB_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::sxth(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // SXTH <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 0010 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 010 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() > kHRegSizeInBytes);
+
+  Emit(SXTH_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::sxtw(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // SXTW <Zd>.D, <Pg>/M, <Zn>.D
+  //  0000 0100 ..01 0100 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 100 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() > kSRegSizeInBytes);
+
+  Emit(SXTW_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::uxtb(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // UXTB <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 0001 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 001 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() > kBRegSizeInBytes);
+
+  Emit(UXTB_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::uxth(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // UXTH <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0100 ..01 0011 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 011 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() > kHRegSizeInBytes);
+
+  Emit(UXTH_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::uxtw(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // UXTW <Zd>.D, <Pg>/M, <Zn>.D
+  //  0000 0100 ..01 0101 101. .... .... ....
+  //  size<23:22> | opc<18:16> = 101 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() > kSRegSizeInBytes);
+
+  Emit(UXTW_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+// SVEIntWideImmPredicated.
+
+void Assembler::cpy(const ZRegister& zd,
+                    const PRegister& pg,
+                    int imm8,
+                    int shift) {
+  // CPY <Zd>.<T>, <Pg>/<ZM>, #<imm>{, <shift>}
+  //  0000 0101 ..01 .... 0... .... .... ....
+  //  size<23:22> | Pg<19:16> | M<14> | sh<13> | imm8<12:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pg.IsMerging() || pg.IsZeroing());
+
+  ResolveSVEImm8Shift(&imm8, &shift);
+
+  Instr sh = (shift > 0) ? (1 << 13) : 0;
+  Instr m = pg.IsMerging() ? (1 << 14) : 0;
+  Emit(CPY_z_p_i | m | sh | SVESize(zd) | Rd(zd) | Pg<19, 16>(pg) |
+       ImmField<12, 5>(imm8));
+}
+
+void Assembler::fcpy(const ZRegister& zd, const PRegisterM& pg, double imm) {
+  // FCPY <Zd>.<T>, <Pg>/M, #<const>
+  //  0000 0101 ..01 .... 110. .... .... ....
+  //  size<23:22> | Pg<19:16> | imm8<12:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Instr imm_field = ImmUnsignedField<12, 5>(FP64ToImm8(imm));
+  Emit(FCPY_z_p_i | SVESize(zd) | Rd(zd) | Pg<19, 16>(pg) | imm_field);
+}
+
+// SVEIntAddSubtractImmUnpredicated.
+
+void Assembler::SVEIntAddSubtractImmUnpredicatedHelper(
+    SVEIntAddSubtractImm_UnpredicatedOp op,
+    const ZRegister& zd,
+    int imm8,
+    int shift) {
+  if (shift < 0) {
+    VIXL_ASSERT(shift == -1);
+    // Derive the shift amount from the immediate.
+    if (IsUint8(imm8)) {
+      shift = 0;
+    } else if (IsUint16(imm8) && ((imm8 % 256) == 0)) {
+      imm8 /= 256;
+      shift = 8;
+    }
+  }
+
+  VIXL_ASSERT(IsUint8(imm8));
+  VIXL_ASSERT((shift == 0) || (shift == 8));
+
+  Instr shift_bit = (shift > 0) ? (1 << 13) : 0;
+  Emit(op | SVESize(zd) | Rd(zd) | shift_bit | ImmUnsignedField<12, 5>(imm8));
+}
+
+void Assembler::add(const ZRegister& zd,
+                    const ZRegister& zn,
+                    int imm8,
+                    int shift) {
+  // ADD <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
+  //  0010 0101 ..10 0000 11.. .... .... ....
+  //  size<23:22> | opc<18:16> = 000 | sh<13> | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  SVEIntAddSubtractImmUnpredicatedHelper(ADD_z_zi, zd, imm8, shift);
+}
+
+void Assembler::dup(const ZRegister& zd, int imm8, int shift) {
+  // DUP <Zd>.<T>, #<imm>{, <shift>}
+  //  0010 0101 ..11 1000 11.. .... .... ....
+  //  size<23:22> | opc<18:17> = 00 | sh<13> | imm8<12:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  ResolveSVEImm8Shift(&imm8, &shift);
+  VIXL_ASSERT((shift < 8) || !zd.IsLaneSizeB());
+
+  Instr shift_bit = (shift > 0) ? (1 << 13) : 0;
+  Emit(DUP_z_i | SVESize(zd) | Rd(zd) | shift_bit | ImmField<12, 5>(imm8));
+}
+
+void Assembler::fdup(const ZRegister& zd, double imm) {
+  // FDUP <Zd>.<T>, #<const>
+  //  0010 0101 ..11 1001 110. .... .... ....
+  //  size<23:22> | opc<18:17> = 00 | o2<13> = 0 | imm8<12:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() != kBRegSizeInBytes);
+
+  Instr encoded_imm = FP64ToImm8(imm) << 5;
+  Emit(FDUP_z_i | SVESize(zd) | encoded_imm | Rd(zd));
+}
+
+void Assembler::mul(const ZRegister& zd, const ZRegister& zn, int imm8) {
+  // MUL <Zdn>.<T>, <Zdn>.<T>, #<imm>
+  //  0010 0101 ..11 0000 110. .... .... ....
+  //  size<23:22> | opc<18:16> = 000 | o2<13> = 0 | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(MUL_z_zi | SVESize(zd) | Rd(zd) | ImmField<12, 5>(imm8));
+}
+
+void Assembler::smax(const ZRegister& zd, const ZRegister& zn, int imm8) {
+  // SMAX <Zdn>.<T>, <Zdn>.<T>, #<imm>
+  //  0010 0101 ..10 1000 110. .... .... ....
+  //  size<23:22> | opc<18:16> = 000 | o2<13> = 0 | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(SMAX_z_zi | SVESize(zd) | Rd(zd) | ImmField<12, 5>(imm8));
+}
+
+void Assembler::smin(const ZRegister& zd, const ZRegister& zn, int imm8) {
+  // SMIN <Zdn>.<T>, <Zdn>.<T>, #<imm>
+  //  0010 0101 ..10 1010 110. .... .... ....
+  //  size<23:22> | opc<18:16> = 010 | o2<13> = 0 | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(SMIN_z_zi | SVESize(zd) | Rd(zd) | ImmField<12, 5>(imm8));
+}
+
+void Assembler::sqadd(const ZRegister& zd,
+                      const ZRegister& zn,
+                      int imm8,
+                      int shift) {
+  // SQADD <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
+  //  0010 0101 ..10 0100 11.. .... .... ....
+  //  size<23:22> | opc<18:16> = 100 | sh<13> | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  SVEIntAddSubtractImmUnpredicatedHelper(SQADD_z_zi, zd, imm8, shift);
+}
+
+void Assembler::sqsub(const ZRegister& zd,
+                      const ZRegister& zn,
+                      int imm8,
+                      int shift) {
+  // SQSUB <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
+  //  0010 0101 ..10 0110 11.. .... .... ....
+  //  size<23:22> | opc<18:16> = 110 | sh<13> | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  SVEIntAddSubtractImmUnpredicatedHelper(SQSUB_z_zi, zd, imm8, shift);
+}
+
+void Assembler::sub(const ZRegister& zd,
+                    const ZRegister& zn,
+                    int imm8,
+                    int shift) {
+  // SUB <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
+  //  0010 0101 ..10 0001 11.. .... .... ....
+  //  size<23:22> | opc<18:16> = 001 | sh<13> | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  SVEIntAddSubtractImmUnpredicatedHelper(SUB_z_zi, zd, imm8, shift);
+}
+
+void Assembler::subr(const ZRegister& zd,
+                     const ZRegister& zn,
+                     int imm8,
+                     int shift) {
+  // SUBR <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
+  //  0010 0101 ..10 0011 11.. .... .... ....
+  //  size<23:22> | opc<18:16> = 011 | sh<13> | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  SVEIntAddSubtractImmUnpredicatedHelper(SUBR_z_zi, zd, imm8, shift);
+}
+
+void Assembler::umax(const ZRegister& zd, const ZRegister& zn, int imm8) {
+  // UMAX <Zdn>.<T>, <Zdn>.<T>, #<imm>
+  //  0010 0101 ..10 1001 110. .... .... ....
+  //  size<23:22> | opc<18:16> = 001 | o2<13> = 0 | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(UMAX_z_zi | SVESize(zd) | Rd(zd) | ImmUnsignedField<12, 5>(imm8));
+}
+
+void Assembler::umin(const ZRegister& zd, const ZRegister& zn, int imm8) {
+  // UMIN <Zdn>.<T>, <Zdn>.<T>, #<imm>
+  //  0010 0101 ..10 1011 110. .... .... ....
+  //  size<23:22> | opc<18:16> = 011 | o2<13> = 0 | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(UMIN_z_zi | SVESize(zd) | Rd(zd) | ImmUnsignedField<12, 5>(imm8));
+}
+
+void Assembler::uqadd(const ZRegister& zd,
+                      const ZRegister& zn,
+                      int imm8,
+                      int shift) {
+  // UQADD <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
+  //  0010 0101 ..10 0101 11.. .... .... ....
+  //  size<23:22> | opc<18:16> = 101 | sh<13> | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  SVEIntAddSubtractImmUnpredicatedHelper(UQADD_z_zi, zd, imm8, shift);
+}
+
+void Assembler::uqsub(const ZRegister& zd,
+                      const ZRegister& zn,
+                      int imm8,
+                      int shift) {
+  // UQSUB <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
+  //  0010 0101 ..10 0111 11.. .... .... ....
+  //  size<23:22> | opc<18:16> = 111 | sh<13> | imm8<12:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  SVEIntAddSubtractImmUnpredicatedHelper(UQSUB_z_zi, zd, imm8, shift);
+}
+
+// SVEMemLoad.
+
+void Assembler::SVELdSt1Helper(unsigned msize_in_bytes_log2,
+                               const ZRegister& zt,
+                               const PRegister& pg,
+                               const SVEMemOperand& addr,
+                               bool is_signed,
+                               Instr op) {
+  VIXL_ASSERT(addr.IsContiguous());
+
+  Instr mem_op = SVEMemOperandHelper(msize_in_bytes_log2, 1, addr);
+  Instr dtype =
+      SVEDtype(msize_in_bytes_log2, zt.GetLaneSizeInBytesLog2(), is_signed);
+  Emit(op | mem_op | dtype | Rt(zt) | PgLow8(pg));
+}
+
+void Assembler::SVELdSt234Helper(int num_regs,
+                                 const ZRegister& zt1,
+                                 const PRegister& pg,
+                                 const SVEMemOperand& addr,
+                                 Instr op) {
+  VIXL_ASSERT((num_regs >= 2) && (num_regs <= 4));
+
+  unsigned msize_in_bytes_log2 = zt1.GetLaneSizeInBytesLog2();
+  Instr num = (num_regs - 1) << 21;
+  Instr msz = msize_in_bytes_log2 << 23;
+  Instr mem_op = SVEMemOperandHelper(msize_in_bytes_log2, num_regs, addr);
+  Emit(op | mem_op | msz | num | Rt(zt1) | PgLow8(pg));
+}
+
+void Assembler::SVELd1Helper(unsigned msize_in_bytes_log2,
+                             const ZRegister& zt,
+                             const PRegisterZ& pg,
+                             const SVEMemOperand& addr,
+                             bool is_signed) {
+  VIXL_ASSERT(zt.GetLaneSizeInBytesLog2() >= msize_in_bytes_log2);
+  if (is_signed) {
+    // Sign-extension is only possible when the vector elements are larger than
+    // the elements in memory.
+    VIXL_ASSERT(zt.GetLaneSizeInBytesLog2() != msize_in_bytes_log2);
+  }
+
+  if (addr.IsScatterGather()) {
+    bool is_load = true;
+    bool is_ff = false;
+    SVEScatterGatherHelper(msize_in_bytes_log2,
+                           zt,
+                           pg,
+                           addr,
+                           is_load,
+                           is_signed,
+                           is_ff);
+    return;
+  }
+
+  Instr op = 0xffffffff;
+  if (addr.IsScalarPlusImmediate()) {
+    op = SVEContiguousLoad_ScalarPlusImmFixed;
+  } else if (addr.IsScalarPlusScalar()) {
+    // Rm must not be xzr.
+    VIXL_ASSERT(!addr.GetScalarOffset().IsZero());
+    op = SVEContiguousLoad_ScalarPlusScalarFixed;
+  } else {
+    VIXL_UNIMPLEMENTED();
+  }
+  SVELdSt1Helper(msize_in_bytes_log2, zt, pg, addr, is_signed, op);
+}
+
+void Assembler::SVELdff1Helper(unsigned msize_in_bytes_log2,
+                               const ZRegister& zt,
+                               const PRegisterZ& pg,
+                               const SVEMemOperand& addr,
+                               bool is_signed) {
+  VIXL_ASSERT(zt.GetLaneSizeInBytesLog2() >= msize_in_bytes_log2);
+  if (is_signed) {
+    // Sign-extension is only possible when the vector elements are larger than
+    // the elements in memory.
+    VIXL_ASSERT(zt.GetLaneSizeInBytesLog2() != msize_in_bytes_log2);
+  }
+
+  if (addr.IsScatterGather()) {
+    bool is_load = true;
+    bool is_ff = true;
+    SVEScatterGatherHelper(msize_in_bytes_log2,
+                           zt,
+                           pg,
+                           addr,
+                           is_load,
+                           is_signed,
+                           is_ff);
+    return;
+  }
+
+  if (addr.IsPlainScalar()) {
+    // SVEMemOperand(x0) is treated as a scalar-plus-immediate form ([x0, #0]).
+    // In these instructions, we want to treat it as [x0, xzr].
+    SVEMemOperand addr_scalar_plus_scalar(addr.GetScalarBase(), xzr);
+    // Guard against infinite recursion.
+    VIXL_ASSERT(!addr_scalar_plus_scalar.IsPlainScalar());
+    SVELdff1Helper(msize_in_bytes_log2,
+                   zt,
+                   pg,
+                   addr_scalar_plus_scalar,
+                   is_signed);
+    return;
+  }
+
+  Instr op = 0xffffffff;
+  if (addr.IsScalarPlusScalar()) {
+    op = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed;
+  } else {
+    VIXL_UNIMPLEMENTED();
+  }
+  SVELdSt1Helper(msize_in_bytes_log2, zt, pg, addr, is_signed, op);
+}
+
+void Assembler::SVEScatterGatherHelper(unsigned msize_in_bytes_log2,
+                                       const ZRegister& zt,
+                                       const PRegister& pg,
+                                       const SVEMemOperand& addr,
+                                       bool is_load,
+                                       bool is_signed,
+                                       bool is_first_fault) {
+  VIXL_ASSERT(addr.IsScatterGather());
+  VIXL_ASSERT(zt.IsLaneSizeS() || zt.IsLaneSizeD());
+  VIXL_ASSERT(is_load || !is_first_fault);
+  VIXL_ASSERT(is_load || !is_signed);
+
+  Instr op = 0xffffffff;
+  if (addr.IsVectorPlusImmediate()) {
+    VIXL_ASSERT(AreSameLaneSize(zt, addr.GetVectorBase()));
+    if (is_load) {
+      if (zt.IsLaneSizeS()) {
+        op = SVE32BitGatherLoad_VectorPlusImmFixed;
+      } else {
+        op = SVE64BitGatherLoad_VectorPlusImmFixed;
+      }
+    } else {
+      if (zt.IsLaneSizeS()) {
+        op = SVE32BitScatterStore_VectorPlusImmFixed;
+      } else {
+        op = SVE64BitScatterStore_VectorPlusImmFixed;
+      }
+    }
+  } else {
+    VIXL_ASSERT(addr.IsScalarPlusVector());
+    VIXL_ASSERT(AreSameLaneSize(zt, addr.GetVectorOffset()));
+    SVEOffsetModifier mod = addr.GetOffsetModifier();
+    if (zt.IsLaneSizeS()) {
+      VIXL_ASSERT((mod == SVE_UXTW) || (mod == SVE_SXTW));
+      unsigned shift_amount = addr.GetShiftAmount();
+      if (shift_amount == 0) {
+        if (is_load) {
+          op = SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed;
+        } else {
+          op = SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsetsFixed;
+        }
+      } else if (shift_amount == 1) {
+        VIXL_ASSERT(msize_in_bytes_log2 == kHRegSizeInBytesLog2);
+        if (is_load) {
+          op = SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsetsFixed;
+        } else {
+          op = SVE32BitScatterStore_ScalarPlus32BitScaledOffsetsFixed;
+        }
+      } else {
+        VIXL_ASSERT(shift_amount == 2);
+        VIXL_ASSERT(msize_in_bytes_log2 == kSRegSizeInBytesLog2);
+        if (is_load) {
+          op = SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsetsFixed;
+        } else {
+          op = SVE32BitScatterStore_ScalarPlus32BitScaledOffsetsFixed;
+        }
+      }
+    } else if (zt.IsLaneSizeD()) {
+      switch (mod) {
+        case NO_SVE_OFFSET_MODIFIER:
+          if (is_load) {
+            op = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed;
+          } else {
+            op = SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsetsFixed;
+          }
+          break;
+        case SVE_LSL:
+          if (is_load) {
+            op = SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed;
+          } else {
+            op = SVE64BitScatterStore_ScalarPlus64BitScaledOffsetsFixed;
+          }
+          break;
+        case SVE_UXTW:
+        case SVE_SXTW: {
+          unsigned shift_amount = addr.GetShiftAmount();
+          if (shift_amount == 0) {
+            if (is_load) {
+              op =
+                  SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed;
+            } else {
+              op =
+                  SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsetsFixed;
+            }
+          } else {
+            VIXL_ASSERT(shift_amount == msize_in_bytes_log2);
+            if (is_load) {
+              op = SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed;
+            } else {
+              op =
+                  SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsetsFixed;
+            }
+          }
+          break;
+        }
+        default:
+          VIXL_UNIMPLEMENTED();
+      }
+    }
+  }
+
+  Instr mem_op = SVEMemOperandHelper(msize_in_bytes_log2, 1, addr, is_load);
+  Instr msz = ImmUnsignedField<24, 23>(msize_in_bytes_log2);
+  Instr u = (!is_load || is_signed) ? 0 : (1 << 14);
+  Instr ff = is_first_fault ? (1 << 13) : 0;
+  Emit(op | mem_op | msz | u | ff | Rt(zt) | PgLow8(pg));
+}
+
+void Assembler::SVELd234Helper(int num_regs,
+                               const ZRegister& zt1,
+                               const PRegisterZ& pg,
+                               const SVEMemOperand& addr) {
+  if (addr.IsScalarPlusScalar()) {
+    // Rm must not be xzr.
+    VIXL_ASSERT(!addr.GetScalarOffset().IsZero());
+  }
+
+  Instr op;
+  if (addr.IsScalarPlusImmediate()) {
+    op = SVELoadMultipleStructures_ScalarPlusImmFixed;
+  } else if (addr.IsScalarPlusScalar()) {
+    op = SVELoadMultipleStructures_ScalarPlusScalarFixed;
+  } else {
+    // These instructions don't support any other addressing modes.
+    VIXL_ABORT();
+  }
+  SVELdSt234Helper(num_regs, zt1, pg, addr, op);
+}
+
+// SVEMemContiguousLoad.
+
+#define VIXL_DEFINE_LD1(MSZ, LANE_SIZE)                                  \
+  void Assembler::ld1##MSZ(const ZRegister& zt,                          \
+                           const PRegisterZ& pg,                         \
+                           const SVEMemOperand& addr) {                  \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));                              \
+    SVELd1Helper(k##LANE_SIZE##RegSizeInBytesLog2, zt, pg, addr, false); \
+  }
+#define VIXL_DEFINE_LD2(MSZ, LANE_SIZE)                 \
+  void Assembler::ld2##MSZ(const ZRegister& zt1,        \
+                           const ZRegister& zt2,        \
+                           const PRegisterZ& pg,        \
+                           const SVEMemOperand& addr) { \
+    USE(zt2);                                           \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));             \
+    VIXL_ASSERT(AreConsecutive(zt1, zt2));              \
+    VIXL_ASSERT(AreSameFormat(zt1, zt2));               \
+    VIXL_ASSERT(zt1.IsLaneSize##LANE_SIZE());           \
+    SVELd234Helper(2, zt1, pg, addr);                   \
+  }
+#define VIXL_DEFINE_LD3(MSZ, LANE_SIZE)                 \
+  void Assembler::ld3##MSZ(const ZRegister& zt1,        \
+                           const ZRegister& zt2,        \
+                           const ZRegister& zt3,        \
+                           const PRegisterZ& pg,        \
+                           const SVEMemOperand& addr) { \
+    USE(zt2, zt3);                                      \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));             \
+    VIXL_ASSERT(AreConsecutive(zt1, zt2, zt3));         \
+    VIXL_ASSERT(AreSameFormat(zt1, zt2, zt3));          \
+    VIXL_ASSERT(zt1.IsLaneSize##LANE_SIZE());           \
+    SVELd234Helper(3, zt1, pg, addr);                   \
+  }
+#define VIXL_DEFINE_LD4(MSZ, LANE_SIZE)                 \
+  void Assembler::ld4##MSZ(const ZRegister& zt1,        \
+                           const ZRegister& zt2,        \
+                           const ZRegister& zt3,        \
+                           const ZRegister& zt4,        \
+                           const PRegisterZ& pg,        \
+                           const SVEMemOperand& addr) { \
+    USE(zt2, zt3, zt4);                                 \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));             \
+    VIXL_ASSERT(AreConsecutive(zt1, zt2, zt3, zt4));    \
+    VIXL_ASSERT(AreSameFormat(zt1, zt2, zt3, zt4));     \
+    VIXL_ASSERT(zt1.IsLaneSize##LANE_SIZE());           \
+    SVELd234Helper(4, zt1, pg, addr);                   \
+  }
+
+VIXL_SVE_LOAD_STORE_VARIANT_LIST(VIXL_DEFINE_LD1)
+VIXL_SVE_LOAD_STORE_VARIANT_LIST(VIXL_DEFINE_LD2)
+VIXL_SVE_LOAD_STORE_VARIANT_LIST(VIXL_DEFINE_LD3)
+VIXL_SVE_LOAD_STORE_VARIANT_LIST(VIXL_DEFINE_LD4)
+
+#define VIXL_DEFINE_LD1S(MSZ, LANE_SIZE)                                \
+  void Assembler::ld1s##MSZ(const ZRegister& zt,                        \
+                            const PRegisterZ& pg,                       \
+                            const SVEMemOperand& addr) {                \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));                             \
+    SVELd1Helper(k##LANE_SIZE##RegSizeInBytesLog2, zt, pg, addr, true); \
+  }
+VIXL_SVE_LOAD_STORE_SIGNED_VARIANT_LIST(VIXL_DEFINE_LD1S)
+
+// SVEMem32BitGatherAndUnsizedContiguous.
+
+void Assembler::SVELd1BroadcastHelper(unsigned msize_in_bytes_log2,
+                                      const ZRegister& zt,
+                                      const PRegisterZ& pg,
+                                      const SVEMemOperand& addr,
+                                      bool is_signed) {
+  VIXL_ASSERT(addr.IsScalarPlusImmediate());
+  VIXL_ASSERT(zt.GetLaneSizeInBytesLog2() >= msize_in_bytes_log2);
+  if (is_signed) {
+    // Sign-extension is only possible when the vector elements are larger than
+    // the elements in memory.
+    VIXL_ASSERT(zt.GetLaneSizeInBytesLog2() != msize_in_bytes_log2);
+  }
+
+  int64_t imm = addr.GetImmediateOffset();
+  int divisor = 1 << msize_in_bytes_log2;
+  VIXL_ASSERT(imm % divisor == 0);
+  Instr dtype = SVEDtypeSplit(msize_in_bytes_log2,
+                              zt.GetLaneSizeInBytesLog2(),
+                              is_signed);
+
+  Emit(SVELoadAndBroadcastElementFixed | dtype | RnSP(addr.GetScalarBase()) |
+       ImmUnsignedField<21, 16>(imm / divisor) | Rt(zt) | PgLow8(pg));
+}
+
+// This prototype maps to 4 instruction encodings:
+//  LD1RB_z_p_bi_u16
+//  LD1RB_z_p_bi_u32
+//  LD1RB_z_p_bi_u64
+//  LD1RB_z_p_bi_u8
+void Assembler::ld1rb(const ZRegister& zt,
+                      const PRegisterZ& pg,
+                      const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  SVELd1BroadcastHelper(kBRegSizeInBytesLog2, zt, pg, addr, false);
+}
+
+// This prototype maps to 3 instruction encodings:
+//  LD1RH_z_p_bi_u16
+//  LD1RH_z_p_bi_u32
+//  LD1RH_z_p_bi_u64
+void Assembler::ld1rh(const ZRegister& zt,
+                      const PRegisterZ& pg,
+                      const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  SVELd1BroadcastHelper(kHRegSizeInBytesLog2, zt, pg, addr, false);
+}
+
+// This prototype maps to 2 instruction encodings:
+//  LD1RW_z_p_bi_u32
+//  LD1RW_z_p_bi_u64
+void Assembler::ld1rw(const ZRegister& zt,
+                      const PRegisterZ& pg,
+                      const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  SVELd1BroadcastHelper(kSRegSizeInBytesLog2, zt, pg, addr, false);
+}
+
+void Assembler::ld1rd(const ZRegister& zt,
+                      const PRegisterZ& pg,
+                      const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  SVELd1BroadcastHelper(kDRegSizeInBytesLog2, zt, pg, addr, false);
+}
+
+// This prototype maps to 3 instruction encodings:
+//  LD1RSB_z_p_bi_s16
+//  LD1RSB_z_p_bi_s32
+//  LD1RSB_z_p_bi_s64
+void Assembler::ld1rsb(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  SVELd1BroadcastHelper(kBRegSizeInBytesLog2, zt, pg, addr, true);
+}
+
+// This prototype maps to 2 instruction encodings:
+//  LD1RSH_z_p_bi_s32
+//  LD1RSH_z_p_bi_s64
+void Assembler::ld1rsh(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  SVELd1BroadcastHelper(kHRegSizeInBytesLog2, zt, pg, addr, true);
+}
+
+void Assembler::ld1rsw(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  SVELd1BroadcastHelper(kWRegSizeInBytesLog2, zt, pg, addr, true);
+}
+
+void Assembler::ldr(const CPURegister& rt, const SVEMemOperand& addr) {
+  // LDR <Pt/Zt>, [<Xn|SP>{, #<imm>, MUL VL}]
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(rt.IsPRegister() || rt.IsZRegister());
+  VIXL_ASSERT(addr.IsPlainScalar() ||
+              (addr.IsScalarPlusImmediate() &&
+               (addr.GetOffsetModifier() == SVE_MUL_VL)));
+  int64_t imm9 = addr.GetImmediateOffset();
+  VIXL_ASSERT(IsInt9(imm9));
+  Instr imm9l = ExtractUnsignedBitfield32(2, 0, imm9) << 10;
+  Instr imm9h = ExtractUnsignedBitfield32(8, 3, imm9) << 16;
+
+  Instr op = LDR_z_bi;
+  if (rt.IsPRegister()) {
+    op = LDR_p_bi;
+  }
+  Emit(op | Rt(rt) | RnSP(addr.GetScalarBase()) | imm9h | imm9l);
+}
+
+// SVEMem64BitGather.
+
+// This prototype maps to 3 instruction encodings:
+//  LDFF1B_z_p_bz_d_64_unscaled
+//  LDFF1B_z_p_bz_d_x32_unscaled
+void Assembler::ldff1b(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const Register& xn,
+                       const ZRegister& zm) {
+  // LDFF1B { <Zt>.D }, <Pg>/Z, [<Xn|SP>, <Zm>.D]
+  //  1100 0100 010. .... 111. .... .... ....
+  //  msz<24:23> = 00 | Zm<20:16> | U<14> = 1 | ff<13> = 1 | Pg<12:10> | Rn<9:5>
+  //  | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1B_z_p_bz_d_64_unscaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
+}
+
+// This prototype maps to 2 instruction encodings:
+//  LDFF1B_z_p_ai_d
+//  LDFF1B_z_p_ai_s
+void Assembler::ldff1b(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const ZRegister& zn,
+                       int imm5) {
+  // LDFF1B { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
+  //  1100 0100 001. .... 111. .... .... ....
+  //  msz<24:23> = 00 | imm5<20:16> | U<14> = 1 | ff<13> = 1 | Pg<12:10> |
+  //  Zn<9:5> | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1B_z_p_ai_d | Rt(zt) | PgLow8(pg) | Rn(zn) | ImmField<20, 16>(imm5));
+}
+
+// This prototype maps to 4 instruction encodings:
+//  LDFF1D_z_p_bz_d_64_scaled
+//  LDFF1D_z_p_bz_d_64_unscaled
+//  LDFF1D_z_p_bz_d_x32_scaled
+//  LDFF1D_z_p_bz_d_x32_unscaled
+void Assembler::ldff1d(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const Register& xn,
+                       const ZRegister& zm) {
+  // LDFF1D { <Zt>.D }, <Pg>/Z, [<Xn|SP>, <Zm>.D, LSL #3]
+  //  1100 0101 111. .... 111. .... .... ....
+  //  msz<24:23> = 11 | Zm<20:16> | U<14> = 1 | ff<13> = 1 | Pg<12:10> | Rn<9:5>
+  //  | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1D_z_p_bz_d_64_scaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
+}
+
+void Assembler::ldff1d(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const ZRegister& zn,
+                       int imm5) {
+  // LDFF1D { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
+  //  1100 0101 101. .... 111. .... .... ....
+  //  msz<24:23> = 11 | imm5<20:16> | U<14> = 1 | ff<13> = 1 | Pg<12:10> |
+  //  Zn<9:5> | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1D_z_p_ai_d | Rt(zt) | PgLow8(pg) | Rn(zn) | ImmField<20, 16>(imm5));
+}
+
+// This prototype maps to 6 instruction encodings:
+//  LDFF1H_z_p_bz_d_64_scaled
+//  LDFF1H_z_p_bz_d_64_unscaled
+//  LDFF1H_z_p_bz_d_x32_scaled
+//  LDFF1H_z_p_bz_d_x32_unscaled
+void Assembler::ldff1h(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const Register& xn,
+                       const ZRegister& zm) {
+  // LDFF1H { <Zt>.D }, <Pg>/Z, [<Xn|SP>, <Zm>.D, LSL #1]
+  //  1100 0100 111. .... 111. .... .... ....
+  //  msz<24:23> = 01 | Zm<20:16> | U<14> = 1 | ff<13> = 1 | Pg<12:10> | Rn<9:5>
+  //  | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1H_z_p_bz_d_64_scaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
+}
+
+// This prototype maps to 2 instruction encodings:
+//  LDFF1H_z_p_ai_d
+//  LDFF1H_z_p_ai_s
+void Assembler::ldff1h(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const ZRegister& zn,
+                       int imm5) {
+  // LDFF1H { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
+  //  1100 0100 101. .... 111. .... .... ....
+  //  msz<24:23> = 01 | imm5<20:16> | U<14> = 1 | ff<13> = 1 | Pg<12:10> |
+  //  Zn<9:5> | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1H_z_p_ai_d | Rt(zt) | PgLow8(pg) | Rn(zn) | ImmField<20, 16>(imm5));
+}
+
+// This prototype maps to 3 instruction encodings:
+//  LDFF1SB_z_p_bz_d_64_unscaled
+//  LDFF1SB_z_p_bz_d_x32_unscaled
+void Assembler::ldff1sb(const ZRegister& zt,
+                        const PRegisterZ& pg,
+                        const Register& xn,
+                        const ZRegister& zm) {
+  // LDFF1SB { <Zt>.D }, <Pg>/Z, [<Xn|SP>, <Zm>.D]
+  //  1100 0100 010. .... 101. .... .... ....
+  //  msz<24:23> = 00 | Zm<20:16> | U<14> = 0 | ff<13> = 1 | Pg<12:10> | Rn<9:5>
+  //  | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1SB_z_p_bz_d_64_unscaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
+}
+
+// This prototype maps to 2 instruction encodings:
+//  LDFF1SB_z_p_ai_d
+//  LDFF1SB_z_p_ai_s
+void Assembler::ldff1sb(const ZRegister& zt,
+                        const PRegisterZ& pg,
+                        const ZRegister& zn,
+                        int imm5) {
+  // LDFF1SB { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
+  //  1100 0100 001. .... 101. .... .... ....
+  //  msz<24:23> = 00 | imm5<20:16> | U<14> = 0 | ff<13> = 1 | Pg<12:10> |
+  //  Zn<9:5> | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1SB_z_p_ai_d | Rt(zt) | PgLow8(pg) | Rn(zn) |
+       ImmField<20, 16>(imm5));
+}
+
+// This prototype maps to 6 instruction encodings:
+//  LDFF1SH_z_p_bz_d_64_scaled
+//  LDFF1SH_z_p_bz_d_64_unscaled
+//  LDFF1SH_z_p_bz_d_x32_scaled
+//  LDFF1SH_z_p_bz_d_x32_unscaled
+void Assembler::ldff1sh(const ZRegister& zt,
+                        const PRegisterZ& pg,
+                        const Register& xn,
+                        const ZRegister& zm) {
+  // LDFF1SH { <Zt>.D }, <Pg>/Z, [<Xn|SP>, <Zm>.D, LSL #1]
+  //  1100 0100 111. .... 101. .... .... ....
+  //  msz<24:23> = 01 | Zm<20:16> | U<14> = 0 | ff<13> = 1 | Pg<12:10> | Rn<9:5>
+  //  | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1SH_z_p_bz_d_64_scaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
+}
+
+// This prototype maps to 2 instruction encodings:
+//  LDFF1SH_z_p_ai_d
+//  LDFF1SH_z_p_ai_s
+void Assembler::ldff1sh(const ZRegister& zt,
+                        const PRegisterZ& pg,
+                        const ZRegister& zn,
+                        int imm5) {
+  // LDFF1SH { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
+  //  1100 0100 101. .... 101. .... .... ....
+  //  msz<24:23> = 01 | imm5<20:16> | U<14> = 0 | ff<13> = 1 | Pg<12:10> |
+  //  Zn<9:5> | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1SH_z_p_ai_d | Rt(zt) | PgLow8(pg) | Rn(zn) |
+       ImmField<20, 16>(imm5));
+}
+
+// This prototype maps to 4 instruction encodings:
+//  LDFF1SW_z_p_bz_d_64_scaled
+//  LDFF1SW_z_p_bz_d_64_unscaled
+//  LDFF1SW_z_p_bz_d_x32_scaled
+//  LDFF1SW_z_p_bz_d_x32_unscaled
+void Assembler::ldff1sw(const ZRegister& zt,
+                        const PRegisterZ& pg,
+                        const Register& xn,
+                        const ZRegister& zm) {
+  // LDFF1SW { <Zt>.D }, <Pg>/Z, [<Xn|SP>, <Zm>.D, LSL #2]
+  //  1100 0101 011. .... 101. .... .... ....
+  //  msz<24:23> = 10 | Zm<20:16> | U<14> = 0 | ff<13> = 1 | Pg<12:10> | Rn<9:5>
+  //  | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1SW_z_p_bz_d_64_scaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
+}
+
+void Assembler::ldff1sw(const ZRegister& zt,
+                        const PRegisterZ& pg,
+                        const ZRegister& zn,
+                        int imm5) {
+  // LDFF1SW { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
+  //  1100 0101 001. .... 101. .... .... ....
+  //  msz<24:23> = 10 | imm5<20:16> | U<14> = 0 | ff<13> = 1 | Pg<12:10> |
+  //  Zn<9:5> | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1SW_z_p_ai_d | Rt(zt) | PgLow8(pg) | Rn(zn) |
+       ImmField<20, 16>(imm5));
+}
+
+// This prototype maps to 6 instruction encodings:
+//  LDFF1W_z_p_bz_d_64_scaled
+//  LDFF1W_z_p_bz_d_64_unscaled
+//  LDFF1W_z_p_bz_d_x32_scaled
+//  LDFF1W_z_p_bz_d_x32_unscaled
+void Assembler::ldff1w(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const Register& xn,
+                       const ZRegister& zm) {
+  // LDFF1W { <Zt>.D }, <Pg>/Z, [<Xn|SP>, <Zm>.D, LSL #2]
+  //  1100 0101 011. .... 111. .... .... ....
+  //  msz<24:23> = 10 | Zm<20:16> | U<14> = 1 | ff<13> = 1 | Pg<12:10> | Rn<9:5>
+  //  | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1W_z_p_bz_d_64_scaled | Rt(zt) | PgLow8(pg) | RnSP(xn) | Rm(zm));
+}
+
+// This prototype maps to 2 instruction encodings:
+//  LDFF1W_z_p_ai_d
+//  LDFF1W_z_p_ai_s
+void Assembler::ldff1w(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const ZRegister& zn,
+                       int imm5) {
+  // LDFF1W { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
+  //  1100 0101 001. .... 111. .... .... ....
+  //  msz<24:23> = 10 | imm5<20:16> | U<14> = 1 | ff<13> = 1 | Pg<12:10> |
+  //  Zn<9:5> | Zt<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LDFF1W_z_p_ai_d | Rt(zt) | PgLow8(pg) | Rn(zn) | ImmField<20, 16>(imm5));
+}
+
+void Assembler::SVEGatherPrefetchVectorPlusImmediateHelper(
+    PrefetchOperation prfop,
+    const PRegister& pg,
+    const SVEMemOperand& addr,
+    int prefetch_size) {
+  VIXL_ASSERT(addr.IsVectorPlusImmediate());
+  ZRegister zn = addr.GetVectorBase();
+  VIXL_ASSERT(zn.IsLaneSizeS() || zn.IsLaneSizeD());
+
+  Instr op = 0xffffffff;
+  switch (prefetch_size) {
+    case kBRegSize:
+      op = zn.IsLaneSizeS() ? static_cast<Instr>(PRFB_i_p_ai_s)
+                            : static_cast<Instr>(PRFB_i_p_ai_d);
+      break;
+    case kHRegSize:
+      op = zn.IsLaneSizeS() ? static_cast<Instr>(PRFH_i_p_ai_s)
+                            : static_cast<Instr>(PRFH_i_p_ai_d);
+      break;
+    case kSRegSize:
+      op = zn.IsLaneSizeS() ? static_cast<Instr>(PRFW_i_p_ai_s)
+                            : static_cast<Instr>(PRFW_i_p_ai_d);
+      break;
+    case kDRegSize:
+      op = zn.IsLaneSizeS() ? static_cast<Instr>(PRFD_i_p_ai_s)
+                            : static_cast<Instr>(PRFD_i_p_ai_d);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  int64_t imm5 = addr.GetImmediateOffset();
+  Emit(op | SVEImmPrefetchOperation(prfop) | PgLow8(pg) | Rn(zn) |
+       ImmUnsignedField<20, 16>(imm5));
+}
+
+void Assembler::SVEGatherPrefetchScalarPlusImmediateHelper(
+    PrefetchOperation prfop,
+    const PRegister& pg,
+    const SVEMemOperand& addr,
+    int prefetch_size) {
+  VIXL_ASSERT(addr.IsScalarPlusImmediate());
+  int64_t imm6 = addr.GetImmediateOffset();
+
+  Instr op = 0xffffffff;
+  switch (prefetch_size) {
+    case kBRegSize:
+      op = PRFB_i_p_bi_s;
+      break;
+    case kHRegSize:
+      op = PRFH_i_p_bi_s;
+      break;
+    case kSRegSize:
+      op = PRFW_i_p_bi_s;
+      break;
+    case kDRegSize:
+      op = PRFD_i_p_bi_s;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  Emit(op | SVEImmPrefetchOperation(prfop) | PgLow8(pg) |
+       RnSP(addr.GetScalarBase()) | ImmField<21, 16>(imm6));
+}
+
+void Assembler::SVEContiguousPrefetchScalarPlusScalarHelper(
+    PrefetchOperation prfop,
+    const PRegister& pg,
+    const SVEMemOperand& addr,
+    int prefetch_size) {
+  VIXL_ASSERT(addr.IsScalarPlusScalar());
+  Instr op = 0xffffffff;
+
+  switch (prefetch_size) {
+    case kBRegSize:
+      VIXL_ASSERT(addr.GetOffsetModifier() == NO_SVE_OFFSET_MODIFIER);
+      op = PRFB_i_p_br_s;
+      break;
+    case kHRegSize:
+      VIXL_ASSERT(addr.GetOffsetModifier() == SVE_LSL);
+      VIXL_ASSERT(addr.GetShiftAmount() == kHRegSizeInBytesLog2);
+      op = PRFH_i_p_br_s;
+      break;
+    case kSRegSize:
+      VIXL_ASSERT(addr.GetOffsetModifier() == SVE_LSL);
+      VIXL_ASSERT(addr.GetShiftAmount() == kSRegSizeInBytesLog2);
+      op = PRFW_i_p_br_s;
+      break;
+    case kDRegSize:
+      VIXL_ASSERT(addr.GetOffsetModifier() == SVE_LSL);
+      VIXL_ASSERT(addr.GetShiftAmount() == kDRegSizeInBytesLog2);
+      op = PRFD_i_p_br_s;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  VIXL_ASSERT(!addr.GetScalarOffset().IsZero());
+  Emit(op | SVEImmPrefetchOperation(prfop) | PgLow8(pg) |
+       RnSP(addr.GetScalarBase()) | Rm(addr.GetScalarOffset()));
+}
+
+void Assembler::SVEContiguousPrefetchScalarPlusVectorHelper(
+    PrefetchOperation prfop,
+    const PRegister& pg,
+    const SVEMemOperand& addr,
+    int prefetch_size) {
+  VIXL_ASSERT(addr.IsScalarPlusVector());
+  ZRegister zm = addr.GetVectorOffset();
+  SVEOffsetModifier mod = addr.GetOffsetModifier();
+
+  // All prefetch scalar-plus-vector addressing modes use a shift corresponding
+  // to the element size.
+  switch (prefetch_size) {
+    case kBRegSize:
+      VIXL_ASSERT(addr.GetShiftAmount() == kBRegSizeInBytesLog2);
+      break;
+    case kHRegSize:
+      VIXL_ASSERT(addr.GetShiftAmount() == kHRegSizeInBytesLog2);
+      break;
+    case kSRegSize:
+      VIXL_ASSERT(addr.GetShiftAmount() == kSRegSizeInBytesLog2);
+      break;
+    case kDRegSize:
+      VIXL_ASSERT(addr.GetShiftAmount() == kDRegSizeInBytesLog2);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  Instr sx = 0;
+  Instr op = 0xffffffff;
+  if ((mod == NO_SVE_OFFSET_MODIFIER) || (mod == SVE_LSL)) {
+    VIXL_ASSERT(zm.IsLaneSizeD());
+
+    switch (prefetch_size) {
+      case kBRegSize:
+        VIXL_ASSERT(mod == NO_SVE_OFFSET_MODIFIER);
+        op = PRFB_i_p_bz_d_64_scaled;
+        break;
+      case kHRegSize:
+        VIXL_ASSERT(mod == SVE_LSL);
+        op = PRFH_i_p_bz_d_64_scaled;
+        break;
+      case kSRegSize:
+        VIXL_ASSERT(mod == SVE_LSL);
+        op = PRFW_i_p_bz_d_64_scaled;
+        break;
+      case kDRegSize:
+        VIXL_ASSERT(mod == SVE_LSL);
+        op = PRFD_i_p_bz_d_64_scaled;
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  } else {
+    VIXL_ASSERT((mod == SVE_SXTW) || (mod == SVE_UXTW));
+    VIXL_ASSERT(zm.IsLaneSizeS() || zm.IsLaneSizeD());
+
+    switch (prefetch_size) {
+      case kBRegSize:
+        op = zm.IsLaneSizeS() ? static_cast<Instr>(PRFB_i_p_bz_s_x32_scaled)
+                              : static_cast<Instr>(PRFB_i_p_bz_d_x32_scaled);
+        break;
+      case kHRegSize:
+        op = zm.IsLaneSizeS() ? static_cast<Instr>(PRFH_i_p_bz_s_x32_scaled)
+                              : static_cast<Instr>(PRFH_i_p_bz_d_x32_scaled);
+        break;
+      case kSRegSize:
+        op = zm.IsLaneSizeS() ? static_cast<Instr>(PRFW_i_p_bz_s_x32_scaled)
+                              : static_cast<Instr>(PRFW_i_p_bz_d_x32_scaled);
+        break;
+      case kDRegSize:
+        op = zm.IsLaneSizeS() ? static_cast<Instr>(PRFD_i_p_bz_s_x32_scaled)
+                              : static_cast<Instr>(PRFD_i_p_bz_d_x32_scaled);
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+
+    if (mod == SVE_SXTW) {
+      sx = 1 << 22;
+    }
+  }
+
+  Emit(op | SVEImmPrefetchOperation(prfop) | PgLow8(pg) | sx |
+       RnSP(addr.GetScalarBase()) | Rm(zm));
+}
+
+void Assembler::SVEPrefetchHelper(PrefetchOperation prfop,
+                                  const PRegister& pg,
+                                  const SVEMemOperand& addr,
+                                  int prefetch_size) {
+  if (addr.IsVectorPlusImmediate()) {
+    // For example:
+    //   [z0.s, #0]
+    SVEGatherPrefetchVectorPlusImmediateHelper(prfop, pg, addr, prefetch_size);
+
+  } else if (addr.IsScalarPlusImmediate()) {
+    // For example:
+    //   [x0, #42, mul vl]
+    SVEGatherPrefetchScalarPlusImmediateHelper(prfop, pg, addr, prefetch_size);
+
+  } else if (addr.IsScalarPlusVector()) {
+    // For example:
+    //   [x0, z0.s, sxtw]
+    SVEContiguousPrefetchScalarPlusVectorHelper(prfop, pg, addr, prefetch_size);
+
+  } else if (addr.IsScalarPlusScalar()) {
+    // For example:
+    //   [x0, x1]
+    SVEContiguousPrefetchScalarPlusScalarHelper(prfop, pg, addr, prefetch_size);
+
+  } else {
+    VIXL_UNIMPLEMENTED();
+  }
+}
+
+void Assembler::prfb(PrefetchOperation prfop,
+                     const PRegister& pg,
+                     const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  SVEPrefetchHelper(prfop, pg, addr, kBRegSize);
+}
+
+void Assembler::prfd(PrefetchOperation prfop,
+                     const PRegister& pg,
+                     const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  SVEPrefetchHelper(prfop, pg, addr, kDRegSize);
+}
+
+void Assembler::prfh(PrefetchOperation prfop,
+                     const PRegister& pg,
+                     const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  SVEPrefetchHelper(prfop, pg, addr, kHRegSize);
+}
+
+void Assembler::prfw(PrefetchOperation prfop,
+                     const PRegister& pg,
+                     const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  SVEPrefetchHelper(prfop, pg, addr, kSRegSize);
+}
+
+void Assembler::SVELd1St1ScaImmHelper(const ZRegister& zt,
+                                      const PRegister& pg,
+                                      const SVEMemOperand& addr,
+                                      Instr regoffset_op,
+                                      Instr immoffset_op,
+                                      int imm_divisor) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(addr.IsScalarPlusScalar() || addr.IsScalarPlusImmediate());
+
+  Instr op;
+  if (addr.IsScalarPlusScalar()) {
+    op = regoffset_op | Rm(addr.GetScalarOffset());
+  } else {
+    int64_t imm = addr.GetImmediateOffset();
+    VIXL_ASSERT(((imm % imm_divisor) == 0) && IsInt4(imm / imm_divisor));
+    op = immoffset_op | ImmField<19, 16>(imm / imm_divisor);
+  }
+  Emit(op | Rt(zt) | PgLow8(pg) | RnSP(addr.GetScalarBase()));
+}
+
+void Assembler::ld1rqb(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsScalarPlusImmediate() || addr.IsEquivalentToLSL(0));
+  VIXL_ASSERT(zt.IsLaneSizeB());
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        LD1RQB_z_p_br_contiguous,
+                        LD1RQB_z_p_bi_u8,
+                        16);
+}
+
+void Assembler::ld1rqd(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsScalarPlusImmediate() || addr.IsEquivalentToLSL(3));
+  VIXL_ASSERT(zt.IsLaneSizeD());
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        LD1RQD_z_p_br_contiguous,
+                        LD1RQD_z_p_bi_u64,
+                        16);
+}
+
+void Assembler::ld1rqh(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsScalarPlusImmediate() || addr.IsEquivalentToLSL(1));
+  VIXL_ASSERT(zt.IsLaneSizeH());
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        LD1RQH_z_p_br_contiguous,
+                        LD1RQH_z_p_bi_u16,
+                        16);
+}
+
+void Assembler::ld1rqw(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsScalarPlusImmediate() || addr.IsEquivalentToLSL(2));
+  VIXL_ASSERT(zt.IsLaneSizeS());
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        LD1RQW_z_p_br_contiguous,
+                        LD1RQW_z_p_bi_u32,
+                        16);
+}
+
+#define VIXL_DEFINE_LDFF1(MSZ, LANE_SIZE)                                  \
+  void Assembler::ldff1##MSZ(const ZRegister& zt,                          \
+                             const PRegisterZ& pg,                         \
+                             const SVEMemOperand& addr) {                  \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));                                \
+    SVELdff1Helper(k##LANE_SIZE##RegSizeInBytesLog2, zt, pg, addr, false); \
+  }
+VIXL_SVE_LOAD_STORE_VARIANT_LIST(VIXL_DEFINE_LDFF1)
+
+#define VIXL_DEFINE_LDFF1S(MSZ, LANE_SIZE)                                \
+  void Assembler::ldff1s##MSZ(const ZRegister& zt,                        \
+                              const PRegisterZ& pg,                       \
+                              const SVEMemOperand& addr) {                \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));                               \
+    SVELdff1Helper(k##LANE_SIZE##RegSizeInBytesLog2, zt, pg, addr, true); \
+  }
+VIXL_SVE_LOAD_STORE_SIGNED_VARIANT_LIST(VIXL_DEFINE_LDFF1S)
+
+void Assembler::ldnf1b(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(addr.IsPlainRegister() ||
+              (addr.IsScalarPlusImmediate() &&
+               (addr.GetOffsetModifier() == SVE_MUL_VL)));
+
+  SVELdSt1Helper(0,
+                 zt,
+                 pg,
+                 addr,
+                 /* is_signed = */ false,
+                 SVEContiguousNonFaultLoad_ScalarPlusImmFixed);
+}
+
+void Assembler::ldnf1d(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(addr.IsPlainRegister() ||
+              (addr.IsScalarPlusImmediate() &&
+               (addr.GetOffsetModifier() == SVE_MUL_VL)));
+
+  SVELdSt1Helper(3,
+                 zt,
+                 pg,
+                 addr,
+                 /* is_signed = */ false,
+                 SVEContiguousNonFaultLoad_ScalarPlusImmFixed);
+}
+
+void Assembler::ldnf1h(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(addr.IsPlainRegister() ||
+              (addr.IsScalarPlusImmediate() &&
+               (addr.GetOffsetModifier() == SVE_MUL_VL)));
+
+  SVELdSt1Helper(1,
+                 zt,
+                 pg,
+                 addr,
+                 /* is_signed = */ false,
+                 SVEContiguousNonFaultLoad_ScalarPlusImmFixed);
+}
+
+void Assembler::ldnf1sb(const ZRegister& zt,
+                        const PRegisterZ& pg,
+                        const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(addr.IsPlainRegister() ||
+              (addr.IsScalarPlusImmediate() &&
+               (addr.GetOffsetModifier() == SVE_MUL_VL)));
+
+  SVELdSt1Helper(0,
+                 zt,
+                 pg,
+                 addr,
+                 /* is_signed = */ true,
+                 SVEContiguousNonFaultLoad_ScalarPlusImmFixed);
+}
+
+void Assembler::ldnf1sh(const ZRegister& zt,
+                        const PRegisterZ& pg,
+                        const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(addr.IsPlainRegister() ||
+              (addr.IsScalarPlusImmediate() &&
+               (addr.GetOffsetModifier() == SVE_MUL_VL)));
+
+  SVELdSt1Helper(1,
+                 zt,
+                 pg,
+                 addr,
+                 /* is_signed = */ true,
+                 SVEContiguousNonFaultLoad_ScalarPlusImmFixed);
+}
+
+void Assembler::ldnf1sw(const ZRegister& zt,
+                        const PRegisterZ& pg,
+                        const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(addr.IsPlainRegister() ||
+              (addr.IsScalarPlusImmediate() &&
+               (addr.GetOffsetModifier() == SVE_MUL_VL)));
+
+  SVELdSt1Helper(2,
+                 zt,
+                 pg,
+                 addr,
+                 /* is_signed = */ true,
+                 SVEContiguousNonFaultLoad_ScalarPlusImmFixed);
+}
+
+void Assembler::ldnf1w(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(addr.IsPlainRegister() ||
+              (addr.IsScalarPlusImmediate() &&
+               (addr.GetOffsetModifier() == SVE_MUL_VL)));
+
+  SVELdSt1Helper(2,
+                 zt,
+                 pg,
+                 addr,
+                 /* is_signed = */ false,
+                 SVEContiguousNonFaultLoad_ScalarPlusImmFixed);
+}
+
+void Assembler::ldnt1b(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsPlainScalar() ||
+              (addr.IsScalarPlusImmediate() && addr.IsMulVl()) ||
+              (addr.IsScalarPlusScalar() && addr.IsEquivalentToLSL(0)));
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        LDNT1B_z_p_br_contiguous,
+                        LDNT1B_z_p_bi_contiguous);
+}
+
+void Assembler::ldnt1d(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsPlainScalar() ||
+              (addr.IsScalarPlusImmediate() && addr.IsMulVl()) ||
+              (addr.IsScalarPlusScalar() && addr.IsEquivalentToLSL(3)));
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        LDNT1D_z_p_br_contiguous,
+                        LDNT1D_z_p_bi_contiguous);
+}
+
+void Assembler::ldnt1h(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsPlainScalar() ||
+              (addr.IsScalarPlusImmediate() && addr.IsMulVl()) ||
+              (addr.IsScalarPlusScalar() && addr.IsEquivalentToLSL(1)));
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        LDNT1H_z_p_br_contiguous,
+                        LDNT1H_z_p_bi_contiguous);
+}
+
+void Assembler::ldnt1w(const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsPlainScalar() ||
+              (addr.IsScalarPlusImmediate() && addr.IsMulVl()) ||
+              (addr.IsScalarPlusScalar() && addr.IsEquivalentToLSL(2)));
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        LDNT1W_z_p_br_contiguous,
+                        LDNT1W_z_p_bi_contiguous);
+}
+
+Instr Assembler::SVEMemOperandHelper(unsigned msize_in_bytes_log2,
+                                     int num_regs,
+                                     const SVEMemOperand& addr,
+                                     bool is_load) {
+  VIXL_ASSERT((num_regs >= 1) && (num_regs <= 4));
+
+  Instr op = 0xfffffff;
+  if (addr.IsScalarPlusImmediate()) {
+    VIXL_ASSERT((addr.GetImmediateOffset() == 0) || addr.IsMulVl());
+    int64_t imm = addr.GetImmediateOffset();
+    VIXL_ASSERT((imm % num_regs) == 0);
+    op = RnSP(addr.GetScalarBase()) | ImmField<19, 16>(imm / num_regs);
+
+  } else if (addr.IsScalarPlusScalar()) {
+    VIXL_ASSERT(addr.GetScalarOffset().IsZero() ||
+                addr.IsEquivalentToLSL(msize_in_bytes_log2));
+    op = RnSP(addr.GetScalarBase()) | Rm(addr.GetScalarOffset());
+
+  } else if (addr.IsVectorPlusImmediate()) {
+    ZRegister zn = addr.GetVectorBase();
+    uint64_t imm = addr.GetImmediateOffset();
+    VIXL_ASSERT(num_regs == 1);
+    VIXL_ASSERT(zn.IsLaneSizeS() || zn.IsLaneSizeD());
+    VIXL_ASSERT(IsMultiple(imm, (1 << msize_in_bytes_log2)));
+    op = Rn(zn) | ImmUnsignedField<20, 16>(imm >> msize_in_bytes_log2);
+
+  } else if (addr.IsScalarPlusVector()) {
+    // We have to support several different addressing modes. Some instructions
+    // support a subset of these, but the SVEMemOperand encoding is consistent.
+    Register xn = addr.GetScalarBase();
+    ZRegister zm = addr.GetVectorOffset();
+    SVEOffsetModifier mod = addr.GetOffsetModifier();
+    Instr modifier_bit = 1 << (is_load ? 22 : 14);
+    Instr xs = (mod == SVE_SXTW) ? modifier_bit : 0;
+    VIXL_ASSERT(num_regs == 1);
+
+    if (mod == SVE_LSL) {
+      // 64-bit scaled offset:            [<Xn|SP>, <Zm>.D, LSL #<shift>]
+      VIXL_ASSERT(zm.IsLaneSizeD());
+      VIXL_ASSERT(addr.GetShiftAmount() == msize_in_bytes_log2);
+    } else if (mod == NO_SVE_OFFSET_MODIFIER) {
+      // 64-bit unscaled offset:          [<Xn|SP>, <Zm>.D]
+      VIXL_ASSERT(zm.IsLaneSizeD());
+      VIXL_ASSERT(addr.GetShiftAmount() == 0);
+    } else {
+      // 32-bit scaled offset:            [<Xn|SP>, <Zm>.S, <mod> #<shift>]
+      // 32-bit unscaled offset:          [<Xn|SP>, <Zm>.S, <mod>]
+      // 32-bit unpacked scaled offset:   [<Xn|SP>, <Zm>.D, <mod> #<shift>]
+      // 32-bit unpacked unscaled offset: [<Xn|SP>, <Zm>.D, <mod>]
+      VIXL_ASSERT(zm.IsLaneSizeS() || zm.IsLaneSizeD());
+      VIXL_ASSERT((mod == SVE_SXTW) || (mod == SVE_UXTW));
+      VIXL_ASSERT((addr.GetShiftAmount() == 0) ||
+                  (addr.GetShiftAmount() == msize_in_bytes_log2));
+    }
+
+    // The form itself is encoded in the instruction opcode.
+    op = RnSP(xn) | Rm(zm) | xs;
+  } else {
+    VIXL_UNIMPLEMENTED();
+  }
+
+  return op;
+}
+
+// SVEMemStore.
+
+void Assembler::SVESt1Helper(unsigned msize_in_bytes_log2,
+                             const ZRegister& zt,
+                             const PRegister& pg,
+                             const SVEMemOperand& addr) {
+  if (addr.IsScalarPlusScalar()) {
+    // Rm must not be xzr.
+    VIXL_ASSERT(!addr.GetScalarOffset().IsZero());
+  }
+
+  if (addr.IsScatterGather()) {
+    bool is_load = false;
+    bool is_signed = false;
+    bool is_ff = false;
+    SVEScatterGatherHelper(msize_in_bytes_log2,
+                           zt,
+                           pg,
+                           addr,
+                           is_load,
+                           is_signed,
+                           is_ff);
+    return;
+  }
+
+  Instr op;
+  if (addr.IsScalarPlusImmediate()) {
+    op = SVEContiguousStore_ScalarPlusImmFixed;
+  } else if (addr.IsScalarPlusScalar()) {
+    op = SVEContiguousStore_ScalarPlusScalarFixed;
+  } else {
+    VIXL_UNIMPLEMENTED();
+    op = 0xffffffff;
+  }
+  SVELdSt1Helper(msize_in_bytes_log2, zt, pg, addr, false, op);
+}
+
+void Assembler::SVESt234Helper(int num_regs,
+                               const ZRegister& zt1,
+                               const PRegister& pg,
+                               const SVEMemOperand& addr) {
+  if (addr.IsScalarPlusScalar()) {
+    // Rm must not be xzr.
+    VIXL_ASSERT(!addr.GetScalarOffset().IsZero());
+  }
+
+  Instr op;
+  if (addr.IsScalarPlusImmediate()) {
+    op = SVEStoreMultipleStructures_ScalarPlusImmFixed;
+  } else if (addr.IsScalarPlusScalar()) {
+    op = SVEStoreMultipleStructures_ScalarPlusScalarFixed;
+  } else {
+    // These instructions don't support any other addressing modes.
+    VIXL_ABORT();
+  }
+  SVELdSt234Helper(num_regs, zt1, pg, addr, op);
+}
+
+#define VIXL_DEFINE_ST1(MSZ, LANE_SIZE)                           \
+  void Assembler::st1##MSZ(const ZRegister& zt,                   \
+                           const PRegister& pg,                   \
+                           const SVEMemOperand& addr) {           \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));                       \
+    SVESt1Helper(k##LANE_SIZE##RegSizeInBytesLog2, zt, pg, addr); \
+  }
+#define VIXL_DEFINE_ST2(MSZ, LANE_SIZE)                 \
+  void Assembler::st2##MSZ(const ZRegister& zt1,        \
+                           const ZRegister& zt2,        \
+                           const PRegister& pg,         \
+                           const SVEMemOperand& addr) { \
+    USE(zt2);                                           \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));             \
+    VIXL_ASSERT(AreConsecutive(zt1, zt2));              \
+    VIXL_ASSERT(AreSameFormat(zt1, zt2));               \
+    VIXL_ASSERT(zt1.IsLaneSize##LANE_SIZE());           \
+    SVESt234Helper(2, zt1, pg, addr);                   \
+  }
+#define VIXL_DEFINE_ST3(MSZ, LANE_SIZE)                 \
+  void Assembler::st3##MSZ(const ZRegister& zt1,        \
+                           const ZRegister& zt2,        \
+                           const ZRegister& zt3,        \
+                           const PRegister& pg,         \
+                           const SVEMemOperand& addr) { \
+    USE(zt2, zt3);                                      \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));             \
+    VIXL_ASSERT(AreConsecutive(zt1, zt2, zt3));         \
+    VIXL_ASSERT(AreSameFormat(zt1, zt2, zt3));          \
+    VIXL_ASSERT(zt1.IsLaneSize##LANE_SIZE());           \
+    SVESt234Helper(3, zt1, pg, addr);                   \
+  }
+#define VIXL_DEFINE_ST4(MSZ, LANE_SIZE)                 \
+  void Assembler::st4##MSZ(const ZRegister& zt1,        \
+                           const ZRegister& zt2,        \
+                           const ZRegister& zt3,        \
+                           const ZRegister& zt4,        \
+                           const PRegister& pg,         \
+                           const SVEMemOperand& addr) { \
+    USE(zt2, zt3, zt4);                                 \
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));             \
+    VIXL_ASSERT(AreConsecutive(zt1, zt2, zt3, zt4));    \
+    VIXL_ASSERT(AreSameFormat(zt1, zt2, zt3, zt4));     \
+    VIXL_ASSERT(zt1.IsLaneSize##LANE_SIZE());           \
+    SVESt234Helper(4, zt1, pg, addr);                   \
+  }
+
+VIXL_SVE_LOAD_STORE_VARIANT_LIST(VIXL_DEFINE_ST1)
+VIXL_SVE_LOAD_STORE_VARIANT_LIST(VIXL_DEFINE_ST2)
+VIXL_SVE_LOAD_STORE_VARIANT_LIST(VIXL_DEFINE_ST3)
+VIXL_SVE_LOAD_STORE_VARIANT_LIST(VIXL_DEFINE_ST4)
+
+void Assembler::stnt1b(const ZRegister& zt,
+                       const PRegister& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsPlainScalar() ||
+              (addr.IsScalarPlusImmediate() && addr.IsMulVl()) ||
+              (addr.IsScalarPlusScalar() && addr.IsEquivalentToLSL(0)));
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        STNT1B_z_p_br_contiguous,
+                        STNT1B_z_p_bi_contiguous);
+}
+
+void Assembler::stnt1d(const ZRegister& zt,
+                       const PRegister& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsPlainScalar() ||
+              (addr.IsScalarPlusImmediate() && addr.IsMulVl()) ||
+              (addr.IsScalarPlusScalar() && addr.IsEquivalentToLSL(3)));
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        STNT1D_z_p_br_contiguous,
+                        STNT1D_z_p_bi_contiguous);
+}
+
+void Assembler::stnt1h(const ZRegister& zt,
+                       const PRegister& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsPlainScalar() ||
+              (addr.IsScalarPlusImmediate() && addr.IsMulVl()) ||
+              (addr.IsScalarPlusScalar() && addr.IsEquivalentToLSL(1)));
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        STNT1H_z_p_br_contiguous,
+                        STNT1H_z_p_bi_contiguous);
+}
+
+void Assembler::stnt1w(const ZRegister& zt,
+                       const PRegister& pg,
+                       const SVEMemOperand& addr) {
+  VIXL_ASSERT(addr.IsPlainScalar() ||
+              (addr.IsScalarPlusImmediate() && addr.IsMulVl()) ||
+              (addr.IsScalarPlusScalar() && addr.IsEquivalentToLSL(2)));
+  SVELd1St1ScaImmHelper(zt,
+                        pg,
+                        addr,
+                        STNT1W_z_p_br_contiguous,
+                        STNT1W_z_p_bi_contiguous);
+}
+
+void Assembler::str(const CPURegister& rt, const SVEMemOperand& addr) {
+  // STR <Pt/Zt>, [<Xn|SP>{, #<imm>, MUL VL}]
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(rt.IsPRegister() || rt.IsZRegister());
+  VIXL_ASSERT(addr.IsPlainScalar() ||
+              (addr.IsScalarPlusImmediate() &&
+               (addr.GetOffsetModifier() == SVE_MUL_VL)));
+  int64_t imm9 = addr.GetImmediateOffset();
+  VIXL_ASSERT(IsInt9(imm9));
+  Instr imm9l = ExtractUnsignedBitfield32(2, 0, imm9) << 10;
+  Instr imm9h = ExtractUnsignedBitfield32(8, 3, imm9) << 16;
+
+  Instr op = STR_z_bi;
+  if (rt.IsPRegister()) {
+    op = STR_p_bi;
+  }
+  Emit(op | Rt(rt) | RnSP(addr.GetScalarBase()) | imm9h | imm9l);
+}
+
+// SVEMulIndex.
+
+void Assembler::sdot(const ZRegister& zda,
+                     const ZRegister& zn,
+                     const ZRegister& zm,
+                     int index) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zda.GetLaneSizeInBytes() == (zn.GetLaneSizeInBytes() * 4));
+  VIXL_ASSERT(AreSameLaneSize(zn, zm));
+
+  Instr op = 0xffffffff;
+  switch (zda.GetLaneSizeInBits()) {
+    case kSRegSize:
+      VIXL_ASSERT(IsUint2(index));
+      op = SDOT_z_zzzi_s | Rx<18, 16>(zm) | (index << 19) | Rd(zda) | Rn(zn);
+      break;
+    case kDRegSize:
+      VIXL_ASSERT(IsUint1(index));
+      op = SDOT_z_zzzi_d | Rx<19, 16>(zm) | (index << 20) | Rd(zda) | Rn(zn);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  Emit(op);
+}
+
+void Assembler::udot(const ZRegister& zda,
+                     const ZRegister& zn,
+                     const ZRegister& zm,
+                     int index) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zda.GetLaneSizeInBytes() == (zn.GetLaneSizeInBytes() * 4));
+  VIXL_ASSERT(AreSameLaneSize(zn, zm));
+
+  Instr op = 0xffffffff;
+  switch (zda.GetLaneSizeInBits()) {
+    case kSRegSize:
+      VIXL_ASSERT(IsUint2(index));
+      op = UDOT_z_zzzi_s | Rx<18, 16>(zm) | (index << 19) | Rd(zda) | Rn(zn);
+      break;
+    case kDRegSize:
+      VIXL_ASSERT(IsUint1(index));
+      op = UDOT_z_zzzi_d | Rx<19, 16>(zm) | (index << 20) | Rd(zda) | Rn(zn);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  Emit(op);
+}
+
+// SVEPartitionBreak.
+
+void Assembler::brka(const PRegisterWithLaneSize& pd,
+                     const PRegister& pg,
+                     const PRegisterWithLaneSize& pn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pg.IsMerging() || pg.IsZeroing());
+  VIXL_ASSERT(pd.IsLaneSizeB() && pn.IsLaneSizeB());
+
+  Instr m = pg.IsMerging() ? 0x00000010 : 0x00000000;
+  Emit(BRKA_p_p_p | Pd(pd) | Pg<13, 10>(pg) | m | Pn(pn));
+}
+
+void Assembler::brkas(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const PRegisterWithLaneSize& pn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pd.IsLaneSizeB() && pn.IsLaneSizeB());
+
+  Emit(BRKAS_p_p_p_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn));
+}
+
+void Assembler::brkb(const PRegisterWithLaneSize& pd,
+                     const PRegister& pg,
+                     const PRegisterWithLaneSize& pn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pg.IsMerging() || pg.IsZeroing());
+  VIXL_ASSERT(pd.IsLaneSizeB() && pn.IsLaneSizeB());
+
+  Instr m = pg.IsMerging() ? 0x00000010 : 0x00000000;
+  Emit(BRKB_p_p_p | Pd(pd) | Pg<13, 10>(pg) | m | Pn(pn));
+}
+
+void Assembler::brkbs(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const PRegisterWithLaneSize& pn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pd.IsLaneSizeB() && pn.IsLaneSizeB());
+
+  Emit(BRKBS_p_p_p_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn));
+}
+
+void Assembler::brkn(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  USE(pm);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pd.IsLaneSizeB() && pn.IsLaneSizeB());
+  VIXL_ASSERT(pd.Is(pm));
+
+  Emit(BRKN_p_p_pp | Pd(pd) | Pg<13, 10>(pg) | Pn(pn));
+}
+
+void Assembler::brkns(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const PRegisterWithLaneSize& pn,
+                      const PRegisterWithLaneSize& pm) {
+  USE(pm);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pd.IsLaneSizeB() && pn.IsLaneSizeB());
+  VIXL_ASSERT(pd.Is(pm));
+
+  Emit(BRKNS_p_p_pp | Pd(pd) | Pg<13, 10>(pg) | Pn(pn));
+}
+
+// SVEPermutePredicate.
+
+void Assembler::punpkhi(const PRegisterWithLaneSize& pd,
+                        const PRegisterWithLaneSize& pn) {
+  // PUNPKHI <Pd>.H, <Pn>.B
+  //  0000 0101 0011 0001 0100 000. ...0 ....
+  //  H<16> = 1 | Pn<8:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pd.IsLaneSizeH());
+  VIXL_ASSERT(pn.IsLaneSizeB());
+
+  Emit(PUNPKHI_p_p | Pd(pd) | Pn(pn));
+}
+
+void Assembler::punpklo(const PRegisterWithLaneSize& pd,
+                        const PRegisterWithLaneSize& pn) {
+  // PUNPKLO <Pd>.H, <Pn>.B
+  //  0000 0101 0011 0000 0100 000. ...0 ....
+  //  H<16> = 0 | Pn<8:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pd.IsLaneSizeH());
+  VIXL_ASSERT(pn.IsLaneSizeB());
+
+  Emit(PUNPKLO_p_p | Pd(pd) | Pn(pn));
+}
+
+void Assembler::rev(const PRegisterWithLaneSize& pd,
+                    const PRegisterWithLaneSize& pn) {
+  // REV <Pd>.<T>, <Pn>.<T>
+  //  0000 0101 ..11 0100 0100 000. ...0 ....
+  //  size<23:22> | Pn<8:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, pn));
+
+  Emit(REV_p_p | SVESize(pd) | Pd(pd) | Rx<8, 5>(pn));
+}
+
+void Assembler::trn1(const PRegisterWithLaneSize& pd,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  // TRN1 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>
+  //  0000 0101 ..10 .... 0101 000. ...0 ....
+  //  size<23:22> | Pm<19:16> | opc<12:11> = 10 | H<10> = 0 | Pn<8:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, pn, pm));
+
+  Emit(TRN1_p_pp | SVESize(pd) | Pd(pd) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::trn2(const PRegisterWithLaneSize& pd,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  // TRN2 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>
+  //  0000 0101 ..10 .... 0101 010. ...0 ....
+  //  size<23:22> | Pm<19:16> | opc<12:11> = 10 | H<10> = 1 | Pn<8:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, pn, pm));
+
+  Emit(TRN2_p_pp | SVESize(pd) | Pd(pd) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::uzp1(const PRegisterWithLaneSize& pd,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  // UZP1 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>
+  //  0000 0101 ..10 .... 0100 100. ...0 ....
+  //  size<23:22> | Pm<19:16> | opc<12:11> = 01 | H<10> = 0 | Pn<8:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, pn, pm));
+
+  Emit(UZP1_p_pp | SVESize(pd) | Pd(pd) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::uzp2(const PRegisterWithLaneSize& pd,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  // UZP2 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>
+  //  0000 0101 ..10 .... 0100 110. ...0 ....
+  //  size<23:22> | Pm<19:16> | opc<12:11> = 01 | H<10> = 1 | Pn<8:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, pn, pm));
+
+  Emit(UZP2_p_pp | SVESize(pd) | Pd(pd) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::zip1(const PRegisterWithLaneSize& pd,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  // ZIP1 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>
+  //  0000 0101 ..10 .... 0100 000. ...0 ....
+  //  size<23:22> | Pm<19:16> | opc<12:11> = 00 | H<10> = 0 | Pn<8:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, pn, pm));
+
+  Emit(ZIP1_p_pp | SVESize(pd) | Pd(pd) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::zip2(const PRegisterWithLaneSize& pd,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  // ZIP2 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>
+  //  0000 0101 ..10 .... 0100 010. ...0 ....
+  //  size<23:22> | Pm<19:16> | opc<12:11> = 00 | H<10> = 1 | Pn<8:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(pd, pn, pm));
+
+  Emit(ZIP2_p_pp | SVESize(pd) | Pd(pd) | Pn(pn) | Pm(pm));
+}
+
+// SVEPermuteVectorExtract.
+
+void Assembler::ext(const ZRegister& zd,
+                    const ZRegister& zn,
+                    const ZRegister& zm,
+                    unsigned offset) {
+  // EXT <Zdn>.B, <Zdn>.B, <Zm>.B, #<imm>
+  //  0000 0101 001. .... 000. .... .... ....
+  //  imm8h<20:16> | imm8l<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(IsUint8(offset));
+
+  int imm8h = ExtractUnsignedBitfield32(7, 3, offset);
+  int imm8l = ExtractUnsignedBitfield32(2, 0, offset);
+  Emit(EXT_z_zi_des | Rd(zd) | Rn(zm) | ImmUnsignedField<20, 16>(imm8h) |
+       ImmUnsignedField<12, 10>(imm8l));
+}
+
+// SVEPermuteVectorInterleaving.
+
+void Assembler::trn1(const ZRegister& zd,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // TRN1 <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0101 ..1. .... 0111 00.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 100 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(TRN1_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::trn2(const ZRegister& zd,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // TRN2 <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0101 ..1. .... 0111 01.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 101 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(TRN2_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::uzp1(const ZRegister& zd,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // UZP1 <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0101 ..1. .... 0110 10.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 010 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(UZP1_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::uzp2(const ZRegister& zd,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // UZP2 <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0101 ..1. .... 0110 11.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 011 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(UZP2_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::zip1(const ZRegister& zd,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // ZIP1 <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0101 ..1. .... 0110 00.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 000 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(ZIP1_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::zip2(const ZRegister& zd,
+                     const ZRegister& zn,
+                     const ZRegister& zm) {
+  // ZIP2 <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
+  //  0000 0101 ..1. .... 0110 01.. .... ....
+  //  size<23:22> | Zm<20:16> | opc<12:10> = 001 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(ZIP2_z_zz | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+// SVEPermuteVectorPredicated.
+
+void Assembler::clasta(const Register& rd,
+                       const PRegister& pg,
+                       const Register& rn,
+                       const ZRegister& zm) {
+  // CLASTA <R><dn>, <Pg>, <R><dn>, <Zm>.<T>
+  //  0000 0101 ..11 0000 101. .... .... ....
+  //  size<23:22> | B<16> = 0 | Pg<12:10> | Zm<9:5> | Rdn<4:0>
+
+  USE(rn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(rd.Is(rn));
+
+  Emit(CLASTA_r_p_z | SVESize(zm) | Rd(rd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::clasta(const VRegister& vd,
+                       const PRegister& pg,
+                       const VRegister& vn,
+                       const ZRegister& zm) {
+  // CLASTA <V><dn>, <Pg>, <V><dn>, <Zm>.<T>
+  //  0000 0101 ..10 1010 100. .... .... ....
+  //  size<23:22> | B<16> = 0 | Pg<12:10> | Zm<9:5> | Vdn<4:0>
+
+  USE(vn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.Is(vn));
+  VIXL_ASSERT(vd.IsScalar());
+  VIXL_ASSERT(AreSameLaneSize(vd, zm));
+
+  Emit(CLASTA_v_p_z | SVESize(zm) | Rd(vd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::clasta(const ZRegister& zd,
+                       const PRegister& pg,
+                       const ZRegister& zn,
+                       const ZRegister& zm) {
+  // CLASTA <Zdn>.<T>, <Pg>, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0101 ..10 1000 100. .... .... ....
+  //  size<23:22> | B<16> = 0 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(CLASTA_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::clastb(const Register& rd,
+                       const PRegister& pg,
+                       const Register& rn,
+                       const ZRegister& zm) {
+  // CLASTB <R><dn>, <Pg>, <R><dn>, <Zm>.<T>
+  //  0000 0101 ..11 0001 101. .... .... ....
+  //  size<23:22> | B<16> = 1 | Pg<12:10> | Zm<9:5> | Rdn<4:0>
+
+  USE(rn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(rd.Is(rn));
+
+  Emit(CLASTB_r_p_z | SVESize(zm) | Rd(rd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::clastb(const VRegister& vd,
+                       const PRegister& pg,
+                       const VRegister& vn,
+                       const ZRegister& zm) {
+  // CLASTB <V><dn>, <Pg>, <V><dn>, <Zm>.<T>
+  //  0000 0101 ..10 1011 100. .... .... ....
+  //  size<23:22> | B<16> = 1 | Pg<12:10> | Zm<9:5> | Vdn<4:0>
+
+  USE(vn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.Is(vn));
+  VIXL_ASSERT(vd.IsScalar());
+  VIXL_ASSERT(AreSameLaneSize(vd, zm));
+
+  Emit(CLASTB_v_p_z | SVESize(zm) | Rd(vd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::clastb(const ZRegister& zd,
+                       const PRegister& pg,
+                       const ZRegister& zn,
+                       const ZRegister& zm) {
+  // CLASTB <Zdn>.<T>, <Pg>, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0101 ..10 1001 100. .... .... ....
+  //  size<23:22> | B<16> = 1 | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(CLASTB_z_p_zz | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+void Assembler::compact(const ZRegister& zd,
+                        const PRegister& pg,
+                        const ZRegister& zn) {
+  // COMPACT <Zd>.<T>, <Pg>, <Zn>.<T>
+  //  0000 0101 1.10 0001 100. .... .... ....
+  //  sz<22> | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT((zd.GetLaneSizeInBits() == kSRegSize) ||
+              (zd.GetLaneSizeInBits() == kDRegSize));
+
+  Instr sz = (zd.GetLaneSizeInBits() == kDRegSize) ? (1 << 22) : 0;
+  Emit(COMPACT_z_p_z | sz | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::cpy(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const Register& rn) {
+  // CPY <Zd>.<T>, <Pg>/M, <R><n|SP>
+  //  0000 0101 ..10 1000 101. .... .... ....
+  //  size<23:22> | Pg<12:10> | Rn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(static_cast<unsigned>(rn.GetSizeInBits()) >=
+              zd.GetLaneSizeInBits());
+
+  Emit(CPY_z_p_r | SVESize(zd) | Rd(zd) | PgLow8(pg) | RnSP(rn));
+}
+
+void Assembler::cpy(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const VRegister& vn) {
+  // CPY <Zd>.<T>, <Pg>/M, <V><n>
+  //  0000 0101 ..10 0000 100. .... .... ....
+  //  size<23:22> | Pg<12:10> | Vn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vn.IsScalar());
+  VIXL_ASSERT(static_cast<unsigned>(vn.GetSizeInBits()) ==
+              zd.GetLaneSizeInBits());
+
+  Emit(CPY_z_p_v | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(vn));
+}
+
+void Assembler::lasta(const Register& rd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  // LASTA <R><d>, <Pg>, <Zn>.<T>
+  //  0000 0101 ..10 0000 101. .... .... ....
+  //  size<23:22> | B<16> = 0 | Pg<12:10> | Zn<9:5> | Rd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LASTA_r_p_z | SVESize(zn) | Rd(rd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::lasta(const VRegister& vd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  // LASTA <V><d>, <Pg>, <Zn>.<T>
+  //  0000 0101 ..10 0010 100. .... .... ....
+  //  size<23:22> | B<16> = 0 | Pg<12:10> | Zn<9:5> | Vd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+
+  Emit(LASTA_v_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::lastb(const Register& rd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  // LASTB <R><d>, <Pg>, <Zn>.<T>
+  //  0000 0101 ..10 0001 101. .... .... ....
+  //  size<23:22> | B<16> = 1 | Pg<12:10> | Zn<9:5> | Rd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(LASTB_r_p_z | SVESize(zn) | Rd(rd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::lastb(const VRegister& vd,
+                      const PRegister& pg,
+                      const ZRegister& zn) {
+  // LASTB <V><d>, <Pg>, <Zn>.<T>
+  //  0000 0101 ..10 0011 100. .... .... ....
+  //  size<23:22> | B<16> = 1 | Pg<12:10> | Zn<9:5> | Vd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vd.IsScalar());
+
+  Emit(LASTB_v_p_z | SVESize(zn) | Rd(vd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::rbit(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // RBIT <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0101 ..10 0111 100. .... .... ....
+  //  size<23:22> | opc<17:16> = 11 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+
+  Emit(RBIT_z_p_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::revb(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // REVB <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0101 ..10 0100 100. .... .... ....
+  //  size<23:22> | opc<17:16> = 00 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.IsLaneSizeH() || zd.IsLaneSizeS() || zd.IsLaneSizeD());
+
+  Emit(REVB_z_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::revh(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // REVH <Zd>.<T>, <Pg>/M, <Zn>.<T>
+  //  0000 0101 ..10 0101 100. .... .... ....
+  //  size<23:22> | opc<17:16> = 01 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.IsLaneSizeS() || zd.IsLaneSizeD());
+
+  Emit(REVH_z_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::revw(const ZRegister& zd,
+                     const PRegisterM& pg,
+                     const ZRegister& zn) {
+  // REVW <Zd>.D, <Pg>/M, <Zn>.D
+  //  0000 0101 ..10 0110 100. .... .... ....
+  //  size<23:22> | opc<17:16> = 10 | Pg<12:10> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  VIXL_ASSERT(zd.IsLaneSizeD());
+
+  Emit(REVW_z_z | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zn));
+}
+
+void Assembler::splice(const ZRegister& zd,
+                       const PRegister& pg,
+                       const ZRegister& zn,
+                       const ZRegister& zm) {
+  // SPLICE <Zdn>.<T>, <Pg>, <Zdn>.<T>, <Zm>.<T>
+  //  0000 0101 ..10 1100 100. .... .... ....
+  //  size<23:22> | Pg<12:10> | Zm<9:5> | Zdn<4:0>
+
+  USE(zn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.Is(zn));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(SPLICE_z_p_zz_des | SVESize(zd) | Rd(zd) | PgLow8(pg) | Rn(zm));
+}
+
+// SVEPermuteVectorUnpredicated.
+
+void Assembler::dup(const ZRegister& zd, const Register& xn) {
+  // DUP <Zd>.<T>, <R><n|SP>
+  //  0000 0101 ..10 0000 0011 10.. .... ....
+  //  size<23:22> | Rn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(DUP_z_r | SVESize(zd) | Rd(zd) | RnSP(xn));
+}
+
+void Assembler::dup(const ZRegister& zd, const ZRegister& zn, unsigned index) {
+  // DUP <Zd>.<T>, <Zn>.<T>[<imm>]
+  //  0000 0101 ..1. .... 0010 00.. .... ....
+  //  imm2<23:22> | tsz<20:16> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(zd, zn));
+  VIXL_ASSERT((index * zd.GetLaneSizeInBits()) < 512);
+  int n = zd.GetLaneSizeInBytesLog2();
+  unsigned imm_7 = (index << (n + 1)) | (1 << n);
+  VIXL_ASSERT(IsUint7(imm_7));
+  unsigned imm_2 = ExtractUnsignedBitfield32(6, 5, imm_7);
+  unsigned tsz_5 = ExtractUnsignedBitfield32(4, 0, imm_7);
+
+  Emit(DUP_z_zi | ImmUnsignedField<23, 22>(imm_2) |
+       ImmUnsignedField<20, 16>(tsz_5) | Rd(zd) | Rn(zn));
+}
+
+void Assembler::insr(const ZRegister& zdn, const Register& rm) {
+  // INSR <Zdn>.<T>, <R><m>
+  //  0000 0101 ..10 0100 0011 10.. .... ....
+  //  size<23:22> | Rm<9:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(INSR_z_r | SVESize(zdn) | Rd(zdn) | Rn(rm));
+}
+
+void Assembler::insr(const ZRegister& zdn, const VRegister& vm) {
+  // INSR <Zdn>.<T>, <V><m>
+  //  0000 0101 ..11 0100 0011 10.. .... ....
+  //  size<23:22> | Vm<9:5> | Zdn<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(vm.IsScalar());
+
+  Emit(INSR_z_v | SVESize(zdn) | Rd(zdn) | Rn(vm));
+}
+
+void Assembler::rev(const ZRegister& zd, const ZRegister& zn) {
+  // REV <Zd>.<T>, <Zn>.<T>
+  //  0000 0101 ..11 1000 0011 10.. .... ....
+  //  size<23:22> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(zd, zn));
+
+  Emit(REV_z_z | SVESize(zd) | Rd(zd) | Rn(zn));
+}
+
+void Assembler::sunpkhi(const ZRegister& zd, const ZRegister& zn) {
+  // SUNPKHI <Zd>.<T>, <Zn>.<Tb>
+  //  0000 0101 ..11 0001 0011 10.. .... ....
+  //  size<23:22> | U<17> = 0 | H<16> = 1 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zn.GetLaneSizeInBytes() * 2));
+  VIXL_ASSERT(!zd.IsLaneSizeB());
+
+  Emit(SUNPKHI_z_z | SVESize(zd) | Rd(zd) | Rn(zn));
+}
+
+void Assembler::sunpklo(const ZRegister& zd, const ZRegister& zn) {
+  // SUNPKLO <Zd>.<T>, <Zn>.<Tb>
+  //  0000 0101 ..11 0000 0011 10.. .... ....
+  //  size<23:22> | U<17> = 0 | H<16> = 0 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zn.GetLaneSizeInBytes() * 2));
+  VIXL_ASSERT(!zd.IsLaneSizeB());
+
+  Emit(SUNPKLO_z_z | SVESize(zd) | Rd(zd) | Rn(zn));
+}
+
+void Assembler::tbl(const ZRegister& zd,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  // TBL <Zd>.<T>, { <Zn>.<T> }, <Zm>.<T>
+  //  0000 0101 ..1. .... 0011 00.. .... ....
+  //  size<23:22> | Zm<20:16> | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(zd, zn, zm));
+
+  Emit(TBL_z_zz_1 | SVESize(zd) | Rd(zd) | Rn(zn) | Rm(zm));
+}
+
+void Assembler::uunpkhi(const ZRegister& zd, const ZRegister& zn) {
+  // UUNPKHI <Zd>.<T>, <Zn>.<Tb>
+  //  0000 0101 ..11 0011 0011 10.. .... ....
+  //  size<23:22> | U<17> = 1 | H<16> = 1 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zn.GetLaneSizeInBytes() * 2));
+  VIXL_ASSERT(!zd.IsLaneSizeB());
+
+  Emit(UUNPKHI_z_z | SVESize(zd) | Rd(zd) | Rn(zn));
+}
+
+void Assembler::uunpklo(const ZRegister& zd, const ZRegister& zn) {
+  // UUNPKLO <Zd>.<T>, <Zn>.<Tb>
+  //  0000 0101 ..11 0010 0011 10.. .... ....
+  //  size<23:22> | U<17> = 1 | H<16> = 0 | Zn<9:5> | Zd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(zd.GetLaneSizeInBytes() == (zn.GetLaneSizeInBytes() * 2));
+  VIXL_ASSERT(!zd.IsLaneSizeB());
+
+  Emit(UUNPKLO_z_z | SVESize(zd) | Rd(zd) | Rn(zn));
+}
+
+// SVEPredicateCount.
+
+void Assembler::cntp(const Register& xd,
+                     const PRegister& pg,
+                     const PRegisterWithLaneSize& pn) {
+  // CNTP <Xd>, <Pg>, <Pn>.<T>
+  //  0010 0101 ..10 0000 10.. ..0. .... ....
+  //  size<23:22> | opc<18:16> = 000 | Pg<13:10> | o2<9> = 0 | Pn<8:5> | Rd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(xd.IsX());
+  VIXL_ASSERT(pg.IsUnqualified());
+  if (pg.HasLaneSize()) VIXL_ASSERT(AreSameFormat(pg, pn));
+
+  Emit(CNTP_r_p_p | SVESize(pn) | Rd(xd) | Pg<13, 10>(pg) | Pn(pn));
+}
+
+// SVEPredicateLogicalOp.
+void Assembler::and_(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(AND_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::ands(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(ANDS_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::bic(const PRegisterWithLaneSize& pd,
+                    const PRegisterZ& pg,
+                    const PRegisterWithLaneSize& pn,
+                    const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(BIC_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::bics(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(BICS_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::eor(const PRegisterWithLaneSize& pd,
+                    const PRegisterZ& pg,
+                    const PRegisterWithLaneSize& pn,
+                    const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(EOR_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::eors(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(EORS_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::nand(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(NAND_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::nands(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const PRegisterWithLaneSize& pn,
+                      const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(NANDS_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::nor(const PRegisterWithLaneSize& pd,
+                    const PRegisterZ& pg,
+                    const PRegisterWithLaneSize& pn,
+                    const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(NOR_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::nors(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(NORS_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::orn(const PRegisterWithLaneSize& pd,
+                    const PRegisterZ& pg,
+                    const PRegisterWithLaneSize& pn,
+                    const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(ORN_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::orns(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(ORNS_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::orr(const PRegisterWithLaneSize& pd,
+                    const PRegisterZ& pg,
+                    const PRegisterWithLaneSize& pn,
+                    const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(ORR_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::orrs(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn,
+                     const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameFormat(pd, pn, pm));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  Emit(ORRS_p_p_pp_z | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::sel(const PRegisterWithLaneSize& pd,
+                    const PRegister& pg,
+                    const PRegisterWithLaneSize& pn,
+                    const PRegisterWithLaneSize& pm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  Emit(SEL_p_p_pp | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+// SVEPredicateMisc.
+
+void Assembler::pfalse(const PRegisterWithLaneSize& pd) {
+  // PFALSE <Pd>.B
+  //  0010 0101 0001 1000 1110 0100 0000 ....
+  //  op<23> = 0 | S<22> = 0 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  // Ignore the lane size, since it makes no difference to the operation.
+
+  Emit(PFALSE_p | Pd(pd));
+}
+
+void Assembler::pfirst(const PRegisterWithLaneSize& pd,
+                       const PRegister& pg,
+                       const PRegisterWithLaneSize& pn) {
+  // PFIRST <Pdn>.B, <Pg>, <Pdn>.B
+  //  0010 0101 0101 1000 1100 000. ...0 ....
+  //  op<23> = 0 | S<22> = 1 | Pg<8:5> | Pdn<3:0>
+
+  USE(pn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pd.Is(pn));
+  VIXL_ASSERT(pd.IsLaneSizeB());
+
+  Emit(PFIRST_p_p_p | Pd(pd) | Pg<8, 5>(pg));
+}
+
+void Assembler::pnext(const PRegisterWithLaneSize& pd,
+                      const PRegister& pg,
+                      const PRegisterWithLaneSize& pn) {
+  // PNEXT <Pdn>.<T>, <Pg>, <Pdn>.<T>
+  //  0010 0101 ..01 1001 1100 010. ...0 ....
+  //  size<23:22> | Pg<8:5> | Pdn<3:0>
+
+  USE(pn);
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pd.Is(pn));
+
+  Emit(PNEXT_p_p_p | SVESize(pd) | Pd(pd) | Pg<8, 5>(pg));
+}
+
+void Assembler::ptest(const PRegister& pg, const PRegisterWithLaneSize& pn) {
+  // PTEST <Pg>, <Pn>.B
+  //  0010 0101 0101 0000 11.. ..0. ...0 0000
+  //  op<23> = 0 | S<22> = 1 | Pg<13:10> | Pn<8:5> | opc2<3:0> = 0000
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(pn.IsLaneSizeB());
+
+  Emit(PTEST_p_p | Pg<13, 10>(pg) | Rx<8, 5>(pn));
+}
+
+void Assembler::ptrue(const PRegisterWithLaneSize& pd, int pattern) {
+  // PTRUE <Pd>.<T>{, <pattern>}
+  //  0010 0101 ..01 1000 1110 00.. ...0 ....
+  //  size<23:22> | S<16> = 0 | pattern<9:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(PTRUE_p_s | SVESize(pd) | Pd(pd) | ImmSVEPredicateConstraint(pattern));
+}
+
+void Assembler::ptrues(const PRegisterWithLaneSize& pd, int pattern) {
+  // PTRUES <Pd>.<T>{, <pattern>}
+  //  0010 0101 ..01 1001 1110 00.. ...0 ....
+  //  size<23:22> | S<16> = 1 | pattern<9:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(PTRUES_p_s | SVESize(pd) | Pd(pd) | ImmSVEPredicateConstraint(pattern));
+}
+
+void Assembler::rdffr(const PRegisterWithLaneSize& pd) {
+  // RDFFR <Pd>.B
+  //  0010 0101 0001 1001 1111 0000 0000 ....
+  //  op<23> = 0 | S<22> = 0 | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(RDFFR_p_f | Pd(pd));
+}
+
+void Assembler::rdffr(const PRegisterWithLaneSize& pd, const PRegisterZ& pg) {
+  // RDFFR <Pd>.B, <Pg>/Z
+  //  0010 0101 0001 1000 1111 000. ...0 ....
+  //  op<23> = 0 | S<22> = 0 | Pg<8:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(RDFFR_p_p_f | Pd(pd) | Pg<8, 5>(pg));
+}
+
+void Assembler::rdffrs(const PRegisterWithLaneSize& pd, const PRegisterZ& pg) {
+  // RDFFRS <Pd>.B, <Pg>/Z
+  //  0010 0101 0101 1000 1111 000. ...0 ....
+  //  op<23> = 0 | S<22> = 1 | Pg<8:5> | Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(RDFFRS_p_p_f | Pd(pd) | Pg<8, 5>(pg));
+}
+
+// SVEPropagateBreak.
+
+void Assembler::brkpa(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const PRegisterWithLaneSize& pn,
+                      const PRegisterWithLaneSize& pm) {
+  // BRKPA <Pd>.B, <Pg>/Z, <Pn>.B, <Pm>.B
+  //  0010 0101 0000 .... 11.. ..0. ...0 ....
+  //  op<23> = 0 | S<22> = 0 | Pm<19:16> | Pg<13:10> | Pn<8:5> | B<4> = 0 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(BRKPA_p_p_pp | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::brkpas(const PRegisterWithLaneSize& pd,
+                       const PRegisterZ& pg,
+                       const PRegisterWithLaneSize& pn,
+                       const PRegisterWithLaneSize& pm) {
+  // BRKPAS <Pd>.B, <Pg>/Z, <Pn>.B, <Pm>.B
+  //  0010 0101 0100 .... 11.. ..0. ...0 ....
+  //  op<23> = 0 | S<22> = 1 | Pm<19:16> | Pg<13:10> | Pn<8:5> | B<4> = 0 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(BRKPAS_p_p_pp | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::brkpb(const PRegisterWithLaneSize& pd,
+                      const PRegisterZ& pg,
+                      const PRegisterWithLaneSize& pn,
+                      const PRegisterWithLaneSize& pm) {
+  // BRKPB <Pd>.B, <Pg>/Z, <Pn>.B, <Pm>.B
+  //  0010 0101 0000 .... 11.. ..0. ...1 ....
+  //  op<23> = 0 | S<22> = 0 | Pm<19:16> | Pg<13:10> | Pn<8:5> | B<4> = 1 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(BRKPB_p_p_pp | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+void Assembler::brkpbs(const PRegisterWithLaneSize& pd,
+                       const PRegisterZ& pg,
+                       const PRegisterWithLaneSize& pn,
+                       const PRegisterWithLaneSize& pm) {
+  // BRKPBS <Pd>.B, <Pg>/Z, <Pn>.B, <Pm>.B
+  //  0010 0101 0100 .... 11.. ..0. ...1 ....
+  //  op<23> = 0 | S<22> = 1 | Pm<19:16> | Pg<13:10> | Pn<8:5> | B<4> = 1 |
+  //  Pd<3:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(BRKPBS_p_p_pp | Pd(pd) | Pg<13, 10>(pg) | Pn(pn) | Pm(pm));
+}
+
+// SVEStackFrameAdjustment.
+
+void Assembler::addpl(const Register& xd, const Register& xn, int imm6) {
+  // ADDPL <Xd|SP>, <Xn|SP>, #<imm>
+  //  0000 0100 011. .... 0101 0... .... ....
+  //  op<22> = 1 | Rn<20:16> | imm6<10:5> | Rd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(xd.IsX());
+  VIXL_ASSERT(xn.IsX());
+
+  Emit(ADDPL_r_ri | RdSP(xd) | RmSP(xn) | ImmField<10, 5>(imm6));
+}
+
+void Assembler::addvl(const Register& xd, const Register& xn, int imm6) {
+  // ADDVL <Xd|SP>, <Xn|SP>, #<imm>
+  //  0000 0100 001. .... 0101 0... .... ....
+  //  op<22> = 0 | Rn<20:16> | imm6<10:5> | Rd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(xd.IsX());
+  VIXL_ASSERT(xn.IsX());
+
+  Emit(ADDVL_r_ri | RdSP(xd) | RmSP(xn) | ImmField<10, 5>(imm6));
+}
+
+// SVEStackFrameSize.
+
+void Assembler::rdvl(const Register& xd, int imm6) {
+  // RDVL <Xd>, #<imm>
+  //  0000 0100 1011 1111 0101 0... .... ....
+  //  op<22> = 0 | opc2<20:16> = 11111 | imm6<10:5> | Rd<4:0>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(xd.IsX());
+
+  Emit(RDVL_r_i | Rd(xd) | ImmField<10, 5>(imm6));
+}
+
+// SVEVectorSelect.
+
+void Assembler::sel(const ZRegister& zd,
+                    const PRegister& pg,
+                    const ZRegister& zn,
+                    const ZRegister& zm) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+
+  Emit(SEL_z_p_zz | SVESize(zd) | Rd(zd) | Pg<13, 10>(pg) | Rn(zn) | Rm(zm));
+}
+
+// SVEWriteFFR.
+
+void Assembler::setffr() {
+  // SETFFR
+  //  0010 0101 0010 1100 1001 0000 0000 0000
+  //  opc<23:22> = 00
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(SETFFR_f);
+}
+
+void Assembler::wrffr(const PRegisterWithLaneSize& pn) {
+  // WRFFR <Pn>.B
+  //  0010 0101 0010 1000 1001 000. ...0 0000
+  //  opc<23:22> = 00 | Pn<8:5>
+
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+
+  Emit(WRFFR_f_p | Rx<8, 5>(pn));
+}
+
+// Aliases.
+
+void Assembler::bic(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+  and_(zd, zn, ~imm);
+}
+
+void Assembler::eon(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+  eor(zd, zn, ~imm);
+}
+
+void Assembler::orn(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+  orr(zd, zn, ~imm);
+}
+
+
+void Assembler::fmov(const ZRegister& zd, const PRegisterM& pg, double imm) {
+  if (IsPositiveZero(imm)) {
+    cpy(zd, pg, 0);
+  } else {
+    fcpy(zd, pg, imm);
+  }
+}
+
+void Assembler::fmov(const ZRegister& zd, double imm) {
+  if (IsPositiveZero(imm)) {
+    dup(zd, imm);
+  } else {
+    fdup(zd, imm);
+  }
+}
+
+void Assembler::mov(const PRegister& pd, const PRegister& pn) {
+  // If the inputs carry a lane size, they must match.
+  VIXL_ASSERT((!pd.HasLaneSize() && !pn.HasLaneSize()) ||
+              AreSameLaneSize(pd, pn));
+  orr(pd.VnB(), pn.Zeroing(), pn.VnB(), pn.VnB());
+}
+
+void Assembler::mov(const PRegisterWithLaneSize& pd,
+                    const PRegisterM& pg,
+                    const PRegisterWithLaneSize& pn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  sel(pd, pg, pn, pd);
+}
+
+void Assembler::mov(const PRegisterWithLaneSize& pd,
+                    const PRegisterZ& pg,
+                    const PRegisterWithLaneSize& pn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  and_(pd, pg, pn, pn);
+}
+
+void Assembler::mov(const ZRegister& zd,
+                    const PRegister& pg,
+                    int imm8,
+                    int shift) {
+  VIXL_ASSERT(pg.IsMerging() || pg.IsZeroing());
+  cpy(zd, pg, imm8, shift);
+}
+
+void Assembler::mov(const ZRegister& zd, const Register& xn) { dup(zd, xn); }
+
+void Assembler::mov(const ZRegister& zd, const VRegister& vn) {
+  VIXL_ASSERT(vn.IsScalar());
+  VIXL_ASSERT(AreSameLaneSize(zd, vn));
+  dup(zd, vn.Z().WithSameLaneSizeAs(vn), 0);
+}
+
+void Assembler::mov(const ZRegister& zd, const ZRegister& zn) {
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  orr(zd.VnD(), zn.VnD(), zn.VnD());
+}
+
+void Assembler::mov(const ZRegister& zd, const ZRegister& zn, unsigned index) {
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  dup(zd, zn, index);
+}
+
+void Assembler::mov(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const Register& rn) {
+  cpy(zd, pg, rn);
+}
+
+void Assembler::mov(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const VRegister& vn) {
+  VIXL_ASSERT(vn.IsScalar());
+  VIXL_ASSERT(AreSameLaneSize(zd, vn));
+  cpy(zd, pg, vn);
+}
+
+void Assembler::mov(const ZRegister& zd,
+                    const PRegisterM& pg,
+                    const ZRegister& zn) {
+  VIXL_ASSERT(AreSameLaneSize(zd, zn));
+  sel(zd, pg, zn, zd);
+}
+
+void Assembler::mov(const ZRegister& zd, uint64_t imm) {
+  // Mov is an alias of dupm for certain values of imm. Whilst this matters in
+  // the disassembler, for the assembler, we don't distinguish between the
+  // two mnemonics, and simply call dupm.
+  dupm(zd, imm);
+}
+
+void Assembler::mov(const ZRegister& zd, int imm8, int shift) {
+  dup(zd, imm8, shift);
+}
+
+void Assembler::movs(const PRegister& pd, const PRegister& pn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  orrs(pd.VnB(), pn.Zeroing(), pn.VnB(), pn.VnB());
+}
+
+void Assembler::movs(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  ands(pd, pg, pn, pn);
+}
+
+void Assembler::not_(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  eor(pd, pg, pn, pg.VnB());
+}
+
+void Assembler::nots(const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const PRegisterWithLaneSize& pn) {
+  VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+  eors(pd, pg, pn, pg.VnB());
+}
+
+}  // namespace aarch64
+}  // namespace vixl
diff --git a/src/aarch64/constants-aarch64.h b/src/aarch64/constants-aarch64.h
index 36f5568..d17c889 100644
--- a/src/aarch64/constants-aarch64.h
+++ b/src/aarch64/constants-aarch64.h
@@ -34,6 +34,8 @@
 
 const unsigned kNumberOfRegisters = 32;
 const unsigned kNumberOfVRegisters = 32;
+const unsigned kNumberOfZRegisters = kNumberOfVRegisters;
+const unsigned kNumberOfPRegisters = 16;
 // Callee saved registers are x21-x30(lr).
 const int kNumberOfCalleeSavedRegisters = 10;
 const int kFirstCalleeSavedRegisterIndex = 21;
@@ -41,14 +43,34 @@
 // still caller-saved.
 const int kNumberOfCalleeSavedFPRegisters = 8;
 const int kFirstCalleeSavedFPRegisterIndex = 8;
+// All predicated instructions accept at least p0-p7 as the governing predicate.
+const unsigned kNumberOfGoverningPRegisters = 8;
 
 // clang-format off
+#define AARCH64_P_REGISTER_CODE_LIST(R)                                        \
+  R(0)  R(1)  R(2)  R(3)  R(4)  R(5)  R(6)  R(7)                               \
+  R(8)  R(9)  R(10) R(11) R(12) R(13) R(14) R(15)
+
 #define AARCH64_REGISTER_CODE_LIST(R)                                          \
   R(0)  R(1)  R(2)  R(3)  R(4)  R(5)  R(6)  R(7)                               \
   R(8)  R(9)  R(10) R(11) R(12) R(13) R(14) R(15)                              \
   R(16) R(17) R(18) R(19) R(20) R(21) R(22) R(23)                              \
   R(24) R(25) R(26) R(27) R(28) R(29) R(30) R(31)
 
+// SVE loads and stores use "w" instead of "s" for word-sized accesses, so the
+// mapping from the load/store variant to constants like k*RegSize is irregular.
+#define VIXL_SVE_LOAD_STORE_VARIANT_LIST(V) \
+  V(b, B)                            \
+  V(h, H)                            \
+  V(w, S)                            \
+  V(d, D)
+
+// Sign-extending loads don't have double-word variants.
+#define VIXL_SVE_LOAD_STORE_SIGNED_VARIANT_LIST(V) \
+  V(b, B)                            \
+  V(h, H)                            \
+  V(w, S)
+
 #define INSTRUCTION_FIELDS_LIST(V_)                                          \
 /* Register fields */                                                        \
 V_(Rd, 4, 0, ExtractBits)         /* Destination register.                */ \
@@ -59,6 +81,11 @@
 V_(Rt, 4, 0, ExtractBits)         /* Load/store register.                 */ \
 V_(Rt2, 14, 10, ExtractBits)      /* Load/store second register.          */ \
 V_(Rs, 20, 16, ExtractBits)       /* Exclusive access status.             */ \
+V_(Pt, 3, 0, ExtractBits)         /* Load/store register (p0-p7).         */ \
+V_(Pd, 3, 0, ExtractBits)         /* SVE destination predicate register.  */ \
+V_(Pn, 8, 5, ExtractBits)         /* SVE first source predicate register. */ \
+V_(Pm, 19, 16, ExtractBits)       /* SVE second source predicate register.*/ \
+V_(PgLow8, 12, 10, ExtractBits)   /* Governing predicate (p0-p7).         */ \
                                                                              \
 /* Common bits */                                                            \
 V_(SixtyFourBits, 31, 31, ExtractBits)                                       \
@@ -74,7 +101,7 @@
                                                                              \
 /* Add/subtract immediate */                                                 \
 V_(ImmAddSub, 21, 10, ExtractBits)                                           \
-V_(ShiftAddSub, 23, 22, ExtractBits)                                         \
+V_(ImmAddSubShift, 22, 22, ExtractBits)                                      \
                                                                              \
 /* Add/substract extend */                                                   \
 V_(ImmExtendShift, 12, 10, ExtractBits)                                      \
@@ -177,7 +204,23 @@
 /* NEON Shift Immediate fields */                                            \
 V_(ImmNEONImmhImmb, 22, 16, ExtractBits)                                     \
 V_(ImmNEONImmh, 22, 19, ExtractBits)                                         \
-V_(ImmNEONImmb, 18, 16, ExtractBits)
+V_(ImmNEONImmb, 18, 16, ExtractBits)                                         \
+                                                                             \
+/* SVE generic fields */                                                     \
+V_(SVESize, 23, 22, ExtractBits)                                             \
+V_(ImmSVEVLScale, 10, 5, ExtractSignedBits)                                  \
+V_(ImmSVEIntWideSigned, 12, 5, ExtractSignedBits)                            \
+V_(ImmSVEIntWideUnsigned, 12, 5, ExtractBits)                                \
+V_(ImmSVEPredicateConstraint, 9, 5, ExtractBits)                             \
+                                                                             \
+/* SVE Bitwise Immediate bitfield */                                         \
+V_(SVEBitN, 17, 17, ExtractBits)                                             \
+V_(SVEImmRotate, 16, 11, ExtractBits)                                        \
+V_(SVEImmSetBits, 10, 5, ExtractBits)                                        \
+                                                                             \
+V_(SVEImmPrefetchOperation, 3, 0, ExtractBits)                               \
+V_(SVEPrefetchHint, 3, 3, ExtractBits)
+
 // clang-format on
 
 #define SYSTEM_REGISTER_FIELDS_LIST(V_, M_) \
@@ -235,7 +278,22 @@
 
   // Aliases.
   hs = cs,  // C set            Unsigned higher or same.
-  lo = cc   // C clear          Unsigned lower.
+  lo = cc,  // C clear          Unsigned lower.
+
+  // Floating-point additional condition code.
+  uo,       // Unordered comparison.
+
+  // SVE predicate condition aliases.
+  sve_none  = eq,  // No active elements were true.
+  sve_any   = ne,  // An active element was true.
+  sve_nlast = cs,  // The last element was not true.
+  sve_last  = cc,  // The last element was true.
+  sve_first = mi,  // The first element was true.
+  sve_nfrst = pl,  // The first element was not true.
+  sve_pmore = hi,  // An active element was true but not the last element.
+  sve_plast = ls,  // The last active element was true or no active elements were true.
+  sve_tcont = ge,  // CTERM termination condition not deleted.
+  sve_tstop = lt   // CTERM termination condition deleted.
 };
 
 inline Condition InvertCondition(Condition cond) {
@@ -279,7 +337,12 @@
   FPEqualFlag       = ZCFlag,
   FPLessThanFlag    = NFlag,
   FPGreaterThanFlag = CFlag,
-  FPUnorderedFlag   = CVFlag
+  FPUnorderedFlag   = CVFlag,
+
+  // SVE condition flags.
+  SVEFirstFlag   = NFlag,
+  SVENoneFlag    = ZFlag,
+  SVENotLastFlag = CFlag
 };
 
 enum Shift {
@@ -303,6 +366,17 @@
   SXTX      = 7
 };
 
+enum SVEOffsetModifier {
+  NO_SVE_OFFSET_MODIFIER,
+  // Multiply (each element of) the offset by either the vector or predicate
+  // length, according to the context.
+  SVE_MUL_VL,
+  // Shift or extend modifiers (as in `Shift` or `Extend`).
+  SVE_LSL,
+  SVE_UXTW,
+  SVE_SXTW
+};
+
 enum SystemHint {
   NOP    = 0,
   YIELD  = 1,
@@ -353,6 +427,9 @@
   PLDL3KEEP = 0x04,
   PLDL3STRM = 0x05,
 
+  PrfUnallocated06 = 0x06,
+  PrfUnallocated07 = 0x07,
+
   PLIL1KEEP = 0x08,
   PLIL1STRM = 0x09,
   PLIL2KEEP = 0x0a,
@@ -360,14 +437,34 @@
   PLIL3KEEP = 0x0c,
   PLIL3STRM = 0x0d,
 
+  PrfUnallocated0e = 0x0e,
+  PrfUnallocated0f = 0x0f,
+
   PSTL1KEEP = 0x10,
   PSTL1STRM = 0x11,
   PSTL2KEEP = 0x12,
   PSTL2STRM = 0x13,
   PSTL3KEEP = 0x14,
-  PSTL3STRM = 0x15
+  PSTL3STRM = 0x15,
+
+  PrfUnallocated16 = 0x16,
+  PrfUnallocated17 = 0x17,
+  PrfUnallocated18 = 0x18,
+  PrfUnallocated19 = 0x19,
+  PrfUnallocated1a = 0x1a,
+  PrfUnallocated1b = 0x1b,
+  PrfUnallocated1c = 0x1c,
+  PrfUnallocated1d = 0x1d,
+  PrfUnallocated1e = 0x1e,
+  PrfUnallocated1f = 0x1f,
 };
 
+constexpr bool IsNamedPrefetchOperation(int op) {
+  return ((op >= PLDL1KEEP) && (op <= PLDL3STRM)) ||
+      ((op >= PLIL1KEEP) && (op <= PLIL3STRM)) ||
+      ((op >= PSTL1KEEP) && (op <= PSTL3STRM));
+}
+
 enum BType {
   // Set when executing any instruction on a guarded page, except those cases
   // listed below.
@@ -429,6 +526,36 @@
   ZVA = CacheOpEncoder<3, 7, 4, 1>::value
 };
 
+// Some SVE instructions support a predicate constraint pattern. This is
+// interpreted as a VL-dependent value, and is typically used to initialise
+// predicates, or to otherwise limit the number of processed elements.
+enum SVEPredicateConstraint {
+  // Select 2^N elements, for the largest possible N.
+  SVE_POW2 = 0x0,
+  // Each VL<N> selects exactly N elements if possible, or zero if N is greater
+  // than the number of elements. Note that the encoding values for VL<N> are
+  // not linearly related to N.
+  SVE_VL1 = 0x1,
+  SVE_VL2 = 0x2,
+  SVE_VL3 = 0x3,
+  SVE_VL4 = 0x4,
+  SVE_VL5 = 0x5,
+  SVE_VL6 = 0x6,
+  SVE_VL7 = 0x7,
+  SVE_VL8 = 0x8,
+  SVE_VL16 = 0x9,
+  SVE_VL32 = 0xa,
+  SVE_VL64 = 0xb,
+  SVE_VL128 = 0xc,
+  SVE_VL256 = 0xd,
+  // Each MUL<N> selects the largest multiple of N elements that the vector
+  // length supports. Note that for D-sized lanes, this can be zero.
+  SVE_MUL4 = 0x1d,
+  SVE_MUL3 = 0x1e,
+  // Select all elements.
+  SVE_ALL = 0x1f
+};
+
 // Instruction enumerations.
 //
 // These are the masks that define a class of instructions, and the list of
@@ -503,6 +630,14 @@
   NEON_D                    = 0x00C00000
 };
 
+enum SVESizeField {
+  SVESizeFieldMask = 0x00C00000,
+  SVE_B            = 0x00000000,
+  SVE_H            = 0x00400000,
+  SVE_S            = 0x00800000,
+  SVE_D            = 0x00C00000
+};
+
 // PC relative addressing.
 enum PCRelAddressingOp {
   PCRelAddressingFixed = 0x10000000,
@@ -531,8 +666,8 @@
 
 enum AddSubImmediateOp {
   AddSubImmediateFixed = 0x11000000,
-  AddSubImmediateFMask = 0x1F000000,
-  AddSubImmediateMask  = 0xFF000000,
+  AddSubImmediateFMask = 0x1F800000,
+  AddSubImmediateMask  = 0xFF800000,
   #define ADD_SUB_IMMEDIATE(A)           \
   A##_w_imm = AddSubImmediateFixed | A,  \
   A##_x_imm = AddSubImmediateFixed | A | SixtyFourBits
@@ -2660,11 +2795,1626 @@
   NEON_FCVTZU_imm_scalar = NEON_Q | NEONScalar | NEON_FCVTZU_imm
 };
 
+enum SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsetsOp {
+  SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsetsFixed = 0x84A00000,
+  SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsetsFMask = 0xFFA08000,
+  SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsetsMask = 0xFFA0E000,
+  LD1SH_z_p_bz_s_x32_scaled = SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsetsFixed,
+  LDFF1SH_z_p_bz_s_x32_scaled = SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsetsFixed | 0x00002000,
+  LD1H_z_p_bz_s_x32_scaled = SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsetsFixed | 0x00004000,
+  LDFF1H_z_p_bz_s_x32_scaled = SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsetsFixed | 0x00006000
+};
+
+enum SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsetsOp {
+  SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsetsFixed = 0x85200000,
+  SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsetsFMask = 0xFFA08000,
+  SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsetsMask = 0xFFA0E000,
+  LD1W_z_p_bz_s_x32_scaled = SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsetsFixed | 0x00004000,
+  LDFF1W_z_p_bz_s_x32_scaled = SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsetsFixed | 0x00006000
+};
+
+enum SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsOp {
+  SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed = 0x84000000,
+  SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFMask = 0xFE208000,
+  SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsMask = 0xFFA0E000,
+  LD1SB_z_p_bz_s_x32_unscaled = SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed,
+  LDFF1SB_z_p_bz_s_x32_unscaled = SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed | 0x00002000,
+  LD1B_z_p_bz_s_x32_unscaled = SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed | 0x00004000,
+  LDFF1B_z_p_bz_s_x32_unscaled = SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed | 0x00006000,
+  LD1SH_z_p_bz_s_x32_unscaled = SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed | 0x00800000,
+  LDFF1SH_z_p_bz_s_x32_unscaled = SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed | 0x00802000,
+  LD1H_z_p_bz_s_x32_unscaled = SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed | 0x00804000,
+  LDFF1H_z_p_bz_s_x32_unscaled = SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed | 0x00806000,
+  LD1W_z_p_bz_s_x32_unscaled = SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed | 0x01004000,
+  LDFF1W_z_p_bz_s_x32_unscaled = SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsFixed | 0x01006000
+};
+
+enum SVE32BitGatherLoad_VectorPlusImmOp {
+  SVE32BitGatherLoad_VectorPlusImmFixed = 0x84208000,
+  SVE32BitGatherLoad_VectorPlusImmFMask = 0xFE608000,
+  SVE32BitGatherLoad_VectorPlusImmMask = 0xFFE0E000,
+  LD1SB_z_p_ai_s = SVE32BitGatherLoad_VectorPlusImmFixed,
+  LDFF1SB_z_p_ai_s = SVE32BitGatherLoad_VectorPlusImmFixed | 0x00002000,
+  LD1B_z_p_ai_s = SVE32BitGatherLoad_VectorPlusImmFixed | 0x00004000,
+  LDFF1B_z_p_ai_s = SVE32BitGatherLoad_VectorPlusImmFixed | 0x00006000,
+  LD1SH_z_p_ai_s = SVE32BitGatherLoad_VectorPlusImmFixed | 0x00800000,
+  LDFF1SH_z_p_ai_s = SVE32BitGatherLoad_VectorPlusImmFixed | 0x00802000,
+  LD1H_z_p_ai_s = SVE32BitGatherLoad_VectorPlusImmFixed | 0x00804000,
+  LDFF1H_z_p_ai_s = SVE32BitGatherLoad_VectorPlusImmFixed | 0x00806000,
+  LD1W_z_p_ai_s = SVE32BitGatherLoad_VectorPlusImmFixed | 0x01004000,
+  LDFF1W_z_p_ai_s = SVE32BitGatherLoad_VectorPlusImmFixed | 0x01006000
+};
+
+enum SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsetsOp {
+  SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsetsFixed = 0x84200000,
+  SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsetsFMask = 0xFFA08010,
+  SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsetsMask = 0xFFA0E010,
+  PRFB_i_p_bz_s_x32_scaled = SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsetsFixed,
+  PRFH_i_p_bz_s_x32_scaled = SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsetsFixed | 0x00002000,
+  PRFW_i_p_bz_s_x32_scaled = SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsetsFixed | 0x00004000,
+  PRFD_i_p_bz_s_x32_scaled = SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsetsFixed | 0x00006000
+};
+
+enum SVE32BitGatherPrefetch_VectorPlusImmOp {
+  SVE32BitGatherPrefetch_VectorPlusImmFixed = 0x8400E000,
+  SVE32BitGatherPrefetch_VectorPlusImmFMask = 0xFE60E010,
+  SVE32BitGatherPrefetch_VectorPlusImmMask = 0xFFE0E010,
+  PRFB_i_p_ai_s = SVE32BitGatherPrefetch_VectorPlusImmFixed,
+  PRFH_i_p_ai_s = SVE32BitGatherPrefetch_VectorPlusImmFixed | 0x00800000,
+  PRFW_i_p_ai_s = SVE32BitGatherPrefetch_VectorPlusImmFixed | 0x01000000,
+  PRFD_i_p_ai_s = SVE32BitGatherPrefetch_VectorPlusImmFixed | 0x01800000
+};
+
+enum SVE32BitScatterStore_ScalarPlus32BitScaledOffsetsOp {
+  SVE32BitScatterStore_ScalarPlus32BitScaledOffsetsFixed = 0xE4608000,
+  SVE32BitScatterStore_ScalarPlus32BitScaledOffsetsFMask = 0xFE60A000,
+  SVE32BitScatterStore_ScalarPlus32BitScaledOffsetsMask = 0xFFE0A000,
+  ST1H_z_p_bz_s_x32_scaled = SVE32BitScatterStore_ScalarPlus32BitScaledOffsetsFixed | 0x00800000,
+  ST1W_z_p_bz_s_x32_scaled = SVE32BitScatterStore_ScalarPlus32BitScaledOffsetsFixed | 0x01000000
+};
+
+enum SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsetsOp {
+  SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsetsFixed = 0xE4408000,
+  SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsetsFMask = 0xFE60A000,
+  SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsetsMask = 0xFFE0A000,
+  ST1B_z_p_bz_s_x32_unscaled = SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsetsFixed,
+  ST1H_z_p_bz_s_x32_unscaled = SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsetsFixed | 0x00800000,
+  ST1W_z_p_bz_s_x32_unscaled = SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsetsFixed | 0x01000000
+};
+
+enum SVE32BitScatterStore_VectorPlusImmOp {
+  SVE32BitScatterStore_VectorPlusImmFixed = 0xE460A000,
+  SVE32BitScatterStore_VectorPlusImmFMask = 0xFE60E000,
+  SVE32BitScatterStore_VectorPlusImmMask = 0xFFE0E000,
+  ST1B_z_p_ai_s = SVE32BitScatterStore_VectorPlusImmFixed,
+  ST1H_z_p_ai_s = SVE32BitScatterStore_VectorPlusImmFixed | 0x00800000,
+  ST1W_z_p_ai_s = SVE32BitScatterStore_VectorPlusImmFixed | 0x01000000
+};
+
+enum SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsOp {
+  SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed = 0xC4200000,
+  SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFMask = 0xFE208000,
+  SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsMask = 0xFFA0E000,
+  LD1SH_z_p_bz_d_x32_scaled = SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed | 0x00800000,
+  LDFF1SH_z_p_bz_d_x32_scaled = SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed | 0x00802000,
+  LD1H_z_p_bz_d_x32_scaled = SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed | 0x00804000,
+  LDFF1H_z_p_bz_d_x32_scaled = SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed | 0x00806000,
+  LD1SW_z_p_bz_d_x32_scaled = SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed | 0x01000000,
+  LDFF1SW_z_p_bz_d_x32_scaled = SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed | 0x01002000,
+  LD1W_z_p_bz_d_x32_scaled = SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed | 0x01004000,
+  LDFF1W_z_p_bz_d_x32_scaled = SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed | 0x01006000,
+  LD1D_z_p_bz_d_x32_scaled = SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed | 0x01804000,
+  LDFF1D_z_p_bz_d_x32_scaled = SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsFixed | 0x01806000
+};
+
+enum SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsOp {
+  SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed = 0xC4608000,
+  SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFMask = 0xFE608000,
+  SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsMask = 0xFFE0E000,
+  LD1SH_z_p_bz_d_64_scaled = SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed | 0x00800000,
+  LDFF1SH_z_p_bz_d_64_scaled = SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed | 0x00802000,
+  LD1H_z_p_bz_d_64_scaled = SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed | 0x00804000,
+  LDFF1H_z_p_bz_d_64_scaled = SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed | 0x00806000,
+  LD1SW_z_p_bz_d_64_scaled = SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed | 0x01000000,
+  LDFF1SW_z_p_bz_d_64_scaled = SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed | 0x01002000,
+  LD1W_z_p_bz_d_64_scaled = SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed | 0x01004000,
+  LDFF1W_z_p_bz_d_64_scaled = SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed | 0x01006000,
+  LD1D_z_p_bz_d_64_scaled = SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed | 0x01804000,
+  LDFF1D_z_p_bz_d_64_scaled = SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsFixed | 0x01806000
+};
+
+enum SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsOp {
+  SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed = 0xC4408000,
+  SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFMask = 0xFE608000,
+  SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsMask = 0xFFE0E000,
+  LD1SB_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed,
+  LDFF1SB_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x00002000,
+  LD1B_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x00004000,
+  LDFF1B_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x00006000,
+  LD1SH_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x00800000,
+  LDFF1SH_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x00802000,
+  LD1H_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x00804000,
+  LDFF1H_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x00806000,
+  LD1SW_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x01000000,
+  LDFF1SW_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x01002000,
+  LD1W_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x01004000,
+  LDFF1W_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x01006000,
+  LD1D_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x01804000,
+  LDFF1D_z_p_bz_d_64_unscaled = SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsFixed | 0x01806000
+};
+
+enum SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsOp {
+  SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed = 0xC4000000,
+  SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFMask = 0xFE208000,
+  SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsMask = 0xFFA0E000,
+  LD1SB_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed,
+  LDFF1SB_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x00002000,
+  LD1B_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x00004000,
+  LDFF1B_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x00006000,
+  LD1SH_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x00800000,
+  LDFF1SH_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x00802000,
+  LD1H_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x00804000,
+  LDFF1H_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x00806000,
+  LD1SW_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x01000000,
+  LDFF1SW_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x01002000,
+  LD1W_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x01004000,
+  LDFF1W_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x01006000,
+  LD1D_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x01804000,
+  LDFF1D_z_p_bz_d_x32_unscaled = SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x01806000
+};
+
+enum SVE64BitGatherLoad_VectorPlusImmOp {
+  SVE64BitGatherLoad_VectorPlusImmFixed = 0xC4208000,
+  SVE64BitGatherLoad_VectorPlusImmFMask = 0xFE608000,
+  SVE64BitGatherLoad_VectorPlusImmMask = 0xFFE0E000,
+  LD1SB_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed,
+  LDFF1SB_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x00002000,
+  LD1B_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x00004000,
+  LDFF1B_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x00006000,
+  LD1SH_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x00800000,
+  LDFF1SH_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x00802000,
+  LD1H_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x00804000,
+  LDFF1H_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x00806000,
+  LD1SW_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x01000000,
+  LDFF1SW_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x01002000,
+  LD1W_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x01004000,
+  LDFF1W_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x01006000,
+  LD1D_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x01804000,
+  LDFF1D_z_p_ai_d = SVE64BitGatherLoad_VectorPlusImmFixed | 0x01806000
+};
+
+enum SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsetsOp {
+  SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsetsFixed = 0xC4608000,
+  SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsetsFMask = 0xFFE08010,
+  SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsetsMask = 0xFFE0E010,
+  PRFB_i_p_bz_d_64_scaled = SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsetsFixed,
+  PRFH_i_p_bz_d_64_scaled = SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsetsFixed | 0x00002000,
+  PRFW_i_p_bz_d_64_scaled = SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsetsFixed | 0x00004000,
+  PRFD_i_p_bz_d_64_scaled = SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsetsFixed | 0x00006000
+};
+
+enum SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsetsOp {
+  SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsetsFixed = 0xC4200000,
+  SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsetsFMask = 0xFFA08010,
+  SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsetsMask = 0xFFA0E010,
+  PRFB_i_p_bz_d_x32_scaled = SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsetsFixed,
+  PRFH_i_p_bz_d_x32_scaled = SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsetsFixed | 0x00002000,
+  PRFW_i_p_bz_d_x32_scaled = SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsetsFixed | 0x00004000,
+  PRFD_i_p_bz_d_x32_scaled = SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsetsFixed | 0x00006000
+};
+
+enum SVE64BitGatherPrefetch_VectorPlusImmOp {
+  SVE64BitGatherPrefetch_VectorPlusImmFixed = 0xC400E000,
+  SVE64BitGatherPrefetch_VectorPlusImmFMask = 0xFE60E010,
+  SVE64BitGatherPrefetch_VectorPlusImmMask = 0xFFE0E010,
+  PRFB_i_p_ai_d = SVE64BitGatherPrefetch_VectorPlusImmFixed,
+  PRFH_i_p_ai_d = SVE64BitGatherPrefetch_VectorPlusImmFixed | 0x00800000,
+  PRFW_i_p_ai_d = SVE64BitGatherPrefetch_VectorPlusImmFixed | 0x01000000,
+  PRFD_i_p_ai_d = SVE64BitGatherPrefetch_VectorPlusImmFixed | 0x01800000
+};
+
+enum SVE64BitScatterStore_ScalarPlus64BitScaledOffsetsOp {
+  SVE64BitScatterStore_ScalarPlus64BitScaledOffsetsFixed = 0xE420A000,
+  SVE64BitScatterStore_ScalarPlus64BitScaledOffsetsFMask = 0xFE60E000,
+  SVE64BitScatterStore_ScalarPlus64BitScaledOffsetsMask = 0xFFE0E000,
+  ST1H_z_p_bz_d_64_scaled = SVE64BitScatterStore_ScalarPlus64BitScaledOffsetsFixed | 0x00800000,
+  ST1W_z_p_bz_d_64_scaled = SVE64BitScatterStore_ScalarPlus64BitScaledOffsetsFixed | 0x01000000,
+  ST1D_z_p_bz_d_64_scaled = SVE64BitScatterStore_ScalarPlus64BitScaledOffsetsFixed | 0x01800000
+};
+
+enum SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsetsOp {
+  SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsetsFixed = 0xE400A000,
+  SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsetsFMask = 0xFE60E000,
+  SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsetsMask = 0xFFE0E000,
+  ST1B_z_p_bz_d_64_unscaled = SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsetsFixed,
+  ST1H_z_p_bz_d_64_unscaled = SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsetsFixed | 0x00800000,
+  ST1W_z_p_bz_d_64_unscaled = SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsetsFixed | 0x01000000,
+  ST1D_z_p_bz_d_64_unscaled = SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsetsFixed | 0x01800000
+};
+
+enum SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsetsOp {
+  SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsetsFixed = 0xE4208000,
+  SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsetsFMask = 0xFE60A000,
+  SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsetsMask = 0xFFE0A000,
+  ST1H_z_p_bz_d_x32_scaled = SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsetsFixed | 0x00800000,
+  ST1W_z_p_bz_d_x32_scaled = SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsetsFixed | 0x01000000,
+  ST1D_z_p_bz_d_x32_scaled = SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsetsFixed | 0x01800000
+};
+
+enum SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsetsOp {
+  SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsetsFixed = 0xE4008000,
+  SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsetsFMask = 0xFE60A000,
+  SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsetsMask = 0xFFE0A000,
+  ST1B_z_p_bz_d_x32_unscaled = SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsetsFixed,
+  ST1H_z_p_bz_d_x32_unscaled = SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x00800000,
+  ST1W_z_p_bz_d_x32_unscaled = SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x01000000,
+  ST1D_z_p_bz_d_x32_unscaled = SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsetsFixed | 0x01800000
+};
+
+enum SVE64BitScatterStore_VectorPlusImmOp {
+  SVE64BitScatterStore_VectorPlusImmFixed = 0xE440A000,
+  SVE64BitScatterStore_VectorPlusImmFMask = 0xFE60E000,
+  SVE64BitScatterStore_VectorPlusImmMask = 0xFFE0E000,
+  ST1B_z_p_ai_d = SVE64BitScatterStore_VectorPlusImmFixed,
+  ST1H_z_p_ai_d = SVE64BitScatterStore_VectorPlusImmFixed | 0x00800000,
+  ST1W_z_p_ai_d = SVE64BitScatterStore_VectorPlusImmFixed | 0x01000000,
+  ST1D_z_p_ai_d = SVE64BitScatterStore_VectorPlusImmFixed | 0x01800000
+};
+
+enum SVEAddressGenerationOp {
+  SVEAddressGenerationFixed = 0x0420A000,
+  SVEAddressGenerationFMask = 0xFF20F000,
+  SVEAddressGenerationMask = 0xFFE0F000,
+  ADR_z_az_d_s32_scaled = SVEAddressGenerationFixed,
+  ADR_z_az_d_u32_scaled = SVEAddressGenerationFixed | 0x00400000,
+  ADR_z_az_s_same_scaled = SVEAddressGenerationFixed | 0x00800000,
+  ADR_z_az_d_same_scaled = SVEAddressGenerationFixed | 0x00C00000
+};
+
+enum SVEBitwiseLogicalUnpredicatedOp {
+  SVEBitwiseLogicalUnpredicatedFixed = 0x04202000,
+  SVEBitwiseLogicalUnpredicatedFMask = 0xFF20E000,
+  SVEBitwiseLogicalUnpredicatedMask = 0xFFE0FC00,
+  AND_z_zz = SVEBitwiseLogicalUnpredicatedFixed | 0x00001000,
+  ORR_z_zz = SVEBitwiseLogicalUnpredicatedFixed | 0x00401000,
+  EOR_z_zz = SVEBitwiseLogicalUnpredicatedFixed | 0x00801000,
+  BIC_z_zz = SVEBitwiseLogicalUnpredicatedFixed | 0x00C01000
+};
+
+enum SVEBitwiseLogicalWithImm_UnpredicatedOp {
+  SVEBitwiseLogicalWithImm_UnpredicatedFixed = 0x05000000,
+  SVEBitwiseLogicalWithImm_UnpredicatedFMask = 0xFF3C0000,
+  SVEBitwiseLogicalWithImm_UnpredicatedMask = 0xFFFC0000,
+  ORR_z_zi = SVEBitwiseLogicalWithImm_UnpredicatedFixed,
+  EOR_z_zi = SVEBitwiseLogicalWithImm_UnpredicatedFixed | 0x00400000,
+  AND_z_zi = SVEBitwiseLogicalWithImm_UnpredicatedFixed | 0x00800000
+};
+
+enum SVEBitwiseLogical_PredicatedOp {
+  SVEBitwiseLogical_PredicatedFixed = 0x04180000,
+  SVEBitwiseLogical_PredicatedFMask = 0xFF38E000,
+  SVEBitwiseLogical_PredicatedMask = 0xFF3FE000,
+  ORR_z_p_zz = SVEBitwiseLogical_PredicatedFixed,
+  EOR_z_p_zz = SVEBitwiseLogical_PredicatedFixed | 0x00010000,
+  AND_z_p_zz = SVEBitwiseLogical_PredicatedFixed | 0x00020000,
+  BIC_z_p_zz = SVEBitwiseLogical_PredicatedFixed | 0x00030000
+};
+
+enum SVEBitwiseShiftByImm_PredicatedOp {
+  SVEBitwiseShiftByImm_PredicatedFixed = 0x04008000,
+  SVEBitwiseShiftByImm_PredicatedFMask = 0xFF30E000,
+  SVEBitwiseShiftByImm_PredicatedMask = 0xFF3FE000,
+  ASR_z_p_zi = SVEBitwiseShiftByImm_PredicatedFixed,
+  LSR_z_p_zi = SVEBitwiseShiftByImm_PredicatedFixed | 0x00010000,
+  LSL_z_p_zi = SVEBitwiseShiftByImm_PredicatedFixed | 0x00030000,
+  ASRD_z_p_zi = SVEBitwiseShiftByImm_PredicatedFixed | 0x00040000
+};
+
+enum SVEBitwiseShiftByVector_PredicatedOp {
+  SVEBitwiseShiftByVector_PredicatedFixed = 0x04108000,
+  SVEBitwiseShiftByVector_PredicatedFMask = 0xFF38E000,
+  SVEBitwiseShiftByVector_PredicatedMask = 0xFF3FE000,
+  ASR_z_p_zz = SVEBitwiseShiftByVector_PredicatedFixed,
+  LSR_z_p_zz = SVEBitwiseShiftByVector_PredicatedFixed | 0x00010000,
+  LSL_z_p_zz = SVEBitwiseShiftByVector_PredicatedFixed | 0x00030000,
+  ASRR_z_p_zz = SVEBitwiseShiftByVector_PredicatedFixed | 0x00040000,
+  LSRR_z_p_zz = SVEBitwiseShiftByVector_PredicatedFixed | 0x00050000,
+  LSLR_z_p_zz = SVEBitwiseShiftByVector_PredicatedFixed | 0x00070000
+};
+
+enum SVEBitwiseShiftByWideElements_PredicatedOp {
+  SVEBitwiseShiftByWideElements_PredicatedFixed = 0x04188000,
+  SVEBitwiseShiftByWideElements_PredicatedFMask = 0xFF38E000,
+  SVEBitwiseShiftByWideElements_PredicatedMask = 0xFF3FE000,
+  ASR_z_p_zw = SVEBitwiseShiftByWideElements_PredicatedFixed,
+  LSR_z_p_zw = SVEBitwiseShiftByWideElements_PredicatedFixed | 0x00010000,
+  LSL_z_p_zw = SVEBitwiseShiftByWideElements_PredicatedFixed | 0x00030000
+};
+
+enum SVEBitwiseShiftUnpredicatedOp {
+  SVEBitwiseShiftUnpredicatedFixed = 0x04208000,
+  SVEBitwiseShiftUnpredicatedFMask = 0xFF20E000,
+  SVEBitwiseShiftUnpredicatedMask = 0xFF20FC00,
+  ASR_z_zw = SVEBitwiseShiftUnpredicatedFixed,
+  LSR_z_zw = SVEBitwiseShiftUnpredicatedFixed | 0x00000400,
+  LSL_z_zw = SVEBitwiseShiftUnpredicatedFixed | 0x00000C00,
+  ASR_z_zi = SVEBitwiseShiftUnpredicatedFixed | 0x00001000,
+  LSR_z_zi = SVEBitwiseShiftUnpredicatedFixed | 0x00001400,
+  LSL_z_zi = SVEBitwiseShiftUnpredicatedFixed | 0x00001C00
+};
+
+enum SVEBroadcastBitmaskImmOp {
+  SVEBroadcastBitmaskImmFixed = 0x05C00000,
+  SVEBroadcastBitmaskImmFMask = 0xFFFC0000,
+  SVEBroadcastBitmaskImmMask = 0xFFFC0000,
+  DUPM_z_i = SVEBroadcastBitmaskImmFixed
+};
+
+enum SVEBroadcastFPImm_UnpredicatedOp {
+  SVEBroadcastFPImm_UnpredicatedFixed = 0x2539C000,
+  SVEBroadcastFPImm_UnpredicatedFMask = 0xFF39C000,
+  SVEBroadcastFPImm_UnpredicatedMask = 0xFF3FE000,
+  FDUP_z_i = SVEBroadcastFPImm_UnpredicatedFixed
+};
+
+enum SVEBroadcastGeneralRegisterOp {
+  SVEBroadcastGeneralRegisterFixed = 0x05203800,
+  SVEBroadcastGeneralRegisterFMask = 0xFF3FFC00,
+  SVEBroadcastGeneralRegisterMask = 0xFF3FFC00,
+  DUP_z_r = SVEBroadcastGeneralRegisterFixed
+};
+
+enum SVEBroadcastIndexElementOp {
+  SVEBroadcastIndexElementFixed = 0x05202000,
+  SVEBroadcastIndexElementFMask = 0xFF20FC00,
+  SVEBroadcastIndexElementMask = 0xFF20FC00,
+  DUP_z_zi = SVEBroadcastIndexElementFixed
+};
+
+enum SVEBroadcastIntImm_UnpredicatedOp {
+  SVEBroadcastIntImm_UnpredicatedFixed = 0x2538C000,
+  SVEBroadcastIntImm_UnpredicatedFMask = 0xFF39C000,
+  SVEBroadcastIntImm_UnpredicatedMask = 0xFF3FC000,
+  DUP_z_i = SVEBroadcastIntImm_UnpredicatedFixed
+};
+
+enum SVECompressActiveElementsOp {
+  SVECompressActiveElementsFixed = 0x05A18000,
+  SVECompressActiveElementsFMask = 0xFFBFE000,
+  SVECompressActiveElementsMask = 0xFFBFE000,
+  COMPACT_z_p_z = SVECompressActiveElementsFixed
+};
+
+enum SVEConditionallyBroadcastElementToVectorOp {
+  SVEConditionallyBroadcastElementToVectorFixed = 0x05288000,
+  SVEConditionallyBroadcastElementToVectorFMask = 0xFF3EE000,
+  SVEConditionallyBroadcastElementToVectorMask = 0xFF3FE000,
+  CLASTA_z_p_zz = SVEConditionallyBroadcastElementToVectorFixed,
+  CLASTB_z_p_zz = SVEConditionallyBroadcastElementToVectorFixed | 0x00010000
+};
+
+enum SVEConditionallyExtractElementToGeneralRegisterOp {
+  SVEConditionallyExtractElementToGeneralRegisterFixed = 0x0530A000,
+  SVEConditionallyExtractElementToGeneralRegisterFMask = 0xFF3EE000,
+  SVEConditionallyExtractElementToGeneralRegisterMask = 0xFF3FE000,
+  CLASTA_r_p_z = SVEConditionallyExtractElementToGeneralRegisterFixed,
+  CLASTB_r_p_z = SVEConditionallyExtractElementToGeneralRegisterFixed | 0x00010000
+};
+
+enum SVEConditionallyExtractElementToSIMDFPScalarOp {
+  SVEConditionallyExtractElementToSIMDFPScalarFixed = 0x052A8000,
+  SVEConditionallyExtractElementToSIMDFPScalarFMask = 0xFF3EE000,
+  SVEConditionallyExtractElementToSIMDFPScalarMask = 0xFF3FE000,
+  CLASTA_v_p_z = SVEConditionallyExtractElementToSIMDFPScalarFixed,
+  CLASTB_v_p_z = SVEConditionallyExtractElementToSIMDFPScalarFixed | 0x00010000
+};
+
+enum SVEConditionallyTerminateScalarsOp {
+  SVEConditionallyTerminateScalarsFixed = 0x25202000,
+  SVEConditionallyTerminateScalarsFMask = 0xFF20FC0F,
+  SVEConditionallyTerminateScalarsMask = 0xFFA0FC1F,
+  CTERMEQ_rr = SVEConditionallyTerminateScalarsFixed | 0x00800000,
+  CTERMNE_rr = SVEConditionallyTerminateScalarsFixed | 0x00800010
+};
+
+enum SVEConstructivePrefix_UnpredicatedOp {
+  SVEConstructivePrefix_UnpredicatedFixed = 0x0420BC00,
+  SVEConstructivePrefix_UnpredicatedFMask = 0xFF20FC00,
+  SVEConstructivePrefix_UnpredicatedMask = 0xFFFFFC00,
+  MOVPRFX_z_z = SVEConstructivePrefix_UnpredicatedFixed
+};
+
+enum SVEContiguousFirstFaultLoad_ScalarPlusScalarOp {
+  SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed = 0xA4006000,
+  SVEContiguousFirstFaultLoad_ScalarPlusScalarFMask = 0xFE00E000,
+  SVEContiguousFirstFaultLoad_ScalarPlusScalarMask = 0xFFE0E000,
+  LDFF1B_z_p_br_u8 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed,
+  LDFF1B_z_p_br_u16 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x00200000,
+  LDFF1B_z_p_br_u32 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x00400000,
+  LDFF1B_z_p_br_u64 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x00600000,
+  LDFF1SW_z_p_br_s64 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x00800000,
+  LDFF1H_z_p_br_u16 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x00A00000,
+  LDFF1H_z_p_br_u32 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x00C00000,
+  LDFF1H_z_p_br_u64 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x00E00000,
+  LDFF1SH_z_p_br_s64 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x01000000,
+  LDFF1SH_z_p_br_s32 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x01200000,
+  LDFF1W_z_p_br_u32 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x01400000,
+  LDFF1W_z_p_br_u64 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x01600000,
+  LDFF1SB_z_p_br_s64 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x01800000,
+  LDFF1SB_z_p_br_s32 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x01A00000,
+  LDFF1SB_z_p_br_s16 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x01C00000,
+  LDFF1D_z_p_br_u64 = SVEContiguousFirstFaultLoad_ScalarPlusScalarFixed | 0x01E00000
+};
+
+enum SVEContiguousLoad_ScalarPlusImmOp {
+  SVEContiguousLoad_ScalarPlusImmFixed = 0xA400A000,
+  SVEContiguousLoad_ScalarPlusImmFMask = 0xFE10E000,
+  SVEContiguousLoad_ScalarPlusImmMask = 0xFFF0E000,
+  LD1B_z_p_bi_u8 = SVEContiguousLoad_ScalarPlusImmFixed,
+  LD1B_z_p_bi_u16 = SVEContiguousLoad_ScalarPlusImmFixed | 0x00200000,
+  LD1B_z_p_bi_u32 = SVEContiguousLoad_ScalarPlusImmFixed | 0x00400000,
+  LD1B_z_p_bi_u64 = SVEContiguousLoad_ScalarPlusImmFixed | 0x00600000,
+  LD1SW_z_p_bi_s64 = SVEContiguousLoad_ScalarPlusImmFixed | 0x00800000,
+  LD1H_z_p_bi_u16 = SVEContiguousLoad_ScalarPlusImmFixed | 0x00A00000,
+  LD1H_z_p_bi_u32 = SVEContiguousLoad_ScalarPlusImmFixed | 0x00C00000,
+  LD1H_z_p_bi_u64 = SVEContiguousLoad_ScalarPlusImmFixed | 0x00E00000,
+  LD1SH_z_p_bi_s64 = SVEContiguousLoad_ScalarPlusImmFixed | 0x01000000,
+  LD1SH_z_p_bi_s32 = SVEContiguousLoad_ScalarPlusImmFixed | 0x01200000,
+  LD1W_z_p_bi_u32 = SVEContiguousLoad_ScalarPlusImmFixed | 0x01400000,
+  LD1W_z_p_bi_u64 = SVEContiguousLoad_ScalarPlusImmFixed | 0x01600000,
+  LD1SB_z_p_bi_s64 = SVEContiguousLoad_ScalarPlusImmFixed | 0x01800000,
+  LD1SB_z_p_bi_s32 = SVEContiguousLoad_ScalarPlusImmFixed | 0x01A00000,
+  LD1SB_z_p_bi_s16 = SVEContiguousLoad_ScalarPlusImmFixed | 0x01C00000,
+  LD1D_z_p_bi_u64 = SVEContiguousLoad_ScalarPlusImmFixed | 0x01E00000
+};
+
+enum SVEContiguousLoad_ScalarPlusScalarOp {
+  SVEContiguousLoad_ScalarPlusScalarFixed = 0xA4004000,
+  SVEContiguousLoad_ScalarPlusScalarFMask = 0xFE00E000,
+  SVEContiguousLoad_ScalarPlusScalarMask = 0xFFE0E000,
+  LD1B_z_p_br_u8 = SVEContiguousLoad_ScalarPlusScalarFixed,
+  LD1B_z_p_br_u16 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x00200000,
+  LD1B_z_p_br_u32 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x00400000,
+  LD1B_z_p_br_u64 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x00600000,
+  LD1SW_z_p_br_s64 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x00800000,
+  LD1H_z_p_br_u16 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x00A00000,
+  LD1H_z_p_br_u32 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x00C00000,
+  LD1H_z_p_br_u64 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x00E00000,
+  LD1SH_z_p_br_s64 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x01000000,
+  LD1SH_z_p_br_s32 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x01200000,
+  LD1W_z_p_br_u32 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x01400000,
+  LD1W_z_p_br_u64 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x01600000,
+  LD1SB_z_p_br_s64 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x01800000,
+  LD1SB_z_p_br_s32 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x01A00000,
+  LD1SB_z_p_br_s16 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x01C00000,
+  LD1D_z_p_br_u64 = SVEContiguousLoad_ScalarPlusScalarFixed | 0x01E00000
+};
+
+enum SVEContiguousNonFaultLoad_ScalarPlusImmOp {
+  SVEContiguousNonFaultLoad_ScalarPlusImmFixed = 0xA410A000,
+  SVEContiguousNonFaultLoad_ScalarPlusImmFMask = 0xFE10E000,
+  SVEContiguousNonFaultLoad_ScalarPlusImmMask = 0xFFF0E000,
+  LDNF1B_z_p_bi_u8 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed,
+  LDNF1B_z_p_bi_u16 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x00200000,
+  LDNF1B_z_p_bi_u32 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x00400000,
+  LDNF1B_z_p_bi_u64 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x00600000,
+  LDNF1SW_z_p_bi_s64 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x00800000,
+  LDNF1H_z_p_bi_u16 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x00A00000,
+  LDNF1H_z_p_bi_u32 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x00C00000,
+  LDNF1H_z_p_bi_u64 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x00E00000,
+  LDNF1SH_z_p_bi_s64 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x01000000,
+  LDNF1SH_z_p_bi_s32 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x01200000,
+  LDNF1W_z_p_bi_u32 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x01400000,
+  LDNF1W_z_p_bi_u64 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x01600000,
+  LDNF1SB_z_p_bi_s64 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x01800000,
+  LDNF1SB_z_p_bi_s32 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x01A00000,
+  LDNF1SB_z_p_bi_s16 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x01C00000,
+  LDNF1D_z_p_bi_u64 = SVEContiguousNonFaultLoad_ScalarPlusImmFixed | 0x01E00000
+};
+
+enum SVEContiguousNonTemporalLoad_ScalarPlusImmOp {
+  SVEContiguousNonTemporalLoad_ScalarPlusImmFixed = 0xA400E000,
+  SVEContiguousNonTemporalLoad_ScalarPlusImmFMask = 0xFE70E000,
+  SVEContiguousNonTemporalLoad_ScalarPlusImmMask = 0xFFF0E000,
+  LDNT1B_z_p_bi_contiguous = SVEContiguousNonTemporalLoad_ScalarPlusImmFixed,
+  LDNT1H_z_p_bi_contiguous = SVEContiguousNonTemporalLoad_ScalarPlusImmFixed | 0x00800000,
+  LDNT1W_z_p_bi_contiguous = SVEContiguousNonTemporalLoad_ScalarPlusImmFixed | 0x01000000,
+  LDNT1D_z_p_bi_contiguous = SVEContiguousNonTemporalLoad_ScalarPlusImmFixed | 0x01800000
+};
+
+enum SVEContiguousNonTemporalLoad_ScalarPlusScalarOp {
+  SVEContiguousNonTemporalLoad_ScalarPlusScalarFixed = 0xA400C000,
+  SVEContiguousNonTemporalLoad_ScalarPlusScalarFMask = 0xFE60E000,
+  SVEContiguousNonTemporalLoad_ScalarPlusScalarMask = 0xFFE0E000,
+  LDNT1B_z_p_br_contiguous = SVEContiguousNonTemporalLoad_ScalarPlusScalarFixed,
+  LDNT1H_z_p_br_contiguous = SVEContiguousNonTemporalLoad_ScalarPlusScalarFixed | 0x00800000,
+  LDNT1W_z_p_br_contiguous = SVEContiguousNonTemporalLoad_ScalarPlusScalarFixed | 0x01000000,
+  LDNT1D_z_p_br_contiguous = SVEContiguousNonTemporalLoad_ScalarPlusScalarFixed | 0x01800000
+};
+
+enum SVEContiguousNonTemporalStore_ScalarPlusImmOp {
+  SVEContiguousNonTemporalStore_ScalarPlusImmFixed = 0xE410E000,
+  SVEContiguousNonTemporalStore_ScalarPlusImmFMask = 0xFE70E000,
+  SVEContiguousNonTemporalStore_ScalarPlusImmMask = 0xFFF0E000,
+  STNT1B_z_p_bi_contiguous = SVEContiguousNonTemporalStore_ScalarPlusImmFixed,
+  STNT1H_z_p_bi_contiguous = SVEContiguousNonTemporalStore_ScalarPlusImmFixed | 0x00800000,
+  STNT1W_z_p_bi_contiguous = SVEContiguousNonTemporalStore_ScalarPlusImmFixed | 0x01000000,
+  STNT1D_z_p_bi_contiguous = SVEContiguousNonTemporalStore_ScalarPlusImmFixed | 0x01800000
+};
+
+enum SVEContiguousNonTemporalStore_ScalarPlusScalarOp {
+  SVEContiguousNonTemporalStore_ScalarPlusScalarFixed = 0xE4006000,
+  SVEContiguousNonTemporalStore_ScalarPlusScalarFMask = 0xFE60E000,
+  SVEContiguousNonTemporalStore_ScalarPlusScalarMask = 0xFFE0E000,
+  STNT1B_z_p_br_contiguous = SVEContiguousNonTemporalStore_ScalarPlusScalarFixed,
+  STNT1H_z_p_br_contiguous = SVEContiguousNonTemporalStore_ScalarPlusScalarFixed | 0x00800000,
+  STNT1W_z_p_br_contiguous = SVEContiguousNonTemporalStore_ScalarPlusScalarFixed | 0x01000000,
+  STNT1D_z_p_br_contiguous = SVEContiguousNonTemporalStore_ScalarPlusScalarFixed | 0x01800000
+};
+
+enum SVEContiguousPrefetch_ScalarPlusImmOp {
+  SVEContiguousPrefetch_ScalarPlusImmFixed = 0x85C00000,
+  SVEContiguousPrefetch_ScalarPlusImmFMask = 0xFFC08010,
+  SVEContiguousPrefetch_ScalarPlusImmMask = 0xFFC0E010,
+  PRFB_i_p_bi_s = SVEContiguousPrefetch_ScalarPlusImmFixed,
+  PRFH_i_p_bi_s = SVEContiguousPrefetch_ScalarPlusImmFixed | 0x00002000,
+  PRFW_i_p_bi_s = SVEContiguousPrefetch_ScalarPlusImmFixed | 0x00004000,
+  PRFD_i_p_bi_s = SVEContiguousPrefetch_ScalarPlusImmFixed | 0x00006000
+};
+
+enum SVEContiguousPrefetch_ScalarPlusScalarOp {
+  SVEContiguousPrefetch_ScalarPlusScalarFixed = 0x8400C000,
+  SVEContiguousPrefetch_ScalarPlusScalarFMask = 0xFE60E010,
+  SVEContiguousPrefetch_ScalarPlusScalarMask = 0xFFE0E010,
+  PRFB_i_p_br_s = SVEContiguousPrefetch_ScalarPlusScalarFixed,
+  PRFH_i_p_br_s = SVEContiguousPrefetch_ScalarPlusScalarFixed | 0x00800000,
+  PRFW_i_p_br_s = SVEContiguousPrefetch_ScalarPlusScalarFixed | 0x01000000,
+  PRFD_i_p_br_s = SVEContiguousPrefetch_ScalarPlusScalarFixed | 0x01800000
+};
+
+enum SVEContiguousStore_ScalarPlusImmOp {
+  SVEContiguousStore_ScalarPlusImmFixed = 0xE400E000,
+  SVEContiguousStore_ScalarPlusImmFMask = 0xFE10E000,
+  SVEContiguousStore_ScalarPlusImmMask = 0xFF90E000,
+  ST1B_z_p_bi = SVEContiguousStore_ScalarPlusImmFixed,
+  ST1H_z_p_bi = SVEContiguousStore_ScalarPlusImmFixed | 0x00800000,
+  ST1W_z_p_bi = SVEContiguousStore_ScalarPlusImmFixed | 0x01000000,
+  ST1D_z_p_bi = SVEContiguousStore_ScalarPlusImmFixed | 0x01800000
+};
+
+enum SVEContiguousStore_ScalarPlusScalarOp {
+  SVEContiguousStore_ScalarPlusScalarFixed = 0xE4004000,
+  SVEContiguousStore_ScalarPlusScalarFMask = 0xFE00E000,
+  SVEContiguousStore_ScalarPlusScalarMask = 0xFF80E000,
+  ST1B_z_p_br = SVEContiguousStore_ScalarPlusScalarFixed,
+  ST1H_z_p_br = SVEContiguousStore_ScalarPlusScalarFixed | 0x00800000,
+  ST1W_z_p_br = SVEContiguousStore_ScalarPlusScalarFixed | 0x01000000,
+  ST1D_z_p_br = SVEContiguousStore_ScalarPlusScalarFixed | 0x01800000
+};
+
+enum SVECopyFPImm_PredicatedOp {
+  SVECopyFPImm_PredicatedFixed = 0x0510C000,
+  SVECopyFPImm_PredicatedFMask = 0xFF30E000,
+  SVECopyFPImm_PredicatedMask = 0xFF30E000,
+  FCPY_z_p_i = SVECopyFPImm_PredicatedFixed
+};
+
+enum SVECopyGeneralRegisterToVector_PredicatedOp {
+  SVECopyGeneralRegisterToVector_PredicatedFixed = 0x0528A000,
+  SVECopyGeneralRegisterToVector_PredicatedFMask = 0xFF3FE000,
+  SVECopyGeneralRegisterToVector_PredicatedMask = 0xFF3FE000,
+  CPY_z_p_r = SVECopyGeneralRegisterToVector_PredicatedFixed
+};
+
+enum SVECopyIntImm_PredicatedOp {
+  SVECopyIntImm_PredicatedFixed = 0x05100000,
+  SVECopyIntImm_PredicatedFMask = 0xFF308000,
+  SVECopyIntImm_PredicatedMask = 0xFF308000,
+  CPY_z_p_i = SVECopyIntImm_PredicatedFixed
+};
+
+enum SVECopySIMDFPScalarRegisterToVector_PredicatedOp {
+  SVECopySIMDFPScalarRegisterToVector_PredicatedFixed = 0x05208000,
+  SVECopySIMDFPScalarRegisterToVector_PredicatedFMask = 0xFF3FE000,
+  SVECopySIMDFPScalarRegisterToVector_PredicatedMask = 0xFF3FE000,
+  CPY_z_p_v = SVECopySIMDFPScalarRegisterToVector_PredicatedFixed
+};
+
+enum SVEElementCountOp {
+  SVEElementCountFixed = 0x0420E000,
+  SVEElementCountFMask = 0xFF30F800,
+  SVEElementCountMask = 0xFFF0FC00,
+  CNTB_r_s = SVEElementCountFixed,
+  CNTH_r_s = SVEElementCountFixed | 0x00400000,
+  CNTW_r_s = SVEElementCountFixed | 0x00800000,
+  CNTD_r_s = SVEElementCountFixed | 0x00C00000
+};
+
+enum SVEExtractElementToGeneralRegisterOp {
+  SVEExtractElementToGeneralRegisterFixed = 0x0520A000,
+  SVEExtractElementToGeneralRegisterFMask = 0xFF3EE000,
+  SVEExtractElementToGeneralRegisterMask = 0xFF3FE000,
+  LASTA_r_p_z = SVEExtractElementToGeneralRegisterFixed,
+  LASTB_r_p_z = SVEExtractElementToGeneralRegisterFixed | 0x00010000
+};
+
+enum SVEExtractElementToSIMDFPScalarRegisterOp {
+  SVEExtractElementToSIMDFPScalarRegisterFixed = 0x05228000,
+  SVEExtractElementToSIMDFPScalarRegisterFMask = 0xFF3EE000,
+  SVEExtractElementToSIMDFPScalarRegisterMask = 0xFF3FE000,
+  LASTA_v_p_z = SVEExtractElementToSIMDFPScalarRegisterFixed,
+  LASTB_v_p_z = SVEExtractElementToSIMDFPScalarRegisterFixed | 0x00010000
+};
+
+enum SVEFFRInitialiseOp {
+  SVEFFRInitialiseFixed = 0x252C9000,
+  SVEFFRInitialiseFMask = 0xFF3FFFFF,
+  SVEFFRInitialiseMask = 0xFFFFFFFF,
+  SETFFR_f = SVEFFRInitialiseFixed
+};
+
+enum SVEFFRWriteFromPredicateOp {
+  SVEFFRWriteFromPredicateFixed = 0x25289000,
+  SVEFFRWriteFromPredicateFMask = 0xFF3FFE1F,
+  SVEFFRWriteFromPredicateMask = 0xFFFFFE1F,
+  WRFFR_f_p = SVEFFRWriteFromPredicateFixed
+};
+
+enum SVEFPAccumulatingReductionOp {
+  SVEFPAccumulatingReductionFixed = 0x65182000,
+  SVEFPAccumulatingReductionFMask = 0xFF38E000,
+  SVEFPAccumulatingReductionMask = 0xFF3FE000,
+  FADDA_v_p_z = SVEFPAccumulatingReductionFixed
+};
+
+enum SVEFPArithmeticUnpredicatedOp {
+  SVEFPArithmeticUnpredicatedFixed = 0x65000000,
+  SVEFPArithmeticUnpredicatedFMask = 0xFF20E000,
+  SVEFPArithmeticUnpredicatedMask = 0xFF20FC00,
+  FADD_z_zz = SVEFPArithmeticUnpredicatedFixed,
+  FSUB_z_zz = SVEFPArithmeticUnpredicatedFixed | 0x00000400,
+  FMUL_z_zz = SVEFPArithmeticUnpredicatedFixed | 0x00000800,
+  FTSMUL_z_zz = SVEFPArithmeticUnpredicatedFixed | 0x00000C00,
+  FRECPS_z_zz = SVEFPArithmeticUnpredicatedFixed | 0x00001800,
+  FRSQRTS_z_zz = SVEFPArithmeticUnpredicatedFixed | 0x00001C00
+};
+
+enum SVEFPArithmeticWithImm_PredicatedOp {
+  SVEFPArithmeticWithImm_PredicatedFixed = 0x65188000,
+  SVEFPArithmeticWithImm_PredicatedFMask = 0xFF38E3C0,
+  SVEFPArithmeticWithImm_PredicatedMask = 0xFF3FE3C0,
+  FADD_z_p_zs = SVEFPArithmeticWithImm_PredicatedFixed,
+  FSUB_z_p_zs = SVEFPArithmeticWithImm_PredicatedFixed | 0x00010000,
+  FMUL_z_p_zs = SVEFPArithmeticWithImm_PredicatedFixed | 0x00020000,
+  FSUBR_z_p_zs = SVEFPArithmeticWithImm_PredicatedFixed | 0x00030000,
+  FMAXNM_z_p_zs = SVEFPArithmeticWithImm_PredicatedFixed | 0x00040000,
+  FMINNM_z_p_zs = SVEFPArithmeticWithImm_PredicatedFixed | 0x00050000,
+  FMAX_z_p_zs = SVEFPArithmeticWithImm_PredicatedFixed | 0x00060000,
+  FMIN_z_p_zs = SVEFPArithmeticWithImm_PredicatedFixed | 0x00070000
+};
+
+enum SVEFPArithmetic_PredicatedOp {
+  SVEFPArithmetic_PredicatedFixed = 0x65008000,
+  SVEFPArithmetic_PredicatedFMask = 0xFF30E000,
+  SVEFPArithmetic_PredicatedMask = 0xFF3FE000,
+  FADD_z_p_zz = SVEFPArithmetic_PredicatedFixed,
+  FSUB_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x00010000,
+  FMUL_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x00020000,
+  FSUBR_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x00030000,
+  FMAXNM_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x00040000,
+  FMINNM_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x00050000,
+  FMAX_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x00060000,
+  FMIN_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x00070000,
+  FABD_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x00080000,
+  FSCALE_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x00090000,
+  FMULX_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x000A0000,
+  FDIVR_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x000C0000,
+  FDIV_z_p_zz = SVEFPArithmetic_PredicatedFixed | 0x000D0000
+};
+
+enum SVEFPCompareVectorsOp {
+  SVEFPCompareVectorsFixed = 0x65004000,
+  SVEFPCompareVectorsFMask = 0xFF204000,
+  SVEFPCompareVectorsMask = 0xFF20E010,
+  FCMGE_p_p_zz = SVEFPCompareVectorsFixed,
+  FCMGT_p_p_zz = SVEFPCompareVectorsFixed | 0x00000010,
+  FCMEQ_p_p_zz = SVEFPCompareVectorsFixed | 0x00002000,
+  FCMNE_p_p_zz = SVEFPCompareVectorsFixed | 0x00002010,
+  FCMUO_p_p_zz = SVEFPCompareVectorsFixed | 0x00008000,
+  FACGE_p_p_zz = SVEFPCompareVectorsFixed | 0x00008010,
+  FACGT_p_p_zz = SVEFPCompareVectorsFixed | 0x0000A010
+};
+
+enum SVEFPCompareWithZeroOp {
+  SVEFPCompareWithZeroFixed = 0x65102000,
+  SVEFPCompareWithZeroFMask = 0xFF38E000,
+  SVEFPCompareWithZeroMask = 0xFF3FE010,
+  FCMGE_p_p_z0 = SVEFPCompareWithZeroFixed,
+  FCMGT_p_p_z0 = SVEFPCompareWithZeroFixed | 0x00000010,
+  FCMLT_p_p_z0 = SVEFPCompareWithZeroFixed | 0x00010000,
+  FCMLE_p_p_z0 = SVEFPCompareWithZeroFixed | 0x00010010,
+  FCMEQ_p_p_z0 = SVEFPCompareWithZeroFixed | 0x00020000,
+  FCMNE_p_p_z0 = SVEFPCompareWithZeroFixed | 0x00030000
+};
+
+enum SVEFPComplexAdditionOp {
+  SVEFPComplexAdditionFixed = 0x64008000,
+  SVEFPComplexAdditionFMask = 0xFF3EE000,
+  SVEFPComplexAdditionMask = 0xFF3EE000,
+  FCADD_z_p_zz = SVEFPComplexAdditionFixed
+};
+
+enum SVEFPComplexMulAddOp {
+  SVEFPComplexMulAddFixed = 0x64000000,
+  SVEFPComplexMulAddFMask = 0xFF208000,
+  SVEFPComplexMulAddMask = 0xFF208000,
+  FCMLA_z_p_zzz = SVEFPComplexMulAddFixed
+};
+
+enum SVEFPComplexMulAddIndexOp {
+  SVEFPComplexMulAddIndexFixed = 0x64201000,
+  SVEFPComplexMulAddIndexFMask = 0xFF20F000,
+  SVEFPComplexMulAddIndexMask = 0xFFE0F000,
+  FCMLA_z_zzzi_h = SVEFPComplexMulAddIndexFixed | 0x00800000,
+  FCMLA_z_zzzi_s = SVEFPComplexMulAddIndexFixed | 0x00C00000
+};
+
+enum SVEFPConvertPrecisionOp {
+  SVEFPConvertPrecisionFixed = 0x6508A000,
+  SVEFPConvertPrecisionFMask = 0xFF3CE000,
+  SVEFPConvertPrecisionMask = 0xFFFFE000,
+  FCVT_z_p_z_s2h = SVEFPConvertPrecisionFixed | 0x00800000,
+  FCVT_z_p_z_h2s = SVEFPConvertPrecisionFixed | 0x00810000,
+  FCVT_z_p_z_d2h = SVEFPConvertPrecisionFixed | 0x00C00000,
+  FCVT_z_p_z_h2d = SVEFPConvertPrecisionFixed | 0x00C10000,
+  FCVT_z_p_z_d2s = SVEFPConvertPrecisionFixed | 0x00C20000,
+  FCVT_z_p_z_s2d = SVEFPConvertPrecisionFixed | 0x00C30000
+};
+
+enum SVEFPConvertToIntOp {
+  SVEFPConvertToIntFixed = 0x6518A000,
+  SVEFPConvertToIntFMask = 0xFF38E000,
+  SVEFPConvertToIntMask = 0xFFFFE000,
+  FCVTZS_z_p_z_fp162h = SVEFPConvertToIntFixed | 0x00420000,
+  FCVTZU_z_p_z_fp162h = SVEFPConvertToIntFixed | 0x00430000,
+  FCVTZS_z_p_z_fp162w = SVEFPConvertToIntFixed | 0x00440000,
+  FCVTZU_z_p_z_fp162w = SVEFPConvertToIntFixed | 0x00450000,
+  FCVTZS_z_p_z_fp162x = SVEFPConvertToIntFixed | 0x00460000,
+  FCVTZU_z_p_z_fp162x = SVEFPConvertToIntFixed | 0x00470000,
+  FCVTZS_z_p_z_s2w = SVEFPConvertToIntFixed | 0x00840000,
+  FCVTZU_z_p_z_s2w = SVEFPConvertToIntFixed | 0x00850000,
+  FCVTZS_z_p_z_d2w = SVEFPConvertToIntFixed | 0x00C00000,
+  FCVTZU_z_p_z_d2w = SVEFPConvertToIntFixed | 0x00C10000,
+  FCVTZS_z_p_z_s2x = SVEFPConvertToIntFixed | 0x00C40000,
+  FCVTZU_z_p_z_s2x = SVEFPConvertToIntFixed | 0x00C50000,
+  FCVTZS_z_p_z_d2x = SVEFPConvertToIntFixed | 0x00C60000,
+  FCVTZU_z_p_z_d2x = SVEFPConvertToIntFixed | 0x00C70000
+};
+
+enum SVEFPExponentialAcceleratorOp {
+  SVEFPExponentialAcceleratorFixed = 0x0420B800,
+  SVEFPExponentialAcceleratorFMask = 0xFF20FC00,
+  SVEFPExponentialAcceleratorMask = 0xFF3FFC00,
+  FEXPA_z_z = SVEFPExponentialAcceleratorFixed
+};
+
+enum SVEFPFastReductionOp {
+  SVEFPFastReductionFixed = 0x65002000,
+  SVEFPFastReductionFMask = 0xFF38E000,
+  SVEFPFastReductionMask = 0xFF3FE000,
+  FADDV_v_p_z = SVEFPFastReductionFixed,
+  FMAXNMV_v_p_z = SVEFPFastReductionFixed | 0x00040000,
+  FMINNMV_v_p_z = SVEFPFastReductionFixed | 0x00050000,
+  FMAXV_v_p_z = SVEFPFastReductionFixed | 0x00060000,
+  FMINV_v_p_z = SVEFPFastReductionFixed | 0x00070000
+};
+
+enum SVEFPMulAddOp {
+  SVEFPMulAddFixed = 0x65200000,
+  SVEFPMulAddFMask = 0xFF200000,
+  SVEFPMulAddMask = 0xFF20E000,
+  FMLA_z_p_zzz = SVEFPMulAddFixed,
+  FMLS_z_p_zzz = SVEFPMulAddFixed | 0x00002000,
+  FNMLA_z_p_zzz = SVEFPMulAddFixed | 0x00004000,
+  FNMLS_z_p_zzz = SVEFPMulAddFixed | 0x00006000,
+  FMAD_z_p_zzz = SVEFPMulAddFixed | 0x00008000,
+  FMSB_z_p_zzz = SVEFPMulAddFixed | 0x0000A000,
+  FNMAD_z_p_zzz = SVEFPMulAddFixed | 0x0000C000,
+  FNMSB_z_p_zzz = SVEFPMulAddFixed | 0x0000E000
+};
+
+enum SVEFPMulAddIndexOp {
+  SVEFPMulAddIndexFixed = 0x64200000,
+  SVEFPMulAddIndexFMask = 0xFF20F800,
+  SVEFPMulAddIndexMask = 0xFFE0FC00,
+  FMLA_z_zzzi_h = SVEFPMulAddIndexFixed,
+  FMLA_z_zzzi_h_i3h = FMLA_z_zzzi_h | 0x00400000,
+  FMLS_z_zzzi_h = SVEFPMulAddIndexFixed | 0x00000400,
+  FMLS_z_zzzi_h_i3h = FMLS_z_zzzi_h | 0x00400000,
+  FMLA_z_zzzi_s = SVEFPMulAddIndexFixed | 0x00800000,
+  FMLS_z_zzzi_s = SVEFPMulAddIndexFixed | 0x00800400,
+  FMLA_z_zzzi_d = SVEFPMulAddIndexFixed | 0x00C00000,
+  FMLS_z_zzzi_d = SVEFPMulAddIndexFixed | 0x00C00400
+};
+
+enum SVEFPMulIndexOp {
+  SVEFPMulIndexFixed = 0x64202000,
+  SVEFPMulIndexFMask = 0xFF20FC00,
+  SVEFPMulIndexMask = 0xFFE0FC00,
+  FMUL_z_zzi_h = SVEFPMulIndexFixed,
+  FMUL_z_zzi_h_i3h = FMUL_z_zzi_h | 0x00400000,
+  FMUL_z_zzi_s = SVEFPMulIndexFixed | 0x00800000,
+  FMUL_z_zzi_d = SVEFPMulIndexFixed | 0x00C00000
+};
+
+enum SVEFPRoundToIntegralValueOp {
+  SVEFPRoundToIntegralValueFixed = 0x6500A000,
+  SVEFPRoundToIntegralValueFMask = 0xFF38E000,
+  SVEFPRoundToIntegralValueMask = 0xFF3FE000,
+  FRINTN_z_p_z = SVEFPRoundToIntegralValueFixed,
+  FRINTP_z_p_z = SVEFPRoundToIntegralValueFixed | 0x00010000,
+  FRINTM_z_p_z = SVEFPRoundToIntegralValueFixed | 0x00020000,
+  FRINTZ_z_p_z = SVEFPRoundToIntegralValueFixed | 0x00030000,
+  FRINTA_z_p_z = SVEFPRoundToIntegralValueFixed | 0x00040000,
+  FRINTX_z_p_z = SVEFPRoundToIntegralValueFixed | 0x00060000,
+  FRINTI_z_p_z = SVEFPRoundToIntegralValueFixed | 0x00070000
+};
+
+enum SVEFPTrigMulAddCoefficientOp {
+  SVEFPTrigMulAddCoefficientFixed = 0x65108000,
+  SVEFPTrigMulAddCoefficientFMask = 0xFF38FC00,
+  SVEFPTrigMulAddCoefficientMask = 0xFF38FC00,
+  FTMAD_z_zzi = SVEFPTrigMulAddCoefficientFixed
+};
+
+enum SVEFPTrigSelectCoefficientOp {
+  SVEFPTrigSelectCoefficientFixed = 0x0420B000,
+  SVEFPTrigSelectCoefficientFMask = 0xFF20F800,
+  SVEFPTrigSelectCoefficientMask = 0xFF20FC00,
+  FTSSEL_z_zz = SVEFPTrigSelectCoefficientFixed
+};
+
+enum SVEFPUnaryOpOp {
+  SVEFPUnaryOpFixed = 0x650CA000,
+  SVEFPUnaryOpFMask = 0xFF3CE000,
+  SVEFPUnaryOpMask = 0xFF3FE000,
+  FRECPX_z_p_z = SVEFPUnaryOpFixed,
+  FSQRT_z_p_z = SVEFPUnaryOpFixed | 0x00010000
+};
+
+enum SVEFPUnaryOpUnpredicatedOp {
+  SVEFPUnaryOpUnpredicatedFixed = 0x65083000,
+  SVEFPUnaryOpUnpredicatedFMask = 0xFF38F000,
+  SVEFPUnaryOpUnpredicatedMask = 0xFF3FFC00,
+  FRECPE_z_z = SVEFPUnaryOpUnpredicatedFixed | 0x00060000,
+  FRSQRTE_z_z = SVEFPUnaryOpUnpredicatedFixed | 0x00070000
+};
+
+enum SVEIncDecByPredicateCountOp {
+  SVEIncDecByPredicateCountFixed = 0x25288000,
+  SVEIncDecByPredicateCountFMask = 0xFF38F000,
+  SVEIncDecByPredicateCountMask = 0xFF3FFE00,
+  SQINCP_z_p_z = SVEIncDecByPredicateCountFixed,
+  SQINCP_r_p_r_sx = SVEIncDecByPredicateCountFixed | 0x00000800,
+  SQINCP_r_p_r_x = SVEIncDecByPredicateCountFixed | 0x00000C00,
+  UQINCP_z_p_z = SVEIncDecByPredicateCountFixed | 0x00010000,
+  UQINCP_r_p_r_uw = SVEIncDecByPredicateCountFixed | 0x00010800,
+  UQINCP_r_p_r_x = SVEIncDecByPredicateCountFixed | 0x00010C00,
+  SQDECP_z_p_z = SVEIncDecByPredicateCountFixed | 0x00020000,
+  SQDECP_r_p_r_sx = SVEIncDecByPredicateCountFixed | 0x00020800,
+  SQDECP_r_p_r_x = SVEIncDecByPredicateCountFixed | 0x00020C00,
+  UQDECP_z_p_z = SVEIncDecByPredicateCountFixed | 0x00030000,
+  UQDECP_r_p_r_uw = SVEIncDecByPredicateCountFixed | 0x00030800,
+  UQDECP_r_p_r_x = SVEIncDecByPredicateCountFixed | 0x00030C00,
+  INCP_z_p_z = SVEIncDecByPredicateCountFixed | 0x00040000,
+  INCP_r_p_r = SVEIncDecByPredicateCountFixed | 0x00040800,
+  DECP_z_p_z = SVEIncDecByPredicateCountFixed | 0x00050000,
+  DECP_r_p_r = SVEIncDecByPredicateCountFixed | 0x00050800
+};
+
+enum SVEIncDecRegisterByElementCountOp {
+  SVEIncDecRegisterByElementCountFixed = 0x0430E000,
+  SVEIncDecRegisterByElementCountFMask = 0xFF30F800,
+  SVEIncDecRegisterByElementCountMask = 0xFFF0FC00,
+  INCB_r_rs = SVEIncDecRegisterByElementCountFixed,
+  DECB_r_rs = SVEIncDecRegisterByElementCountFixed | 0x00000400,
+  INCH_r_rs = SVEIncDecRegisterByElementCountFixed | 0x00400000,
+  DECH_r_rs = SVEIncDecRegisterByElementCountFixed | 0x00400400,
+  INCW_r_rs = SVEIncDecRegisterByElementCountFixed | 0x00800000,
+  DECW_r_rs = SVEIncDecRegisterByElementCountFixed | 0x00800400,
+  INCD_r_rs = SVEIncDecRegisterByElementCountFixed | 0x00C00000,
+  DECD_r_rs = SVEIncDecRegisterByElementCountFixed | 0x00C00400
+};
+
+enum SVEIncDecVectorByElementCountOp {
+  SVEIncDecVectorByElementCountFixed = 0x0430C000,
+  SVEIncDecVectorByElementCountFMask = 0xFF30F800,
+  SVEIncDecVectorByElementCountMask = 0xFFF0FC00,
+  INCH_z_zs = SVEIncDecVectorByElementCountFixed | 0x00400000,
+  DECH_z_zs = SVEIncDecVectorByElementCountFixed | 0x00400400,
+  INCW_z_zs = SVEIncDecVectorByElementCountFixed | 0x00800000,
+  DECW_z_zs = SVEIncDecVectorByElementCountFixed | 0x00800400,
+  INCD_z_zs = SVEIncDecVectorByElementCountFixed | 0x00C00000,
+  DECD_z_zs = SVEIncDecVectorByElementCountFixed | 0x00C00400
+};
+
+enum SVEIndexGenerationOp {
+  SVEIndexGenerationFixed = 0x04204000,
+  SVEIndexGenerationFMask = 0xFF20F000,
+  SVEIndexGenerationMask = 0xFF20FC00,
+  INDEX_z_ii = SVEIndexGenerationFixed,
+  INDEX_z_ri = SVEIndexGenerationFixed | 0x00000400,
+  INDEX_z_ir = SVEIndexGenerationFixed | 0x00000800,
+  INDEX_z_rr = SVEIndexGenerationFixed | 0x00000C00
+};
+
+enum SVEInsertGeneralRegisterOp {
+  SVEInsertGeneralRegisterFixed = 0x05243800,
+  SVEInsertGeneralRegisterFMask = 0xFF3FFC00,
+  SVEInsertGeneralRegisterMask = 0xFF3FFC00,
+  INSR_z_r = SVEInsertGeneralRegisterFixed
+};
+
+enum SVEInsertSIMDFPScalarRegisterOp {
+  SVEInsertSIMDFPScalarRegisterFixed = 0x05343800,
+  SVEInsertSIMDFPScalarRegisterFMask = 0xFF3FFC00,
+  SVEInsertSIMDFPScalarRegisterMask = 0xFF3FFC00,
+  INSR_z_v = SVEInsertSIMDFPScalarRegisterFixed
+};
+
+enum SVEIntAddSubtractImm_UnpredicatedOp {
+  SVEIntAddSubtractImm_UnpredicatedFixed = 0x2520C000,
+  SVEIntAddSubtractImm_UnpredicatedFMask = 0xFF38C000,
+  SVEIntAddSubtractImm_UnpredicatedMask = 0xFF3FC000,
+  ADD_z_zi = SVEIntAddSubtractImm_UnpredicatedFixed,
+  SUB_z_zi = SVEIntAddSubtractImm_UnpredicatedFixed | 0x00010000,
+  SUBR_z_zi = SVEIntAddSubtractImm_UnpredicatedFixed | 0x00030000,
+  SQADD_z_zi = SVEIntAddSubtractImm_UnpredicatedFixed | 0x00040000,
+  UQADD_z_zi = SVEIntAddSubtractImm_UnpredicatedFixed | 0x00050000,
+  SQSUB_z_zi = SVEIntAddSubtractImm_UnpredicatedFixed | 0x00060000,
+  UQSUB_z_zi = SVEIntAddSubtractImm_UnpredicatedFixed | 0x00070000
+};
+
+enum SVEIntAddSubtractVectors_PredicatedOp {
+  SVEIntAddSubtractVectors_PredicatedFixed = 0x04000000,
+  SVEIntAddSubtractVectors_PredicatedFMask = 0xFF38E000,
+  SVEIntAddSubtractVectors_PredicatedMask = 0xFF3FE000,
+  ADD_z_p_zz = SVEIntAddSubtractVectors_PredicatedFixed,
+  SUB_z_p_zz = SVEIntAddSubtractVectors_PredicatedFixed | 0x00010000,
+  SUBR_z_p_zz = SVEIntAddSubtractVectors_PredicatedFixed | 0x00030000
+};
+
+enum SVEIntArithmeticUnpredicatedOp {
+  SVEIntArithmeticUnpredicatedFixed = 0x04200000,
+  SVEIntArithmeticUnpredicatedFMask = 0xFF20E000,
+  SVEIntArithmeticUnpredicatedMask = 0xFF20FC00,
+  ADD_z_zz = SVEIntArithmeticUnpredicatedFixed,
+  SUB_z_zz = SVEIntArithmeticUnpredicatedFixed | 0x00000400,
+  SQADD_z_zz = SVEIntArithmeticUnpredicatedFixed | 0x00001000,
+  UQADD_z_zz = SVEIntArithmeticUnpredicatedFixed | 0x00001400,
+  SQSUB_z_zz = SVEIntArithmeticUnpredicatedFixed | 0x00001800,
+  UQSUB_z_zz = SVEIntArithmeticUnpredicatedFixed | 0x00001C00
+};
+
+enum SVEIntCompareScalarCountAndLimitOp {
+  SVEIntCompareScalarCountAndLimitFixed = 0x25200000,
+  SVEIntCompareScalarCountAndLimitFMask = 0xFF20E000,
+  SVEIntCompareScalarCountAndLimitMask = 0xFF20EC10,
+  WHILELT_p_p_rr = SVEIntCompareScalarCountAndLimitFixed | 0x00000400,
+  WHILELE_p_p_rr = SVEIntCompareScalarCountAndLimitFixed | 0x00000410,
+  WHILELO_p_p_rr = SVEIntCompareScalarCountAndLimitFixed | 0x00000C00,
+  WHILELS_p_p_rr = SVEIntCompareScalarCountAndLimitFixed | 0x00000C10
+};
+
+enum SVEIntCompareSignedImmOp {
+  SVEIntCompareSignedImmFixed = 0x25000000,
+  SVEIntCompareSignedImmFMask = 0xFF204000,
+  SVEIntCompareSignedImmMask = 0xFF20E010,
+  CMPGE_p_p_zi = SVEIntCompareSignedImmFixed,
+  CMPGT_p_p_zi = SVEIntCompareSignedImmFixed | 0x00000010,
+  CMPLT_p_p_zi = SVEIntCompareSignedImmFixed | 0x00002000,
+  CMPLE_p_p_zi = SVEIntCompareSignedImmFixed | 0x00002010,
+  CMPEQ_p_p_zi = SVEIntCompareSignedImmFixed | 0x00008000,
+  CMPNE_p_p_zi = SVEIntCompareSignedImmFixed | 0x00008010
+};
+
+enum SVEIntCompareUnsignedImmOp {
+  SVEIntCompareUnsignedImmFixed = 0x24200000,
+  SVEIntCompareUnsignedImmFMask = 0xFF200000,
+  SVEIntCompareUnsignedImmMask = 0xFF202010,
+  CMPHS_p_p_zi = SVEIntCompareUnsignedImmFixed,
+  CMPHI_p_p_zi = SVEIntCompareUnsignedImmFixed | 0x00000010,
+  CMPLO_p_p_zi = SVEIntCompareUnsignedImmFixed | 0x00002000,
+  CMPLS_p_p_zi = SVEIntCompareUnsignedImmFixed | 0x00002010
+};
+
+enum SVEIntCompareVectorsOp {
+  SVEIntCompareVectorsFixed = 0x24000000,
+  SVEIntCompareVectorsFMask = 0xFF200000,
+  SVEIntCompareVectorsMask = 0xFF20E010,
+  CMPHS_p_p_zz = SVEIntCompareVectorsFixed,
+  CMPHI_p_p_zz = SVEIntCompareVectorsFixed | 0x00000010,
+  CMPEQ_p_p_zw = SVEIntCompareVectorsFixed | 0x00002000,
+  CMPNE_p_p_zw = SVEIntCompareVectorsFixed | 0x00002010,
+  CMPGE_p_p_zw = SVEIntCompareVectorsFixed | 0x00004000,
+  CMPGT_p_p_zw = SVEIntCompareVectorsFixed | 0x00004010,
+  CMPLT_p_p_zw = SVEIntCompareVectorsFixed | 0x00006000,
+  CMPLE_p_p_zw = SVEIntCompareVectorsFixed | 0x00006010,
+  CMPGE_p_p_zz = SVEIntCompareVectorsFixed | 0x00008000,
+  CMPGT_p_p_zz = SVEIntCompareVectorsFixed | 0x00008010,
+  CMPEQ_p_p_zz = SVEIntCompareVectorsFixed | 0x0000A000,
+  CMPNE_p_p_zz = SVEIntCompareVectorsFixed | 0x0000A010,
+  CMPHS_p_p_zw = SVEIntCompareVectorsFixed | 0x0000C000,
+  CMPHI_p_p_zw = SVEIntCompareVectorsFixed | 0x0000C010,
+  CMPLO_p_p_zw = SVEIntCompareVectorsFixed | 0x0000E000,
+  CMPLS_p_p_zw = SVEIntCompareVectorsFixed | 0x0000E010
+};
+
+enum SVEIntConvertToFPOp {
+  SVEIntConvertToFPFixed = 0x6510A000,
+  SVEIntConvertToFPFMask = 0xFF38E000,
+  SVEIntConvertToFPMask = 0xFFFFE000,
+  SCVTF_z_p_z_h2fp16 = SVEIntConvertToFPFixed | 0x00420000,
+  UCVTF_z_p_z_h2fp16 = SVEIntConvertToFPFixed | 0x00430000,
+  SCVTF_z_p_z_w2fp16 = SVEIntConvertToFPFixed | 0x00440000,
+  UCVTF_z_p_z_w2fp16 = SVEIntConvertToFPFixed | 0x00450000,
+  SCVTF_z_p_z_x2fp16 = SVEIntConvertToFPFixed | 0x00460000,
+  UCVTF_z_p_z_x2fp16 = SVEIntConvertToFPFixed | 0x00470000,
+  SCVTF_z_p_z_w2s = SVEIntConvertToFPFixed | 0x00840000,
+  UCVTF_z_p_z_w2s = SVEIntConvertToFPFixed | 0x00850000,
+  SCVTF_z_p_z_w2d = SVEIntConvertToFPFixed | 0x00C00000,
+  UCVTF_z_p_z_w2d = SVEIntConvertToFPFixed | 0x00C10000,
+  SCVTF_z_p_z_x2s = SVEIntConvertToFPFixed | 0x00C40000,
+  UCVTF_z_p_z_x2s = SVEIntConvertToFPFixed | 0x00C50000,
+  SCVTF_z_p_z_x2d = SVEIntConvertToFPFixed | 0x00C60000,
+  UCVTF_z_p_z_x2d = SVEIntConvertToFPFixed | 0x00C70000
+};
+
+enum SVEIntDivideVectors_PredicatedOp {
+  SVEIntDivideVectors_PredicatedFixed = 0x04140000,
+  SVEIntDivideVectors_PredicatedFMask = 0xFF3CE000,
+  SVEIntDivideVectors_PredicatedMask = 0xFF3FE000,
+  SDIV_z_p_zz = SVEIntDivideVectors_PredicatedFixed,
+  UDIV_z_p_zz = SVEIntDivideVectors_PredicatedFixed | 0x00010000,
+  SDIVR_z_p_zz = SVEIntDivideVectors_PredicatedFixed | 0x00020000,
+  UDIVR_z_p_zz = SVEIntDivideVectors_PredicatedFixed | 0x00030000
+};
+
+enum SVEIntMinMaxDifference_PredicatedOp {
+  SVEIntMinMaxDifference_PredicatedFixed = 0x04080000,
+  SVEIntMinMaxDifference_PredicatedFMask = 0xFF38E000,
+  SVEIntMinMaxDifference_PredicatedMask = 0xFF3FE000,
+  SMAX_z_p_zz = SVEIntMinMaxDifference_PredicatedFixed,
+  UMAX_z_p_zz = SVEIntMinMaxDifference_PredicatedFixed | 0x00010000,
+  SMIN_z_p_zz = SVEIntMinMaxDifference_PredicatedFixed | 0x00020000,
+  UMIN_z_p_zz = SVEIntMinMaxDifference_PredicatedFixed | 0x00030000,
+  SABD_z_p_zz = SVEIntMinMaxDifference_PredicatedFixed | 0x00040000,
+  UABD_z_p_zz = SVEIntMinMaxDifference_PredicatedFixed | 0x00050000
+};
+
+enum SVEIntMinMaxImm_UnpredicatedOp {
+  SVEIntMinMaxImm_UnpredicatedFixed = 0x2528C000,
+  SVEIntMinMaxImm_UnpredicatedFMask = 0xFF38C000,
+  SVEIntMinMaxImm_UnpredicatedMask = 0xFF3FE000,
+  SMAX_z_zi = SVEIntMinMaxImm_UnpredicatedFixed,
+  UMAX_z_zi = SVEIntMinMaxImm_UnpredicatedFixed | 0x00010000,
+  SMIN_z_zi = SVEIntMinMaxImm_UnpredicatedFixed | 0x00020000,
+  UMIN_z_zi = SVEIntMinMaxImm_UnpredicatedFixed | 0x00030000
+};
+
+enum SVEIntMulAddPredicatedOp {
+  SVEIntMulAddPredicatedFixed = 0x04004000,
+  SVEIntMulAddPredicatedFMask = 0xFF204000,
+  SVEIntMulAddPredicatedMask = 0xFF20E000,
+  MLA_z_p_zzz = SVEIntMulAddPredicatedFixed,
+  MLS_z_p_zzz = SVEIntMulAddPredicatedFixed | 0x00002000,
+  MAD_z_p_zzz = SVEIntMulAddPredicatedFixed | 0x00008000,
+  MSB_z_p_zzz = SVEIntMulAddPredicatedFixed | 0x0000A000
+};
+
+enum SVEIntMulAddUnpredicatedOp {
+  SVEIntMulAddUnpredicatedFixed = 0x44000000,
+  SVEIntMulAddUnpredicatedFMask = 0xFF208000,
+  SVEIntMulAddUnpredicatedMask = 0xFF20FC00,
+  SDOT_z_zzz = SVEIntMulAddUnpredicatedFixed,
+  UDOT_z_zzz = SVEIntMulAddUnpredicatedFixed | 0x00000400
+};
+
+enum SVEIntMulImm_UnpredicatedOp {
+  SVEIntMulImm_UnpredicatedFixed = 0x2530C000,
+  SVEIntMulImm_UnpredicatedFMask = 0xFF38C000,
+  SVEIntMulImm_UnpredicatedMask = 0xFF3FE000,
+  MUL_z_zi = SVEIntMulImm_UnpredicatedFixed
+};
+
+enum SVEIntMulVectors_PredicatedOp {
+  SVEIntMulVectors_PredicatedFixed = 0x04100000,
+  SVEIntMulVectors_PredicatedFMask = 0xFF3CE000,
+  SVEIntMulVectors_PredicatedMask = 0xFF3FE000,
+  MUL_z_p_zz = SVEIntMulVectors_PredicatedFixed,
+  SMULH_z_p_zz = SVEIntMulVectors_PredicatedFixed | 0x00020000,
+  UMULH_z_p_zz = SVEIntMulVectors_PredicatedFixed | 0x00030000
+};
+
+enum SVEMovprfxOp {
+  SVEMovprfxFixed = 0x04002000,
+  SVEMovprfxFMask = 0xFF20E000,
+  SVEMovprfxMask = 0xFF3EE000,
+  MOVPRFX_z_p_z = SVEMovprfxFixed | 0x00100000
+};
+
+enum SVEIntReductionOp {
+  SVEIntReductionFixed = 0x04002000,
+  SVEIntReductionFMask = 0xFF20E000,
+  SVEIntReductionMask = 0xFF3FE000,
+  SADDV_r_p_z = SVEIntReductionFixed,
+  UADDV_r_p_z = SVEIntReductionFixed | 0x00010000,
+  SMAXV_r_p_z = SVEIntReductionFixed | 0x00080000,
+  UMAXV_r_p_z = SVEIntReductionFixed | 0x00090000,
+  SMINV_r_p_z = SVEIntReductionFixed | 0x000A0000,
+  UMINV_r_p_z = SVEIntReductionFixed | 0x000B0000
+};
+
+enum SVEIntReductionLogicalOp {
+  SVEIntReductionLogicalFixed = 0x04182000,
+  SVEIntReductionLogicalFMask = 0xFF38E000,
+  SVEIntReductionLogicalMask = 0xFF3FE000,
+  ORV_r_p_z = SVEIntReductionLogicalFixed | 0x00180000,
+  EORV_r_p_z = SVEIntReductionLogicalFixed | 0x00190000,
+  ANDV_r_p_z = SVEIntReductionLogicalFixed | 0x001A0000
+};
+
+enum SVEIntUnaryArithmeticPredicatedOp {
+  SVEIntUnaryArithmeticPredicatedFixed = 0x0400A000,
+  SVEIntUnaryArithmeticPredicatedFMask = 0xFF20E000,
+  SVEIntUnaryArithmeticPredicatedMask = 0xFF3FE000,
+  SXTB_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x00100000,
+  UXTB_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x00110000,
+  SXTH_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x00120000,
+  UXTH_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x00130000,
+  SXTW_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x00140000,
+  UXTW_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x00150000,
+  ABS_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x00160000,
+  NEG_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x00170000,
+  CLS_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x00180000,
+  CLZ_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x00190000,
+  CNT_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x001A0000,
+  CNOT_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x001B0000,
+  FABS_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x001C0000,
+  FNEG_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x001D0000,
+  NOT_z_p_z = SVEIntUnaryArithmeticPredicatedFixed | 0x001E0000
+};
+
+enum SVELoadAndBroadcastElementOp {
+  SVELoadAndBroadcastElementFixed = 0x84408000,
+  SVELoadAndBroadcastElementFMask = 0xFE408000,
+  SVELoadAndBroadcastElementMask = 0xFFC0E000,
+  LD1RB_z_p_bi_u8 = SVELoadAndBroadcastElementFixed,
+  LD1RB_z_p_bi_u16 = SVELoadAndBroadcastElementFixed | 0x00002000,
+  LD1RB_z_p_bi_u32 = SVELoadAndBroadcastElementFixed | 0x00004000,
+  LD1RB_z_p_bi_u64 = SVELoadAndBroadcastElementFixed | 0x00006000,
+  LD1RSW_z_p_bi_s64 = SVELoadAndBroadcastElementFixed | 0x00800000,
+  LD1RH_z_p_bi_u16 = SVELoadAndBroadcastElementFixed | 0x00802000,
+  LD1RH_z_p_bi_u32 = SVELoadAndBroadcastElementFixed | 0x00804000,
+  LD1RH_z_p_bi_u64 = SVELoadAndBroadcastElementFixed | 0x00806000,
+  LD1RSH_z_p_bi_s64 = SVELoadAndBroadcastElementFixed | 0x01000000,
+  LD1RSH_z_p_bi_s32 = SVELoadAndBroadcastElementFixed | 0x01002000,
+  LD1RW_z_p_bi_u32 = SVELoadAndBroadcastElementFixed | 0x01004000,
+  LD1RW_z_p_bi_u64 = SVELoadAndBroadcastElementFixed | 0x01006000,
+  LD1RSB_z_p_bi_s64 = SVELoadAndBroadcastElementFixed | 0x01800000,
+  LD1RSB_z_p_bi_s32 = SVELoadAndBroadcastElementFixed | 0x01802000,
+  LD1RSB_z_p_bi_s16 = SVELoadAndBroadcastElementFixed | 0x01804000,
+  LD1RD_z_p_bi_u64 = SVELoadAndBroadcastElementFixed | 0x01806000
+};
+
+enum SVELoadAndBroadcastQuadword_ScalarPlusImmOp {
+  SVELoadAndBroadcastQuadword_ScalarPlusImmFixed = 0xA4002000,
+  SVELoadAndBroadcastQuadword_ScalarPlusImmFMask = 0xFE10E000,
+  SVELoadAndBroadcastQuadword_ScalarPlusImmMask = 0xFFF0E000,
+  LD1RQB_z_p_bi_u8 = SVELoadAndBroadcastQuadword_ScalarPlusImmFixed,
+  LD1RQH_z_p_bi_u16 = SVELoadAndBroadcastQuadword_ScalarPlusImmFixed | 0x00800000,
+  LD1RQW_z_p_bi_u32 = SVELoadAndBroadcastQuadword_ScalarPlusImmFixed | 0x01000000,
+  LD1RQD_z_p_bi_u64 = SVELoadAndBroadcastQuadword_ScalarPlusImmFixed | 0x01800000
+};
+
+enum SVELoadAndBroadcastQuadword_ScalarPlusScalarOp {
+  SVELoadAndBroadcastQuadword_ScalarPlusScalarFixed = 0xA4000000,
+  SVELoadAndBroadcastQuadword_ScalarPlusScalarFMask = 0xFE00E000,
+  SVELoadAndBroadcastQuadword_ScalarPlusScalarMask = 0xFFE0E000,
+  LD1RQB_z_p_br_contiguous = SVELoadAndBroadcastQuadword_ScalarPlusScalarFixed,
+  LD1RQH_z_p_br_contiguous = SVELoadAndBroadcastQuadword_ScalarPlusScalarFixed | 0x00800000,
+  LD1RQW_z_p_br_contiguous = SVELoadAndBroadcastQuadword_ScalarPlusScalarFixed | 0x01000000,
+  LD1RQD_z_p_br_contiguous = SVELoadAndBroadcastQuadword_ScalarPlusScalarFixed | 0x01800000
+};
+
+enum SVELoadMultipleStructures_ScalarPlusImmOp {
+  SVELoadMultipleStructures_ScalarPlusImmFixed = 0xA400E000,
+  SVELoadMultipleStructures_ScalarPlusImmFMask = 0xFE10E000,
+  SVELoadMultipleStructures_ScalarPlusImmMask = 0xFFF0E000,
+  LD2B_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x00200000,
+  LD3B_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x00400000,
+  LD4B_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x00600000,
+  LD2H_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x00A00000,
+  LD3H_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x00C00000,
+  LD4H_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x00E00000,
+  LD2W_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x01200000,
+  LD3W_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x01400000,
+  LD4W_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x01600000,
+  LD2D_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x01A00000,
+  LD3D_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x01C00000,
+  LD4D_z_p_bi_contiguous = SVELoadMultipleStructures_ScalarPlusImmFixed | 0x01E00000
+};
+
+enum SVELoadMultipleStructures_ScalarPlusScalarOp {
+  SVELoadMultipleStructures_ScalarPlusScalarFixed = 0xA400C000,
+  SVELoadMultipleStructures_ScalarPlusScalarFMask = 0xFE00E000,
+  SVELoadMultipleStructures_ScalarPlusScalarMask = 0xFFE0E000,
+  LD2B_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x00200000,
+  LD3B_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x00400000,
+  LD4B_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x00600000,
+  LD2H_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x00A00000,
+  LD3H_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x00C00000,
+  LD4H_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x00E00000,
+  LD2W_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x01200000,
+  LD3W_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x01400000,
+  LD4W_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x01600000,
+  LD2D_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x01A00000,
+  LD3D_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x01C00000,
+  LD4D_z_p_br_contiguous = SVELoadMultipleStructures_ScalarPlusScalarFixed | 0x01E00000
+};
+
+enum SVELoadPredicateRegisterOp {
+  SVELoadPredicateRegisterFixed = 0x85800000,
+  SVELoadPredicateRegisterFMask = 0xFFC0E010,
+  SVELoadPredicateRegisterMask = 0xFFC0E010,
+  LDR_p_bi = SVELoadPredicateRegisterFixed
+};
+
+enum SVELoadVectorRegisterOp {
+  SVELoadVectorRegisterFixed = 0x85804000,
+  SVELoadVectorRegisterFMask = 0xFFC0E000,
+  SVELoadVectorRegisterMask = 0xFFC0E000,
+  LDR_z_bi = SVELoadVectorRegisterFixed
+};
+
+enum SVEMulIndexOp {
+  SVEMulIndexFixed = 0x44200000,
+  SVEMulIndexFMask = 0xFF200000,
+  SVEMulIndexMask = 0xFFE0FC00,
+  SDOT_z_zzzi_s = SVEMulIndexFixed | 0x00800000,
+  UDOT_z_zzzi_s = SVEMulIndexFixed | 0x00800400,
+  SDOT_z_zzzi_d = SVEMulIndexFixed | 0x00C00000,
+  UDOT_z_zzzi_d = SVEMulIndexFixed | 0x00C00400
+};
+
+enum SVEPartitionBreakConditionOp {
+  SVEPartitionBreakConditionFixed = 0x25104000,
+  SVEPartitionBreakConditionFMask = 0xFF3FC200,
+  SVEPartitionBreakConditionMask = 0xFFFFC200,
+  BRKA_p_p_p = SVEPartitionBreakConditionFixed,
+  BRKAS_p_p_p_z = SVEPartitionBreakConditionFixed | 0x00400000,
+  BRKB_p_p_p = SVEPartitionBreakConditionFixed | 0x00800000,
+  BRKBS_p_p_p_z = SVEPartitionBreakConditionFixed | 0x00C00000
+};
+
+enum SVEPermutePredicateElementsOp {
+  SVEPermutePredicateElementsFixed = 0x05204000,
+  SVEPermutePredicateElementsFMask = 0xFF30E210,
+  SVEPermutePredicateElementsMask = 0xFF30FE10,
+  ZIP1_p_pp = SVEPermutePredicateElementsFixed,
+  ZIP2_p_pp = SVEPermutePredicateElementsFixed | 0x00000400,
+  UZP1_p_pp = SVEPermutePredicateElementsFixed | 0x00000800,
+  UZP2_p_pp = SVEPermutePredicateElementsFixed | 0x00000C00,
+  TRN1_p_pp = SVEPermutePredicateElementsFixed | 0x00001000,
+  TRN2_p_pp = SVEPermutePredicateElementsFixed | 0x00001400
+};
+
+enum SVEPermuteVectorExtractOp {
+  SVEPermuteVectorExtractFixed = 0x05200000,
+  SVEPermuteVectorExtractFMask = 0xFF20E000,
+  SVEPermuteVectorExtractMask = 0xFFE0E000,
+  EXT_z_zi_des = SVEPermuteVectorExtractFixed
+};
+
+enum SVEPermuteVectorInterleavingOp {
+  SVEPermuteVectorInterleavingFixed = 0x05206000,
+  SVEPermuteVectorInterleavingFMask = 0xFF20E000,
+  SVEPermuteVectorInterleavingMask = 0xFF20FC00,
+  ZIP1_z_zz = SVEPermuteVectorInterleavingFixed,
+  ZIP2_z_zz = SVEPermuteVectorInterleavingFixed | 0x00000400,
+  UZP1_z_zz = SVEPermuteVectorInterleavingFixed | 0x00000800,
+  UZP2_z_zz = SVEPermuteVectorInterleavingFixed | 0x00000C00,
+  TRN1_z_zz = SVEPermuteVectorInterleavingFixed | 0x00001000,
+  TRN2_z_zz = SVEPermuteVectorInterleavingFixed | 0x00001400
+};
+
+enum SVEPredicateCountOp {
+  SVEPredicateCountFixed = 0x25208000,
+  SVEPredicateCountFMask = 0xFF38C000,
+  SVEPredicateCountMask = 0xFF3FC200,
+  CNTP_r_p_p = SVEPredicateCountFixed
+};
+
+enum SVEPredicateFirstActiveOp {
+  SVEPredicateFirstActiveFixed = 0x2518C000,
+  SVEPredicateFirstActiveFMask = 0xFF3FFE10,
+  SVEPredicateFirstActiveMask = 0xFFFFFE10,
+  PFIRST_p_p_p = SVEPredicateFirstActiveFixed | 0x00400000
+};
+
+enum SVEPredicateInitializeOp {
+  SVEPredicateInitializeFixed = 0x2518E000,
+  SVEPredicateInitializeFMask = 0xFF3EFC10,
+  SVEPredicateInitializeMask = 0xFF3FFC10,
+  SVEPredicateInitializeSetFlagsBit = 0x00010000,
+  PTRUE_p_s = SVEPredicateInitializeFixed | 0x00000000,
+  PTRUES_p_s = SVEPredicateInitializeFixed | SVEPredicateInitializeSetFlagsBit
+};
+
+enum SVEPredicateLogicalOp {
+  SVEPredicateLogicalFixed = 0x25004000,
+  SVEPredicateLogicalFMask = 0xFF30C000,
+  SVEPredicateLogicalMask = 0xFFF0C210,
+  SVEPredicateLogicalSetFlagsBit = 0x00400000,
+  AND_p_p_pp_z = SVEPredicateLogicalFixed,
+  ANDS_p_p_pp_z = AND_p_p_pp_z | SVEPredicateLogicalSetFlagsBit,
+  BIC_p_p_pp_z = SVEPredicateLogicalFixed | 0x00000010,
+  BICS_p_p_pp_z = BIC_p_p_pp_z | SVEPredicateLogicalSetFlagsBit,
+  EOR_p_p_pp_z = SVEPredicateLogicalFixed | 0x00000200,
+  EORS_p_p_pp_z = EOR_p_p_pp_z | SVEPredicateLogicalSetFlagsBit,
+  ORR_p_p_pp_z = SVEPredicateLogicalFixed | 0x00800000,
+  ORRS_p_p_pp_z = ORR_p_p_pp_z | SVEPredicateLogicalSetFlagsBit,
+  ORN_p_p_pp_z = SVEPredicateLogicalFixed | 0x00800010,
+  ORNS_p_p_pp_z = ORN_p_p_pp_z | SVEPredicateLogicalSetFlagsBit,
+  NAND_p_p_pp_z = SVEPredicateLogicalFixed | 0x00800210,
+  NANDS_p_p_pp_z = NAND_p_p_pp_z | SVEPredicateLogicalSetFlagsBit,
+  NOR_p_p_pp_z = SVEPredicateLogicalFixed | 0x00800200,
+  NORS_p_p_pp_z = NOR_p_p_pp_z | SVEPredicateLogicalSetFlagsBit,
+  SEL_p_p_pp = SVEPredicateLogicalFixed | 0x00000210
+};
+
+enum SVEPredicateNextActiveOp {
+  SVEPredicateNextActiveFixed = 0x2519C400,
+  SVEPredicateNextActiveFMask = 0xFF3FFE10,
+  SVEPredicateNextActiveMask = 0xFF3FFE10,
+  PNEXT_p_p_p = SVEPredicateNextActiveFixed
+};
+
+enum SVEPredicateReadFromFFR_PredicatedOp {
+  SVEPredicateReadFromFFR_PredicatedFixed = 0x2518F000,
+  SVEPredicateReadFromFFR_PredicatedFMask = 0xFF3FFE10,
+  SVEPredicateReadFromFFR_PredicatedMask = 0xFFFFFE10,
+  RDFFR_p_p_f = SVEPredicateReadFromFFR_PredicatedFixed,
+  RDFFRS_p_p_f = SVEPredicateReadFromFFR_PredicatedFixed | 0x00400000
+};
+
+enum SVEPredicateReadFromFFR_UnpredicatedOp {
+  SVEPredicateReadFromFFR_UnpredicatedFixed = 0x2519F000,
+  SVEPredicateReadFromFFR_UnpredicatedFMask = 0xFF3FFFF0,
+  SVEPredicateReadFromFFR_UnpredicatedMask = 0xFFFFFFF0,
+  RDFFR_p_f = SVEPredicateReadFromFFR_UnpredicatedFixed
+};
+
+enum SVEPredicateTestOp {
+  SVEPredicateTestFixed = 0x2510C000,
+  SVEPredicateTestFMask = 0xFF3FC210,
+  SVEPredicateTestMask = 0xFFFFC21F,
+  PTEST_p_p = SVEPredicateTestFixed | 0x00400000
+};
+
+enum SVEPredicateZeroOp {
+  SVEPredicateZeroFixed = 0x2518E400,
+  SVEPredicateZeroFMask = 0xFF3FFFF0,
+  SVEPredicateZeroMask = 0xFFFFFFF0,
+  PFALSE_p = SVEPredicateZeroFixed
+};
+
+enum SVEPropagateBreakOp {
+  SVEPropagateBreakFixed = 0x2500C000,
+  SVEPropagateBreakFMask = 0xFF30C000,
+  SVEPropagateBreakMask = 0xFFF0C210,
+  BRKPA_p_p_pp = SVEPropagateBreakFixed,
+  BRKPB_p_p_pp = SVEPropagateBreakFixed | 0x00000010,
+  BRKPAS_p_p_pp = SVEPropagateBreakFixed | 0x00400000,
+  BRKPBS_p_p_pp = SVEPropagateBreakFixed | 0x00400010
+};
+
+enum SVEPropagateBreakToNextPartitionOp {
+  SVEPropagateBreakToNextPartitionFixed = 0x25184000,
+  SVEPropagateBreakToNextPartitionFMask = 0xFFBFC210,
+  SVEPropagateBreakToNextPartitionMask = 0xFFFFC210,
+  BRKN_p_p_pp = SVEPropagateBreakToNextPartitionFixed,
+  BRKNS_p_p_pp = SVEPropagateBreakToNextPartitionFixed | 0x00400000
+};
+
+enum SVEReversePredicateElementsOp {
+  SVEReversePredicateElementsFixed = 0x05344000,
+  SVEReversePredicateElementsFMask = 0xFF3FFE10,
+  SVEReversePredicateElementsMask = 0xFF3FFE10,
+  REV_p_p = SVEReversePredicateElementsFixed
+};
+
+enum SVEReverseVectorElementsOp {
+  SVEReverseVectorElementsFixed = 0x05383800,
+  SVEReverseVectorElementsFMask = 0xFF3FFC00,
+  SVEReverseVectorElementsMask = 0xFF3FFC00,
+  REV_z_z = SVEReverseVectorElementsFixed
+};
+
+enum SVEReverseWithinElementsOp {
+  SVEReverseWithinElementsFixed = 0x05248000,
+  SVEReverseWithinElementsFMask = 0xFF3CE000,
+  SVEReverseWithinElementsMask = 0xFF3FE000,
+  REVB_z_z = SVEReverseWithinElementsFixed,
+  REVH_z_z = SVEReverseWithinElementsFixed | 0x00010000,
+  REVW_z_z = SVEReverseWithinElementsFixed | 0x00020000,
+  RBIT_z_p_z = SVEReverseWithinElementsFixed | 0x00030000
+};
+
+enum SVESaturatingIncDecRegisterByElementCountOp {
+  SVESaturatingIncDecRegisterByElementCountFixed = 0x0420F000,
+  SVESaturatingIncDecRegisterByElementCountFMask = 0xFF20F000,
+  SVESaturatingIncDecRegisterByElementCountMask = 0xFFF0FC00,
+  SQINCB_r_rs_sx = SVESaturatingIncDecRegisterByElementCountFixed,
+  UQINCB_r_rs_uw = SVESaturatingIncDecRegisterByElementCountFixed | 0x00000400,
+  SQDECB_r_rs_sx = SVESaturatingIncDecRegisterByElementCountFixed | 0x00000800,
+  UQDECB_r_rs_uw = SVESaturatingIncDecRegisterByElementCountFixed | 0x00000C00,
+  SQINCB_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00100000,
+  UQINCB_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00100400,
+  SQDECB_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00100800,
+  UQDECB_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00100C00,
+  SQINCH_r_rs_sx = SVESaturatingIncDecRegisterByElementCountFixed | 0x00400000,
+  UQINCH_r_rs_uw = SVESaturatingIncDecRegisterByElementCountFixed | 0x00400400,
+  SQDECH_r_rs_sx = SVESaturatingIncDecRegisterByElementCountFixed | 0x00400800,
+  UQDECH_r_rs_uw = SVESaturatingIncDecRegisterByElementCountFixed | 0x00400C00,
+  SQINCH_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00500000,
+  UQINCH_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00500400,
+  SQDECH_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00500800,
+  UQDECH_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00500C00,
+  SQINCW_r_rs_sx = SVESaturatingIncDecRegisterByElementCountFixed | 0x00800000,
+  UQINCW_r_rs_uw = SVESaturatingIncDecRegisterByElementCountFixed | 0x00800400,
+  SQDECW_r_rs_sx = SVESaturatingIncDecRegisterByElementCountFixed | 0x00800800,
+  UQDECW_r_rs_uw = SVESaturatingIncDecRegisterByElementCountFixed | 0x00800C00,
+  SQINCW_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00900000,
+  UQINCW_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00900400,
+  SQDECW_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00900800,
+  UQDECW_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00900C00,
+  SQINCD_r_rs_sx = SVESaturatingIncDecRegisterByElementCountFixed | 0x00C00000,
+  UQINCD_r_rs_uw = SVESaturatingIncDecRegisterByElementCountFixed | 0x00C00400,
+  SQDECD_r_rs_sx = SVESaturatingIncDecRegisterByElementCountFixed | 0x00C00800,
+  UQDECD_r_rs_uw = SVESaturatingIncDecRegisterByElementCountFixed | 0x00C00C00,
+  SQINCD_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00D00000,
+  UQINCD_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00D00400,
+  SQDECD_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00D00800,
+  UQDECD_r_rs_x = SVESaturatingIncDecRegisterByElementCountFixed | 0x00D00C00
+};
+
+enum SVESaturatingIncDecVectorByElementCountOp {
+  SVESaturatingIncDecVectorByElementCountFixed = 0x0420C000,
+  SVESaturatingIncDecVectorByElementCountFMask = 0xFF30F000,
+  SVESaturatingIncDecVectorByElementCountMask = 0xFFF0FC00,
+  SQINCH_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00400000,
+  UQINCH_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00400400,
+  SQDECH_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00400800,
+  UQDECH_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00400C00,
+  SQINCW_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00800000,
+  UQINCW_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00800400,
+  SQDECW_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00800800,
+  UQDECW_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00800C00,
+  SQINCD_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00C00000,
+  UQINCD_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00C00400,
+  SQDECD_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00C00800,
+  UQDECD_z_zs = SVESaturatingIncDecVectorByElementCountFixed | 0x00C00C00
+};
+
+enum SVEStackFrameAdjustmentOp {
+  SVEStackFrameAdjustmentFixed = 0x04205000,
+  SVEStackFrameAdjustmentFMask = 0xFFA0F800,
+  SVEStackFrameAdjustmentMask = 0xFFE0F800,
+  ADDVL_r_ri = SVEStackFrameAdjustmentFixed,
+  ADDPL_r_ri = SVEStackFrameAdjustmentFixed | 0x00400000
+};
+
+enum SVEStackFrameSizeOp {
+  SVEStackFrameSizeFixed = 0x04BF5000,
+  SVEStackFrameSizeFMask = 0xFFFFF800,
+  SVEStackFrameSizeMask = 0xFFFFF800,
+  RDVL_r_i = SVEStackFrameSizeFixed
+};
+
+enum SVEStoreMultipleStructures_ScalarPlusImmOp {
+  SVEStoreMultipleStructures_ScalarPlusImmFixed = 0xE410E000,
+  SVEStoreMultipleStructures_ScalarPlusImmFMask = 0xFE10E000,
+  SVEStoreMultipleStructures_ScalarPlusImmMask = 0xFFF0E000,
+  ST2B_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x00200000,
+  ST3B_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x00400000,
+  ST4B_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x00600000,
+  ST2H_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x00A00000,
+  ST3H_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x00C00000,
+  ST4H_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x00E00000,
+  ST2W_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x01200000,
+  ST3W_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x01400000,
+  ST4W_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x01600000,
+  ST2D_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x01A00000,
+  ST3D_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x01C00000,
+  ST4D_z_p_bi_contiguous = SVEStoreMultipleStructures_ScalarPlusImmFixed | 0x01E00000
+};
+
+enum SVEStoreMultipleStructures_ScalarPlusScalarOp {
+  SVEStoreMultipleStructures_ScalarPlusScalarFixed = 0xE4006000,
+  SVEStoreMultipleStructures_ScalarPlusScalarFMask = 0xFE00E000,
+  SVEStoreMultipleStructures_ScalarPlusScalarMask = 0xFFE0E000,
+  ST2B_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x00200000,
+  ST3B_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x00400000,
+  ST4B_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x00600000,
+  ST2H_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x00A00000,
+  ST3H_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x00C00000,
+  ST4H_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x00E00000,
+  ST2W_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x01200000,
+  ST3W_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x01400000,
+  ST4W_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x01600000,
+  ST2D_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x01A00000,
+  ST3D_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x01C00000,
+  ST4D_z_p_br_contiguous = SVEStoreMultipleStructures_ScalarPlusScalarFixed | 0x01E00000
+};
+
+enum SVEStorePredicateRegisterOp {
+  SVEStorePredicateRegisterFixed = 0xE5800000,
+  SVEStorePredicateRegisterFMask = 0xFFC0E010,
+  SVEStorePredicateRegisterMask = 0xFFC0E010,
+  STR_p_bi = SVEStorePredicateRegisterFixed
+};
+
+enum SVEStoreVectorRegisterOp {
+  SVEStoreVectorRegisterFixed = 0xE5804000,
+  SVEStoreVectorRegisterFMask = 0xFFC0E000,
+  SVEStoreVectorRegisterMask = 0xFFC0E000,
+  STR_z_bi = SVEStoreVectorRegisterFixed
+};
+
+enum SVETableLookupOp {
+  SVETableLookupFixed = 0x05203000,
+  SVETableLookupFMask = 0xFF20FC00,
+  SVETableLookupMask = 0xFF20FC00,
+  TBL_z_zz_1 = SVETableLookupFixed
+};
+
+enum SVEUnpackPredicateElementsOp {
+  SVEUnpackPredicateElementsFixed = 0x05304000,
+  SVEUnpackPredicateElementsFMask = 0xFFFEFE10,
+  SVEUnpackPredicateElementsMask = 0xFFFFFE10,
+  PUNPKLO_p_p = SVEUnpackPredicateElementsFixed,
+  PUNPKHI_p_p = SVEUnpackPredicateElementsFixed | 0x00010000
+};
+
+enum SVEUnpackVectorElementsOp {
+  SVEUnpackVectorElementsFixed = 0x05303800,
+  SVEUnpackVectorElementsFMask = 0xFF3CFC00,
+  SVEUnpackVectorElementsMask = 0xFF3FFC00,
+  SUNPKLO_z_z = SVEUnpackVectorElementsFixed,
+  SUNPKHI_z_z = SVEUnpackVectorElementsFixed | 0x00010000,
+  UUNPKLO_z_z = SVEUnpackVectorElementsFixed | 0x00020000,
+  UUNPKHI_z_z = SVEUnpackVectorElementsFixed | 0x00030000
+};
+
+enum SVEVectorSelectOp {
+  SVEVectorSelectFixed = 0x0520C000,
+  SVEVectorSelectFMask = 0xFF20C000,
+  SVEVectorSelectMask = 0xFF20C000,
+  SEL_z_p_zz = SVEVectorSelectFixed
+};
+
+enum SVEVectorSplice_DestructiveOp {
+  SVEVectorSplice_DestructiveFixed = 0x052C8000,
+  SVEVectorSplice_DestructiveFMask = 0xFF3FE000,
+  SVEVectorSplice_DestructiveMask = 0xFF3FE000,
+  SPLICE_z_p_zz_des = SVEVectorSplice_DestructiveFixed
+};
+
 enum ReservedOp {
   ReservedFixed = 0x00000000,
   ReservedFMask = 0x1E000000,
   ReservedMask = 0xFFFF0000,
-
   UDF = ReservedFixed | 0x00000000
 };
 
diff --git a/src/aarch64/cpu-aarch64.cc b/src/aarch64/cpu-aarch64.cc
index f5e4fca..a31e010 100644
--- a/src/aarch64/cpu-aarch64.cc
+++ b/src/aarch64/cpu-aarch64.cc
@@ -39,10 +39,15 @@
 
 const IDRegister::Field AA64PFR0::kFP(16, Field::kSigned);
 const IDRegister::Field AA64PFR0::kAdvSIMD(20, Field::kSigned);
+const IDRegister::Field AA64PFR0::kRAS(28);
 const IDRegister::Field AA64PFR0::kSVE(32);
 const IDRegister::Field AA64PFR0::kDIT(48);
+const IDRegister::Field AA64PFR0::kCSV2(56);
+const IDRegister::Field AA64PFR0::kCSV3(60);
 
 const IDRegister::Field AA64PFR1::kBT(0);
+const IDRegister::Field AA64PFR1::kSSBS(4);
+const IDRegister::Field AA64PFR1::kMTE(8);
 
 const IDRegister::Field AA64ISAR0::kAES(4);
 const IDRegister::Field AA64ISAR0::kSHA1(8);
@@ -56,6 +61,7 @@
 const IDRegister::Field AA64ISAR0::kDP(44);
 const IDRegister::Field AA64ISAR0::kFHM(48);
 const IDRegister::Field AA64ISAR0::kTS(52);
+const IDRegister::Field AA64ISAR0::kRNDR(60);
 
 const IDRegister::Field AA64ISAR1::kDPB(0);
 const IDRegister::Field AA64ISAR1::kAPA(4);
@@ -68,23 +74,41 @@
 const IDRegister::Field AA64ISAR1::kFRINTTS(32);
 const IDRegister::Field AA64ISAR1::kSB(36);
 const IDRegister::Field AA64ISAR1::kSPECRES(40);
+const IDRegister::Field AA64ISAR1::kBF16(44);
+const IDRegister::Field AA64ISAR1::kDGH(48);
+const IDRegister::Field AA64ISAR1::kI8MM(52);
 
 const IDRegister::Field AA64MMFR1::kLO(16);
 
+const IDRegister::Field AA64MMFR2::kAT(32);
+
+const IDRegister::Field AA64ZFR0::kBF16(20);
+const IDRegister::Field AA64ZFR0::kI8MM(44);
+const IDRegister::Field AA64ZFR0::kF32MM(52);
+const IDRegister::Field AA64ZFR0::kF64MM(56);
+
 CPUFeatures AA64PFR0::GetCPUFeatures() const {
   CPUFeatures f;
   if (Get(kFP) >= 0) f.Combine(CPUFeatures::kFP);
   if (Get(kFP) >= 1) f.Combine(CPUFeatures::kFPHalf);
   if (Get(kAdvSIMD) >= 0) f.Combine(CPUFeatures::kNEON);
   if (Get(kAdvSIMD) >= 1) f.Combine(CPUFeatures::kNEONHalf);
+  if (Get(kRAS) >= 1) f.Combine(CPUFeatures::kRAS);
   if (Get(kSVE) >= 1) f.Combine(CPUFeatures::kSVE);
   if (Get(kDIT) >= 1) f.Combine(CPUFeatures::kDIT);
+  if (Get(kCSV2) >= 1) f.Combine(CPUFeatures::kCSV2);
+  if (Get(kCSV2) >= 2) f.Combine(CPUFeatures::kSCXTNUM);
+  if (Get(kCSV3) >= 1) f.Combine(CPUFeatures::kCSV3);
   return f;
 }
 
 CPUFeatures AA64PFR1::GetCPUFeatures() const {
   CPUFeatures f;
   if (Get(kBT) >= 1) f.Combine(CPUFeatures::kBTI);
+  if (Get(kSSBS) >= 1) f.Combine(CPUFeatures::kSSBS);
+  if (Get(kSSBS) >= 2) f.Combine(CPUFeatures::kSSBSControl);
+  if (Get(kMTE) >= 1) f.Combine(CPUFeatures::kMTEInstructions);
+  if (Get(kMTE) >= 2) f.Combine(CPUFeatures::kMTE);
   return f;
 }
 
@@ -105,20 +129,38 @@
   if (Get(kFHM) >= 1) f.Combine(CPUFeatures::kFHM);
   if (Get(kTS) >= 1) f.Combine(CPUFeatures::kFlagM);
   if (Get(kTS) >= 2) f.Combine(CPUFeatures::kAXFlag);
+  if (Get(kRNDR) >= 1) f.Combine(CPUFeatures::kRNG);
   return f;
 }
 
 CPUFeatures AA64ISAR1::GetCPUFeatures() const {
   CPUFeatures f;
   if (Get(kDPB) >= 1) f.Combine(CPUFeatures::kDCPoP);
+  if (Get(kDPB) >= 2) f.Combine(CPUFeatures::kDCCVADP);
   if (Get(kJSCVT) >= 1) f.Combine(CPUFeatures::kJSCVT);
   if (Get(kFCMA) >= 1) f.Combine(CPUFeatures::kFcma);
   if (Get(kLRCPC) >= 1) f.Combine(CPUFeatures::kRCpc);
   if (Get(kLRCPC) >= 2) f.Combine(CPUFeatures::kRCpcImm);
   if (Get(kFRINTTS) >= 1) f.Combine(CPUFeatures::kFrintToFixedSizedInt);
+  if (Get(kSB) >= 1) f.Combine(CPUFeatures::kSB);
+  if (Get(kSPECRES) >= 1) f.Combine(CPUFeatures::kSPECRES);
+  if (Get(kBF16) >= 1) f.Combine(CPUFeatures::kBF16);
+  if (Get(kDGH) >= 1) f.Combine(CPUFeatures::kDGH);
+  if (Get(kI8MM) >= 1) f.Combine(CPUFeatures::kI8MM);
 
-  if (Get(kAPI) >= 1) f.Combine(CPUFeatures::kPAuth);
-  if (Get(kAPA) >= 1) f.Combine(CPUFeatures::kPAuth, CPUFeatures::kPAuthQARMA);
+  // Only one of these fields should be non-zero, but they have the same
+  // encodings, so merge the logic.
+  int apx = std::max(Get(kAPI), Get(kAPA));
+  if (apx >= 1) {
+    f.Combine(CPUFeatures::kPAuth);
+    // APA (rather than API) indicates QARMA.
+    if (Get(kAPA) >= 1) f.Combine(CPUFeatures::kPAuthQARMA);
+    if (apx == 0b0010) f.Combine(CPUFeatures::kPAuthEnhancedPAC);
+    if (apx >= 0b0011) f.Combine(CPUFeatures::kPAuthEnhancedPAC2);
+    if (apx >= 0b0100) f.Combine(CPUFeatures::kPAuthFPAC);
+    if (apx >= 0b0101) f.Combine(CPUFeatures::kPAuthFPACCombined);
+  }
+
   if (Get(kGPI) >= 1) f.Combine(CPUFeatures::kPAuthGeneric);
   if (Get(kGPA) >= 1) {
     f.Combine(CPUFeatures::kPAuthGeneric, CPUFeatures::kPAuthGenericQARMA);
@@ -132,6 +174,23 @@
   return f;
 }
 
+CPUFeatures AA64MMFR2::GetCPUFeatures() const {
+  CPUFeatures f;
+  if (Get(kAT) >= 1) f.Combine(CPUFeatures::kUSCAT);
+  return f;
+}
+
+CPUFeatures AA64ZFR0::GetCPUFeatures() const {
+  // This register is only available with SVE, but reads-as-zero in its absence,
+  // so it's always safe to read it.
+  CPUFeatures f;
+  if (Get(kF64MM) >= 1) f.Combine(CPUFeatures::kSVEF64MM);
+  if (Get(kF32MM) >= 1) f.Combine(CPUFeatures::kSVEF32MM);
+  if (Get(kI8MM) >= 1) f.Combine(CPUFeatures::kSVEI8MM);
+  if (Get(kBF16) >= 1) f.Combine(CPUFeatures::kSVEBF16);
+  return f;
+}
+
 int IDRegister::Get(IDRegister::Field field) const {
   int msb = field.GetMsb();
   int lsb = field.GetLsb();
@@ -149,7 +208,8 @@
 
 CPUFeatures CPU::InferCPUFeaturesFromIDRegisters() {
   CPUFeatures f;
-#define VIXL_COMBINE_ID_REG(NAME) f.Combine(Read##NAME().GetCPUFeatures());
+#define VIXL_COMBINE_ID_REG(NAME, MRS_ARG) \
+  f.Combine(Read##NAME().GetCPUFeatures());
   VIXL_AARCH64_ID_REG_LIST(VIXL_COMBINE_ID_REG)
 #undef VIXL_COMBINE_ID_REG
   return f;
@@ -163,49 +223,73 @@
   // Map each set bit onto a feature. Ideally, we'd use HWCAP_* macros rather
   // than explicit bits, but explicit bits allow us to identify features that
   // the toolchain doesn't know about.
-  static const CPUFeatures::Feature kFeatureBits[] = {
-      // Bits 0-7
-      CPUFeatures::kFP,
-      CPUFeatures::kNEON,
-      CPUFeatures::kNone,  // "EVTSTRM", which VIXL doesn't track.
-      CPUFeatures::kAES,
-      CPUFeatures::kPmull1Q,
-      CPUFeatures::kSHA1,
-      CPUFeatures::kSHA2,
-      CPUFeatures::kCRC32,
-      // Bits 8-15
-      CPUFeatures::kAtomics,
-      CPUFeatures::kFPHalf,
-      CPUFeatures::kNEONHalf,
-      CPUFeatures::kIDRegisterEmulation,
-      CPUFeatures::kRDM,
-      CPUFeatures::kJSCVT,
-      CPUFeatures::kFcma,
-      CPUFeatures::kRCpc,
-      // Bits 16-23
-      CPUFeatures::kDCPoP,
-      CPUFeatures::kSHA3,
-      CPUFeatures::kSM3,
-      CPUFeatures::kSM4,
-      CPUFeatures::kDotProduct,
-      CPUFeatures::kSHA512,
-      CPUFeatures::kSVE,
-      CPUFeatures::kFHM,
-      // Bits 24-27
-      CPUFeatures::kDIT,
-      CPUFeatures::kUSCAT,
-      CPUFeatures::kRCpcImm,
-      CPUFeatures::kFlagM
-      // Bits 28-31 are unassigned.
-  };
-  static const size_t kFeatureBitCount =
-      sizeof(kFeatureBits) / sizeof(kFeatureBits[0]);
+  static const CPUFeatures::Feature kFeatureBits[] =
+      {// Bits 0-7
+       CPUFeatures::kFP,
+       CPUFeatures::kNEON,
+       CPUFeatures::kNone,  // "EVTSTRM", which VIXL doesn't track.
+       CPUFeatures::kAES,
+       CPUFeatures::kPmull1Q,
+       CPUFeatures::kSHA1,
+       CPUFeatures::kSHA2,
+       CPUFeatures::kCRC32,
+       // Bits 8-15
+       CPUFeatures::kAtomics,
+       CPUFeatures::kFPHalf,
+       CPUFeatures::kNEONHalf,
+       CPUFeatures::kIDRegisterEmulation,
+       CPUFeatures::kRDM,
+       CPUFeatures::kJSCVT,
+       CPUFeatures::kFcma,
+       CPUFeatures::kRCpc,
+       // Bits 16-23
+       CPUFeatures::kDCPoP,
+       CPUFeatures::kSHA3,
+       CPUFeatures::kSM3,
+       CPUFeatures::kSM4,
+       CPUFeatures::kDotProduct,
+       CPUFeatures::kSHA512,
+       CPUFeatures::kSVE,
+       CPUFeatures::kFHM,
+       // Bits 24-31
+       CPUFeatures::kDIT,
+       CPUFeatures::kUSCAT,
+       CPUFeatures::kRCpcImm,
+       CPUFeatures::kFlagM,
+       CPUFeatures::kSSBSControl,
+       CPUFeatures::kSB,
+       CPUFeatures::kPAuth,
+       CPUFeatures::kPAuthGeneric,
+       // Bits 32-39
+       CPUFeatures::kDCCVADP,
+       CPUFeatures::kNone,  // "sve2"
+       CPUFeatures::kNone,  // "sveaes"
+       CPUFeatures::kNone,  // "svepmull"
+       CPUFeatures::kNone,  // "svebitperm"
+       CPUFeatures::kNone,  // "svesha3"
+       CPUFeatures::kNone,  // "svesm4"
+       CPUFeatures::kFrintToFixedSizedInt,
+       // Bits 40-47
+       CPUFeatures::kSVEI8MM,
+       CPUFeatures::kSVEF32MM,
+       CPUFeatures::kSVEF64MM,
+       CPUFeatures::kSVEBF16,
+       CPUFeatures::kI8MM,
+       CPUFeatures::kBF16,
+       CPUFeatures::kDGH,
+       CPUFeatures::kRNG,
+       // Bits 48+
+       CPUFeatures::kBTI};
 
-  unsigned long auxv = getauxval(AT_HWCAP);  // NOLINT(runtime/int)
+  uint64_t hwcap_low32 = getauxval(AT_HWCAP);
+  uint64_t hwcap_high32 = getauxval(AT_HWCAP2);
+  VIXL_ASSERT(IsUint32(hwcap_low32));
+  VIXL_ASSERT(IsUint32(hwcap_high32));
+  uint64_t hwcap = hwcap_low32 | (hwcap_high32 << 32);
 
-  VIXL_STATIC_ASSERT(kFeatureBitCount < (sizeof(auxv) * kBitsPerByte));
-  for (size_t i = 0; i < kFeatureBitCount; i++) {
-    if (auxv & (1UL << i)) features.Combine(kFeatureBits[i]);
+  VIXL_STATIC_ASSERT(ArrayLength(kFeatureBits) < 64);
+  for (size_t i = 0; i < ArrayLength(kFeatureBits); i++) {
+    if (hwcap & (UINT64_C(1) << i)) features.Combine(kFeatureBits[i]);
   }
 #endif  // VIXL_USE_LINUX_HWCAP
 
@@ -218,17 +302,17 @@
 
 
 #ifdef __aarch64__
-#define VIXL_READ_ID_REG(NAME)                         \
-  NAME CPU::Read##NAME() {                             \
-    uint64_t value = 0;                                \
-    __asm__("mrs %0, ID_" #NAME "_EL1" : "=r"(value)); \
-    return NAME(value);                                \
+#define VIXL_READ_ID_REG(NAME, MRS_ARG)        \
+  NAME CPU::Read##NAME() {                     \
+    uint64_t value = 0;                        \
+    __asm__("mrs %0, " MRS_ARG : "=r"(value)); \
+    return NAME(value);                        \
   }
 #else  // __aarch64__
-#define VIXL_READ_ID_REG(NAME)                                        \
-  NAME CPU::Read##NAME() {                                            \
-    /* TODO: Use VIXL_UNREACHABLE once it works in release builds. */ \
-    VIXL_ABORT();                                                     \
+#define VIXL_READ_ID_REG(NAME, MRS_ARG) \
+  NAME CPU::Read##NAME() {              \
+    VIXL_UNREACHABLE();                 \
+    return NAME(0);                     \
   }
 #endif  // __aarch64__
 
@@ -282,6 +366,27 @@
 }
 
 
+// Query the SVE vector length. This requires CPUFeatures::kSVE.
+int CPU::ReadSVEVectorLengthInBits() {
+#ifdef __aarch64__
+  uint64_t vl;
+  // To support compilers that don't understand `rdvl`, encode the value
+  // directly and move it manually.
+  __asm__(
+      "   .word 0x04bf5100\n"  // rdvl x0, #8
+      "   mov %[vl], x0\n"
+      : [vl] "=r"(vl)
+      :
+      : "x0");
+  VIXL_ASSERT(vl <= INT_MAX);
+  return static_cast<int>(vl);
+#else
+  VIXL_UNREACHABLE();
+  return 0;
+#endif
+}
+
+
 void CPU::EnsureIAndDCacheCoherency(void *address, size_t length) {
 #ifdef __aarch64__
   // Implement the cache synchronisation for all targets where AArch64 is the
diff --git a/src/aarch64/cpu-aarch64.h b/src/aarch64/cpu-aarch64.h
index d2b2ee8..2bf1e60 100644
--- a/src/aarch64/cpu-aarch64.h
+++ b/src/aarch64/cpu-aarch64.h
@@ -56,7 +56,11 @@
    public:
     enum Type { kUnsigned, kSigned };
 
-    explicit Field(int lsb, Type type = kUnsigned) : lsb_(lsb), type_(type) {}
+    // This needs to be constexpr so that fields have "constant initialisation".
+    // This avoids initialisation order problems when these values are used to
+    // (dynamically) initialise static variables, etc.
+    explicit constexpr Field(int lsb, Type type = kUnsigned)
+        : lsb_(lsb), type_(type) {}
 
     static const int kMaxWidthInBits = 4;
 
@@ -92,8 +96,11 @@
  private:
   static const Field kFP;
   static const Field kAdvSIMD;
+  static const Field kRAS;
   static const Field kSVE;
   static const Field kDIT;
+  static const Field kCSV2;
+  static const Field kCSV3;
 };
 
 class AA64PFR1 : public IDRegister {
@@ -104,6 +111,8 @@
 
  private:
   static const Field kBT;
+  static const Field kSSBS;
+  static const Field kMTE;
 };
 
 class AA64ISAR0 : public IDRegister {
@@ -125,6 +134,7 @@
   static const Field kDP;
   static const Field kFHM;
   static const Field kTS;
+  static const Field kRNDR;
 };
 
 class AA64ISAR1 : public IDRegister {
@@ -145,6 +155,9 @@
   static const Field kFRINTTS;
   static const Field kSB;
   static const Field kSPECRES;
+  static const Field kBF16;
+  static const Field kDGH;
+  static const Field kI8MM;
 };
 
 class AA64MMFR1 : public IDRegister {
@@ -157,6 +170,29 @@
   static const Field kLO;
 };
 
+class AA64MMFR2 : public IDRegister {
+ public:
+  explicit AA64MMFR2(uint64_t value) : IDRegister(value) {}
+
+  CPUFeatures GetCPUFeatures() const;
+
+ private:
+  static const Field kAT;
+};
+
+class AA64ZFR0 : public IDRegister {
+ public:
+  explicit AA64ZFR0(uint64_t value) : IDRegister(value) {}
+
+  CPUFeatures GetCPUFeatures() const;
+
+ private:
+  static const Field kBF16;
+  static const Field kI8MM;
+  static const Field kF32MM;
+  static const Field kF64MM;
+};
+
 class CPU {
  public:
   // Initialise CPU support.
@@ -184,6 +220,9 @@
       CPUFeatures::QueryIDRegistersOption option =
           CPUFeatures::kQueryIDRegistersIfAvailable);
 
+  // Query the SVE vector length. This requires CPUFeatures::kSVE.
+  static int ReadSVEVectorLengthInBits();
+
   // Handle tagged pointers.
   template <typename T>
   static T SetPointerTag(T pointer, uint64_t tag) {
@@ -211,14 +250,18 @@
   }
 
  private:
-#define VIXL_AARCH64_ID_REG_LIST(V) \
-  V(AA64PFR0)                       \
-  V(AA64PFR1)                       \
-  V(AA64ISAR0)                      \
-  V(AA64ISAR1)                      \
-  V(AA64MMFR1)
+#define VIXL_AARCH64_ID_REG_LIST(V)                                           \
+  V(AA64PFR0, "ID_AA64PFR0_EL1")                                              \
+  V(AA64PFR1, "ID_AA64PFR1_EL1")                                              \
+  V(AA64ISAR0, "ID_AA64ISAR0_EL1")                                            \
+  V(AA64ISAR1, "ID_AA64ISAR1_EL1")                                            \
+  V(AA64MMFR1, "ID_AA64MMFR1_EL1")                                            \
+  /* These registers are RES0 in the baseline Arm8.0. We can always safely */ \
+  /* read them, but some compilers don't accept the symbolic names. */        \
+  V(AA64MMFR2, "S3_0_C0_C7_2")                                                \
+  V(AA64ZFR0, "S3_0_C0_C4_4")
 
-#define VIXL_READ_ID_REG(NAME) static NAME Read##NAME();
+#define VIXL_READ_ID_REG(NAME, MRS_ARG) static NAME Read##NAME();
   // On native AArch64 platforms, read the named CPU ID registers. These require
   // CPUFeatures::kIDRegisterEmulation, and should not be called on non-AArch64
   // platforms.
diff --git a/src/aarch64/cpu-features-auditor-aarch64.cc b/src/aarch64/cpu-features-auditor-aarch64.cc
index 474803a..abe63d3 100644
--- a/src/aarch64/cpu-features-auditor-aarch64.cc
+++ b/src/aarch64/cpu-features-auditor-aarch64.cc
@@ -870,7 +870,6 @@
     scope.Record(CPUFeatures::kFP);
     if (instr->ExtractBit(11)) scope.Record(CPUFeatures::kNEONHalf);
   }
-  USE(instr);
 }
 
 void CPUFeaturesAuditor::VisitNEONPerm(const Instruction* instr) {
@@ -1068,6 +1067,165 @@
   USE(instr);
 }
 
+// Most SVE visitors require only SVE.
+#define VIXL_SIMPLE_SVE_VISITOR_LIST(V)                          \
+  V(SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets)           \
+  V(SVE32BitGatherLoad_VectorPlusImm)                            \
+  V(SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsets)    \
+  V(SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsets)        \
+  V(SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsets)         \
+  V(SVE32BitGatherPrefetch_VectorPlusImm)                        \
+  V(SVE32BitScatterStore_ScalarPlus32BitScaledOffsets)           \
+  V(SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsets)         \
+  V(SVE32BitScatterStore_VectorPlusImm)                          \
+  V(SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets)     \
+  V(SVE64BitGatherLoad_ScalarPlus64BitScaledOffsets)             \
+  V(SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets)           \
+  V(SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets)   \
+  V(SVE64BitGatherLoad_VectorPlusImm)                            \
+  V(SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsets)         \
+  V(SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsets) \
+  V(SVE64BitGatherPrefetch_VectorPlusImm)                        \
+  V(SVE64BitScatterStore_ScalarPlus64BitScaledOffsets)           \
+  V(SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsets)         \
+  V(SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsets)   \
+  V(SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsets) \
+  V(SVE64BitScatterStore_VectorPlusImm)                          \
+  V(SVEAddressGeneration)                                        \
+  V(SVEBitwiseLogicalUnpredicated)                               \
+  V(SVEBitwiseShiftUnpredicated)                                 \
+  V(SVEFFRInitialise)                                            \
+  V(SVEFFRWriteFromPredicate)                                    \
+  V(SVEFPAccumulatingReduction)                                  \
+  V(SVEFPArithmeticUnpredicated)                                 \
+  V(SVEFPCompareVectors)                                         \
+  V(SVEFPCompareWithZero)                                        \
+  V(SVEFPComplexAddition)                                        \
+  V(SVEFPComplexMulAdd)                                          \
+  V(SVEFPComplexMulAddIndex)                                     \
+  V(SVEFPFastReduction)                                          \
+  V(SVEFPMulIndex)                                               \
+  V(SVEFPMulAdd)                                                 \
+  V(SVEFPMulAddIndex)                                            \
+  V(SVEFPUnaryOpUnpredicated)                                    \
+  V(SVEIncDecByPredicateCount)                                   \
+  V(SVEIndexGeneration)                                          \
+  V(SVEIntArithmeticUnpredicated)                                \
+  V(SVEIntCompareSignedImm)                                      \
+  V(SVEIntCompareUnsignedImm)                                    \
+  V(SVEIntCompareVectors)                                        \
+  V(SVEIntMulAddPredicated)                                      \
+  V(SVEIntMulAddUnpredicated)                                    \
+  V(SVEIntReduction)                                             \
+  V(SVEIntUnaryArithmeticPredicated)                             \
+  V(SVEMovprfx)                                                  \
+  V(SVEMulIndex)                                                 \
+  V(SVEPermuteVectorExtract)                                     \
+  V(SVEPermuteVectorInterleaving)                                \
+  V(SVEPredicateCount)                                           \
+  V(SVEPredicateLogical)                                         \
+  V(SVEPropagateBreak)                                           \
+  V(SVEStackFrameAdjustment)                                     \
+  V(SVEStackFrameSize)                                           \
+  V(SVEVectorSelect)                                             \
+  V(SVEBitwiseLogical_Predicated)                                \
+  V(SVEBitwiseLogicalWithImm_Unpredicated)                       \
+  V(SVEBitwiseShiftByImm_Predicated)                             \
+  V(SVEBitwiseShiftByVector_Predicated)                          \
+  V(SVEBitwiseShiftByWideElements_Predicated)                    \
+  V(SVEBroadcastBitmaskImm)                                      \
+  V(SVEBroadcastFPImm_Unpredicated)                              \
+  V(SVEBroadcastGeneralRegister)                                 \
+  V(SVEBroadcastIndexElement)                                    \
+  V(SVEBroadcastIntImm_Unpredicated)                             \
+  V(SVECompressActiveElements)                                   \
+  V(SVEConditionallyBroadcastElementToVector)                    \
+  V(SVEConditionallyExtractElementToSIMDFPScalar)                \
+  V(SVEConditionallyExtractElementToGeneralRegister)             \
+  V(SVEConditionallyTerminateScalars)                            \
+  V(SVEConstructivePrefix_Unpredicated)                          \
+  V(SVEContiguousFirstFaultLoad_ScalarPlusScalar)                \
+  V(SVEContiguousLoad_ScalarPlusImm)                             \
+  V(SVEContiguousLoad_ScalarPlusScalar)                          \
+  V(SVEContiguousNonFaultLoad_ScalarPlusImm)                     \
+  V(SVEContiguousNonTemporalLoad_ScalarPlusImm)                  \
+  V(SVEContiguousNonTemporalLoad_ScalarPlusScalar)               \
+  V(SVEContiguousNonTemporalStore_ScalarPlusImm)                 \
+  V(SVEContiguousNonTemporalStore_ScalarPlusScalar)              \
+  V(SVEContiguousPrefetch_ScalarPlusImm)                         \
+  V(SVEContiguousPrefetch_ScalarPlusScalar)                      \
+  V(SVEContiguousStore_ScalarPlusImm)                            \
+  V(SVEContiguousStore_ScalarPlusScalar)                         \
+  V(SVECopySIMDFPScalarRegisterToVector_Predicated)              \
+  V(SVECopyFPImm_Predicated)                                     \
+  V(SVECopyGeneralRegisterToVector_Predicated)                   \
+  V(SVECopyIntImm_Predicated)                                    \
+  V(SVEElementCount)                                             \
+  V(SVEExtractElementToSIMDFPScalarRegister)                     \
+  V(SVEExtractElementToGeneralRegister)                          \
+  V(SVEFPArithmetic_Predicated)                                  \
+  V(SVEFPArithmeticWithImm_Predicated)                           \
+  V(SVEFPConvertPrecision)                                       \
+  V(SVEFPConvertToInt)                                           \
+  V(SVEFPExponentialAccelerator)                                 \
+  V(SVEFPRoundToIntegralValue)                                   \
+  V(SVEFPTrigMulAddCoefficient)                                  \
+  V(SVEFPTrigSelectCoefficient)                                  \
+  V(SVEFPUnaryOp)                                                \
+  V(SVEIncDecRegisterByElementCount)                             \
+  V(SVEIncDecVectorByElementCount)                               \
+  V(SVEInsertSIMDFPScalarRegister)                               \
+  V(SVEInsertGeneralRegister)                                    \
+  V(SVEIntAddSubtractImm_Unpredicated)                           \
+  V(SVEIntAddSubtractVectors_Predicated)                         \
+  V(SVEIntCompareScalarCountAndLimit)                            \
+  V(SVEIntConvertToFP)                                           \
+  V(SVEIntDivideVectors_Predicated)                              \
+  V(SVEIntMinMaxImm_Unpredicated)                                \
+  V(SVEIntMinMaxDifference_Predicated)                           \
+  V(SVEIntMulImm_Unpredicated)                                   \
+  V(SVEIntMulVectors_Predicated)                                 \
+  V(SVELoadAndBroadcastElement)                                  \
+  V(SVELoadAndBroadcastQuadword_ScalarPlusImm)                   \
+  V(SVELoadAndBroadcastQuadword_ScalarPlusScalar)                \
+  V(SVELoadMultipleStructures_ScalarPlusImm)                     \
+  V(SVELoadMultipleStructures_ScalarPlusScalar)                  \
+  V(SVELoadPredicateRegister)                                    \
+  V(SVELoadVectorRegister)                                       \
+  V(SVEPartitionBreakCondition)                                  \
+  V(SVEPermutePredicateElements)                                 \
+  V(SVEPredicateFirstActive)                                     \
+  V(SVEPredicateInitialize)                                      \
+  V(SVEPredicateNextActive)                                      \
+  V(SVEPredicateReadFromFFR_Predicated)                          \
+  V(SVEPredicateReadFromFFR_Unpredicated)                        \
+  V(SVEPredicateTest)                                            \
+  V(SVEPredicateZero)                                            \
+  V(SVEPropagateBreakToNextPartition)                            \
+  V(SVEReversePredicateElements)                                 \
+  V(SVEReverseVectorElements)                                    \
+  V(SVEReverseWithinElements)                                    \
+  V(SVESaturatingIncDecRegisterByElementCount)                   \
+  V(SVESaturatingIncDecVectorByElementCount)                     \
+  V(SVEStoreMultipleStructures_ScalarPlusImm)                    \
+  V(SVEStoreMultipleStructures_ScalarPlusScalar)                 \
+  V(SVEStorePredicateRegister)                                   \
+  V(SVEStoreVectorRegister)                                      \
+  V(SVETableLookup)                                              \
+  V(SVEUnpackPredicateElements)                                  \
+  V(SVEUnpackVectorElements)                                     \
+  V(SVEVectorSplice_Destructive)
+
+#define VIXL_DEFINE_SIMPLE_SVE_VISITOR(NAME)                       \
+  void CPUFeaturesAuditor::Visit##NAME(const Instruction* instr) { \
+    RecordInstructionFeaturesScope scope(this);                    \
+    scope.Record(CPUFeatures::kSVE);                               \
+    USE(instr);                                                    \
+  }
+VIXL_SIMPLE_SVE_VISITOR_LIST(VIXL_DEFINE_SIMPLE_SVE_VISITOR)
+#undef VIXL_DEFINE_SIMPLE_SVE_VISITOR
+#undef VIXL_SIMPLE_SVE_VISITOR_LIST
+
 void CPUFeaturesAuditor::VisitSystem(const Instruction* instr) {
   RecordInstructionFeaturesScope scope(this);
   if (instr->Mask(SystemHintFMask) == SystemHintFixed) {
diff --git a/src/aarch64/decoder-aarch64.cc b/src/aarch64/decoder-aarch64.cc
index ce1f33f..c6859bb 100644
--- a/src/aarch64/decoder-aarch64.cc
+++ b/src/aarch64/decoder-aarch64.cc
@@ -182,22 +182,45 @@
   case M:                                          \
     bit_extract_fn = &Instruction::ExtractBits<M>; \
     break;
+    INSTANTIATE_TEMPLATE(0x000001e0);
+    INSTANTIATE_TEMPLATE(0x00000400);
     INSTANTIATE_TEMPLATE(0x00000800);
     INSTANTIATE_TEMPLATE(0x00000c00);
+    INSTANTIATE_TEMPLATE(0x00001000);
+    INSTANTIATE_TEMPLATE(0x00001800);
     INSTANTIATE_TEMPLATE(0x00001c00);
     INSTANTIATE_TEMPLATE(0x00004000);
     INSTANTIATE_TEMPLATE(0x00008000);
     INSTANTIATE_TEMPLATE(0x0000f000);
     INSTANTIATE_TEMPLATE(0x0000fc00);
+    INSTANTIATE_TEMPLATE(0x00060010);
+    INSTANTIATE_TEMPLATE(0x00093e00);
+    INSTANTIATE_TEMPLATE(0x000c1000);
+    INSTANTIATE_TEMPLATE(0x00100000);
+    INSTANTIATE_TEMPLATE(0x00101800);
+    INSTANTIATE_TEMPLATE(0x00140000);
+    INSTANTIATE_TEMPLATE(0x00180000);
+    INSTANTIATE_TEMPLATE(0x00181000);
+    INSTANTIATE_TEMPLATE(0x00190000);
+    INSTANTIATE_TEMPLATE(0x00191400);
+    INSTANTIATE_TEMPLATE(0x001c0000);
+    INSTANTIATE_TEMPLATE(0x001c1800);
     INSTANTIATE_TEMPLATE(0x001f0000);
     INSTANTIATE_TEMPLATE(0x0020fc00);
     INSTANTIATE_TEMPLATE(0x0038f000);
     INSTANTIATE_TEMPLATE(0x00400000);
+    INSTANTIATE_TEMPLATE(0x00400010);
     INSTANTIATE_TEMPLATE(0x0040f000);
+    INSTANTIATE_TEMPLATE(0x00500000);
     INSTANTIATE_TEMPLATE(0x00800000);
+    INSTANTIATE_TEMPLATE(0x00800010);
+    INSTANTIATE_TEMPLATE(0x00801800);
+    INSTANTIATE_TEMPLATE(0x009f0000);
     INSTANTIATE_TEMPLATE(0x00c00000);
+    INSTANTIATE_TEMPLATE(0x00c00010);
     INSTANTIATE_TEMPLATE(0x00cf8000);
     INSTANTIATE_TEMPLATE(0x00db0000);
+    INSTANTIATE_TEMPLATE(0x00dc0000);
     INSTANTIATE_TEMPLATE(0x00e00003);
     INSTANTIATE_TEMPLATE(0x00f80400);
     INSTANTIATE_TEMPLATE(0x01e00000);
@@ -233,6 +256,7 @@
     INSTANTIATE_TEMPLATE(0xc4400000);
     INSTANTIATE_TEMPLATE(0xc4c00000);
     INSTANTIATE_TEMPLATE(0xe0400000);
+    INSTANTIATE_TEMPLATE(0xe120e000);
     INSTANTIATE_TEMPLATE(0xe3c00000);
     INSTANTIATE_TEMPLATE(0xf1200000);
 #undef INSTANTIATE_TEMPLATE
@@ -259,20 +283,44 @@
     instantiated = true;                                \
   }
   INSTANTIATE_TEMPLATE(0x0000001c, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00000210, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x000003c0, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00001c00, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00001c0f, 0x00000000);
   INSTANTIATE_TEMPLATE(0x00003000, 0x00000000);
   INSTANTIATE_TEMPLATE(0x00007800, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x0000e000, 0x0000a000);
   INSTANTIATE_TEMPLATE(0x0000f000, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00030400, 0x00000000);
   INSTANTIATE_TEMPLATE(0x0003801f, 0x0000000d);
+  INSTANTIATE_TEMPLATE(0x00060210, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00060810, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00060a10, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00060bf0, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00061e10, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00061e10, 0x00000400);
+  INSTANTIATE_TEMPLATE(0x00070200, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x000b1e10, 0x00000000);
   INSTANTIATE_TEMPLATE(0x000f0000, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00130e1f, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00130fff, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00180000, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00180000, 0x00100000);
+  INSTANTIATE_TEMPLATE(0x001e0000, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x001f0000, 0x00000000);
   INSTANTIATE_TEMPLATE(0x001f0000, 0x001f0000);
   INSTANTIATE_TEMPLATE(0x0038e000, 0x00000000);
   INSTANTIATE_TEMPLATE(0x0039e000, 0x00002000);
   INSTANTIATE_TEMPLATE(0x003ae000, 0x00002000);
   INSTANTIATE_TEMPLATE(0x003ce000, 0x00042000);
+  INSTANTIATE_TEMPLATE(0x005f0000, 0x001f0000);
   INSTANTIATE_TEMPLATE(0x00780000, 0x00000000);
+  INSTANTIATE_TEMPLATE(0x00870210, 0x00000000);
   INSTANTIATE_TEMPLATE(0x00c00000, 0x00000000);
   INSTANTIATE_TEMPLATE(0x00c00000, 0x00800000);
   INSTANTIATE_TEMPLATE(0x00c00000, 0x00c00000);
+  INSTANTIATE_TEMPLATE(0x00c00010, 0x00800000);
+  INSTANTIATE_TEMPLATE(0x00ca1e10, 0x00000000);
   INSTANTIATE_TEMPLATE(0x01000010, 0x00000000);
   INSTANTIATE_TEMPLATE(0x20000800, 0x00000000);
   INSTANTIATE_TEMPLATE(0x20008000, 0x00000000);
@@ -312,14 +360,16 @@
 bool DecodeNode::TryCompileOptimisedDecodeTable(Decoder* decoder) {
   // EitherOr optimisation: if there are only one or two patterns in the table,
   // try to optimise the node to exploit that.
-  if ((pattern_table_.size() == 2) && (GetSampledBitsCount() > 1)) {
+  size_t table_size = pattern_table_.size();
+  if ((table_size <= 2) && (GetSampledBitsCount() > 1)) {
     // TODO: support 'x' in this optimisation by dropping the sampled bit
     // positions before making the mask/value.
     if ((strchr(pattern_table_[0].pattern, 'x') == NULL) &&
-        (strcmp(pattern_table_[1].pattern, "otherwise") == 0)) {
+        ((table_size == 1) ||
+         (strcmp(pattern_table_[1].pattern, "otherwise") == 0))) {
       // A pattern table consisting of a fixed pattern with no x's, and an
-      // "otherwise" case. Optimise this into an instruction mask and value
-      // test.
+      // "otherwise" or absent case. Optimise this into an instruction mask and
+      // value test.
       uint32_t single_decode_mask = 0;
       uint32_t single_decode_value = 0;
       std::vector<uint8_t> bits = GetSampledBits();
@@ -332,7 +382,6 @@
           single_decode_value |= 1U << bits[i];
         }
       }
-
       BitExtractFn bit_extract_fn =
           GetBitExtractFunction(single_decode_mask, single_decode_value);
 
@@ -342,7 +391,9 @@
 
       // Set DecodeNode for when the instruction after masking doesn't match the
       // value.
-      CompileNodeForBits(decoder, pattern_table_[1].handler, 0);
+      const char* doesnt_match_handler =
+          (table_size == 1) ? "VisitUnallocated" : pattern_table_[1].handler;
+      CompileNodeForBits(decoder, doesnt_match_handler, 0);
 
       // Set DecodeNode for when it does match.
       CompileNodeForBits(decoder, pattern_table_[0].handler, 1);
diff --git a/src/aarch64/decoder-aarch64.h b/src/aarch64/decoder-aarch64.h
index c0f47c3..3854019 100644
--- a/src/aarch64/decoder-aarch64.h
+++ b/src/aarch64/decoder-aarch64.h
@@ -38,99 +38,239 @@
 
 // List macro containing all visitors needed by the decoder class.
 
-#define VISITOR_LIST_THAT_RETURN(V)     \
-  V(AddSubExtended)                     \
-  V(AddSubImmediate)                    \
-  V(AddSubShifted)                      \
-  V(AddSubWithCarry)                    \
-  V(AtomicMemory)                       \
-  V(Bitfield)                           \
-  V(CompareBranch)                      \
-  V(ConditionalBranch)                  \
-  V(ConditionalCompareImmediate)        \
-  V(ConditionalCompareRegister)         \
-  V(ConditionalSelect)                  \
-  V(Crypto2RegSHA)                      \
-  V(Crypto3RegSHA)                      \
-  V(CryptoAES)                          \
-  V(DataProcessing1Source)              \
-  V(DataProcessing2Source)              \
-  V(DataProcessing3Source)              \
-  V(Exception)                          \
-  V(Extract)                            \
-  V(EvaluateIntoFlags)                  \
-  V(FPCompare)                          \
-  V(FPConditionalCompare)               \
-  V(FPConditionalSelect)                \
-  V(FPDataProcessing1Source)            \
-  V(FPDataProcessing2Source)            \
-  V(FPDataProcessing3Source)            \
-  V(FPFixedPointConvert)                \
-  V(FPImmediate)                        \
-  V(FPIntegerConvert)                   \
-  V(LoadLiteral)                        \
-  V(LoadStoreExclusive)                 \
-  V(LoadStorePAC)                       \
-  V(LoadStorePairNonTemporal)           \
-  V(LoadStorePairOffset)                \
-  V(LoadStorePairPostIndex)             \
-  V(LoadStorePairPreIndex)              \
-  V(LoadStorePostIndex)                 \
-  V(LoadStorePreIndex)                  \
-  V(LoadStoreRCpcUnscaledOffset)        \
-  V(LoadStoreRegisterOffset)            \
-  V(LoadStoreUnscaledOffset)            \
-  V(LoadStoreUnsignedOffset)            \
-  V(LogicalImmediate)                   \
-  V(LogicalShifted)                     \
-  V(MoveWideImmediate)                  \
-  V(NEON2RegMisc)                       \
-  V(NEON2RegMiscFP16)                   \
-  V(NEON3Different)                     \
-  V(NEON3Same)                          \
-  V(NEON3SameExtra)                     \
-  V(NEON3SameFP16)                      \
-  V(NEONAcrossLanes)                    \
-  V(NEONByIndexedElement)               \
-  V(NEONCopy)                           \
-  V(NEONExtract)                        \
-  V(NEONLoadStoreMultiStruct)           \
-  V(NEONLoadStoreMultiStructPostIndex)  \
-  V(NEONLoadStoreSingleStruct)          \
-  V(NEONLoadStoreSingleStructPostIndex) \
-  V(NEONModifiedImmediate)              \
-  V(NEONPerm)                           \
-  V(NEONScalar2RegMisc)                 \
-  V(NEONScalar2RegMiscFP16)             \
-  V(NEONScalar3Diff)                    \
-  V(NEONScalar3Same)                    \
-  V(NEONScalar3SameExtra)               \
-  V(NEONScalar3SameFP16)                \
-  V(NEONScalarByIndexedElement)         \
-  V(NEONScalarCopy)                     \
-  V(NEONScalarPairwise)                 \
-  V(NEONScalarShiftImmediate)           \
-  V(NEONShiftImmediate)                 \
-  V(NEONTable)                          \
-  V(PCRelAddressing)                    \
-  V(RotateRightIntoFlags)               \
-  V(System)                             \
-  V(TestBranch)                         \
-  V(UnconditionalBranch)                \
-  V(UnconditionalBranchToRegister)
-
-// TODO: We shouldn't expose debug-only behaviour like this. Instead, we should
-// use release-mode aborts where appropriate, and merge thse into a single
-// no-return list.
-#define VISITOR_LIST_THAT_DONT_RETURN_IN_DEBUG_MODE(V) \
-  V(Unallocated)                                       \
+#define VISITOR_LIST_THAT_RETURN(V)                              \
+  V(AddSubExtended)                                              \
+  V(AddSubImmediate)                                             \
+  V(AddSubShifted)                                               \
+  V(AddSubWithCarry)                                             \
+  V(AtomicMemory)                                                \
+  V(Bitfield)                                                    \
+  V(CompareBranch)                                               \
+  V(ConditionalBranch)                                           \
+  V(ConditionalCompareImmediate)                                 \
+  V(ConditionalCompareRegister)                                  \
+  V(ConditionalSelect)                                           \
+  V(Crypto2RegSHA)                                               \
+  V(Crypto3RegSHA)                                               \
+  V(CryptoAES)                                                   \
+  V(DataProcessing1Source)                                       \
+  V(DataProcessing2Source)                                       \
+  V(DataProcessing3Source)                                       \
+  V(EvaluateIntoFlags)                                           \
+  V(Exception)                                                   \
+  V(Extract)                                                     \
+  V(FPCompare)                                                   \
+  V(FPConditionalCompare)                                        \
+  V(FPConditionalSelect)                                         \
+  V(FPDataProcessing1Source)                                     \
+  V(FPDataProcessing2Source)                                     \
+  V(FPDataProcessing3Source)                                     \
+  V(FPFixedPointConvert)                                         \
+  V(FPImmediate)                                                 \
+  V(FPIntegerConvert)                                            \
+  V(LoadLiteral)                                                 \
+  V(LoadStoreExclusive)                                          \
+  V(LoadStorePAC)                                                \
+  V(LoadStorePairNonTemporal)                                    \
+  V(LoadStorePairOffset)                                         \
+  V(LoadStorePairPostIndex)                                      \
+  V(LoadStorePairPreIndex)                                       \
+  V(LoadStorePostIndex)                                          \
+  V(LoadStorePreIndex)                                           \
+  V(LoadStoreRCpcUnscaledOffset)                                 \
+  V(LoadStoreRegisterOffset)                                     \
+  V(LoadStoreUnscaledOffset)                                     \
+  V(LoadStoreUnsignedOffset)                                     \
+  V(LogicalImmediate)                                            \
+  V(LogicalShifted)                                              \
+  V(MoveWideImmediate)                                           \
+  V(NEON2RegMisc)                                                \
+  V(NEON2RegMiscFP16)                                            \
+  V(NEON3Different)                                              \
+  V(NEON3Same)                                                   \
+  V(NEON3SameExtra)                                              \
+  V(NEON3SameFP16)                                               \
+  V(NEONAcrossLanes)                                             \
+  V(NEONByIndexedElement)                                        \
+  V(NEONCopy)                                                    \
+  V(NEONExtract)                                                 \
+  V(NEONLoadStoreMultiStruct)                                    \
+  V(NEONLoadStoreMultiStructPostIndex)                           \
+  V(NEONLoadStoreSingleStruct)                                   \
+  V(NEONLoadStoreSingleStructPostIndex)                          \
+  V(NEONModifiedImmediate)                                       \
+  V(NEONPerm)                                                    \
+  V(NEONScalar2RegMisc)                                          \
+  V(NEONScalar2RegMiscFP16)                                      \
+  V(NEONScalar3Diff)                                             \
+  V(NEONScalar3Same)                                             \
+  V(NEONScalar3SameExtra)                                        \
+  V(NEONScalar3SameFP16)                                         \
+  V(NEONScalarByIndexedElement)                                  \
+  V(NEONScalarCopy)                                              \
+  V(NEONScalarPairwise)                                          \
+  V(NEONScalarShiftImmediate)                                    \
+  V(NEONShiftImmediate)                                          \
+  V(NEONTable)                                                   \
+  V(PCRelAddressing)                                             \
+  V(RotateRightIntoFlags)                                        \
+  V(SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets)           \
+  V(SVE32BitGatherLoad_VectorPlusImm)                            \
+  V(SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsets)    \
+  V(SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsets)        \
+  V(SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsets)         \
+  V(SVE32BitGatherPrefetch_VectorPlusImm)                        \
+  V(SVE32BitScatterStore_ScalarPlus32BitScaledOffsets)           \
+  V(SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsets)         \
+  V(SVE32BitScatterStore_VectorPlusImm)                          \
+  V(SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets)     \
+  V(SVE64BitGatherLoad_ScalarPlus64BitScaledOffsets)             \
+  V(SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets)           \
+  V(SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets)   \
+  V(SVE64BitGatherLoad_VectorPlusImm)                            \
+  V(SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsets)         \
+  V(SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsets) \
+  V(SVE64BitGatherPrefetch_VectorPlusImm)                        \
+  V(SVE64BitScatterStore_ScalarPlus64BitScaledOffsets)           \
+  V(SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsets)         \
+  V(SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsets)   \
+  V(SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsets) \
+  V(SVE64BitScatterStore_VectorPlusImm)                          \
+  V(SVEAddressGeneration)                                        \
+  V(SVEBitwiseLogicalUnpredicated)                               \
+  V(SVEBitwiseShiftUnpredicated)                                 \
+  V(SVEFFRInitialise)                                            \
+  V(SVEFFRWriteFromPredicate)                                    \
+  V(SVEFPAccumulatingReduction)                                  \
+  V(SVEFPArithmeticUnpredicated)                                 \
+  V(SVEFPCompareVectors)                                         \
+  V(SVEFPCompareWithZero)                                        \
+  V(SVEFPComplexAddition)                                        \
+  V(SVEFPComplexMulAdd)                                          \
+  V(SVEFPComplexMulAddIndex)                                     \
+  V(SVEFPFastReduction)                                          \
+  V(SVEFPMulIndex)                                               \
+  V(SVEFPMulAdd)                                                 \
+  V(SVEFPMulAddIndex)                                            \
+  V(SVEFPUnaryOpUnpredicated)                                    \
+  V(SVEIncDecByPredicateCount)                                   \
+  V(SVEIndexGeneration)                                          \
+  V(SVEIntArithmeticUnpredicated)                                \
+  V(SVEIntCompareSignedImm)                                      \
+  V(SVEIntCompareUnsignedImm)                                    \
+  V(SVEIntCompareVectors)                                        \
+  V(SVEIntMulAddPredicated)                                      \
+  V(SVEIntMulAddUnpredicated)                                    \
+  V(SVEIntReduction)                                             \
+  V(SVEIntUnaryArithmeticPredicated)                             \
+  V(SVEMovprfx)                                                  \
+  V(SVEMulIndex)                                                 \
+  V(SVEPermuteVectorExtract)                                     \
+  V(SVEPermuteVectorInterleaving)                                \
+  V(SVEPredicateCount)                                           \
+  V(SVEPredicateLogical)                                         \
+  V(SVEPropagateBreak)                                           \
+  V(SVEStackFrameAdjustment)                                     \
+  V(SVEStackFrameSize)                                           \
+  V(SVEVectorSelect)                                             \
+  V(SVEBitwiseLogical_Predicated)                                \
+  V(SVEBitwiseLogicalWithImm_Unpredicated)                       \
+  V(SVEBitwiseShiftByImm_Predicated)                             \
+  V(SVEBitwiseShiftByVector_Predicated)                          \
+  V(SVEBitwiseShiftByWideElements_Predicated)                    \
+  V(SVEBroadcastBitmaskImm)                                      \
+  V(SVEBroadcastFPImm_Unpredicated)                              \
+  V(SVEBroadcastGeneralRegister)                                 \
+  V(SVEBroadcastIndexElement)                                    \
+  V(SVEBroadcastIntImm_Unpredicated)                             \
+  V(SVECompressActiveElements)                                   \
+  V(SVEConditionallyBroadcastElementToVector)                    \
+  V(SVEConditionallyExtractElementToSIMDFPScalar)                \
+  V(SVEConditionallyExtractElementToGeneralRegister)             \
+  V(SVEConditionallyTerminateScalars)                            \
+  V(SVEConstructivePrefix_Unpredicated)                          \
+  V(SVEContiguousFirstFaultLoad_ScalarPlusScalar)                \
+  V(SVEContiguousLoad_ScalarPlusImm)                             \
+  V(SVEContiguousLoad_ScalarPlusScalar)                          \
+  V(SVEContiguousNonFaultLoad_ScalarPlusImm)                     \
+  V(SVEContiguousNonTemporalLoad_ScalarPlusImm)                  \
+  V(SVEContiguousNonTemporalLoad_ScalarPlusScalar)               \
+  V(SVEContiguousNonTemporalStore_ScalarPlusImm)                 \
+  V(SVEContiguousNonTemporalStore_ScalarPlusScalar)              \
+  V(SVEContiguousPrefetch_ScalarPlusImm)                         \
+  V(SVEContiguousPrefetch_ScalarPlusScalar)                      \
+  V(SVEContiguousStore_ScalarPlusImm)                            \
+  V(SVEContiguousStore_ScalarPlusScalar)                         \
+  V(SVECopySIMDFPScalarRegisterToVector_Predicated)              \
+  V(SVECopyFPImm_Predicated)                                     \
+  V(SVECopyGeneralRegisterToVector_Predicated)                   \
+  V(SVECopyIntImm_Predicated)                                    \
+  V(SVEElementCount)                                             \
+  V(SVEExtractElementToSIMDFPScalarRegister)                     \
+  V(SVEExtractElementToGeneralRegister)                          \
+  V(SVEFPArithmetic_Predicated)                                  \
+  V(SVEFPArithmeticWithImm_Predicated)                           \
+  V(SVEFPConvertPrecision)                                       \
+  V(SVEFPConvertToInt)                                           \
+  V(SVEFPExponentialAccelerator)                                 \
+  V(SVEFPRoundToIntegralValue)                                   \
+  V(SVEFPTrigMulAddCoefficient)                                  \
+  V(SVEFPTrigSelectCoefficient)                                  \
+  V(SVEFPUnaryOp)                                                \
+  V(SVEIncDecRegisterByElementCount)                             \
+  V(SVEIncDecVectorByElementCount)                               \
+  V(SVEInsertSIMDFPScalarRegister)                               \
+  V(SVEInsertGeneralRegister)                                    \
+  V(SVEIntAddSubtractImm_Unpredicated)                           \
+  V(SVEIntAddSubtractVectors_Predicated)                         \
+  V(SVEIntCompareScalarCountAndLimit)                            \
+  V(SVEIntConvertToFP)                                           \
+  V(SVEIntDivideVectors_Predicated)                              \
+  V(SVEIntMinMaxImm_Unpredicated)                                \
+  V(SVEIntMinMaxDifference_Predicated)                           \
+  V(SVEIntMulImm_Unpredicated)                                   \
+  V(SVEIntMulVectors_Predicated)                                 \
+  V(SVELoadAndBroadcastElement)                                  \
+  V(SVELoadAndBroadcastQuadword_ScalarPlusImm)                   \
+  V(SVELoadAndBroadcastQuadword_ScalarPlusScalar)                \
+  V(SVELoadMultipleStructures_ScalarPlusImm)                     \
+  V(SVELoadMultipleStructures_ScalarPlusScalar)                  \
+  V(SVELoadPredicateRegister)                                    \
+  V(SVELoadVectorRegister)                                       \
+  V(SVEPartitionBreakCondition)                                  \
+  V(SVEPermutePredicateElements)                                 \
+  V(SVEPredicateFirstActive)                                     \
+  V(SVEPredicateInitialize)                                      \
+  V(SVEPredicateNextActive)                                      \
+  V(SVEPredicateReadFromFFR_Predicated)                          \
+  V(SVEPredicateReadFromFFR_Unpredicated)                        \
+  V(SVEPredicateTest)                                            \
+  V(SVEPredicateZero)                                            \
+  V(SVEPropagateBreakToNextPartition)                            \
+  V(SVEReversePredicateElements)                                 \
+  V(SVEReverseVectorElements)                                    \
+  V(SVEReverseWithinElements)                                    \
+  V(SVESaturatingIncDecRegisterByElementCount)                   \
+  V(SVESaturatingIncDecVectorByElementCount)                     \
+  V(SVEStoreMultipleStructures_ScalarPlusImm)                    \
+  V(SVEStoreMultipleStructures_ScalarPlusScalar)                 \
+  V(SVEStorePredicateRegister)                                   \
+  V(SVEStoreVectorRegister)                                      \
+  V(SVETableLookup)                                              \
+  V(SVEUnpackPredicateElements)                                  \
+  V(SVEUnpackVectorElements)                                     \
+  V(SVEVectorSplice_Destructive)                                 \
+  V(System)                                                      \
+  V(TestBranch)                                                  \
+  V(Unallocated)                                                 \
+  V(UnconditionalBranch)                                         \
+  V(UnconditionalBranchToRegister)                               \
   V(Unimplemented)
 
 #define VISITOR_LIST_THAT_DONT_RETURN(V) V(Reserved)
 
-#define VISITOR_LIST(V)                          \
-  VISITOR_LIST_THAT_RETURN(V)                    \
-  VISITOR_LIST_THAT_DONT_RETURN_IN_DEBUG_MODE(V) \
+#define VISITOR_LIST(V)       \
+  VISITOR_LIST_THAT_RETURN(V) \
   VISITOR_LIST_THAT_DONT_RETURN(V)
 
 namespace vixl {
@@ -138,6 +278,12 @@
 
 // The Visitor interface. Disassembler and simulator (and other tools)
 // must provide implementations for all of these functions.
+//
+// Note that this class must change in breaking ways with even minor additions
+// to VIXL, and so its API should be considered unstable. User classes that
+// inherit from this one should be expected to break even on minor version
+// updates. If this is a problem, consider using DecoderVisitorWithDefaults
+// instead.
 class DecoderVisitor {
  public:
   enum VisitorConstness { kConstVisitor, kNonConstVisitor };
@@ -160,6 +306,25 @@
   const VisitorConstness constness_;
 };
 
+// As above, but a default (no-op) implementation for each visitor is provided.
+// This is useful for derived class that only care about specific visitors.
+//
+// A minor version update may add a visitor, but will never remove one, so it is
+// safe (and recommended) to use `override` in derived classes.
+class DecoderVisitorWithDefaults : public DecoderVisitor {
+ public:
+  explicit DecoderVisitorWithDefaults(
+      VisitorConstness constness = kConstVisitor)
+      : DecoderVisitor(constness) {}
+
+  virtual ~DecoderVisitorWithDefaults() {}
+
+#define DECLARE(A) \
+  virtual void Visit##A(const Instruction* instr) VIXL_OVERRIDE { USE(instr); }
+  VISITOR_LIST(DECLARE)
+#undef DECLARE
+};
+
 class DecodeNode;
 class CompiledDecodeNode;
 
@@ -257,7 +422,7 @@
 };
 
 const int kMaxDecodeSampledBits = 16;
-const int kMaxDecodeMappings = 22;
+const int kMaxDecodeMappings = 100;
 typedef void (Decoder::*DecodeFnPtr)(const Instruction*);
 typedef uint32_t (Instruction::*BitExtractFn)(void) const;
 
diff --git a/src/aarch64/decoder-constants-aarch64.h b/src/aarch64/decoder-constants-aarch64.h
index def27fa..53f283b 100644
--- a/src/aarch64/decoder-constants-aarch64.h
+++ b/src/aarch64/decoder-constants-aarch64.h
@@ -39,6 +39,7 @@
   { "Root",
     {28, 27, 26, 25},
     { {"0000", "DecodeReserved"},
+      {"0010", "DecodeSVE"},
       {"100x", "DecodeDataProcessingImmediate"},
       {"101x", "DecodeBranchesExceptionAndSystem"},
       {"x1x0", "DecodeLoadsAndStores"},
@@ -124,6 +125,720 @@
     },
   },
 
+  { "DecodeSVE",
+    {31, 30, 29, 24, 21, 15, 14, 13},
+    { {"00000x1x", "VisitSVEIntMulAddPredicated"},
+      {"00000000", "DecodeSVE00000000"},
+      {"00000001", "DecodeSVE00000001"},
+      {"00000100", "DecodeSVE00000100"},
+      {"00000101", "VisitSVEIntUnaryArithmeticPredicated"},
+      {"00001000", "VisitSVEIntArithmeticUnpredicated"},
+      {"00001001", "VisitSVEBitwiseLogicalUnpredicated"},
+      {"00001010", "DecodeSVE00001010"},
+      {"00001100", "VisitSVEBitwiseShiftUnpredicated"},
+      {"00001101", "DecodeSVE00001101"},
+      {"00001110", "DecodeSVE00001110"},
+      {"00001111", "DecodeSVE00001111"},
+      {"000100xx", "DecodeSVE000100xx"},
+      {"0001010x", "DecodeSVE0001010x"},
+      {"00010110", "DecodeSVE00010110"},
+      {"00010111", "DecodeSVE00010111"},
+      {"00011000", "VisitSVEPermuteVectorExtract"},
+      {"00011001", "DecodeSVE00011001"},
+      {"00011010", "DecodeSVE00011010"},
+      {"00011011", "VisitSVEPermuteVectorInterleaving"},
+      {"00011100", "DecodeSVE00011100"},
+      {"00011101", "DecodeSVE00011101"},
+      {"0001111x", "VisitSVEVectorSelect"},
+      {"00100xxx", "VisitSVEIntCompareVectors"},
+      {"00101xxx", "VisitSVEIntCompareUnsignedImm"},
+      {"00110x0x", "VisitSVEIntCompareSignedImm"},
+      {"0011001x", "DecodeSVE0011001x"},
+      {"00110110", "DecodeSVE00110110"},
+      {"00110111", "DecodeSVE00110111"},
+      {"00111000", "VisitSVEIntCompareScalarCountAndLimit"},
+      {"00111001", "UnallocSVEConditionallyTerminateScalars"},
+      {"00111100", "DecodeSVE00111100"},
+      {"00111101", "UnallocSVEPredicateCount"},
+      {"0011111x", "DecodeSVE0011111x"},
+      {"010000xx", "VisitSVEIntMulAddUnpredicated"},
+      {"01001xxx", "VisitSVEMulIndex"},
+      {"011000xx", "VisitSVEFPComplexMulAdd"},
+      {"01100100", "UnallocSVEFPComplexAddition"},
+      {"01101000", "DecodeSVE01101000"},
+      {"01101001", "UnallocSVEFPMulIndex"},
+      {"01110x1x", "VisitSVEFPCompareVectors"},
+      {"01110000", "VisitSVEFPArithmeticUnpredicated"},
+      {"01110001", "DecodeSVE01110001"},
+      {"01110100", "DecodeSVE01110100"},
+      {"01110101", "DecodeSVE01110101"},
+      {"01111xxx", "VisitSVEFPMulAdd"},
+      {"100x010x", "UnallocSVELoadAndBroadcastElement"},
+      {"100x0110", "DecodeSVE100x0110"},
+      {"100x0111", "DecodeSVE100x0111"},
+      {"100x11xx", "DecodeSVE100x11xx"},
+      {"100000xx", "VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets"},
+      {"100010xx", "DecodeSVE100010xx"},
+      {"100100x1", "DecodeSVE100100x1"},
+      {"10010000", "DecodeSVE10010000"},
+      {"10010010", "DecodeSVE10010010"},
+      {"100110x1", "DecodeSVE100110x1"},
+      {"10011000", "DecodeSVE10011000"},
+      {"10011010", "DecodeSVE10011010"},
+      {"101xx000", "VisitSVELoadAndBroadcastQuadword_ScalarPlusScalar"},
+      {"101xx001", "UnallocSVELoadAndBroadcastQuadword_ScalarPlusImm"},
+      {"101xx010", "VisitSVEContiguousLoad_ScalarPlusScalar"},
+      {"101xx011", "VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar"},
+      {"101xx101", "DecodeSVE101xx101"},
+      {"101x0110", "DecodeSVE101x0110"},
+      {"101x0111", "DecodeSVE101x0111"},
+      {"101x1110", "VisitSVELoadMultipleStructures_ScalarPlusScalar"},
+      {"101x1111", "DecodeSVE101x1111"},
+      {"110x00xx", "VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets"},
+      {"110x0111", "DecodeSVE110x0111"},
+      {"1100010x", "UnallocSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets"},
+      {"11000110", "UnallocSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets"},
+      {"110010xx", "DecodeSVE110010xx"},
+      {"110011xx", "DecodeSVE110011xx"},
+      {"1101010x", "UnallocSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets"},
+      {"11010110", "UnallocSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets"},
+      {"110110xx", "VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets"},
+      {"110111xx", "DecodeSVE110111xx"},
+      {"111x0011", "DecodeSVE111x0011"},
+      {"111x01x0", "DecodeSVE111x01x0"},
+      {"111x0101", "DecodeSVE111x0101"},
+      {"111x0111", "DecodeSVE111x0111"},
+      {"111x1011", "VisitSVEStoreMultipleStructures_ScalarPlusScalar"},
+      {"111x11x0", "DecodeSVE111x11x0"},
+      {"111x1101", "DecodeSVE111x1101"},
+      {"111x1111", "DecodeSVE111x1111"},
+      {"1110x010", "VisitSVEContiguousStore_ScalarPlusScalar"},
+      {"1111x000", "UnallocSVEStorePredicateRegister"},
+      {"1111x010", "DecodeSVE1111x010"},
+    },
+  },
+
+  { "DecodeSVE00000000",
+    {20, 19, 18},
+    { {"00x", "VisitSVEIntAddSubtractVectors_Predicated"},
+      {"01x", "VisitSVEIntMinMaxDifference_Predicated"},
+      {"100", "VisitSVEIntMulVectors_Predicated"},
+      {"101", "VisitSVEIntDivideVectors_Predicated"},
+      {"11x", "VisitSVEBitwiseLogical_Predicated"},
+    },
+  },
+
+  { "DecodeSVE00000100",
+    {20, 19},
+    { {"0x", "VisitSVEBitwiseShiftByImm_Predicated"},
+      {"10", "VisitSVEBitwiseShiftByVector_Predicated"},
+      {"11", "VisitSVEBitwiseShiftByWideElements_Predicated"},
+    },
+  },
+
+  { "DecodeSVE00001010",
+    {23, 12, 11},
+    { {"x0x", "VisitSVEIndexGeneration"},
+      {"010", "VisitSVEStackFrameAdjustment"},
+      {"110", "UnallocSVEStackFrameSize"},
+    },
+  },
+
+  { "UnallocSVEStackFrameSize",
+    {22, 20, 19, 18, 17, 16},
+    { {"011111", "VisitSVEStackFrameSize"},
+    },
+  },
+
+  { "DecodeSVE00001101",
+    {12, 11, 10},
+    { {"0xx", "VisitSVEAddressGeneration"},
+      {"10x", "VisitSVEFPTrigSelectCoefficient"},
+      {"110", "VisitSVEFPExponentialAccelerator"},
+      {"111", "VisitSVEConstructivePrefix_Unpredicated"},
+    },
+  },
+
+  { "DecodeSVE00001110",
+    {20, 12, 11},
+    { {"00x", "VisitSVESaturatingIncDecVectorByElementCount"},
+      {"100", "VisitSVEIncDecVectorByElementCount"},
+    },
+  },
+
+  { "DecodeSVE00001111",
+    {20, 12, 11},
+    { {"x1x", "VisitSVESaturatingIncDecRegisterByElementCount"},
+      {"000", "VisitSVEElementCount"},
+      {"100", "VisitSVEIncDecRegisterByElementCount"},
+    },
+  },
+
+  { "DecodeSVE000100xx",
+    {23, 22, 20, 19, 18},
+    { {"xx1xx", "VisitSVECopyIntImm_Predicated"},
+      {"0x000", "VisitSVEBitwiseLogicalWithImm_Unpredicated"},
+      {"10000", "VisitSVEBitwiseLogicalWithImm_Unpredicated"},
+      {"11000", "VisitSVEBroadcastBitmaskImm"},
+    },
+  },
+
+  { "DecodeSVE0001010x",
+    {23, 22, 20, 19, 18},
+    { {"0x000", "VisitSVEBitwiseLogicalWithImm_Unpredicated"},
+      {"10000", "VisitSVEBitwiseLogicalWithImm_Unpredicated"},
+      {"11000", "VisitSVEBroadcastBitmaskImm"},
+    },
+  },
+
+  { "DecodeSVE00010110",
+    {23, 22, 20, 19, 18},
+    { {"xx1xx", "VisitSVECopyFPImm_Predicated"},
+      {"0x000", "VisitSVEBitwiseLogicalWithImm_Unpredicated"},
+      {"10000", "VisitSVEBitwiseLogicalWithImm_Unpredicated"},
+      {"11000", "VisitSVEBroadcastBitmaskImm"},
+    },
+  },
+
+  { "DecodeSVE00010111",
+    {23, 22, 20, 19, 18},
+    { {"0x000", "VisitSVEBitwiseLogicalWithImm_Unpredicated"},
+      {"10000", "VisitSVEBitwiseLogicalWithImm_Unpredicated"},
+      {"11000", "VisitSVEBroadcastBitmaskImm"},
+    },
+  },
+
+  { "UnallocSVEBroadcastIndexElement",
+    {10},
+    { {"0", "VisitSVEBroadcastIndexElement"},
+    },
+  },
+
+  { "UnallocSVETableLookup",
+    {10},
+    { {"0", "VisitSVETableLookup"},
+    },
+  },
+
+  { "UnallocSVEBroadcastGeneralRegister",
+    {17, 16, 10},
+    { {"000", "VisitSVEBroadcastGeneralRegister"},
+    },
+  },
+
+  { "UnallocSVEInsertGeneralRegister",
+    {17, 16, 10},
+    { {"000", "VisitSVEInsertGeneralRegister"},
+    },
+  },
+
+  { "UnallocSVEUnpackVectorElements",
+    {10},
+    { {"0", "VisitSVEUnpackVectorElements"},
+    },
+  },
+
+  { "UnallocSVEInsertSIMDFPScalarRegister",
+    {17, 16, 10},
+    { {"000", "VisitSVEInsertSIMDFPScalarRegister"},
+    },
+  },
+
+  { "UnallocSVEReverseVectorElements",
+    {17, 16, 10},
+    { {"000", "VisitSVEReverseVectorElements"},
+    },
+  },
+
+  { "DecodeSVE00011001",
+    {20, 19, 18, 12, 11},
+    { {"xxx00", "UnallocSVEBroadcastIndexElement"},
+      {"xxx10", "UnallocSVETableLookup"},
+      {"00011", "UnallocSVEBroadcastGeneralRegister"},
+      {"00111", "UnallocSVEInsertGeneralRegister"},
+      {"10011", "UnallocSVEUnpackVectorElements"},
+      {"10111", "UnallocSVEInsertSIMDFPScalarRegister"},
+      {"11011", "UnallocSVEReverseVectorElements"},
+    },
+  },
+
+  { "UnallocSVEPermutePredicateElements",
+    {9, 4},
+    { {"00", "VisitSVEPermutePredicateElements"},
+    },
+  },
+
+  { "UnallocSVEUnpackPredicateElements",
+    {23, 22, 19, 17, 12, 11, 10, 9, 4},
+    { {"000000000", "VisitSVEUnpackPredicateElements"},
+    },
+  },
+
+  { "UnallocSVEReversePredicateElements",
+    {19, 17, 16, 12, 11, 10, 9, 4},
+    { {"00000000", "VisitSVEReversePredicateElements"},
+    },
+  },
+
+  { "DecodeSVE00011010",
+    {20, 18},
+    { {"0x", "UnallocSVEPermutePredicateElements"},
+      {"10", "UnallocSVEUnpackPredicateElements"},
+      {"11", "UnallocSVEReversePredicateElements"},
+    },
+  },
+
+  { "DecodeSVE00011100",
+    {23, 20, 19, 18, 17, 16},
+    { {"x00000", "VisitSVECopySIMDFPScalarRegisterToVector_Predicated"},
+      {"x0001x", "VisitSVEExtractElementToSIMDFPScalarRegister"},
+      {"x001xx", "VisitSVEReverseWithinElements"},
+      {"x0100x", "VisitSVEConditionallyBroadcastElementToVector"},
+      {"x0101x", "VisitSVEConditionallyExtractElementToSIMDFPScalar"},
+      {"x01100", "VisitSVEVectorSplice_Destructive"},
+      {"100001", "VisitSVECompressActiveElements"},
+    },
+  },
+
+  { "DecodeSVE00011101",
+    {20, 19, 18, 17, 16},
+    { {"0000x", "VisitSVEExtractElementToGeneralRegister"},
+      {"01000", "VisitSVECopyGeneralRegisterToVector_Predicated"},
+      {"1000x", "VisitSVEConditionallyExtractElementToGeneralRegister"},
+    },
+  },
+
+  { "UnallocSVEPartitionBreakCondition",
+    {18, 17, 16, 9},
+    { {"0000", "VisitSVEPartitionBreakCondition"},
+    },
+  },
+
+  { "UnallocSVEPropagateBreakToNextPartition",
+    {23, 18, 17, 16, 9, 4},
+    { {"000000", "VisitSVEPropagateBreakToNextPartition"},
+    },
+  },
+
+  { "DecodeSVE0011001x",
+    {20, 19},
+    { {"0x", "VisitSVEPredicateLogical"},
+      {"10", "UnallocSVEPartitionBreakCondition"},
+      {"11", "UnallocSVEPropagateBreakToNextPartition"},
+    },
+  },
+
+  { "UnallocSVEPredicateTest",
+    {18, 17, 9, 4},
+    { {"0000", "VisitSVEPredicateTest"},
+    },
+  },
+
+  { "UnallocSVEPredicateFirstActive",
+    {18, 17, 12, 11, 10, 9, 4},
+    { {"0000000", "VisitSVEPredicateFirstActive"},
+    },
+  },
+
+  { "UnallocSVEPredicateNextActive",
+    {18, 17, 12, 11, 10, 9, 4},
+    { {"0000100", "VisitSVEPredicateNextActive"},
+    },
+  },
+
+  { "DecodeSVE00110110",
+    {20, 19, 16},
+    { {"0xx", "VisitSVEPropagateBreak"},
+      {"100", "UnallocSVEPredicateTest"},
+      {"110", "UnallocSVEPredicateFirstActive"},
+      {"111", "UnallocSVEPredicateNextActive"},
+    },
+  },
+
+  { "UnallocSVEPredicateTest",
+    {18, 17, 9, 4},
+    { {"0000", "VisitSVEPredicateTest"},
+    },
+  },
+
+  { "UnallocSVEPredicateInitialize",
+    {18, 17, 11, 4},
+    { {"0000", "VisitSVEPredicateInitialize"},
+    },
+  },
+
+  { "UnallocSVEPredicateZero",
+    {18, 17, 11, 9, 8, 7, 6, 5, 4},
+    { {"000000000", "VisitSVEPredicateZero"},
+    },
+  },
+
+  { "UnallocSVEPredicateReadFromFFR_Predicated",
+    {18, 17, 11, 9, 4},
+    { {"00000", "VisitSVEPredicateReadFromFFR_Predicated"},
+    },
+  },
+
+  { "UnallocSVEPredicateReadFromFFR_Unpredicated",
+    {18, 17, 11, 9, 8, 7, 6, 5, 4},
+    { {"000000000", "VisitSVEPredicateReadFromFFR_Unpredicated"},
+    },
+  },
+
+  { "DecodeSVE00110111",
+    {20, 19, 16, 12, 10},
+    { {"0xxxx", "VisitSVEPropagateBreak"},
+      {"100xx", "UnallocSVEPredicateTest"},
+      {"11x00", "UnallocSVEPredicateInitialize"},
+      {"11001", "UnallocSVEPredicateZero"},
+      {"11010", "UnallocSVEPredicateReadFromFFR_Predicated"},
+      {"11110", "UnallocSVEPredicateReadFromFFR_Unpredicated"},
+    },
+  },
+
+  { "UnallocSVEConditionallyTerminateScalars",
+    {12, 11, 10, 3, 2, 1, 0},
+    { {"0000000", "VisitSVEConditionallyTerminateScalars"},
+    },
+  },
+
+  { "UnallocSVEPredicateCount_2",
+    {20},
+    { {"0", "VisitSVEPredicateCount"},
+    },
+  },
+
+  { "UnallocSVEIncDecByPredicateCount",
+    {20},
+    { {"0", "VisitSVEIncDecByPredicateCount"},
+    },
+  },
+
+  { "UnallocSVEFFRWriteFromPredicate",
+    {20, 17, 16, 11, 10, 9, 4, 3, 2, 1, 0},
+    { {"00000000000", "VisitSVEFFRWriteFromPredicate"},
+    },
+  },
+
+  { "UnallocSVEFFRInitialise",
+    {20, 17, 16, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0},
+    { {"000000000000000", "VisitSVEFFRInitialise"},
+    },
+  },
+
+  { "DecodeSVE00111100",
+    {19, 18, 12},
+    { {"0xx", "UnallocSVEPredicateCount_2"},
+      {"1x0", "UnallocSVEIncDecByPredicateCount"},
+      {"101", "UnallocSVEFFRWriteFromPredicate"},
+      {"111", "UnallocSVEFFRInitialise"},
+    },
+  },
+
+  { "UnallocSVEPredicateCount",
+    {20, 19},
+    { {"00", "VisitSVEPredicateCount"},
+    },
+  },
+
+  { "DecodeSVE0011111x",
+    {20, 19, 16},
+    { {"00x", "VisitSVEIntAddSubtractImm_Unpredicated"},
+      {"01x", "VisitSVEIntMinMaxImm_Unpredicated"},
+      {"10x", "VisitSVEIntMulImm_Unpredicated"},
+      {"110", "VisitSVEBroadcastIntImm_Unpredicated"},
+      {"111", "VisitSVEBroadcastFPImm_Unpredicated"},
+    },
+  },
+
+  { "UnallocSVEFPComplexAddition",
+    {20, 19, 18, 17},
+    { {"0000", "VisitSVEFPComplexAddition"},
+    },
+  },
+
+  { "DecodeSVE01101000",
+    {12, 11},
+    { {"00", "VisitSVEFPMulAddIndex"},
+      {"1x", "VisitSVEFPComplexMulAddIndex"},
+    },
+  },
+
+  { "UnallocSVEFPMulIndex",
+    {12, 11, 10},
+    { {"000", "VisitSVEFPMulIndex"},
+    },
+  },
+
+  { "DecodeSVE01110001",
+    {20, 19, 12},
+    { {"00x", "VisitSVEFPFastReduction"},
+      {"011", "VisitSVEFPUnaryOpUnpredicated"},
+      {"10x", "VisitSVEFPCompareWithZero"},
+      {"11x", "VisitSVEFPAccumulatingReduction"},
+    },
+  },
+
+  { "UnallocSVEFPTrigMulAddCoefficient",
+    {12, 11, 10},
+    { {"000", "VisitSVEFPTrigMulAddCoefficient"},
+    },
+  },
+
+  { "UnallocSVEFPArithmeticWithImm_Predicated",
+    {9, 8, 7, 6},
+    { {"0000", "VisitSVEFPArithmeticWithImm_Predicated"},
+    },
+  },
+
+  { "DecodeSVE01110100",
+    {20, 19},
+    { {"0x", "VisitSVEFPArithmetic_Predicated"},
+      {"10", "UnallocSVEFPTrigMulAddCoefficient"},
+      {"11", "UnallocSVEFPArithmeticWithImm_Predicated"},
+    },
+  },
+
+  { "DecodeSVE01110101",
+    {20, 19, 18},
+    { {"00x", "VisitSVEFPRoundToIntegralValue"},
+      {"010", "VisitSVEFPConvertPrecision"},
+      {"011", "VisitSVEFPUnaryOp"},
+      {"10x", "VisitSVEIntConvertToFP"},
+      {"11x", "VisitSVEFPConvertToInt"},
+    },
+  },
+
+  { "UnallocSVELoadAndBroadcastElement",
+    {22},
+    { {"1", "VisitSVELoadAndBroadcastElement"},
+    },
+  },
+
+  { "DecodeSVE100x0110",
+    {22, 4},
+    { {"00", "VisitSVEContiguousPrefetch_ScalarPlusScalar"},
+      {"1x", "VisitSVELoadAndBroadcastElement"},
+    },
+  },
+
+  { "DecodeSVE100x0111",
+    {22, 4},
+    { {"00", "VisitSVE32BitGatherPrefetch_VectorPlusImm"},
+      {"1x", "VisitSVELoadAndBroadcastElement"},
+    },
+  },
+
+  { "DecodeSVE100x11xx",
+    {22},
+    { {"0", "VisitSVE32BitGatherLoad_VectorPlusImm"},
+      {"1", "VisitSVELoadAndBroadcastElement"},
+    },
+  },
+
+  { "DecodeSVE100010xx",
+    {23, 4},
+    { {"00", "VisitSVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsets"},
+      {"1x", "VisitSVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsets"},
+    },
+  },
+
+  { "DecodeSVE100100x1",
+    {23, 22, 4},
+    { {"0xx", "VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets"},
+      {"110", "VisitSVEContiguousPrefetch_ScalarPlusImm"},
+    },
+  },
+
+  { "DecodeSVE10010000",
+    {23, 22, 4},
+    { {"0xx", "VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets"},
+      {"100", "VisitSVELoadPredicateRegister"},
+      {"110", "VisitSVEContiguousPrefetch_ScalarPlusImm"},
+    },
+  },
+
+  { "DecodeSVE10010010",
+    {23, 22, 4},
+    { {"0xx", "VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets"},
+      {"10x", "VisitSVELoadVectorRegister"},
+      {"110", "VisitSVEContiguousPrefetch_ScalarPlusImm"},
+    },
+  },
+
+  { "DecodeSVE100110x1",
+    {23, 22, 4},
+    { {"0xx", "VisitSVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsets"},
+      {"110", "VisitSVEContiguousPrefetch_ScalarPlusImm"},
+    },
+  },
+
+  { "DecodeSVE10011000",
+    {23, 22, 4},
+    { {"0xx", "VisitSVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsets"},
+      {"100", "VisitSVELoadPredicateRegister"},
+      {"110", "VisitSVEContiguousPrefetch_ScalarPlusImm"},
+    },
+  },
+
+  { "DecodeSVE10011010",
+    {23, 22, 4},
+    { {"0xx", "VisitSVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsets"},
+      {"10x", "VisitSVELoadVectorRegister"},
+      {"110", "VisitSVEContiguousPrefetch_ScalarPlusImm"},
+    },
+  },
+
+  { "UnallocSVELoadAndBroadcastQuadword_ScalarPlusImm",
+    {20},
+    { {"0", "VisitSVELoadAndBroadcastQuadword_ScalarPlusImm"},
+    },
+  },
+
+  { "DecodeSVE101xx101",
+    {20},
+    { {"0", "VisitSVEContiguousLoad_ScalarPlusImm"},
+      {"1", "VisitSVEContiguousNonFaultLoad_ScalarPlusImm"},
+    },
+  },
+
+  { "DecodeSVE101x0110",
+    {22},
+    { {"0", "VisitSVEContiguousNonTemporalLoad_ScalarPlusScalar"},
+      {"1", "VisitSVELoadMultipleStructures_ScalarPlusScalar"},
+    },
+  },
+
+  { "DecodeSVE101x0111",
+    {22, 20},
+    { {"00", "VisitSVEContiguousNonTemporalLoad_ScalarPlusImm"},
+      {"10", "VisitSVELoadMultipleStructures_ScalarPlusImm"},
+    },
+  },
+
+  { "DecodeSVE101x1111",
+    {22, 20},
+    { {"x0", "VisitSVELoadMultipleStructures_ScalarPlusImm"},
+    },
+  },
+
+  { "DecodeSVE110x0111",
+    {22, 4},
+    { {"00", "VisitSVE64BitGatherPrefetch_VectorPlusImm"},
+      {"1x", "VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets"},
+    },
+  },
+
+  { "UnallocSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets",
+    {22},
+    { {"1", "VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets"},
+    },
+  },
+
+  { "UnallocSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets",
+    {22},
+    { {"1", "VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets"},
+    },
+  },
+
+  { "DecodeSVE110010xx",
+    {23, 4},
+    { {"00", "VisitSVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsets"},
+      {"1x", "VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets"},
+    },
+  },
+
+  { "DecodeSVE110011xx",
+    {23, 22, 4},
+    { {"x0x", "VisitSVE64BitGatherLoad_VectorPlusImm"},
+      {"010", "VisitSVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsets"},
+      {"11x", "VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets"},
+    },
+  },
+
+  { "UnallocSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets",
+    {22},
+    { {"1", "VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets"},
+    },
+  },
+
+  { "UnallocSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets",
+    {22},
+    { {"1", "VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets"},
+    },
+  },
+
+  { "DecodeSVE110111xx",
+    {22},
+    { {"0", "VisitSVE64BitGatherLoad_VectorPlusImm"},
+      {"1", "VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets"},
+    },
+  },
+
+  { "DecodeSVE111x0011",
+    {22},
+    { {"0", "VisitSVEContiguousNonTemporalStore_ScalarPlusScalar"},
+      {"1", "VisitSVEStoreMultipleStructures_ScalarPlusScalar"},
+    },
+  },
+
+  { "DecodeSVE111x01x0",
+    {22},
+    { {"0", "VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsets"},
+      {"1", "VisitSVE32BitScatterStore_ScalarPlus32BitUnscaledOffsets"},
+    },
+  },
+
+  { "DecodeSVE111x0101",
+    {22},
+    { {"0", "VisitSVE64BitScatterStore_ScalarPlus64BitUnscaledOffsets"},
+      {"1", "VisitSVE64BitScatterStore_VectorPlusImm"},
+    },
+  },
+
+  { "DecodeSVE111x0111",
+    {22, 20},
+    { {"x0", "VisitSVEContiguousStore_ScalarPlusImm"},
+      {"01", "VisitSVEContiguousNonTemporalStore_ScalarPlusImm"},
+      {"11", "VisitSVEStoreMultipleStructures_ScalarPlusImm"},
+    },
+  },
+
+  { "DecodeSVE111x11x0",
+    {22},
+    { {"0", "VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsets"},
+      {"1", "VisitSVE32BitScatterStore_ScalarPlus32BitScaledOffsets"},
+    },
+  },
+
+  { "DecodeSVE111x1101",
+    {22},
+    { {"0", "VisitSVE64BitScatterStore_ScalarPlus64BitScaledOffsets"},
+      {"1", "VisitSVE32BitScatterStore_VectorPlusImm"},
+    },
+  },
+
+  { "DecodeSVE111x1111",
+    {22, 20},
+    { {"x0", "VisitSVEContiguousStore_ScalarPlusImm"},
+      {"x1", "VisitSVEStoreMultipleStructures_ScalarPlusImm"},
+    },
+  },
+
+  { "UnallocSVEStorePredicateRegister",
+    {23, 22, 4},
+    { {"100", "VisitSVEStorePredicateRegister"},
+    },
+  },
+
+  { "DecodeSVE1111x010",
+    {23, 22},
+    { {"0x", "VisitSVEContiguousStore_ScalarPlusScalar"},
+      {"10", "VisitSVEStoreVectorRegister"},
+      {"11", "VisitSVEContiguousStore_ScalarPlusScalar"},
+    },
+  },
+
   { "DecodeNEONScalarAnd3SHA",
     {29, 23, 22, 15, 14, 11, 10},
     { {"0xx0x00", "VisitCrypto3RegSHA"},
@@ -1388,6 +2103,28 @@
       {"otherwise", "VisitUnconditionalBranchToRegister"},
     },
   },
+
+  { "DecodeSVE101xxxxx",
+    {15, 14, 13},
+    { {"101", "DecodeSVE101xx101"},
+      {"010", "VisitSVEContiguousLoad_ScalarPlusScalar"},
+      {"otherwise", "VisitSVEMemContiguousLoad"},
+    },
+  },
+
+  { "DecodeSVE101xx101",
+    {20},
+    { {"0", "VisitSVEContiguousLoad_ScalarPlusImm"},
+      {"1", "VisitSVEMemContiguousLoad"},
+    },
+  },
+
+  { "DecodeSVE00000001",
+    {20, 19},
+    { {"10", "VisitSVEMovprfx"},
+      {"otherwise", "VisitSVEIntReduction"},
+    },
+  },
 };
 // clang-format on
 
diff --git a/src/aarch64/disasm-aarch64.cc b/src/aarch64/disasm-aarch64.cc
index 7d6fa14..83ce317 100644
--- a/src/aarch64/disasm-aarch64.cc
+++ b/src/aarch64/disasm-aarch64.cc
@@ -24,6 +24,7 @@
 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+#include <bitset>
 #include <cstdlib>
 #include <sstream>
 
@@ -956,7 +957,7 @@
   // disassembled as Wt, otherwise Xt. As the top bit of the immediate is
   // encoded in bit 31 of the instruction, we can reuse the Rt form, which
   // uses bit 31 (normally "sf") to choose the register size.
-  const char *form = "'Rt, 'IS, 'TImmTest";
+  const char *form = "'Rt, 'It, 'TImmTest";
 
   switch (instr->Mask(TestBranchMask)) {
     case TBZ:
@@ -1086,7 +1087,7 @@
 #undef LS_UNSIGNEDOFFSET
     case PRFM_unsigned:
       mnemonic = "prfm";
-      form = "'PrefOp, ['Xns'ILU]";
+      form = "'prefOp, ['Xns'ILU]";
   }
   Format(instr, mnemonic, form);
 }
@@ -1165,7 +1166,7 @@
 #undef LS_REGISTEROFFSET
     case PRFM_reg:
       mnemonic = "prfm";
-      form = "'PrefOp, ['Xns, 'Offsetreg]";
+      form = "'prefOp, ['Xns, 'Offsetreg]";
   }
   Format(instr, mnemonic, form);
 }
@@ -1180,7 +1181,7 @@
   const char *form_s = "'St, ['Xns'ILS]";
   const char *form_d = "'Dt, ['Xns'ILS]";
   const char *form_q = "'Qt, ['Xns'ILS]";
-  const char *form_prefetch = "'PrefOp, ['Xns'ILS]";
+  const char *form_prefetch = "'prefOp, ['Xns'ILS]";
 
   switch (instr->Mask(LoadStoreUnscaledOffsetMask)) {
     case STURB_w:
@@ -1303,7 +1304,7 @@
     }
     case PRFM_lit: {
       mnemonic = "prfm";
-      form = "'PrefOp, 'ILLiteral 'LValue";
+      form = "'prefOp, 'ILLiteral 'LValue";
       break;
     }
     default:
@@ -1486,14 +1487,14 @@
   V(CASAH,    "casah",  "'Ws, 'Wt")                   \
   V(CASLH,    "caslh",  "'Ws, 'Wt")                   \
   V(CASALH,   "casalh", "'Ws, 'Wt")                   \
-  V(CASP_w,   "casp",   "'Ws, 'W(s+1), 'Wt, 'W(t+1)") \
-  V(CASP_x,   "casp",   "'Xs, 'X(s+1), 'Xt, 'X(t+1)") \
-  V(CASPA_w,  "caspa",  "'Ws, 'W(s+1), 'Wt, 'W(t+1)") \
-  V(CASPA_x,  "caspa",  "'Xs, 'X(s+1), 'Xt, 'X(t+1)") \
-  V(CASPL_w,  "caspl",  "'Ws, 'W(s+1), 'Wt, 'W(t+1)") \
-  V(CASPL_x,  "caspl",  "'Xs, 'X(s+1), 'Xt, 'X(t+1)") \
-  V(CASPAL_w, "caspal", "'Ws, 'W(s+1), 'Wt, 'W(t+1)") \
-  V(CASPAL_x, "caspal", "'Xs, 'X(s+1), 'Xt, 'X(t+1)")
+  V(CASP_w,   "casp",   "'Ws, 'Ws+, 'Wt, 'Wt+")       \
+  V(CASP_x,   "casp",   "'Xs, 'Xs+, 'Xt, 'Xt+")       \
+  V(CASPA_w,  "caspa",  "'Ws, 'Ws+, 'Wt, 'Wt+")       \
+  V(CASPA_x,  "caspa",  "'Xs, 'Xs+, 'Xt, 'Xt+")       \
+  V(CASPL_w,  "caspl",  "'Ws, 'Ws+, 'Wt, 'Wt+")       \
+  V(CASPL_x,  "caspl",  "'Xs, 'Xs+, 'Xt, 'Xt+")       \
+  V(CASPAL_w, "caspal", "'Ws, 'Ws+, 'Wt, 'Wt+")       \
+  V(CASPAL_x, "caspal", "'Xs, 'Xs+, 'Xt, 'Xt+")
 // clang-format on
 
 
@@ -1898,15 +1899,15 @@
   switch (instr->Mask(FPImmediateMask)) {
     case FMOV_h_imm:
       mnemonic = "fmov";
-      form = "'Hd, 'IFPHalf";
+      form = "'Hd, 'IFP";
       break;
     case FMOV_s_imm:
       mnemonic = "fmov";
-      form = "'Sd, 'IFPSingle";
+      form = "'Sd, 'IFP";
       break;
     case FMOV_d_imm:
       mnemonic = "fmov";
-      form = "'Dd, 'IFPDouble";
+      form = "'Dd, 'IFP";
       break;
     default:
       VIXL_UNREACHABLE();
@@ -3409,7 +3410,7 @@
   } else if (instr->Mask(NEONCopySmovMask) == NEON_SMOV) {
     mnemonic = "smov";
     nfd.SetFormatMap(0, nfd.TriangularScalarFormatMap());
-    form = "'Rdq, 'Vn.%s['IVInsIndex1]";
+    form = "'R30d, 'Vn.%s['IVInsIndex1]";
   } else if (instr->Mask(NEONCopyDupElementMask) == NEON_DUP_ELEMENT) {
     mnemonic = "dup";
     form = "'Vd.%s, 'Vn.%s['IVInsIndex1]";
@@ -4006,19 +4007,16 @@
           }
         } else {  // cmode<0> == '1'
           mnemonic = "fmov";
+          form = "'Vt.%s, 'IFPNeon";
           if (half_enc == 1) {
-            form = "'Vt.%s, 'IVMIImmFPHalf";
             nfd.SetFormatMap(0, &map_h);
           } else if (op == 0) {
-            form = "'Vt.%s, 'IVMIImmFPSingle";
             nfd.SetFormatMap(0, &map_s);
+          } else if (q == 1) {
+            form = "'Vt.2d, 'IFPNeon";
           } else {
-            if (q == 1) {
-              form = "'Vt.2d, 'IVMIImmFPDouble";
-            } else {
-              mnemonic = "unallocated";
-              form = "(NEONModifiedImmediate)";
-            }
+            mnemonic = "unallocated";
+            form = "(NEONModifiedImmediate)";
           }
         }
       }
@@ -4926,6 +4924,4582 @@
   Format(instr, mnemonic, nfd.Substitute(form));
 }
 
+void Disassembler::
+    VisitSVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsets(
+        const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.s}, 'Pgl/z, ['Xns, 'Zm.s, '?22:suxtw #1]";
+
+  switch (instr->Mask(
+      SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsetsMask)) {
+    case LD1H_z_p_bz_s_x32_scaled:
+      mnemonic = "ld1h";
+      break;
+    case LD1SH_z_p_bz_s_x32_scaled:
+      mnemonic = "ld1sh";
+      break;
+    case LDFF1H_z_p_bz_s_x32_scaled:
+      mnemonic = "ldff1h";
+      break;
+    case LDFF1SH_z_p_bz_s_x32_scaled:
+      mnemonic = "ldff1sh";
+      break;
+    default:
+      form = "(SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsets)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsets(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.s}, 'Pgl/z, ['Xns, 'Zm.s, '?22:suxtw #2]";
+
+  switch (
+      instr->Mask(SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsetsMask)) {
+    case LD1W_z_p_bz_s_x32_scaled:
+      mnemonic = "ld1w";
+      break;
+    case LDFF1W_z_p_bz_s_x32_scaled:
+      mnemonic = "ldff1w";
+      break;
+    default:
+      form = "(SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsets)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets(
+    const Instruction *instr) {
+  const char *form = "{'Zt.s}, 'Pgl/z, ['Xns, 'Zm.s, '?22:suxtw]";
+
+  const char *mnemonic = "unimplemented";
+  switch (instr->Mask(SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsMask)) {
+    case LD1B_z_p_bz_s_x32_unscaled:
+      mnemonic = "ld1b";
+      break;
+    case LD1H_z_p_bz_s_x32_unscaled:
+      mnemonic = "ld1h";
+      break;
+    case LD1SB_z_p_bz_s_x32_unscaled:
+      mnemonic = "ld1sb";
+      break;
+    case LD1SH_z_p_bz_s_x32_unscaled:
+      mnemonic = "ld1sh";
+      break;
+    case LD1W_z_p_bz_s_x32_unscaled:
+      mnemonic = "ld1w";
+      break;
+    case LDFF1B_z_p_bz_s_x32_unscaled:
+      mnemonic = "ldff1b";
+      break;
+    case LDFF1H_z_p_bz_s_x32_unscaled:
+      mnemonic = "ldff1h";
+      break;
+    case LDFF1SB_z_p_bz_s_x32_unscaled:
+      mnemonic = "ldff1sb";
+      break;
+    case LDFF1SH_z_p_bz_s_x32_unscaled:
+      mnemonic = "ldff1sh";
+      break;
+    case LDFF1W_z_p_bz_s_x32_unscaled:
+      mnemonic = "ldff1w";
+      break;
+    default:
+      form = "(SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE32BitGatherLoad_VectorPlusImm(
+    const Instruction *instr) {
+  const char *form = "{'Zt.s}, 'Pgl/z, ['Zn.s]";
+  const char *form_imm_b = "{'Zt.s}, 'Pgl/z, ['Zn.s, #'u2016]";
+  const char *form_imm_h = "{'Zt.s}, 'Pgl/z, ['Zn.s, #'u2016*2]";
+  const char *form_imm_w = "{'Zt.s}, 'Pgl/z, ['Zn.s, #'u2016*4]";
+  const char *form_imm;
+
+  const char *mnemonic = "unimplemented";
+  switch (instr->Mask(SVE32BitGatherLoad_VectorPlusImmMask)) {
+    case LD1B_z_p_ai_s:
+      mnemonic = "ld1b";
+      form_imm = form_imm_b;
+      break;
+    case LD1H_z_p_ai_s:
+      mnemonic = "ld1h";
+      form_imm = form_imm_h;
+      break;
+    case LD1SB_z_p_ai_s:
+      mnemonic = "ld1sb";
+      form_imm = form_imm_b;
+      break;
+    case LD1SH_z_p_ai_s:
+      mnemonic = "ld1sh";
+      form_imm = form_imm_h;
+      break;
+    case LD1W_z_p_ai_s:
+      mnemonic = "ld1w";
+      form_imm = form_imm_w;
+      break;
+    case LDFF1B_z_p_ai_s:
+      mnemonic = "ldff1b";
+      form_imm = form_imm_b;
+      break;
+    case LDFF1H_z_p_ai_s:
+      mnemonic = "ldff1h";
+      form_imm = form_imm_h;
+      break;
+    case LDFF1SB_z_p_ai_s:
+      mnemonic = "ldff1sb";
+      form_imm = form_imm_b;
+      break;
+    case LDFF1SH_z_p_ai_s:
+      mnemonic = "ldff1sh";
+      form_imm = form_imm_h;
+      break;
+    case LDFF1W_z_p_ai_s:
+      mnemonic = "ldff1w";
+      form_imm = form_imm_w;
+      break;
+    default:
+      form = "(SVE32BitGatherLoad_VectorPlusImm)";
+      form_imm = form;
+      break;
+  }
+  if (instr->ExtractBits(20, 16) != 0) form = form_imm;
+
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsets(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'prefSVEOp, 'Pgl, ['Xns, 'Zm.s, '?22:suxtw";
+  const char *suffix = NULL;
+
+  switch (
+      instr->Mask(SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsetsMask)) {
+    case PRFB_i_p_bz_s_x32_scaled:
+      mnemonic = "prfb";
+      suffix = "]";
+      break;
+    case PRFD_i_p_bz_s_x32_scaled:
+      mnemonic = "prfd";
+      suffix = " #3]";
+      break;
+    case PRFH_i_p_bz_s_x32_scaled:
+      mnemonic = "prfh";
+      suffix = " #1]";
+      break;
+    case PRFW_i_p_bz_s_x32_scaled:
+      mnemonic = "prfw";
+      suffix = " #2]";
+      break;
+    default:
+      form = "(SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsets)";
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVE32BitGatherPrefetch_VectorPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = (instr->ExtractBits(20, 16) != 0)
+                         ? "'prefSVEOp, 'Pgl, ['Zn.s, #'u2016]"
+                         : "'prefSVEOp, 'Pgl, ['Zn.s]";
+
+  switch (instr->Mask(SVE32BitGatherPrefetch_VectorPlusImmMask)) {
+    case PRFB_i_p_ai_s:
+      mnemonic = "prfb";
+      break;
+    case PRFD_i_p_ai_s:
+      mnemonic = "prfd";
+      break;
+    case PRFH_i_p_ai_s:
+      mnemonic = "prfh";
+      break;
+    case PRFW_i_p_ai_s:
+      mnemonic = "prfw";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE32BitScatterStore_ScalarPlus32BitScaledOffsets(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.s}, 'Pgl, ['Xns, 'Zm.s, '?14:suxtw #'u2423]";
+
+  switch (instr->Mask(SVE32BitScatterStore_ScalarPlus32BitScaledOffsetsMask)) {
+    case ST1H_z_p_bz_s_x32_scaled:
+      mnemonic = "st1h";
+      break;
+    case ST1W_z_p_bz_s_x32_scaled:
+      mnemonic = "st1w";
+      break;
+    default:
+      form = "(SVE32BitScatterStore_ScalarPlus32BitScaledOffsets)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE32BitScatterStore_ScalarPlus32BitUnscaledOffsets(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.s}, 'Pgl, ['Xns, 'Zm.s, '?14:suxtw]";
+
+  switch (
+      instr->Mask(SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsetsMask)) {
+    case ST1B_z_p_bz_s_x32_unscaled:
+      mnemonic = "st1b";
+      break;
+    case ST1H_z_p_bz_s_x32_unscaled:
+      mnemonic = "st1h";
+      break;
+    case ST1W_z_p_bz_s_x32_unscaled:
+      mnemonic = "st1w";
+      break;
+    default:
+      form = "(SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsets)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE32BitScatterStore_VectorPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.s}, 'Pgl, ['Zn.s";
+  const char *suffix = NULL;
+
+  bool is_zero = instr->ExtractBits(20, 16) == 0;
+
+  switch (instr->Mask(SVE32BitScatterStore_VectorPlusImmMask)) {
+    case ST1B_z_p_ai_s:
+      mnemonic = "st1b";
+      suffix = is_zero ? "]" : ", #'u2016]";
+      break;
+    case ST1H_z_p_ai_s:
+      mnemonic = "st1h";
+      suffix = is_zero ? "]" : ", #'u2016*2]";
+      break;
+    case ST1W_z_p_ai_s:
+      mnemonic = "st1w";
+      suffix = is_zero ? "]" : ", #'u2016*4]";
+      break;
+    default:
+      form = "(SVE32BitScatterStore_VectorPlusImm)";
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.d}, 'Pgl/z, ['Xns, 'Zm.d, '?22:suxtw #'u2423]";
+
+  switch (instr->Mask(
+      SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsMask)) {
+    case LD1D_z_p_bz_d_x32_scaled:
+      mnemonic = "ld1d";
+      break;
+    case LD1H_z_p_bz_d_x32_scaled:
+      mnemonic = "ld1h";
+      break;
+    case LD1SH_z_p_bz_d_x32_scaled:
+      mnemonic = "ld1sh";
+      break;
+    case LD1SW_z_p_bz_d_x32_scaled:
+      mnemonic = "ld1sw";
+      break;
+    case LD1W_z_p_bz_d_x32_scaled:
+      mnemonic = "ld1w";
+      break;
+    case LDFF1D_z_p_bz_d_x32_scaled:
+      mnemonic = "ldff1d";
+      break;
+    case LDFF1H_z_p_bz_d_x32_scaled:
+      mnemonic = "ldff1h";
+      break;
+    case LDFF1SH_z_p_bz_d_x32_scaled:
+      mnemonic = "ldff1sh";
+      break;
+    case LDFF1SW_z_p_bz_d_x32_scaled:
+      mnemonic = "ldff1sw";
+      break;
+    case LDFF1W_z_p_bz_d_x32_scaled:
+      mnemonic = "ldff1w";
+      break;
+    default:
+      form = "(SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsMask)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.d}, 'Pgl/z, ['Xns, 'Zm.d, lsl #'u2423]";
+
+  switch (instr->Mask(SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsMask)) {
+    case LD1D_z_p_bz_d_64_scaled:
+      mnemonic = "ld1d";
+      break;
+    case LD1H_z_p_bz_d_64_scaled:
+      mnemonic = "ld1h";
+      break;
+    case LD1SH_z_p_bz_d_64_scaled:
+      mnemonic = "ld1sh";
+      break;
+    case LD1SW_z_p_bz_d_64_scaled:
+      mnemonic = "ld1sw";
+      break;
+    case LD1W_z_p_bz_d_64_scaled:
+      mnemonic = "ld1w";
+      break;
+    case LDFF1D_z_p_bz_d_64_scaled:
+      mnemonic = "ldff1d";
+      break;
+    case LDFF1H_z_p_bz_d_64_scaled:
+      mnemonic = "ldff1h";
+      break;
+    case LDFF1SH_z_p_bz_d_64_scaled:
+      mnemonic = "ldff1sh";
+      break;
+    case LDFF1SW_z_p_bz_d_64_scaled:
+      mnemonic = "ldff1sw";
+      break;
+    case LDFF1W_z_p_bz_d_64_scaled:
+      mnemonic = "ldff1w";
+      break;
+    default:
+      form = "(SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsMask)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.d}, 'Pgl/z, ['Xns, 'Zm.d]";
+
+  switch (instr->Mask(SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsMask)) {
+    case LD1B_z_p_bz_d_64_unscaled:
+      mnemonic = "ld1b";
+      break;
+    case LD1D_z_p_bz_d_64_unscaled:
+      mnemonic = "ld1d";
+      break;
+    case LD1H_z_p_bz_d_64_unscaled:
+      mnemonic = "ld1h";
+      break;
+    case LD1SB_z_p_bz_d_64_unscaled:
+      mnemonic = "ld1sb";
+      break;
+    case LD1SH_z_p_bz_d_64_unscaled:
+      mnemonic = "ld1sh";
+      break;
+    case LD1SW_z_p_bz_d_64_unscaled:
+      mnemonic = "ld1sw";
+      break;
+    case LD1W_z_p_bz_d_64_unscaled:
+      mnemonic = "ld1w";
+      break;
+    case LDFF1B_z_p_bz_d_64_unscaled:
+      mnemonic = "ldff1b";
+      break;
+    case LDFF1D_z_p_bz_d_64_unscaled:
+      mnemonic = "ldff1d";
+      break;
+    case LDFF1H_z_p_bz_d_64_unscaled:
+      mnemonic = "ldff1h";
+      break;
+    case LDFF1SB_z_p_bz_d_64_unscaled:
+      mnemonic = "ldff1sb";
+      break;
+    case LDFF1SH_z_p_bz_d_64_unscaled:
+      mnemonic = "ldff1sh";
+      break;
+    case LDFF1SW_z_p_bz_d_64_unscaled:
+      mnemonic = "ldff1sw";
+      break;
+    case LDFF1W_z_p_bz_d_64_unscaled:
+      mnemonic = "ldff1w";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::
+    VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets(
+        const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.d}, 'Pgl/z, ['Xns, 'Zm.d, '?22:suxtw]";
+
+  switch (instr->Mask(
+      SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsMask)) {
+    case LD1B_z_p_bz_d_x32_unscaled:
+      mnemonic = "ld1b";
+      break;
+    case LD1D_z_p_bz_d_x32_unscaled:
+      mnemonic = "ld1d";
+      break;
+    case LD1H_z_p_bz_d_x32_unscaled:
+      mnemonic = "ld1h";
+      break;
+    case LD1SB_z_p_bz_d_x32_unscaled:
+      mnemonic = "ld1sb";
+      break;
+    case LD1SH_z_p_bz_d_x32_unscaled:
+      mnemonic = "ld1sh";
+      break;
+    case LD1SW_z_p_bz_d_x32_unscaled:
+      mnemonic = "ld1sw";
+      break;
+    case LD1W_z_p_bz_d_x32_unscaled:
+      mnemonic = "ld1w";
+      break;
+    case LDFF1B_z_p_bz_d_x32_unscaled:
+      mnemonic = "ldff1b";
+      break;
+    case LDFF1D_z_p_bz_d_x32_unscaled:
+      mnemonic = "ldff1d";
+      break;
+    case LDFF1H_z_p_bz_d_x32_unscaled:
+      mnemonic = "ldff1h";
+      break;
+    case LDFF1SB_z_p_bz_d_x32_unscaled:
+      mnemonic = "ldff1sb";
+      break;
+    case LDFF1SH_z_p_bz_d_x32_unscaled:
+      mnemonic = "ldff1sh";
+      break;
+    case LDFF1SW_z_p_bz_d_x32_unscaled:
+      mnemonic = "ldff1sw";
+      break;
+    case LDFF1W_z_p_bz_d_x32_unscaled:
+      mnemonic = "ldff1w";
+      break;
+    default:
+      form = "(SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsMask)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE64BitGatherLoad_VectorPlusImm(
+    const Instruction *instr) {
+  const char *form = "{'Zt.d}, 'Pgl/z, ['Zn.d]";
+  const char *form_imm[4] = {"{'Zt.d}, 'Pgl/z, ['Zn.d, #'u2016]",
+                             "{'Zt.d}, 'Pgl/z, ['Zn.d, #'u2016*2]",
+                             "{'Zt.d}, 'Pgl/z, ['Zn.d, #'u2016*4]",
+                             "{'Zt.d}, 'Pgl/z, ['Zn.d, #'u2016*8]"};
+
+  if (instr->ExtractBits(20, 16) != 0) {
+    unsigned msz = instr->ExtractBits(24, 23);
+    bool sign_extend = instr->ExtractBit(14) == 0;
+    if ((msz == kDRegSizeInBytesLog2) && sign_extend) {
+      form = "(SVE64BitGatherLoad_VectorPlusImm)";
+    } else {
+      VIXL_ASSERT(msz < ArrayLength(form_imm));
+      form = form_imm[msz];
+    }
+  }
+
+  const char *mnemonic = "unimplemented";
+  switch (instr->Mask(SVE64BitGatherLoad_VectorPlusImmMask)) {
+    case LD1B_z_p_ai_d:
+      mnemonic = "ld1b";
+      break;
+    case LD1D_z_p_ai_d:
+      mnemonic = "ld1d";
+      break;
+    case LD1H_z_p_ai_d:
+      mnemonic = "ld1h";
+      break;
+    case LD1SB_z_p_ai_d:
+      mnemonic = "ld1sb";
+      break;
+    case LD1SH_z_p_ai_d:
+      mnemonic = "ld1sh";
+      break;
+    case LD1SW_z_p_ai_d:
+      mnemonic = "ld1sw";
+      break;
+    case LD1W_z_p_ai_d:
+      mnemonic = "ld1w";
+      break;
+    case LDFF1B_z_p_ai_d:
+      mnemonic = "ldff1b";
+      break;
+    case LDFF1D_z_p_ai_d:
+      mnemonic = "ldff1d";
+      break;
+    case LDFF1H_z_p_ai_d:
+      mnemonic = "ldff1h";
+      break;
+    case LDFF1SB_z_p_ai_d:
+      mnemonic = "ldff1sb";
+      break;
+    case LDFF1SH_z_p_ai_d:
+      mnemonic = "ldff1sh";
+      break;
+    case LDFF1SW_z_p_ai_d:
+      mnemonic = "ldff1sw";
+      break;
+    case LDFF1W_z_p_ai_d:
+      mnemonic = "ldff1w";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsets(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsets)";
+
+  switch (
+      instr->Mask(SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsetsMask)) {
+    case PRFB_i_p_bz_d_64_scaled:
+      mnemonic = "prfb";
+      form = "'prefSVEOp, 'Pgl, ['Xns, 'Zm.d]";
+      break;
+    case PRFD_i_p_bz_d_64_scaled:
+      mnemonic = "prfd";
+      form = "'prefSVEOp, 'Pgl, ['Xns, 'Zm.d, lsl #3]";
+      break;
+    case PRFH_i_p_bz_d_64_scaled:
+      mnemonic = "prfh";
+      form = "'prefSVEOp, 'Pgl, ['Xns, 'Zm.d, lsl #1]";
+      break;
+    case PRFW_i_p_bz_d_64_scaled:
+      mnemonic = "prfw";
+      form = "'prefSVEOp, 'Pgl, ['Xns, 'Zm.d, lsl #2]";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::
+    VisitSVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsets(
+        const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'prefSVEOp, 'Pgl, ['Xns, 'Zm.d, '?22:suxtw";
+  const char *suffix = NULL;
+
+  switch (instr->Mask(
+      SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsetsMask)) {
+    case PRFB_i_p_bz_d_x32_scaled:
+      mnemonic = "prfb";
+      suffix = " ]";
+      break;
+    case PRFD_i_p_bz_d_x32_scaled:
+      mnemonic = "prfd";
+      suffix = " #3]";
+      break;
+    case PRFH_i_p_bz_d_x32_scaled:
+      mnemonic = "prfh";
+      suffix = " #1]";
+      break;
+    case PRFW_i_p_bz_d_x32_scaled:
+      mnemonic = "prfw";
+      suffix = " #2]";
+      break;
+    default:
+      form = "(SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsets)";
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVE64BitGatherPrefetch_VectorPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = (instr->ExtractBits(20, 16) != 0)
+                         ? "'prefSVEOp, 'Pgl, ['Zn.d, #'u2016]"
+                         : "'prefSVEOp, 'Pgl, ['Zn.d]";
+
+  switch (instr->Mask(SVE64BitGatherPrefetch_VectorPlusImmMask)) {
+    case PRFB_i_p_ai_d:
+      mnemonic = "prfb";
+      break;
+    case PRFD_i_p_ai_d:
+      mnemonic = "prfd";
+      break;
+    case PRFH_i_p_ai_d:
+      mnemonic = "prfh";
+      break;
+    case PRFW_i_p_ai_d:
+      mnemonic = "prfw";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE64BitScatterStore_ScalarPlus64BitScaledOffsets(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.d}, 'Pgl, ['Xns, 'Zm.d, lsl #'u2423]";
+
+  switch (instr->Mask(SVE64BitScatterStore_ScalarPlus64BitScaledOffsetsMask)) {
+    case ST1D_z_p_bz_d_64_scaled:
+      mnemonic = "st1d";
+      break;
+    case ST1H_z_p_bz_d_64_scaled:
+      mnemonic = "st1h";
+      break;
+    case ST1W_z_p_bz_d_64_scaled:
+      mnemonic = "st1w";
+      break;
+    default:
+      form = "(SVE64BitScatterStore_ScalarPlus64BitScaledOffsets)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE64BitScatterStore_ScalarPlus64BitUnscaledOffsets(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.d}, 'Pgl, ['Xns, 'Zm.d]";
+
+  switch (
+      instr->Mask(SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsetsMask)) {
+    case ST1B_z_p_bz_d_64_unscaled:
+      mnemonic = "st1b";
+      break;
+    case ST1D_z_p_bz_d_64_unscaled:
+      mnemonic = "st1d";
+      break;
+    case ST1H_z_p_bz_d_64_unscaled:
+      mnemonic = "st1h";
+      break;
+    case ST1W_z_p_bz_d_64_unscaled:
+      mnemonic = "st1w";
+      break;
+    default:
+      form = "(SVE64BitScatterStore_ScalarPlus64BitUnscaledOffset)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::
+    VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsets(
+        const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.d}, 'Pgl, ['Xns, 'Zm.d, '?14:suxtw #'u2423]";
+
+  switch (instr->Mask(
+      SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsetsMask)) {
+    case ST1D_z_p_bz_d_x32_scaled:
+      mnemonic = "st1d";
+      break;
+    case ST1H_z_p_bz_d_x32_scaled:
+      mnemonic = "st1h";
+      break;
+    case ST1W_z_p_bz_d_x32_scaled:
+      mnemonic = "st1w";
+      break;
+    default:
+      form = "(SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsets)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::
+    VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsets(
+        const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.d}, 'Pgl, ['Xns, 'Zm.d, '?14:suxtw]";
+
+  switch (instr->Mask(
+      SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsetsMask)) {
+    case ST1B_z_p_bz_d_x32_unscaled:
+      mnemonic = "st1b";
+      break;
+    case ST1D_z_p_bz_d_x32_unscaled:
+      mnemonic = "st1d";
+      break;
+    case ST1H_z_p_bz_d_x32_unscaled:
+      mnemonic = "st1h";
+      break;
+    case ST1W_z_p_bz_d_x32_unscaled:
+      mnemonic = "st1w";
+      break;
+    default:
+      form = "(SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsets)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVE64BitScatterStore_VectorPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.d}, 'Pgl, ['Zn.d";
+  const char *suffix = NULL;
+
+  bool is_zero = instr->ExtractBits(20, 16) == 0;
+
+  switch (instr->Mask(SVE64BitScatterStore_VectorPlusImmMask)) {
+    case ST1B_z_p_ai_d:
+      mnemonic = "st1b";
+      suffix = is_zero ? "]" : ", #'u2016]";
+      break;
+    case ST1D_z_p_ai_d:
+      mnemonic = "st1d";
+      suffix = is_zero ? "]" : ", #'u2016*8]";
+      break;
+    case ST1H_z_p_ai_d:
+      mnemonic = "st1h";
+      suffix = is_zero ? "]" : ", #'u2016*2]";
+      break;
+    case ST1W_z_p_ai_d:
+      mnemonic = "st1w";
+      suffix = is_zero ? "]" : ", #'u2016*4]";
+      break;
+    default:
+      form = "(SVE64BitScatterStore_VectorPlusImm)";
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVEBitwiseLogicalWithImm_Unpredicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'tl, 'Zd.'tl, 'ITriSvel";
+
+  if (instr->GetSVEImmLogical() == 0) {
+    // The immediate encoded in the instruction is not in the expected format.
+    Format(instr, "unallocated", "(SVEBitwiseImm)");
+    return;
+  }
+
+  switch (instr->Mask(SVEBitwiseLogicalWithImm_UnpredicatedMask)) {
+    case AND_z_zi:
+      mnemonic = "and";
+      break;
+    case EOR_z_zi:
+      mnemonic = "eor";
+      break;
+    case ORR_z_zi:
+      mnemonic = "orr";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEBitwiseLogical_Predicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zd.'t, 'Zn.'t";
+
+  switch (instr->Mask(SVEBitwiseLogical_PredicatedMask)) {
+    case AND_z_p_zz:
+      mnemonic = "and";
+      break;
+    case BIC_z_p_zz:
+      mnemonic = "bic";
+      break;
+    case EOR_z_p_zz:
+      mnemonic = "eor";
+      break;
+    case ORR_z_p_zz:
+      mnemonic = "orr";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEBitwiseShiftByImm_Predicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'tszp, 'Pgl/m, 'Zd.'tszp, 'ITriSveq";
+  unsigned tsize = (instr->ExtractBits(23, 22) << 2) | instr->ExtractBits(9, 8);
+
+  if (tsize == 0) {
+    form = "(SVEBitwiseShiftByImm_Predicated)";
+  } else {
+    switch (instr->Mask(SVEBitwiseShiftByImm_PredicatedMask)) {
+      case ASRD_z_p_zi:
+        mnemonic = "asrd";
+        break;
+      case ASR_z_p_zi:
+        mnemonic = "asr";
+        break;
+      case LSL_z_p_zi:
+        mnemonic = "lsl";
+        form = "'Zd.'tszp, p'u1210/m, 'Zd.'tszp, 'ITriSvep";
+        break;
+      case LSR_z_p_zi:
+        mnemonic = "lsr";
+        break;
+      default:
+        break;
+    }
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEBitwiseShiftByVector_Predicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zd.'t, 'Zn.'t";
+
+  switch (instr->Mask(SVEBitwiseShiftByVector_PredicatedMask)) {
+    case ASRR_z_p_zz:
+      mnemonic = "asrr";
+      break;
+    case ASR_z_p_zz:
+      mnemonic = "asr";
+      break;
+    case LSLR_z_p_zz:
+      mnemonic = "lslr";
+      break;
+    case LSL_z_p_zz:
+      mnemonic = "lsl";
+      break;
+    case LSRR_z_p_zz:
+      mnemonic = "lsrr";
+      break;
+    case LSR_z_p_zz:
+      mnemonic = "lsr";
+      break;
+    default:
+      form = "(SVEBitwiseShiftByVector_Predicated)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEBitwiseShiftByWideElements_Predicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zd.'t, 'Zn.d";
+
+  if (instr->GetSVESize() == kDRegSizeInBytesLog2) {
+    form = "(SVEBitwiseShiftByWideElements_Predicated)";
+  } else {
+    switch (instr->Mask(SVEBitwiseShiftByWideElements_PredicatedMask)) {
+      case ASR_z_p_zw:
+        mnemonic = "asr";
+        break;
+      case LSL_z_p_zw:
+        mnemonic = "lsl";
+        break;
+      case LSR_z_p_zw:
+        mnemonic = "lsr";
+        break;
+      default:
+        form = "(SVEBitwiseShiftByWideElements_Predicated)";
+        break;
+    }
+  }
+  Format(instr, mnemonic, form);
+}
+
+static bool SVEMoveMaskPreferred(uint64_t value, int lane_bytes_log2) {
+  VIXL_ASSERT(IsUintN(8 << lane_bytes_log2, value));
+
+  // Duplicate lane-sized value across double word.
+  switch (lane_bytes_log2) {
+    case 0:
+      value *= 0x0101010101010101;
+      break;
+    case 1:
+      value *= 0x0001000100010001;
+      break;
+    case 2:
+      value *= 0x0000000100000001;
+      break;
+    case 3:  // Nothing to do
+      break;
+    default:
+      VIXL_UNREACHABLE();
+  }
+
+  if ((value & 0xff) == 0) {
+    // Check for 16-bit patterns. Set least-significant 16 bits, to make tests
+    // easier; we already checked least-significant byte is zero above.
+    uint64_t generic_value = value | 0xffff;
+
+    // Check 0x00000000_0000pq00 or 0xffffffff_ffffpq00.
+    if ((generic_value == 0xffff) || (generic_value == UINT64_MAX)) {
+      return false;
+    }
+
+    // Check 0x0000pq00_0000pq00 or 0xffffpq00_ffffpq00.
+    uint64_t rotvalue = RotateRight(value, 32, 64);
+    if (value == rotvalue) {
+      generic_value &= 0xffffffff;
+      if ((generic_value == 0xffff) || (generic_value == UINT32_MAX)) {
+        return false;
+      }
+    }
+
+    // Check 0xpq00pq00_pq00pq00.
+    rotvalue = RotateRight(value, 16, 64);
+    if (value == rotvalue) {
+      return false;
+    }
+  } else {
+    // Check for 8-bit patterns. Set least-significant byte, to make tests
+    // easier.
+    uint64_t generic_value = value | 0xff;
+
+    // Check 0x00000000_000000pq or 0xffffffff_ffffffpq.
+    if ((generic_value == 0xff) || (generic_value == UINT64_MAX)) {
+      return false;
+    }
+
+    // Check 0x000000pq_000000pq or 0xffffffpq_ffffffpq.
+    uint64_t rotvalue = RotateRight(value, 32, 64);
+    if (value == rotvalue) {
+      generic_value &= 0xffffffff;
+      if ((generic_value == 0xff) || (generic_value == UINT32_MAX)) {
+        return false;
+      }
+    }
+
+    // Check 0x00pq00pq_00pq00pq or 0xffpqffpq_ffpqffpq.
+    rotvalue = RotateRight(value, 16, 64);
+    if (value == rotvalue) {
+      generic_value &= 0xffff;
+      if ((generic_value == 0xff) || (generic_value == UINT16_MAX)) {
+        return false;
+      }
+    }
+
+    // Check 0xpqpqpqpq_pqpqpqpq.
+    rotvalue = RotateRight(value, 8, 64);
+    if (value == rotvalue) {
+      return false;
+    }
+  }
+  return true;
+}
+
+void Disassembler::VisitSVEBroadcastBitmaskImm(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEBroadcastBitmaskImm)";
+
+  switch (instr->Mask(SVEBroadcastBitmaskImmMask)) {
+    case DUPM_z_i: {
+      uint64_t imm = instr->GetSVEImmLogical();
+      if (imm != 0) {
+        int lane_size = instr->GetSVEBitwiseImmLaneSizeInBytesLog2();
+        mnemonic = SVEMoveMaskPreferred(imm, lane_size) ? "mov" : "dupm";
+        form = "'Zd.'tl, 'ITriSvel";
+      }
+      break;
+    }
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEBroadcastFPImm_Unpredicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEBroadcastFPImm_Unpredicated)";
+
+  switch (instr->Mask(SVEBroadcastFPImm_UnpredicatedMask)) {
+    case FDUP_z_i:
+      // The preferred disassembly for fdup is "fmov".
+      mnemonic = "fmov";
+      form = "'Zd.'t, 'IFPSve";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEBroadcastGeneralRegister(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEBroadcastGeneralRegister)";
+
+  switch (instr->Mask(SVEBroadcastGeneralRegisterMask)) {
+    case DUP_z_r:
+      // The preferred disassembly for dup is "mov".
+      mnemonic = "mov";
+      if (instr->GetSVESize() == kDRegSizeInBytesLog2) {
+        form = "'Zd.'t, 'Xns";
+      } else {
+        form = "'Zd.'t, 'Wns";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEBroadcastIndexElement(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEBroadcastIndexElement)";
+
+  switch (instr->Mask(SVEBroadcastIndexElementMask)) {
+    case DUP_z_zi: {
+      // The tsz field must not be zero.
+      int tsz = instr->ExtractBits(20, 16);
+      if (tsz != 0) {
+        // The preferred disassembly for dup is "mov".
+        mnemonic = "mov";
+        int imm2 = instr->ExtractBits(23, 22);
+        if ((CountSetBits(imm2) + CountSetBits(tsz)) == 1) {
+          // If imm2:tsz has one set bit, the index is zero. This is
+          // disassembled as a mov from a b/h/s/d/q scalar register.
+          form = "'Zd.'tszx, 'tszx'u0905";
+        } else {
+          form = "'Zd.'tszx, 'Zn.'tszx['IVInsSVEIndex]";
+        }
+      }
+      break;
+    }
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEBroadcastIntImm_Unpredicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEBroadcastIntImm_Unpredicated)";
+
+  switch (instr->Mask(SVEBroadcastIntImm_UnpredicatedMask)) {
+    case DUP_z_i:
+      // The encoding of byte-sized lanes with lsl #8 is undefined.
+      if ((instr->GetSVEVectorFormat() == kFormatVnB) &&
+          (instr->ExtractBit(13) == 1))
+        break;
+
+      // The preferred disassembly for dup is "mov".
+      mnemonic = "mov";
+      form = (instr->ExtractBit(13) == 0) ? "'Zd.'t, #'s1205"
+                                          : "'Zd.'t, #'s1205, lsl #8";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVECompressActiveElements(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVECompressActiveElements)";
+
+  switch (instr->Mask(SVECompressActiveElementsMask)) {
+    case COMPACT_z_p_z:
+      // The top bit of size is always set for compact, so 't can only be
+      // substituted with types S and D.
+      VIXL_ASSERT(instr->ExtractBit(23) == 1);
+      mnemonic = "compact";
+      form = "'Zd.'t, 'Pgl, 'Zn.'t";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEConditionallyBroadcastElementToVector(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl, 'Zd.'t, 'Zn.'t";
+
+  switch (instr->Mask(SVEConditionallyBroadcastElementToVectorMask)) {
+    case CLASTA_z_p_zz:
+      mnemonic = "clasta";
+      break;
+    case CLASTB_z_p_zz:
+      mnemonic = "clastb";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEConditionallyExtractElementToGeneralRegister(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Wd, 'Pgl, 'Wd, 'Zn.'t";
+
+  if (instr->GetSVESize() == kDRegSizeInBytesLog2) {
+    form = "'Xd, p'u1210, 'Xd, 'Zn.'t";
+  }
+
+  switch (instr->Mask(SVEConditionallyExtractElementToGeneralRegisterMask)) {
+    case CLASTA_r_p_z:
+      mnemonic = "clasta";
+      break;
+    case CLASTB_r_p_z:
+      mnemonic = "clastb";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEConditionallyExtractElementToSIMDFPScalar(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'t'u0400, 'Pgl, 't'u0400, 'Zn.'t";
+
+  switch (instr->Mask(SVEConditionallyExtractElementToSIMDFPScalarMask)) {
+    case CLASTA_v_p_z:
+      mnemonic = "clasta";
+      break;
+    case CLASTB_v_p_z:
+      mnemonic = "clastb";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEConditionallyTerminateScalars(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = (instr->ExtractBit(22) == 0) ? "'Wn, 'Wm" : "'Xn, 'Xm";
+
+  switch (instr->Mask(SVEConditionallyTerminateScalarsMask)) {
+    case CTERMEQ_rr:
+      mnemonic = "ctermeq";
+      break;
+    case CTERMNE_rr:
+      mnemonic = "ctermne";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEConstructivePrefix_Unpredicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEConstructivePrefix_Unpredicated)";
+
+  switch (instr->Mask(SVEConstructivePrefix_UnpredicatedMask)) {
+    case MOVPRFX_z_z:
+      mnemonic = "movprfx";
+      form = "'Zd, 'Zn";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+
+  bool rm_is_zr = instr->GetRm() == kZeroRegCode;
+
+  const char *form = "{'Zt.'tlss}, 'Pgl/z, ['Xns";
+  const char *suffix = NULL;
+
+  switch (instr->Mask(SVEContiguousFirstFaultLoad_ScalarPlusScalarMask)) {
+    case LDFF1B_z_p_br_u16:
+    case LDFF1B_z_p_br_u32:
+    case LDFF1B_z_p_br_u64:
+    case LDFF1B_z_p_br_u8:
+      mnemonic = "ldff1b";
+      suffix = rm_is_zr ? "]" : ", 'Xm]";
+      break;
+    case LDFF1D_z_p_br_u64:
+      mnemonic = "ldff1d";
+      suffix = rm_is_zr ? "]" : ", 'Xm, lsl #3]";
+      break;
+    case LDFF1H_z_p_br_u16:
+    case LDFF1H_z_p_br_u32:
+    case LDFF1H_z_p_br_u64:
+      mnemonic = "ldff1h";
+      suffix = rm_is_zr ? "]" : ", 'Xm, lsl #1]";
+      break;
+    case LDFF1SB_z_p_br_s16:
+    case LDFF1SB_z_p_br_s32:
+    case LDFF1SB_z_p_br_s64:
+      mnemonic = "ldff1sb";
+      suffix = rm_is_zr ? "]" : ", 'Xm]";
+      break;
+    case LDFF1SH_z_p_br_s32:
+    case LDFF1SH_z_p_br_s64:
+      mnemonic = "ldff1sh";
+      suffix = rm_is_zr ? "]" : ", 'Xm, lsl #1]";
+      break;
+    case LDFF1SW_z_p_br_s64:
+      mnemonic = "ldff1sw";
+      suffix = rm_is_zr ? "]" : ", 'Xm, lsl #2]";
+      break;
+    case LDFF1W_z_p_br_u32:
+    case LDFF1W_z_p_br_u64:
+      mnemonic = "ldff1w";
+      suffix = rm_is_zr ? "]" : ", 'Xm, lsl #2]";
+      break;
+    default:
+      form = "(SVEContiguousFirstFaultLoad_ScalarPlusScalar)";
+      break;
+  }
+
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVEContiguousNonFaultLoad_ScalarPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.'tlss}, 'Pgl/z, ['Xns";
+  const char *suffix =
+      (instr->ExtractBits(19, 16) == 0) ? "]" : ", #'s1916, mul vl]";
+
+  switch (instr->Mask(SVEContiguousNonFaultLoad_ScalarPlusImmMask)) {
+    case LDNF1B_z_p_bi_u16:
+    case LDNF1B_z_p_bi_u32:
+    case LDNF1B_z_p_bi_u64:
+    case LDNF1B_z_p_bi_u8:
+      mnemonic = "ldnf1b";
+      break;
+    case LDNF1D_z_p_bi_u64:
+      mnemonic = "ldnf1d";
+      break;
+    case LDNF1H_z_p_bi_u16:
+    case LDNF1H_z_p_bi_u32:
+    case LDNF1H_z_p_bi_u64:
+      mnemonic = "ldnf1h";
+      break;
+    case LDNF1SB_z_p_bi_s16:
+    case LDNF1SB_z_p_bi_s32:
+    case LDNF1SB_z_p_bi_s64:
+      mnemonic = "ldnf1sb";
+      break;
+    case LDNF1SH_z_p_bi_s32:
+    case LDNF1SH_z_p_bi_s64:
+      mnemonic = "ldnf1sh";
+      break;
+    case LDNF1SW_z_p_bi_s64:
+      mnemonic = "ldnf1sw";
+      break;
+    case LDNF1W_z_p_bi_u32:
+    case LDNF1W_z_p_bi_u64:
+      mnemonic = "ldnf1w";
+      break;
+    default:
+      form = "(SVEContiguousNonFaultLoad_ScalarPlusImm)";
+      suffix = NULL;
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVEContiguousNonTemporalLoad_ScalarPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEContiguousNonTemporalLoad_ScalarPlusImm)";
+
+  const char *suffix =
+      (instr->ExtractBits(19, 16) == 0) ? "]" : ", #'s1916, mul vl]";
+  switch (instr->Mask(SVEContiguousNonTemporalLoad_ScalarPlusImmMask)) {
+    case LDNT1B_z_p_bi_contiguous:
+      mnemonic = "ldnt1b";
+      form = "{'Zt.b}, 'Pgl/z, ['Xns";
+      break;
+    case LDNT1D_z_p_bi_contiguous:
+      mnemonic = "ldnt1d";
+      form = "{'Zt.d}, 'Pgl/z, ['Xns";
+      break;
+    case LDNT1H_z_p_bi_contiguous:
+      mnemonic = "ldnt1h";
+      form = "{'Zt.h}, 'Pgl/z, ['Xns";
+      break;
+    case LDNT1W_z_p_bi_contiguous:
+      mnemonic = "ldnt1w";
+      form = "{'Zt.s}, 'Pgl/z, ['Xns";
+      break;
+    default:
+      suffix = NULL;
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVEContiguousNonTemporalLoad_ScalarPlusScalar(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEContiguousNonTemporalLoad_ScalarPlusScalar)";
+
+  switch (instr->Mask(SVEContiguousNonTemporalLoad_ScalarPlusScalarMask)) {
+    case LDNT1B_z_p_br_contiguous:
+      mnemonic = "ldnt1b";
+      form = "{'Zt.b}, 'Pgl/z, ['Xns, 'Rm]";
+      break;
+    case LDNT1D_z_p_br_contiguous:
+      mnemonic = "ldnt1d";
+      form = "{'Zt.d}, 'Pgl/z, ['Xns, 'Rm, lsl #3]";
+      break;
+    case LDNT1H_z_p_br_contiguous:
+      mnemonic = "ldnt1h";
+      form = "{'Zt.h}, 'Pgl/z, ['Xns, 'Rm, lsl #1]";
+      break;
+    case LDNT1W_z_p_br_contiguous:
+      mnemonic = "ldnt1w";
+      form = "{'Zt.s}, 'Pgl/z, ['Xns, 'Rm, lsl #2]";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEContiguousNonTemporalStore_ScalarPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEContiguousNonTemporalStore_ScalarPlusImm)";
+
+  const char *suffix =
+      (instr->ExtractBits(19, 16) == 0) ? "]" : ", #'s1916, mul vl]";
+  switch (instr->Mask(SVEContiguousNonTemporalStore_ScalarPlusImmMask)) {
+    case STNT1B_z_p_bi_contiguous:
+      mnemonic = "stnt1b";
+      form = "{'Zt.b}, 'Pgl, ['Xns";
+      break;
+    case STNT1D_z_p_bi_contiguous:
+      mnemonic = "stnt1d";
+      form = "{'Zt.d}, 'Pgl, ['Xns";
+      break;
+    case STNT1H_z_p_bi_contiguous:
+      mnemonic = "stnt1h";
+      form = "{'Zt.h}, 'Pgl, ['Xns";
+      break;
+    case STNT1W_z_p_bi_contiguous:
+      mnemonic = "stnt1w";
+      form = "{'Zt.s}, 'Pgl, ['Xns";
+      break;
+    default:
+      suffix = NULL;
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVEContiguousNonTemporalStore_ScalarPlusScalar(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEContiguousNonTemporalStore_ScalarPlusScalar)";
+
+  switch (instr->Mask(SVEContiguousNonTemporalStore_ScalarPlusScalarMask)) {
+    case STNT1B_z_p_br_contiguous:
+      mnemonic = "stnt1b";
+      form = "{'Zt.b}, 'Pgl, ['Xns, 'Rm]";
+      break;
+    case STNT1D_z_p_br_contiguous:
+      mnemonic = "stnt1d";
+      form = "{'Zt.d}, 'Pgl, ['Xns, 'Rm, lsl #3]";
+      break;
+    case STNT1H_z_p_br_contiguous:
+      mnemonic = "stnt1h";
+      form = "{'Zt.h}, 'Pgl, ['Xns, 'Rm, lsl #1]";
+      break;
+    case STNT1W_z_p_br_contiguous:
+      mnemonic = "stnt1w";
+      form = "{'Zt.s}, 'Pgl, ['Xns, 'Rm, lsl #2]";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEContiguousPrefetch_ScalarPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = (instr->ExtractBits(21, 16) != 0)
+                         ? "'prefSVEOp, 'Pgl, ['Xns, #'s2116, mul vl]"
+                         : "'prefSVEOp, 'Pgl, ['Xns]";
+
+  switch (instr->Mask(SVEContiguousPrefetch_ScalarPlusImmMask)) {
+    case PRFB_i_p_bi_s:
+      mnemonic = "prfb";
+      break;
+    case PRFD_i_p_bi_s:
+      mnemonic = "prfd";
+      break;
+    case PRFH_i_p_bi_s:
+      mnemonic = "prfh";
+      break;
+    case PRFW_i_p_bi_s:
+      mnemonic = "prfw";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEContiguousPrefetch_ScalarPlusScalar(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEContiguousPrefetch_ScalarPlusScalar)";
+
+  if (instr->GetRm() != kZeroRegCode) {
+    switch (instr->Mask(SVEContiguousPrefetch_ScalarPlusScalarMask)) {
+      case PRFB_i_p_br_s:
+        mnemonic = "prfb";
+        form = "'prefSVEOp, 'Pgl, ['Xns, 'Rm]";
+        break;
+      case PRFD_i_p_br_s:
+        mnemonic = "prfd";
+        form = "'prefSVEOp, 'Pgl, ['Xns, 'Rm, lsl #3]";
+        break;
+      case PRFH_i_p_br_s:
+        mnemonic = "prfh";
+        form = "'prefSVEOp, 'Pgl, ['Xns, 'Rm, lsl #1]";
+        break;
+      case PRFW_i_p_br_s:
+        mnemonic = "prfw";
+        form = "'prefSVEOp, 'Pgl, ['Xns, 'Rm, lsl #2]";
+        break;
+      default:
+        break;
+    }
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEContiguousStore_ScalarPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+
+  // The 'size' field isn't in the usual place here.
+  const char *form = "{'Zt.'tls}, 'Pgl, ['Xns, #'s1916, mul vl]";
+  if (instr->ExtractBits(19, 16) == 0) {
+    form = "{'Zt.'tls}, 'Pgl, ['Xns]";
+  }
+
+  switch (instr->Mask(SVEContiguousStore_ScalarPlusImmMask)) {
+    case ST1B_z_p_bi:
+      mnemonic = "st1b";
+      break;
+    case ST1D_z_p_bi:
+      mnemonic = "st1d";
+      break;
+    case ST1H_z_p_bi:
+      mnemonic = "st1h";
+      break;
+    case ST1W_z_p_bi:
+      mnemonic = "st1w";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEContiguousStore_ScalarPlusScalar(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+
+  // The 'size' field isn't in the usual place here.
+  const char *form = "{'Zt.'tls}, 'Pgl, ['Xns, 'Xm'NSveS]";
+
+  switch (instr->Mask(SVEContiguousStore_ScalarPlusScalarMask)) {
+    case ST1B_z_p_br:
+      mnemonic = "st1b";
+      break;
+    case ST1D_z_p_br:
+      mnemonic = "st1d";
+      break;
+    case ST1H_z_p_br:
+      mnemonic = "st1h";
+      break;
+    case ST1W_z_p_br:
+      mnemonic = "st1w";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVECopyFPImm_Predicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVECopyFPImm_Predicated)";
+
+  switch (instr->Mask(SVECopyFPImm_PredicatedMask)) {
+    case FCPY_z_p_i:
+      // The preferred disassembly for fcpy is "fmov".
+      mnemonic = "fmov";
+      form = "'Zd.'t, 'Pm/m, 'IFPSve";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVECopyGeneralRegisterToVector_Predicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVECopyGeneralRegisterToVector_Predicated)";
+
+  switch (instr->Mask(SVECopyGeneralRegisterToVector_PredicatedMask)) {
+    case CPY_z_p_r:
+      // The preferred disassembly for cpy is "mov".
+      mnemonic = "mov";
+      form = "'Zd.'t, 'Pgl/m, 'Wns";
+      if (instr->GetSVESize() == kXRegSizeInBytesLog2) {
+        form = "'Zd.'t, 'Pgl/m, 'Xns";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVECopyIntImm_Predicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVECopyIntImm_Predicated)";
+  const char *suffix = NULL;
+
+  switch (instr->Mask(SVECopyIntImm_PredicatedMask)) {
+    case CPY_z_p_i: {
+      // The preferred disassembly for cpy is "mov".
+      mnemonic = "mov";
+      form = "'Zd.'t, 'Pm/'?14:mz, #'s1205";
+      if (instr->ExtractBit(13) != 0) suffix = ", lsl #8";
+      break;
+    }
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVECopySIMDFPScalarRegisterToVector_Predicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVECopySIMDFPScalarRegisterToVector_Predicated)";
+
+  switch (instr->Mask(SVECopySIMDFPScalarRegisterToVector_PredicatedMask)) {
+    case CPY_z_p_v:
+      // The preferred disassembly for cpy is "mov".
+      mnemonic = "mov";
+      form = "'Zd.'t, 'Pgl/m, 'Vnv";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEExtractElementToGeneralRegister(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Wd, 'Pgl, 'Zn.'t";
+
+  if (instr->GetSVESize() == kDRegSizeInBytesLog2) {
+    form = "'Xd, p'u1210, 'Zn.'t";
+  }
+
+  switch (instr->Mask(SVEExtractElementToGeneralRegisterMask)) {
+    case LASTA_r_p_z:
+      mnemonic = "lasta";
+      break;
+    case LASTB_r_p_z:
+      mnemonic = "lastb";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEExtractElementToSIMDFPScalarRegister(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'t'u0400, 'Pgl, 'Zn.'t";
+
+  switch (instr->Mask(SVEExtractElementToSIMDFPScalarRegisterMask)) {
+    case LASTA_v_p_z:
+      mnemonic = "lasta";
+      break;
+    case LASTB_v_p_z:
+      mnemonic = "lastb";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFFRInitialise(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFFRInitialise)";
+
+  switch (instr->Mask(SVEFFRInitialiseMask)) {
+    case SETFFR_f:
+      mnemonic = "setffr";
+      form = " ";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFFRWriteFromPredicate(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFFRWriteFromPredicate)";
+
+  switch (instr->Mask(SVEFFRWriteFromPredicateMask)) {
+    case WRFFR_f_p:
+      mnemonic = "wrffr";
+      form = "'Pn.b";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPArithmeticWithImm_Predicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form00 = "'Zd.'t, 'Pgl/m, 'Zd.'t, #0.0";
+  const char *form05 = "'Zd.'t, 'Pgl/m, 'Zd.'t, #0.5";
+  const char *form10 = "'Zd.'t, 'Pgl/m, 'Zd.'t, #1.0";
+  const char *form20 = "'Zd.'t, 'Pgl/m, 'Zd.'t, #2.0";
+  int i1 = instr->ExtractBit(5);
+  const char *form = i1 ? form10 : form00;
+
+  switch (instr->Mask(SVEFPArithmeticWithImm_PredicatedMask)) {
+    case FADD_z_p_zs:
+      mnemonic = "fadd";
+      form = i1 ? form10 : form05;
+      break;
+    case FMAXNM_z_p_zs:
+      mnemonic = "fmaxnm";
+      break;
+    case FMAX_z_p_zs:
+      mnemonic = "fmax";
+      break;
+    case FMINNM_z_p_zs:
+      mnemonic = "fminnm";
+      break;
+    case FMIN_z_p_zs:
+      mnemonic = "fmin";
+      break;
+    case FMUL_z_p_zs:
+      mnemonic = "fmul";
+      form = i1 ? form20 : form05;
+      break;
+    case FSUBR_z_p_zs:
+      mnemonic = "fsubr";
+      form = i1 ? form10 : form05;
+      break;
+    case FSUB_z_p_zs:
+      mnemonic = "fsub";
+      form = i1 ? form10 : form05;
+      break;
+    default:
+      form = "(SVEFPArithmeticWithImm_Predicated)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPArithmetic_Predicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zd.'t, 'Zn.'t";
+
+  switch (instr->Mask(SVEFPArithmetic_PredicatedMask)) {
+    case FABD_z_p_zz:
+      mnemonic = "fabd";
+      break;
+    case FADD_z_p_zz:
+      mnemonic = "fadd";
+      break;
+    case FDIVR_z_p_zz:
+      mnemonic = "fdivr";
+      break;
+    case FDIV_z_p_zz:
+      mnemonic = "fdiv";
+      break;
+    case FMAXNM_z_p_zz:
+      mnemonic = "fmaxnm";
+      break;
+    case FMAX_z_p_zz:
+      mnemonic = "fmax";
+      break;
+    case FMINNM_z_p_zz:
+      mnemonic = "fminnm";
+      break;
+    case FMIN_z_p_zz:
+      mnemonic = "fmin";
+      break;
+    case FMULX_z_p_zz:
+      mnemonic = "fmulx";
+      break;
+    case FMUL_z_p_zz:
+      mnemonic = "fmul";
+      break;
+    case FSCALE_z_p_zz:
+      mnemonic = "fscale";
+      break;
+    case FSUBR_z_p_zz:
+      mnemonic = "fsubr";
+      break;
+    case FSUB_z_p_zz:
+      mnemonic = "fsub";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPConvertPrecision(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFPConvertPrecision)";
+
+  switch (instr->Mask(SVEFPConvertPrecisionMask)) {
+    case FCVT_z_p_z_d2h:
+      mnemonic = "fcvt";
+      form = "'Zd.h, 'Pgl/m, 'Zn.d";
+      break;
+    case FCVT_z_p_z_d2s:
+      mnemonic = "fcvt";
+      form = "'Zd.s, 'Pgl/m, 'Zn.d";
+      break;
+    case FCVT_z_p_z_h2d:
+      mnemonic = "fcvt";
+      form = "'Zd.d, 'Pgl/m, 'Zn.h";
+      break;
+    case FCVT_z_p_z_h2s:
+      mnemonic = "fcvt";
+      form = "'Zd.s, 'Pgl/m, 'Zn.h";
+      break;
+    case FCVT_z_p_z_s2d:
+      mnemonic = "fcvt";
+      form = "'Zd.d, 'Pgl/m, 'Zn.s";
+      break;
+    case FCVT_z_p_z_s2h:
+      mnemonic = "fcvt";
+      form = "'Zd.h, 'Pgl/m, 'Zn.s";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPConvertToInt(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFPConvertToInt)";
+
+  switch (instr->Mask(SVEFPConvertToIntMask)) {
+    case FCVTZS_z_p_z_d2w:
+      mnemonic = "fcvtzs";
+      form = "'Zd.s, 'Pgl/m, 'Zn.d";
+      break;
+    case FCVTZS_z_p_z_d2x:
+      mnemonic = "fcvtzs";
+      form = "'Zd.d, 'Pgl/m, 'Zn.d";
+      break;
+    case FCVTZS_z_p_z_fp162h:
+      mnemonic = "fcvtzs";
+      form = "'Zd.h, 'Pgl/m, 'Zn.h";
+      break;
+    case FCVTZS_z_p_z_fp162w:
+      mnemonic = "fcvtzs";
+      form = "'Zd.s, 'Pgl/m, 'Zn.h";
+      break;
+    case FCVTZS_z_p_z_fp162x:
+      mnemonic = "fcvtzs";
+      form = "'Zd.d, 'Pgl/m, 'Zn.h";
+      break;
+    case FCVTZS_z_p_z_s2w:
+      mnemonic = "fcvtzs";
+      form = "'Zd.s, 'Pgl/m, 'Zn.s";
+      break;
+    case FCVTZS_z_p_z_s2x:
+      mnemonic = "fcvtzs";
+      form = "'Zd.d, 'Pgl/m, 'Zn.s";
+      break;
+    case FCVTZU_z_p_z_d2w:
+      mnemonic = "fcvtzu";
+      form = "'Zd.s, 'Pgl/m, 'Zn.d";
+      break;
+    case FCVTZU_z_p_z_d2x:
+      mnemonic = "fcvtzu";
+      form = "'Zd.d, 'Pgl/m, 'Zn.d";
+      break;
+    case FCVTZU_z_p_z_fp162h:
+      mnemonic = "fcvtzu";
+      form = "'Zd.h, 'Pgl/m, 'Zn.h";
+      break;
+    case FCVTZU_z_p_z_fp162w:
+      mnemonic = "fcvtzu";
+      form = "'Zd.s, 'Pgl/m, 'Zn.h";
+      break;
+    case FCVTZU_z_p_z_fp162x:
+      mnemonic = "fcvtzu";
+      form = "'Zd.d, 'Pgl/m, 'Zn.h";
+      break;
+    case FCVTZU_z_p_z_s2w:
+      mnemonic = "fcvtzu";
+      form = "'Zd.s, 'Pgl/m, 'Zn.s";
+      break;
+    case FCVTZU_z_p_z_s2x:
+      mnemonic = "fcvtzu";
+      form = "'Zd.d, 'Pgl/m, 'Zn.s";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPExponentialAccelerator(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFPExponentialAccelerator)";
+
+  unsigned size = instr->GetSVESize();
+  switch (instr->Mask(SVEFPExponentialAcceleratorMask)) {
+    case FEXPA_z_z:
+      if ((size == kHRegSizeInBytesLog2) || (size == kSRegSizeInBytesLog2) ||
+          (size == kDRegSizeInBytesLog2)) {
+        mnemonic = "fexpa";
+        form = "'Zd.'t, 'Zn.'t";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPRoundToIntegralValue(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zn.'t";
+
+  switch (instr->Mask(SVEFPRoundToIntegralValueMask)) {
+    case FRINTA_z_p_z:
+      mnemonic = "frinta";
+      break;
+    case FRINTI_z_p_z:
+      mnemonic = "frinti";
+      break;
+    case FRINTM_z_p_z:
+      mnemonic = "frintm";
+      break;
+    case FRINTN_z_p_z:
+      mnemonic = "frintn";
+      break;
+    case FRINTP_z_p_z:
+      mnemonic = "frintp";
+      break;
+    case FRINTX_z_p_z:
+      mnemonic = "frintx";
+      break;
+    case FRINTZ_z_p_z:
+      mnemonic = "frintz";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPTrigMulAddCoefficient(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFPTrigMulAddCoefficient)";
+
+  unsigned size = instr->GetSVESize();
+  switch (instr->Mask(SVEFPTrigMulAddCoefficientMask)) {
+    case FTMAD_z_zzi:
+      if ((size == kHRegSizeInBytesLog2) || (size == kSRegSizeInBytesLog2) ||
+          (size == kDRegSizeInBytesLog2)) {
+        mnemonic = "ftmad";
+        form = "'Zd.'t, 'Zd.'t, 'Zn.'t, #'u1816";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPTrigSelectCoefficient(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFPTrigSelectCoefficient)";
+
+  unsigned size = instr->GetSVESize();
+  switch (instr->Mask(SVEFPTrigSelectCoefficientMask)) {
+    case FTSSEL_z_zz:
+      if ((size == kHRegSizeInBytesLog2) || (size == kSRegSizeInBytesLog2) ||
+          (size == kDRegSizeInBytesLog2)) {
+        mnemonic = "ftssel";
+        form = "'Zd.'t, 'Zn.'t, 'Zm.'t";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPUnaryOp(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zn.'t";
+
+  if (instr->GetSVESize() == kBRegSizeInBytesLog2) {
+    form = "(SVEFPUnaryOp)";
+  } else {
+    switch (instr->Mask(SVEFPUnaryOpMask)) {
+      case FRECPX_z_p_z:
+        mnemonic = "frecpx";
+        break;
+      case FSQRT_z_p_z:
+        mnemonic = "fsqrt";
+        break;
+      default:
+        form = "(SVEFPUnaryOp)";
+        break;
+    }
+  }
+  Format(instr, mnemonic, form);
+}
+
+static const char *IncDecFormHelper(const Instruction *instr,
+                                    const char *reg_pat_mul_form,
+                                    const char *reg_pat_form,
+                                    const char *reg_form) {
+  if (instr->ExtractBits(19, 16) == 0) {
+    if (instr->ExtractBits(9, 5) == SVE_ALL) {
+      // Use the register only form if the multiplier is one (encoded as zero)
+      // and the pattern is SVE_ALL.
+      return reg_form;
+    }
+    // Use the register and pattern form if the multiplier is one.
+    return reg_pat_form;
+  }
+  return reg_pat_mul_form;
+}
+
+void Disassembler::VisitSVEIncDecRegisterByElementCount(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form =
+      IncDecFormHelper(instr, "'Xd, 'Ipc, mul #'u1916+1", "'Xd, 'Ipc", "'Xd");
+
+  switch (instr->Mask(SVEIncDecRegisterByElementCountMask)) {
+    case DECB_r_rs:
+      mnemonic = "decb";
+      break;
+    case DECD_r_rs:
+      mnemonic = "decd";
+      break;
+    case DECH_r_rs:
+      mnemonic = "dech";
+      break;
+    case DECW_r_rs:
+      mnemonic = "decw";
+      break;
+    case INCB_r_rs:
+      mnemonic = "incb";
+      break;
+    case INCD_r_rs:
+      mnemonic = "incd";
+      break;
+    case INCH_r_rs:
+      mnemonic = "inch";
+      break;
+    case INCW_r_rs:
+      mnemonic = "incw";
+      break;
+    default:
+      form = "(SVEIncDecRegisterByElementCount)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIncDecVectorByElementCount(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = IncDecFormHelper(instr,
+                                      "'Zd.'t, 'Ipc, mul #'u1916+1",
+                                      "'Zd.'t, 'Ipc",
+                                      "'Zd.'t");
+
+  switch (instr->Mask(SVEIncDecVectorByElementCountMask)) {
+    case DECD_z_zs:
+      mnemonic = "decd";
+      break;
+    case DECH_z_zs:
+      mnemonic = "dech";
+      break;
+    case DECW_z_zs:
+      mnemonic = "decw";
+      break;
+    case INCD_z_zs:
+      mnemonic = "incd";
+      break;
+    case INCH_z_zs:
+      mnemonic = "inch";
+      break;
+    case INCW_z_zs:
+      mnemonic = "incw";
+      break;
+    default:
+      form = "(SVEIncDecVectorByElementCount)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEInsertGeneralRegister(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEInsertGeneralRegister)";
+
+  switch (instr->Mask(SVEInsertGeneralRegisterMask)) {
+    case INSR_z_r:
+      mnemonic = "insr";
+      if (instr->GetSVESize() == kDRegSizeInBytesLog2) {
+        form = "'Zd.'t, 'Xn";
+      } else {
+        form = "'Zd.'t, 'Wn";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEInsertSIMDFPScalarRegister(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEInsertSIMDFPScalarRegister)";
+
+  switch (instr->Mask(SVEInsertSIMDFPScalarRegisterMask)) {
+    case INSR_z_v:
+      mnemonic = "insr";
+      form = "'Zd.'t, 'Vnv";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntAddSubtractImm_Unpredicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = (instr->ExtractBit(13) == 0)
+                         ? "'Zd.'t, 'Zd.'t, #'u1205"
+                         : "'Zd.'t, 'Zd.'t, #'u1205, lsl #8";
+
+  switch (instr->Mask(SVEIntAddSubtractImm_UnpredicatedMask)) {
+    case ADD_z_zi:
+      mnemonic = "add";
+      break;
+    case SQADD_z_zi:
+      mnemonic = "sqadd";
+      break;
+    case SQSUB_z_zi:
+      mnemonic = "sqsub";
+      break;
+    case SUBR_z_zi:
+      mnemonic = "subr";
+      break;
+    case SUB_z_zi:
+      mnemonic = "sub";
+      break;
+    case UQADD_z_zi:
+      mnemonic = "uqadd";
+      break;
+    case UQSUB_z_zi:
+      mnemonic = "uqsub";
+      break;
+    default:
+      form = "(SVEIntAddSubtractImm_Unpredicated)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntAddSubtractVectors_Predicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zd.'t, 'Zn.'t";
+
+  switch (instr->Mask(SVEIntAddSubtractVectors_PredicatedMask)) {
+    case ADD_z_p_zz:
+      mnemonic = "add";
+      break;
+    case SUBR_z_p_zz:
+      mnemonic = "subr";
+      break;
+    case SUB_z_p_zz:
+      mnemonic = "sub";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntCompareScalarCountAndLimit(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form =
+      (instr->ExtractBit(12) == 0) ? "'Pd.'t, 'Wn, 'Wm" : "'Pd.'t, 'Xn, 'Xm";
+
+  switch (instr->Mask(SVEIntCompareScalarCountAndLimitMask)) {
+    case WHILELE_p_p_rr:
+      mnemonic = "whilele";
+      break;
+    case WHILELO_p_p_rr:
+      mnemonic = "whilelo";
+      break;
+    case WHILELS_p_p_rr:
+      mnemonic = "whilels";
+      break;
+    case WHILELT_p_p_rr:
+      mnemonic = "whilelt";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntConvertToFP(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEIntConvertToFP)";
+
+  switch (instr->Mask(SVEIntConvertToFPMask)) {
+    case SCVTF_z_p_z_h2fp16:
+      mnemonic = "scvtf";
+      form = "'Zd.h, 'Pgl/m, 'Zn.h";
+      break;
+    case SCVTF_z_p_z_w2d:
+      mnemonic = "scvtf";
+      form = "'Zd.d, 'Pgl/m, 'Zn.s";
+      break;
+    case SCVTF_z_p_z_w2fp16:
+      mnemonic = "scvtf";
+      form = "'Zd.h, 'Pgl/m, 'Zn.s";
+      break;
+    case SCVTF_z_p_z_w2s:
+      mnemonic = "scvtf";
+      form = "'Zd.s, 'Pgl/m, 'Zn.s";
+      break;
+    case SCVTF_z_p_z_x2d:
+      mnemonic = "scvtf";
+      form = "'Zd.d, 'Pgl/m, 'Zn.d";
+      break;
+    case SCVTF_z_p_z_x2fp16:
+      mnemonic = "scvtf";
+      form = "'Zd.h, 'Pgl/m, 'Zn.d";
+      break;
+    case SCVTF_z_p_z_x2s:
+      mnemonic = "scvtf";
+      form = "'Zd.s, 'Pgl/m, 'Zn.d";
+      break;
+    case UCVTF_z_p_z_h2fp16:
+      mnemonic = "ucvtf";
+      form = "'Zd.h, 'Pgl/m, 'Zn.h";
+      break;
+    case UCVTF_z_p_z_w2d:
+      mnemonic = "ucvtf";
+      form = "'Zd.d, 'Pgl/m, 'Zn.s";
+      break;
+    case UCVTF_z_p_z_w2fp16:
+      mnemonic = "ucvtf";
+      form = "'Zd.h, 'Pgl/m, 'Zn.s";
+      break;
+    case UCVTF_z_p_z_w2s:
+      mnemonic = "ucvtf";
+      form = "'Zd.s, 'Pgl/m, 'Zn.s";
+      break;
+    case UCVTF_z_p_z_x2d:
+      mnemonic = "ucvtf";
+      form = "'Zd.d, 'Pgl/m, 'Zn.d";
+      break;
+    case UCVTF_z_p_z_x2fp16:
+      mnemonic = "ucvtf";
+      form = "'Zd.h, 'Pgl/m, 'Zn.d";
+      break;
+    case UCVTF_z_p_z_x2s:
+      mnemonic = "ucvtf";
+      form = "'Zd.s, 'Pgl/m, 'Zn.d";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntDivideVectors_Predicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zd.'t, 'Zn.'t";
+
+  switch (instr->Mask(SVEIntDivideVectors_PredicatedMask)) {
+    case SDIVR_z_p_zz:
+      mnemonic = "sdivr";
+      break;
+    case SDIV_z_p_zz:
+      mnemonic = "sdiv";
+      break;
+    case UDIVR_z_p_zz:
+      mnemonic = "udivr";
+      break;
+    case UDIV_z_p_zz:
+      mnemonic = "udiv";
+      break;
+    default:
+      break;
+  }
+
+  switch (instr->Mask(SVEIntDivideVectors_PredicatedMask)) {
+    case SDIVR_z_p_zz:
+    case SDIV_z_p_zz:
+    case UDIVR_z_p_zz:
+    case UDIV_z_p_zz:
+      switch (instr->GetSVESize()) {
+        case kBRegSizeInBytesLog2:
+        case kHRegSizeInBytesLog2:
+          mnemonic = "unimplemented";
+          form = "(SVEIntBinaryArithmeticPredicated)";
+          break;
+        case kSRegSizeInBytesLog2:
+        case kDRegSizeInBytesLog2:
+          // The default form works for these instructions.
+          break;
+        default:
+          // GetSVESize() should never return other values.
+          VIXL_UNREACHABLE();
+          break;
+      }
+  }
+
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntMinMaxDifference_Predicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zd.'t, 'Zn.'t";
+
+  switch (instr->Mask(SVEIntMinMaxDifference_PredicatedMask)) {
+    case SABD_z_p_zz:
+      mnemonic = "sabd";
+      break;
+    case SMAX_z_p_zz:
+      mnemonic = "smax";
+      break;
+    case SMIN_z_p_zz:
+      mnemonic = "smin";
+      break;
+    case UABD_z_p_zz:
+      mnemonic = "uabd";
+      break;
+    case UMAX_z_p_zz:
+      mnemonic = "umax";
+      break;
+    case UMIN_z_p_zz:
+      mnemonic = "umin";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntMinMaxImm_Unpredicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Zd.'t, #'u1205";
+
+  switch (instr->Mask(SVEIntMinMaxImm_UnpredicatedMask)) {
+    case SMAX_z_zi:
+      mnemonic = "smax";
+      form = "'Zd.'t, 'Zd.'t, #'s1205";
+      break;
+    case SMIN_z_zi:
+      mnemonic = "smin";
+      form = "'Zd.'t, 'Zd.'t, #'s1205";
+      break;
+    case UMAX_z_zi:
+      mnemonic = "umax";
+      break;
+    case UMIN_z_zi:
+      mnemonic = "umin";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntMulImm_Unpredicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEIntMulImm_Unpredicated)";
+
+  switch (instr->Mask(SVEIntMulImm_UnpredicatedMask)) {
+    case MUL_z_zi:
+      mnemonic = "mul";
+      form = "'Zd.'t, 'Zd.'t, #'s1205";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntMulVectors_Predicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zd.'t, 'Zn.'t";
+
+  switch (instr->Mask(SVEIntMulVectors_PredicatedMask)) {
+    case MUL_z_p_zz:
+      mnemonic = "mul";
+      break;
+    case SMULH_z_p_zz:
+      mnemonic = "smulh";
+      break;
+    case UMULH_z_p_zz:
+      mnemonic = "umulh";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVELoadAndBroadcastElement(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVELoadAndBroadcastElement)";
+  const char *suffix_b = ", #'u2116]";
+  const char *suffix_h = ", #'u2116*2]";
+  const char *suffix_w = ", #'u2116*4]";
+  const char *suffix_d = ", #'u2116*8]";
+  const char *suffix = NULL;
+
+  switch (instr->Mask(SVELoadAndBroadcastElementMask)) {
+    case LD1RB_z_p_bi_u16:
+      mnemonic = "ld1rb";
+      form = "{'Zt.h}, 'Pgl/z, ['Xns";
+      suffix = suffix_b;
+      break;
+    case LD1RB_z_p_bi_u32:
+      mnemonic = "ld1rb";
+      form = "{'Zt.s}, 'Pgl/z, ['Xns";
+      suffix = suffix_b;
+      break;
+    case LD1RB_z_p_bi_u64:
+      mnemonic = "ld1rb";
+      form = "{'Zt.d}, 'Pgl/z, ['Xns";
+      suffix = suffix_b;
+      break;
+    case LD1RB_z_p_bi_u8:
+      mnemonic = "ld1rb";
+      form = "{'Zt.b}, 'Pgl/z, ['Xns";
+      suffix = suffix_b;
+      break;
+    case LD1RD_z_p_bi_u64:
+      mnemonic = "ld1rd";
+      form = "{'Zt.d}, 'Pgl/z, ['Xns";
+      suffix = suffix_d;
+      break;
+    case LD1RH_z_p_bi_u16:
+      mnemonic = "ld1rh";
+      form = "{'Zt.h}, 'Pgl/z, ['Xns";
+      suffix = suffix_h;
+      break;
+    case LD1RH_z_p_bi_u32:
+      mnemonic = "ld1rh";
+      form = "{'Zt.s}, 'Pgl/z, ['Xns";
+      suffix = suffix_h;
+      break;
+    case LD1RH_z_p_bi_u64:
+      mnemonic = "ld1rh";
+      form = "{'Zt.d}, 'Pgl/z, ['Xns";
+      suffix = suffix_h;
+      break;
+    case LD1RSB_z_p_bi_s16:
+      mnemonic = "ld1rsb";
+      form = "{'Zt.h}, 'Pgl/z, ['Xns";
+      suffix = suffix_b;
+      break;
+    case LD1RSB_z_p_bi_s32:
+      mnemonic = "ld1rsb";
+      form = "{'Zt.s}, 'Pgl/z, ['Xns";
+      suffix = suffix_b;
+      break;
+    case LD1RSB_z_p_bi_s64:
+      mnemonic = "ld1rsb";
+      form = "{'Zt.d}, 'Pgl/z, ['Xns";
+      suffix = suffix_b;
+      break;
+    case LD1RSH_z_p_bi_s32:
+      mnemonic = "ld1rsh";
+      form = "{'Zt.s}, 'Pgl/z, ['Xns";
+      suffix = suffix_h;
+      break;
+    case LD1RSH_z_p_bi_s64:
+      mnemonic = "ld1rsh";
+      form = "{'Zt.d}, 'Pgl/z, ['Xns";
+      suffix = suffix_h;
+      break;
+    case LD1RSW_z_p_bi_s64:
+      mnemonic = "ld1rsw";
+      form = "{'Zt.d}, 'Pgl/z, ['Xns";
+      suffix = suffix_w;
+      break;
+    case LD1RW_z_p_bi_u32:
+      mnemonic = "ld1rw";
+      form = "{'Zt.s}, 'Pgl/z, ['Xns";
+      suffix = suffix_w;
+      break;
+    case LD1RW_z_p_bi_u64:
+      mnemonic = "ld1rw";
+      form = "{'Zt.d}, 'Pgl/z, ['Xns";
+      suffix = suffix_w;
+      break;
+    default:
+      break;
+  }
+
+  // Hide curly brackets if immediate is zero.
+  if (instr->ExtractBits(21, 16) == 0) {
+    suffix = "]";
+  }
+
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVELoadAndBroadcastQuadword_ScalarPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVELoadAndBroadcastQuadword_ScalarPlusImm)";
+
+  const char *suffix =
+      (instr->ExtractBits(19, 16) == 0) ? "]" : ", #'s1916*16]";
+
+  switch (instr->Mask(SVELoadAndBroadcastQuadword_ScalarPlusImmMask)) {
+    case LD1RQB_z_p_bi_u8:
+      mnemonic = "ld1rqb";
+      form = "{'Zt.b}, 'Pgl/z, ['Xns";
+      break;
+    case LD1RQD_z_p_bi_u64:
+      mnemonic = "ld1rqd";
+      form = "{'Zt.d}, 'Pgl/z, ['Xns";
+      break;
+    case LD1RQH_z_p_bi_u16:
+      mnemonic = "ld1rqh";
+      form = "{'Zt.h}, 'Pgl/z, ['Xns";
+      break;
+    case LD1RQW_z_p_bi_u32:
+      mnemonic = "ld1rqw";
+      form = "{'Zt.s}, 'Pgl/z, ['Xns";
+      break;
+    default:
+      suffix = NULL;
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVELoadAndBroadcastQuadword_ScalarPlusScalar(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVELoadAndBroadcastQuadword_ScalarPlusScalar)";
+
+  switch (instr->Mask(SVELoadAndBroadcastQuadword_ScalarPlusScalarMask)) {
+    case LD1RQB_z_p_br_contiguous:
+      mnemonic = "ld1rqb";
+      form = "{'Zt.b}, 'Pgl/z, ['Xns, 'Rm]";
+      break;
+    case LD1RQD_z_p_br_contiguous:
+      mnemonic = "ld1rqd";
+      form = "{'Zt.d}, 'Pgl/z, ['Xns, 'Rm, lsl #3]";
+      break;
+    case LD1RQH_z_p_br_contiguous:
+      mnemonic = "ld1rqh";
+      form = "{'Zt.h}, 'Pgl/z, ['Xns, 'Rm, lsl #1]";
+      break;
+    case LD1RQW_z_p_br_contiguous:
+      mnemonic = "ld1rqw";
+      form = "{'Zt.s}, 'Pgl/z, ['Xns, 'Rm, lsl #2]";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVELoadMultipleStructures_ScalarPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVELoadMultipleStructures_ScalarPlusImm)";
+
+  const char *form_2 = "{'Zt.'tmsz, 'Zt2.'tmsz}, 'Pgl/z, ['Xns'ISveSvl]";
+  const char *form_3 =
+      "{'Zt.'tmsz, 'Zt2.'tmsz, 'Zt3.'tmsz}, 'Pgl/z, ['Xns'ISveSvl]";
+  const char *form_4 =
+      "{'Zt.'tmsz, 'Zt2.'tmsz, 'Zt3.'tmsz, 'Zt4.'tmsz}, "
+      "'Pgl/z, ['Xns'ISveSvl]";
+
+  switch (instr->Mask(SVELoadMultipleStructures_ScalarPlusImmMask)) {
+    case LD2B_z_p_bi_contiguous:
+      mnemonic = "ld2b";
+      form = form_2;
+      break;
+    case LD2D_z_p_bi_contiguous:
+      mnemonic = "ld2d";
+      form = form_2;
+      break;
+    case LD2H_z_p_bi_contiguous:
+      mnemonic = "ld2h";
+      form = form_2;
+      break;
+    case LD2W_z_p_bi_contiguous:
+      mnemonic = "ld2w";
+      form = form_2;
+      break;
+    case LD3B_z_p_bi_contiguous:
+      mnemonic = "ld3b";
+      form = form_3;
+      break;
+    case LD3D_z_p_bi_contiguous:
+      mnemonic = "ld3d";
+      form = form_3;
+      break;
+    case LD3H_z_p_bi_contiguous:
+      mnemonic = "ld3h";
+      form = form_3;
+      break;
+    case LD3W_z_p_bi_contiguous:
+      mnemonic = "ld3w";
+      form = form_3;
+      break;
+    case LD4B_z_p_bi_contiguous:
+      mnemonic = "ld4b";
+      form = form_4;
+      break;
+    case LD4D_z_p_bi_contiguous:
+      mnemonic = "ld4d";
+      form = form_4;
+      break;
+    case LD4H_z_p_bi_contiguous:
+      mnemonic = "ld4h";
+      form = form_4;
+      break;
+    case LD4W_z_p_bi_contiguous:
+      mnemonic = "ld4w";
+      form = form_4;
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVELoadMultipleStructures_ScalarPlusScalar(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVELoadMultipleStructures_ScalarPlusScalar)";
+
+  const char *form_2 = "{'Zt.'tmsz, 'Zt2.'tmsz}, 'Pgl/z, ['Xns, 'Xm'NSveS]";
+  const char *form_3 =
+      "{'Zt.'tmsz, 'Zt2.'tmsz, 'Zt3.'tmsz}, 'Pgl/z, ['Xns, 'Xm'NSveS]";
+  const char *form_4 =
+      "{'Zt.'tmsz, 'Zt2.'tmsz, 'Zt3.'tmsz, 'Zt4.'tmsz}, "
+      "'Pgl/z, ['Xns, 'Xm'NSveS]";
+
+  switch (instr->Mask(SVELoadMultipleStructures_ScalarPlusScalarMask)) {
+    case LD2B_z_p_br_contiguous:
+      mnemonic = "ld2b";
+      form = form_2;
+      break;
+    case LD2D_z_p_br_contiguous:
+      mnemonic = "ld2d";
+      form = form_2;
+      break;
+    case LD2H_z_p_br_contiguous:
+      mnemonic = "ld2h";
+      form = form_2;
+      break;
+    case LD2W_z_p_br_contiguous:
+      mnemonic = "ld2w";
+      form = form_2;
+      break;
+    case LD3B_z_p_br_contiguous:
+      mnemonic = "ld3b";
+      form = form_3;
+      break;
+    case LD3D_z_p_br_contiguous:
+      mnemonic = "ld3d";
+      form = form_3;
+      break;
+    case LD3H_z_p_br_contiguous:
+      mnemonic = "ld3h";
+      form = form_3;
+      break;
+    case LD3W_z_p_br_contiguous:
+      mnemonic = "ld3w";
+      form = form_3;
+      break;
+    case LD4B_z_p_br_contiguous:
+      mnemonic = "ld4b";
+      form = form_4;
+      break;
+    case LD4D_z_p_br_contiguous:
+      mnemonic = "ld4d";
+      form = form_4;
+      break;
+    case LD4H_z_p_br_contiguous:
+      mnemonic = "ld4h";
+      form = form_4;
+      break;
+    case LD4W_z_p_br_contiguous:
+      mnemonic = "ld4w";
+      form = form_4;
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVELoadPredicateRegister(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVELoadPredicateRegister)";
+
+  switch (instr->Mask(SVELoadPredicateRegisterMask)) {
+    case LDR_p_bi:
+      mnemonic = "ldr";
+      if (instr->Mask(0x003f1c00) == 0) {
+        form = "'Pd, ['Xns]";
+      } else {
+        form = "'Pd, ['Xns, #'s2116:1210, mul vl]";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVELoadVectorRegister(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVELoadVectorRegister)";
+
+  switch (instr->Mask(SVELoadVectorRegisterMask)) {
+    case LDR_z_bi:
+      mnemonic = "ldr";
+      if (instr->Mask(0x003f1c00) == 0) {
+        form = "'Zd, ['Xns]";
+      } else {
+        form = "'Zt, ['Xns, #'s2116:1210, mul vl]";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPartitionBreakCondition(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Pd.b, p'u1310/'?04:mz, 'Pn.b";
+
+  switch (instr->Mask(SVEPartitionBreakConditionMask)) {
+    case BRKAS_p_p_p_z:
+      mnemonic = "brkas";
+      break;
+    case BRKA_p_p_p:
+      mnemonic = "brka";
+      break;
+    case BRKBS_p_p_p_z:
+      mnemonic = "brkbs";
+      break;
+    case BRKB_p_p_p:
+      mnemonic = "brkb";
+      break;
+    default:
+      form = "(SVEPartitionBreakCondition)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPermutePredicateElements(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Pd.'t, 'Pn.'t, 'Pm.'t";
+
+  switch (instr->Mask(SVEPermutePredicateElementsMask)) {
+    case TRN1_p_pp:
+      mnemonic = "trn1";
+      break;
+    case TRN2_p_pp:
+      mnemonic = "trn2";
+      break;
+    case UZP1_p_pp:
+      mnemonic = "uzp1";
+      break;
+    case UZP2_p_pp:
+      mnemonic = "uzp2";
+      break;
+    case ZIP1_p_pp:
+      mnemonic = "zip1";
+      break;
+    case ZIP2_p_pp:
+      mnemonic = "zip2";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPredicateFirstActive(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEPredicateFirstActive)";
+
+  switch (instr->Mask(SVEPredicateFirstActiveMask)) {
+    case PFIRST_p_p_p:
+      mnemonic = "pfirst";
+      form = "'Pd.b, 'Pn, 'Pd.b";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPredicateReadFromFFR_Unpredicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEPredicateReadFromFFR_Unpredicated)";
+
+  switch (instr->Mask(SVEPredicateReadFromFFR_UnpredicatedMask)) {
+    case RDFFR_p_f:
+      mnemonic = "rdffr";
+      form = "'Pd.b";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPredicateTest(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEPredicateTest)";
+
+  switch (instr->Mask(SVEPredicateTestMask)) {
+    case PTEST_p_p:
+      mnemonic = "ptest";
+      form = "p'u1310, 'Pn.b";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPredicateZero(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEPredicateZero)";
+
+  switch (instr->Mask(SVEPredicateZeroMask)) {
+    case PFALSE_p:
+      mnemonic = "pfalse";
+      form = "'Pd.b";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPropagateBreakToNextPartition(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Pd.b, p'u1310/z, 'Pn.b, 'Pd.b";
+
+  switch (instr->Mask(SVEPropagateBreakToNextPartitionMask)) {
+    case BRKNS_p_p_pp:
+      mnemonic = "brkns";
+      break;
+    case BRKN_p_p_pp:
+      mnemonic = "brkn";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEReversePredicateElements(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEReversePredicateElements)";
+
+  switch (instr->Mask(SVEReversePredicateElementsMask)) {
+    case REV_p_p:
+      mnemonic = "rev";
+      form = "'Pd.'t, 'Pn.'t";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEReverseVectorElements(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEReverseVectorElements)";
+
+  switch (instr->Mask(SVEReverseVectorElementsMask)) {
+    case REV_z_z:
+      mnemonic = "rev";
+      form = "'Zd.'t, 'Zn.'t";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEReverseWithinElements(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zn.'t";
+
+  unsigned size = instr->GetSVESize();
+  switch (instr->Mask(SVEReverseWithinElementsMask)) {
+    case RBIT_z_p_z:
+      mnemonic = "rbit";
+      break;
+    case REVB_z_z:
+      if ((size == kHRegSizeInBytesLog2) || (size == kSRegSizeInBytesLog2) ||
+          (size == kDRegSizeInBytesLog2)) {
+        mnemonic = "revb";
+      } else {
+        form = "(SVEReverseWithinElements)";
+      }
+      break;
+    case REVH_z_z:
+      if ((size == kSRegSizeInBytesLog2) || (size == kDRegSizeInBytesLog2)) {
+        mnemonic = "revh";
+      } else {
+        form = "(SVEReverseWithinElements)";
+      }
+      break;
+    case REVW_z_z:
+      if (size == kDRegSizeInBytesLog2) {
+        mnemonic = "revw";
+      } else {
+        form = "(SVEReverseWithinElements)";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVESaturatingIncDecRegisterByElementCount(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = IncDecFormHelper(instr,
+                                      "'R20d, 'Ipc, mul #'u1916+1",
+                                      "'R20d, 'Ipc",
+                                      "'R20d");
+  const char *form_sx = IncDecFormHelper(instr,
+                                         "'Xd, 'Wd, 'Ipc, mul #'u1916+1",
+                                         "'Xd, 'Wd, 'Ipc",
+                                         "'Xd, 'Wd");
+
+  switch (instr->Mask(SVESaturatingIncDecRegisterByElementCountMask)) {
+    case SQDECB_r_rs_sx:
+      mnemonic = "sqdecb";
+      form = form_sx;
+      break;
+    case SQDECD_r_rs_sx:
+      mnemonic = "sqdecd";
+      form = form_sx;
+      break;
+    case SQDECH_r_rs_sx:
+      mnemonic = "sqdech";
+      form = form_sx;
+      break;
+    case SQDECW_r_rs_sx:
+      mnemonic = "sqdecw";
+      form = form_sx;
+      break;
+    case SQINCB_r_rs_sx:
+      mnemonic = "sqincb";
+      form = form_sx;
+      break;
+    case SQINCD_r_rs_sx:
+      mnemonic = "sqincd";
+      form = form_sx;
+      break;
+    case SQINCH_r_rs_sx:
+      mnemonic = "sqinch";
+      form = form_sx;
+      break;
+    case SQINCW_r_rs_sx:
+      mnemonic = "sqincw";
+      form = form_sx;
+      break;
+    case SQDECB_r_rs_x:
+      mnemonic = "sqdecb";
+      break;
+    case SQDECD_r_rs_x:
+      mnemonic = "sqdecd";
+      break;
+    case SQDECH_r_rs_x:
+      mnemonic = "sqdech";
+      break;
+    case SQDECW_r_rs_x:
+      mnemonic = "sqdecw";
+      break;
+    case SQINCB_r_rs_x:
+      mnemonic = "sqincb";
+      break;
+    case SQINCD_r_rs_x:
+      mnemonic = "sqincd";
+      break;
+    case SQINCH_r_rs_x:
+      mnemonic = "sqinch";
+      break;
+    case SQINCW_r_rs_x:
+      mnemonic = "sqincw";
+      break;
+    case UQDECB_r_rs_uw:
+    case UQDECB_r_rs_x:
+      mnemonic = "uqdecb";
+      break;
+    case UQDECD_r_rs_uw:
+    case UQDECD_r_rs_x:
+      mnemonic = "uqdecd";
+      break;
+    case UQDECH_r_rs_uw:
+    case UQDECH_r_rs_x:
+      mnemonic = "uqdech";
+      break;
+    case UQDECW_r_rs_uw:
+    case UQDECW_r_rs_x:
+      mnemonic = "uqdecw";
+      break;
+    case UQINCB_r_rs_uw:
+    case UQINCB_r_rs_x:
+      mnemonic = "uqincb";
+      break;
+    case UQINCD_r_rs_uw:
+    case UQINCD_r_rs_x:
+      mnemonic = "uqincd";
+      break;
+    case UQINCH_r_rs_uw:
+    case UQINCH_r_rs_x:
+      mnemonic = "uqinch";
+      break;
+    case UQINCW_r_rs_uw:
+    case UQINCW_r_rs_x:
+      mnemonic = "uqincw";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVESaturatingIncDecVectorByElementCount(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = IncDecFormHelper(instr,
+                                      "'Zd.'t, 'Ipc, mul #'u1916+1",
+                                      "'Zd.'t, 'Ipc",
+                                      "'Zd.'t");
+
+  switch (instr->Mask(SVESaturatingIncDecVectorByElementCountMask)) {
+    case SQDECD_z_zs:
+      mnemonic = "sqdecd";
+      break;
+    case SQDECH_z_zs:
+      mnemonic = "sqdech";
+      break;
+    case SQDECW_z_zs:
+      mnemonic = "sqdecw";
+      break;
+    case SQINCD_z_zs:
+      mnemonic = "sqincd";
+      break;
+    case SQINCH_z_zs:
+      mnemonic = "sqinch";
+      break;
+    case SQINCW_z_zs:
+      mnemonic = "sqincw";
+      break;
+    case UQDECD_z_zs:
+      mnemonic = "uqdecd";
+      break;
+    case UQDECH_z_zs:
+      mnemonic = "uqdech";
+      break;
+    case UQDECW_z_zs:
+      mnemonic = "uqdecw";
+      break;
+    case UQINCD_z_zs:
+      mnemonic = "uqincd";
+      break;
+    case UQINCH_z_zs:
+      mnemonic = "uqinch";
+      break;
+    case UQINCW_z_zs:
+      mnemonic = "uqincw";
+      break;
+    default:
+      form = "(SVEElementCount)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEStoreMultipleStructures_ScalarPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEStoreMultipleStructures_ScalarPlusImm)";
+
+  const char *form_2 = "{'Zt.'tmsz, 'Zt2.'tmsz}, 'Pgl, ['Xns'ISveSvl]";
+  const char *form_3 =
+      "{'Zt.'tmsz, 'Zt2.'tmsz, 'Zt3.'tmsz}, 'Pgl, ['Xns'ISveSvl]";
+  const char *form_4 =
+      "{'Zt.'tmsz, 'Zt2.'tmsz, 'Zt3.'tmsz, 'Zt4.'tmsz}, "
+      "'Pgl, ['Xns'ISveSvl]";
+
+  switch (instr->Mask(SVEStoreMultipleStructures_ScalarPlusImmMask)) {
+    case ST2B_z_p_bi_contiguous:
+      mnemonic = "st2b";
+      form = form_2;
+      break;
+    case ST2H_z_p_bi_contiguous:
+      mnemonic = "st2h";
+      form = form_2;
+      break;
+    case ST2W_z_p_bi_contiguous:
+      mnemonic = "st2w";
+      form = form_2;
+      break;
+    case ST2D_z_p_bi_contiguous:
+      mnemonic = "st2d";
+      form = form_2;
+      break;
+    case ST3B_z_p_bi_contiguous:
+      mnemonic = "st3b";
+      form = form_3;
+      break;
+    case ST3H_z_p_bi_contiguous:
+      mnemonic = "st3h";
+      form = form_3;
+      break;
+    case ST3W_z_p_bi_contiguous:
+      mnemonic = "st3w";
+      form = form_3;
+      break;
+    case ST3D_z_p_bi_contiguous:
+      mnemonic = "st3d";
+      form = form_3;
+      break;
+    case ST4B_z_p_bi_contiguous:
+      mnemonic = "st4b";
+      form = form_4;
+      break;
+    case ST4H_z_p_bi_contiguous:
+      mnemonic = "st4h";
+      form = form_4;
+      break;
+    case ST4W_z_p_bi_contiguous:
+      mnemonic = "st4w";
+      form = form_4;
+      break;
+    case ST4D_z_p_bi_contiguous:
+      mnemonic = "st4d";
+      form = form_4;
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEStoreMultipleStructures_ScalarPlusScalar(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEStoreMultipleStructures_ScalarPlusScalar)";
+
+  const char *form_2 = "{'Zt.'tmsz, 'Zt2.'tmsz}, 'Pgl, ['Xns, 'Xm'NSveS]";
+  const char *form_3 =
+      "{'Zt.'tmsz, 'Zt2.'tmsz, 'Zt3.'tmsz}, 'Pgl, ['Xns, 'Xm'NSveS]";
+  const char *form_4 =
+      "{'Zt.'tmsz, 'Zt2.'tmsz, 'Zt3.'tmsz, 'Zt4.'tmsz}, "
+      "'Pgl, ['Xns, 'Xm'NSveS]";
+
+  switch (instr->Mask(SVEStoreMultipleStructures_ScalarPlusScalarMask)) {
+    case ST2B_z_p_br_contiguous:
+      mnemonic = "st2b";
+      form = form_2;
+      break;
+    case ST2D_z_p_br_contiguous:
+      mnemonic = "st2d";
+      form = form_2;
+      break;
+    case ST2H_z_p_br_contiguous:
+      mnemonic = "st2h";
+      form = form_2;
+      break;
+    case ST2W_z_p_br_contiguous:
+      mnemonic = "st2w";
+      form = form_2;
+      break;
+    case ST3B_z_p_br_contiguous:
+      mnemonic = "st3b";
+      form = form_3;
+      break;
+    case ST3D_z_p_br_contiguous:
+      mnemonic = "st3d";
+      form = form_3;
+      break;
+    case ST3H_z_p_br_contiguous:
+      mnemonic = "st3h";
+      form = form_3;
+      break;
+    case ST3W_z_p_br_contiguous:
+      mnemonic = "st3w";
+      form = form_3;
+      break;
+    case ST4B_z_p_br_contiguous:
+      mnemonic = "st4b";
+      form = form_4;
+      break;
+    case ST4D_z_p_br_contiguous:
+      mnemonic = "st4d";
+      form = form_4;
+      break;
+    case ST4H_z_p_br_contiguous:
+      mnemonic = "st4h";
+      form = form_4;
+      break;
+    case ST4W_z_p_br_contiguous:
+      mnemonic = "st4w";
+      form = form_4;
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEStorePredicateRegister(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEStorePredicateRegister)";
+
+  switch (instr->Mask(SVEStorePredicateRegisterMask)) {
+    case STR_p_bi:
+      mnemonic = "str";
+      if (instr->Mask(0x003f1c00) == 0) {
+        form = "'Pd, ['Xns]";
+      } else {
+        form = "'Pd, ['Xns, #'s2116:1210, mul vl]";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEStoreVectorRegister(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEStoreVectorRegister)";
+
+  switch (instr->Mask(SVEStoreVectorRegisterMask)) {
+    case STR_z_bi:
+      mnemonic = "str";
+      if (instr->Mask(0x003f1c00) == 0) {
+        form = "'Zd, ['Xns]";
+      } else {
+        form = "'Zt, ['Xns, #'s2116:1210, mul vl]";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVETableLookup(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVETableLookup)";
+
+  switch (instr->Mask(SVETableLookupMask)) {
+    case TBL_z_zz_1:
+      mnemonic = "tbl";
+      form = "'Zd.'t, {'Zn.'t}, 'Zm.'t";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEUnpackPredicateElements(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Pd.h, 'Pn.b";
+
+  switch (instr->Mask(SVEUnpackPredicateElementsMask)) {
+    case PUNPKHI_p_p:
+      mnemonic = "punpkhi";
+      break;
+    case PUNPKLO_p_p:
+      mnemonic = "punpklo";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEUnpackVectorElements(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Zn.'th";
+
+  if (instr->GetSVESize() == 0) {
+    // The lowest lane size of the destination vector is H-sized lane.
+    Format(instr, "unallocated", "(SVEUnpackVectorElements)");
+    return;
+  }
+
+  switch (instr->Mask(SVEUnpackVectorElementsMask)) {
+    case SUNPKHI_z_z:
+      mnemonic = "sunpkhi";
+      break;
+    case SUNPKLO_z_z:
+      mnemonic = "sunpklo";
+      break;
+    case UUNPKHI_z_z:
+      mnemonic = "uunpkhi";
+      break;
+    case UUNPKLO_z_z:
+      mnemonic = "uunpklo";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEVectorSplice_Destructive(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEVectorSplice_Destructive)";
+
+  switch (instr->Mask(SVEVectorSplice_DestructiveMask)) {
+    case SPLICE_z_p_zz_des:
+      mnemonic = "splice";
+      form = "'Zd.'t, 'Pgl, 'Zd.'t, 'Zn.'t";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEAddressGeneration(const Instruction *instr) {
+  const char *mnemonic = "adr";
+  const char *form = "'Zd.d, ['Zn.d, 'Zm.d";
+  const char *suffix = NULL;
+
+  bool msz_is_zero = (instr->ExtractBits(11, 10) == 0);
+
+  switch (instr->Mask(SVEAddressGenerationMask)) {
+    case ADR_z_az_d_s32_scaled:
+      suffix = msz_is_zero ? ", sxtw]" : ", sxtw #'u1110]";
+      break;
+    case ADR_z_az_d_u32_scaled:
+      suffix = msz_is_zero ? ", uxtw]" : ", uxtw #'u1110]";
+      break;
+    case ADR_z_az_s_same_scaled:
+    case ADR_z_az_d_same_scaled:
+      form = "'Zd.'t, ['Zn.'t, 'Zm.'t";
+      suffix = msz_is_zero ? "]" : ", lsl #'u1110]";
+      break;
+    default:
+      mnemonic = "unimplemented";
+      form = "(SVEAddressGeneration)";
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVEBitwiseLogicalUnpredicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.d, 'Zn.d, 'Zm.d";
+
+  switch (instr->Mask(SVEBitwiseLogicalUnpredicatedMask)) {
+    case AND_z_zz:
+      mnemonic = "and";
+      break;
+    case BIC_z_zz:
+      mnemonic = "bic";
+      break;
+    case EOR_z_zz:
+      mnemonic = "eor";
+      break;
+    case ORR_z_zz:
+      mnemonic = "orr";
+      if (instr->GetRn() == instr->GetRm()) {
+        mnemonic = "mov";
+        form = "'Zd.d, 'Zn.d";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEBitwiseShiftUnpredicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEBitwiseShiftUnpredicated)";
+  unsigned tsize =
+      (instr->ExtractBits(23, 22) << 2) | instr->ExtractBits(20, 19);
+  unsigned lane_size = instr->GetSVESize();
+
+  switch (instr->Mask(SVEBitwiseShiftUnpredicatedMask)) {
+    case ASR_z_zi:
+      if (tsize != 0) {
+        // The tsz field must not be zero.
+        mnemonic = "asr";
+        form = "'Zd.'tszs, 'Zn.'tszs, 'ITriSves";
+      }
+      break;
+    case ASR_z_zw:
+      if (lane_size <= kSRegSizeInBytesLog2) {
+        mnemonic = "asr";
+        form = "'Zd.'t, 'Zn.'t, 'Zm.d";
+      }
+      break;
+    case LSL_z_zi:
+      if (tsize != 0) {
+        // The tsz field must not be zero.
+        mnemonic = "lsl";
+        form = "'Zd.'tszs, 'Zn.'tszs, 'ITriSver";
+      }
+      break;
+    case LSL_z_zw:
+      if (lane_size <= kSRegSizeInBytesLog2) {
+        mnemonic = "lsl";
+        form = "'Zd.'t, 'Zn.'t, 'Zm.d";
+      }
+      break;
+    case LSR_z_zi:
+      if (tsize != 0) {
+        // The tsz field must not be zero.
+        mnemonic = "lsr";
+        form = "'Zd.'tszs, 'Zn.'tszs, 'ITriSves";
+      }
+      break;
+    case LSR_z_zw:
+      if (lane_size <= kSRegSizeInBytesLog2) {
+        mnemonic = "lsr";
+        form = "'Zd.'t, 'Zn.'t, 'Zm.d";
+      }
+      break;
+    default:
+      break;
+  }
+
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEElementCount(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form =
+      IncDecFormHelper(instr, "'Xd, 'Ipc, mul #'u1916+1", "'Xd, 'Ipc", "'Xd");
+
+  switch (instr->Mask(SVEElementCountMask)) {
+    case CNTB_r_s:
+      mnemonic = "cntb";
+      break;
+    case CNTD_r_s:
+      mnemonic = "cntd";
+      break;
+    case CNTH_r_s:
+      mnemonic = "cnth";
+      break;
+    case CNTW_r_s:
+      mnemonic = "cntw";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPAccumulatingReduction(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFPAccumulatingReduction)";
+
+  switch (instr->Mask(SVEFPAccumulatingReductionMask)) {
+    case FADDA_v_p_z:
+      mnemonic = "fadda";
+      form = "'t'u0400, 'Pgl, 't'u0400, 'Zn.'t";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPArithmeticUnpredicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Zn.'t, 'Zm.'t";
+
+  switch (instr->Mask(SVEFPArithmeticUnpredicatedMask)) {
+    case FADD_z_zz:
+      mnemonic = "fadd";
+      break;
+    case FMUL_z_zz:
+      mnemonic = "fmul";
+      break;
+    case FRECPS_z_zz:
+      mnemonic = "frecps";
+      break;
+    case FRSQRTS_z_zz:
+      mnemonic = "frsqrts";
+      break;
+    case FSUB_z_zz:
+      mnemonic = "fsub";
+      break;
+    case FTSMUL_z_zz:
+      mnemonic = "ftsmul";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPCompareVectors(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Pd.'t, 'Pgl/z, 'Zn.'t, 'Zm.'t";
+
+  switch (instr->Mask(SVEFPCompareVectorsMask)) {
+    case FACGE_p_p_zz:
+      mnemonic = "facge";
+      break;
+    case FACGT_p_p_zz:
+      mnemonic = "facgt";
+      break;
+    case FCMEQ_p_p_zz:
+      mnemonic = "fcmeq";
+      break;
+    case FCMGE_p_p_zz:
+      mnemonic = "fcmge";
+      break;
+    case FCMGT_p_p_zz:
+      mnemonic = "fcmgt";
+      break;
+    case FCMNE_p_p_zz:
+      mnemonic = "fcmne";
+      break;
+    case FCMUO_p_p_zz:
+      mnemonic = "fcmuo";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPCompareWithZero(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Pd.'t, 'Pgl/z, 'Zn.'t, #0.0";
+
+  switch (instr->Mask(SVEFPCompareWithZeroMask)) {
+    case FCMEQ_p_p_z0:
+      mnemonic = "fcmeq";
+      break;
+    case FCMGE_p_p_z0:
+      mnemonic = "fcmge";
+      break;
+    case FCMGT_p_p_z0:
+      mnemonic = "fcmgt";
+      break;
+    case FCMLE_p_p_z0:
+      mnemonic = "fcmle";
+      break;
+    case FCMLT_p_p_z0:
+      mnemonic = "fcmlt";
+      break;
+    case FCMNE_p_p_z0:
+      mnemonic = "fcmne";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPComplexAddition(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFPComplexAddition)";
+
+  switch (instr->Mask(SVEFPComplexAdditionMask)) {
+    case FCADD_z_p_zz:
+      mnemonic = "fcadd";
+      if (instr->ExtractBit(16) == 0) {
+        form = "'Zd.'t, 'Pgl/m, 'Zd.'t, 'Zn.'t, #90";
+      } else {
+        form = "'Zd.'t, 'Pgl/m, 'Zd.'t, 'Zn.'t, #270";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPComplexMulAdd(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFPComplexMulAdd)";
+  const char *suffix = NULL;
+
+  const char *fcmla_constants[] = {"0", "90", "180", "270"};
+
+  switch (instr->Mask(SVEFPComplexMulAddMask)) {
+    case FCMLA_z_p_zzz:
+      mnemonic = "fcmla";
+      form = "'Zd.'t, 'Pgl/m, 'Zn.'t, 'Zm.'t, #";
+      suffix = fcmla_constants[instr->ExtractBits(14, 13)];
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVEFPComplexMulAddIndex(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFPComplexMulAddIndex)";
+
+  const char *fcmla_constants[] = {"0", "90", "180", "270"};
+  const char *suffix = fcmla_constants[instr->ExtractBits(11, 10)];
+
+  switch (instr->Mask(SVEFPComplexMulAddIndexMask)) {
+    case FCMLA_z_zzzi_h:
+      mnemonic = "fcmla";
+      form = "'Zd.h, 'Zn.h, z'u1816.h['u2019], #";
+      break;
+    case FCMLA_z_zzzi_s:
+      mnemonic = "fcmla";
+      form = "'Zd.s, 'Zn.s, z'u1916.s['u2020], #";
+      break;
+    default:
+      suffix = NULL;
+      break;
+  }
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVEFPFastReduction(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'t'u0400, 'Pgl, 'Zn.'t";
+
+  switch (instr->Mask(SVEFPFastReductionMask)) {
+    case FADDV_v_p_z:
+      mnemonic = "faddv";
+      break;
+    case FMAXNMV_v_p_z:
+      mnemonic = "fmaxnmv";
+      break;
+    case FMAXV_v_p_z:
+      mnemonic = "fmaxv";
+      break;
+    case FMINNMV_v_p_z:
+      mnemonic = "fminnmv";
+      break;
+    case FMINV_v_p_z:
+      mnemonic = "fminv";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPMulIndex(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFPMulIndex)";
+
+  switch (instr->Mask(SVEFPMulIndexMask)) {
+    case FMUL_z_zzi_d:
+      mnemonic = "fmul";
+      form = "'Zd.d, 'Zn.d, z'u1916.d['u2020]";
+      break;
+    case FMUL_z_zzi_h:
+    case FMUL_z_zzi_h_i3h:
+      mnemonic = "fmul";
+      form = "'Zd.h, 'Zn.h, z'u1816.h['u2222:2019]";
+      break;
+    case FMUL_z_zzi_s:
+      mnemonic = "fmul";
+      form = "'Zd.s, 'Zn.s, z'u1816.s['u2019]";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPMulAdd(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zn.'t, 'Zm.'t";
+
+  switch (instr->Mask(SVEFPMulAddMask)) {
+    case FMAD_z_p_zzz:
+      mnemonic = "fmad";
+      break;
+    case FMLA_z_p_zzz:
+      mnemonic = "fmla";
+      break;
+    case FMLS_z_p_zzz:
+      mnemonic = "fmls";
+      break;
+    case FMSB_z_p_zzz:
+      mnemonic = "fmsb";
+      break;
+    case FNMAD_z_p_zzz:
+      mnemonic = "fnmad";
+      break;
+    case FNMLA_z_p_zzz:
+      mnemonic = "fnmla";
+      break;
+    case FNMLS_z_p_zzz:
+      mnemonic = "fnmls";
+      break;
+    case FNMSB_z_p_zzz:
+      mnemonic = "fnmsb";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPMulAddIndex(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEFPMulAddIndex)";
+
+  switch (instr->Mask(SVEFPMulAddIndexMask)) {
+    case FMLA_z_zzzi_d:
+      mnemonic = "fmla";
+      form = "'Zd.d, 'Zn.d, z'u1916.d['u2020]";
+      break;
+    case FMLA_z_zzzi_s:
+      mnemonic = "fmla";
+      form = "'Zd.s, 'Zn.s, z'u1816.s['u2019]";
+      break;
+    case FMLS_z_zzzi_d:
+      mnemonic = "fmls";
+      form = "'Zd.d, 'Zn.d, z'u1916.d['u2020]";
+      break;
+    case FMLS_z_zzzi_s:
+      mnemonic = "fmls";
+      form = "'Zd.s, 'Zn.s, z'u1816.s['u2019]";
+      break;
+    case FMLA_z_zzzi_h:
+    case FMLA_z_zzzi_h_i3h:
+      mnemonic = "fmla";
+      form = "'Zd.h, 'Zn.h, z'u1816.h['u2222:2019]";
+      break;
+    case FMLS_z_zzzi_h:
+    case FMLS_z_zzzi_h_i3h:
+      mnemonic = "fmls";
+      form = "'Zd.h, 'Zn.h, z'u1816.h['u2222:2019]";
+      break;
+    default:
+      break;
+  }
+
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEFPUnaryOpUnpredicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Zn.'t";
+
+  switch (instr->Mask(SVEFPUnaryOpUnpredicatedMask)) {
+    case FRECPE_z_z:
+      mnemonic = "frecpe";
+      break;
+    case FRSQRTE_z_z:
+      mnemonic = "frsqrte";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIncDecByPredicateCount(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEIncDecByPredicateCount)";
+
+  switch (instr->Mask(SVEIncDecByPredicateCountMask)) {
+    case DECP_r_p_r:
+    case DECP_z_p_z:
+      mnemonic = "decp";
+      break;
+    case INCP_r_p_r:
+    case INCP_z_p_z:
+      mnemonic = "incp";
+      break;
+    case SQDECP_r_p_r_sx:
+    case SQDECP_r_p_r_x:
+    case SQDECP_z_p_z:
+      mnemonic = "sqdecp";
+      break;
+    case SQINCP_r_p_r_sx:
+    case SQINCP_r_p_r_x:
+    case SQINCP_z_p_z:
+      mnemonic = "sqincp";
+      break;
+    case UQDECP_r_p_r_uw:
+    case UQDECP_r_p_r_x:
+    case UQDECP_z_p_z:
+      mnemonic = "uqdecp";
+      break;
+    case UQINCP_r_p_r_uw:
+    case UQINCP_r_p_r_x:
+    case UQINCP_z_p_z:
+      mnemonic = "uqincp";
+      break;
+    default:
+      break;
+  }
+
+  switch (instr->Mask(SVEIncDecByPredicateCountMask)) {
+    // <Xdn>, <Pg>.<T>
+    case DECP_r_p_r:
+    case INCP_r_p_r:
+      form = "'Xd, 'Pn.'t";
+      break;
+    // <Zdn>.<T>, <Pg>
+    case DECP_z_p_z:
+    case INCP_z_p_z:
+    case SQDECP_z_p_z:
+    case SQINCP_z_p_z:
+    case UQDECP_z_p_z:
+    case UQINCP_z_p_z:
+      form = "'Zd.'t, 'Pn";
+      break;
+    // <Xdn>, <Pg>.<T>, <Wdn>
+    case SQDECP_r_p_r_sx:
+    case SQINCP_r_p_r_sx:
+      form = "'Xd, 'Pn.'t, 'Wd";
+      break;
+    // <Xdn>, <Pg>.<T>
+    case SQDECP_r_p_r_x:
+    case SQINCP_r_p_r_x:
+    case UQDECP_r_p_r_x:
+    case UQINCP_r_p_r_x:
+      form = "'Xd, 'Pn.'t";
+      break;
+    // <Wdn>, <Pg>.<T>
+    case UQDECP_r_p_r_uw:
+    case UQINCP_r_p_r_uw:
+      form = "'Wd, 'Pn.'t";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIndexGeneration(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEIndexGeneration)";
+
+  bool w_inputs =
+      static_cast<unsigned>(instr->GetSVESize()) <= kWRegSizeInBytesLog2;
+
+  switch (instr->Mask(SVEIndexGenerationMask)) {
+    case INDEX_z_ii:
+      mnemonic = "index";
+      form = "'Zd.'t, #'s0905, #'s2016";
+      break;
+    case INDEX_z_ir:
+      mnemonic = "index";
+      form = w_inputs ? "'Zd.'t, #'s0905, 'Wm" : "'Zd.'t, #'s0905, 'Xm";
+      break;
+    case INDEX_z_ri:
+      mnemonic = "index";
+      form = w_inputs ? "'Zd.'t, 'Wn, #'s2016" : "'Zd.'t, 'Xn, #'s2016";
+      break;
+    case INDEX_z_rr:
+      mnemonic = "index";
+      form = w_inputs ? "'Zd.'t, 'Wn, 'Wm" : "'Zd.'t, 'Xn, 'Xm";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntArithmeticUnpredicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Zn.'t, 'Zm.'t";
+
+  switch (instr->Mask(SVEIntArithmeticUnpredicatedMask)) {
+    case ADD_z_zz:
+      mnemonic = "add";
+      break;
+    case SQADD_z_zz:
+      mnemonic = "sqadd";
+      break;
+    case SQSUB_z_zz:
+      mnemonic = "sqsub";
+      break;
+    case SUB_z_zz:
+      mnemonic = "sub";
+      break;
+    case UQADD_z_zz:
+      mnemonic = "uqadd";
+      break;
+    case UQSUB_z_zz:
+      mnemonic = "uqsub";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntCompareSignedImm(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Pd.'t, 'Pgl/z, 'Zn.'t, #'s2016";
+
+  switch (instr->Mask(SVEIntCompareSignedImmMask)) {
+    case CMPEQ_p_p_zi:
+      mnemonic = "cmpeq";
+      break;
+    case CMPGE_p_p_zi:
+      mnemonic = "cmpge";
+      break;
+    case CMPGT_p_p_zi:
+      mnemonic = "cmpgt";
+      break;
+    case CMPLE_p_p_zi:
+      mnemonic = "cmple";
+      break;
+    case CMPLT_p_p_zi:
+      mnemonic = "cmplt";
+      break;
+    case CMPNE_p_p_zi:
+      mnemonic = "cmpne";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntCompareUnsignedImm(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Pd.'t, 'Pgl/z, 'Zn.'t, #'u2014";
+
+  switch (instr->Mask(SVEIntCompareUnsignedImmMask)) {
+    case CMPHI_p_p_zi:
+      mnemonic = "cmphi";
+      break;
+    case CMPHS_p_p_zi:
+      mnemonic = "cmphs";
+      break;
+    case CMPLO_p_p_zi:
+      mnemonic = "cmplo";
+      break;
+    case CMPLS_p_p_zi:
+      mnemonic = "cmpls";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntCompareVectors(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Pd.'t, 'Pgl/z, 'Zn.'t, 'Zm.d";
+
+  switch (instr->Mask(SVEIntCompareVectorsMask)) {
+    case CMPEQ_p_p_zw:
+      mnemonic = "cmpeq";
+      break;
+    case CMPEQ_p_p_zz:
+      mnemonic = "cmpeq";
+      form = "'Pd.'t, 'Pgl/z, 'Zn.'t, 'Zm.'t";
+      break;
+    case CMPGE_p_p_zw:
+      mnemonic = "cmpge";
+      break;
+    case CMPGE_p_p_zz:
+      mnemonic = "cmpge";
+      form = "'Pd.'t, 'Pgl/z, 'Zn.'t, 'Zm.'t";
+      break;
+    case CMPGT_p_p_zw:
+      mnemonic = "cmpgt";
+      break;
+    case CMPGT_p_p_zz:
+      mnemonic = "cmpgt";
+      form = "'Pd.'t, 'Pgl/z, 'Zn.'t, 'Zm.'t";
+      break;
+    case CMPHI_p_p_zw:
+      mnemonic = "cmphi";
+      break;
+    case CMPHI_p_p_zz:
+      mnemonic = "cmphi";
+      form = "'Pd.'t, 'Pgl/z, 'Zn.'t, 'Zm.'t";
+      break;
+    case CMPHS_p_p_zw:
+      mnemonic = "cmphs";
+      break;
+    case CMPHS_p_p_zz:
+      mnemonic = "cmphs";
+      form = "'Pd.'t, 'Pgl/z, 'Zn.'t, 'Zm.'t";
+      break;
+    case CMPLE_p_p_zw:
+      mnemonic = "cmple";
+      break;
+    case CMPLO_p_p_zw:
+      mnemonic = "cmplo";
+      break;
+    case CMPLS_p_p_zw:
+      mnemonic = "cmpls";
+      break;
+    case CMPLT_p_p_zw:
+      mnemonic = "cmplt";
+      break;
+    case CMPNE_p_p_zw:
+      mnemonic = "cmpne";
+      break;
+    case CMPNE_p_p_zz:
+      mnemonic = "cmpne";
+      form = "'Pd.'t, 'Pgl/z, 'Zn.'t, 'Zm.'t";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntMulAddPredicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEIntMulAddPredicated)";
+
+  switch (instr->Mask(SVEIntMulAddPredicatedMask)) {
+    case MAD_z_p_zzz:
+      mnemonic = "mad";
+      form = "'Zd.'t, 'Pgl/m, 'Zm.'t, 'Zn.'t";
+      break;
+    case MLA_z_p_zzz:
+      mnemonic = "mla";
+      form = "'Zd.'t, 'Pgl/m, 'Zn.'t, 'Zm.'t";
+      break;
+    case MLS_z_p_zzz:
+      mnemonic = "mls";
+      form = "'Zd.'t, 'Pgl/m, 'Zn.'t, 'Zm.'t";
+      break;
+    case MSB_z_p_zzz:
+      mnemonic = "msb";
+      form = "'Zd.'t, 'Pgl/m, 'Zm.'t, 'Zn.'t";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntMulAddUnpredicated(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEIntMulAddUnpredicated)";
+
+  if (static_cast<unsigned>(instr->GetSVESize()) >= kSRegSizeInBytesLog2) {
+    form = "'Zd.'t, 'Zn.'tq, 'Zm.'tq";
+    switch (instr->Mask(SVEIntMulAddUnpredicatedMask)) {
+      case SDOT_z_zzz:
+        mnemonic = "sdot";
+        break;
+      case UDOT_z_zzz:
+        mnemonic = "udot";
+        break;
+      default:
+        break;
+    }
+  }
+
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEMovprfx(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEMovprfx)";
+
+  if (instr->Mask(SVEMovprfxMask) == MOVPRFX_z_p_z) {
+    mnemonic = "movprfx";
+    form = "'Zd.'t, 'Pgl/'?16:mz, 'Zn.'t";
+  }
+
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntReduction(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Vdv, 'Pgl, 'Zn.'t";
+
+  if (instr->Mask(SVEIntReductionLogicalFMask) == SVEIntReductionLogicalFixed) {
+    switch (instr->Mask(SVEIntReductionLogicalMask)) {
+      case ANDV_r_p_z:
+        mnemonic = "andv";
+        break;
+      case EORV_r_p_z:
+        mnemonic = "eorv";
+        break;
+      case ORV_r_p_z:
+        mnemonic = "orv";
+        break;
+      default:
+        break;
+    }
+  } else {
+    switch (instr->Mask(SVEIntReductionMask)) {
+      case SADDV_r_p_z:
+        mnemonic = "saddv";
+        form = "'Dd, 'Pgl, 'Zn.'t";
+        break;
+      case SMAXV_r_p_z:
+        mnemonic = "smaxv";
+        break;
+      case SMINV_r_p_z:
+        mnemonic = "sminv";
+        break;
+      case UADDV_r_p_z:
+        mnemonic = "uaddv";
+        form = "'Dd, 'Pgl, 'Zn.'t";
+        break;
+      case UMAXV_r_p_z:
+        mnemonic = "umaxv";
+        break;
+      case UMINV_r_p_z:
+        mnemonic = "uminv";
+        break;
+      default:
+        break;
+    }
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEIntUnaryArithmeticPredicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Pgl/m, 'Zn.'t";
+
+  switch (instr->Mask(SVEIntUnaryArithmeticPredicatedMask)) {
+    case ABS_z_p_z:
+      mnemonic = "abs";
+      break;
+    case CLS_z_p_z:
+      mnemonic = "cls";
+      break;
+    case CLZ_z_p_z:
+      mnemonic = "clz";
+      break;
+    case CNOT_z_p_z:
+      mnemonic = "cnot";
+      break;
+    case CNT_z_p_z:
+      mnemonic = "cnt";
+      break;
+    case FABS_z_p_z:
+      mnemonic = "fabs";
+      break;
+    case FNEG_z_p_z:
+      mnemonic = "fneg";
+      break;
+    case NEG_z_p_z:
+      mnemonic = "neg";
+      break;
+    case NOT_z_p_z:
+      mnemonic = "not";
+      break;
+    case SXTB_z_p_z:
+      mnemonic = "sxtb";
+      break;
+    case SXTH_z_p_z:
+      mnemonic = "sxth";
+      break;
+    case SXTW_z_p_z:
+      mnemonic = "sxtw";
+      break;
+    case UXTB_z_p_z:
+      mnemonic = "uxtb";
+      break;
+    case UXTH_z_p_z:
+      mnemonic = "uxth";
+      break;
+    case UXTW_z_p_z:
+      mnemonic = "uxtw";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEMulIndex(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEMulIndex)";
+
+  switch (instr->Mask(SVEMulIndexMask)) {
+    case SDOT_z_zzzi_d:
+      mnemonic = "sdot";
+      form = "'Zd.d, 'Zn.h, z'u1916.h['u2020]";
+      break;
+    case SDOT_z_zzzi_s:
+      mnemonic = "sdot";
+      form = "'Zd.s, 'Zn.b, z'u1816.b['u2019]";
+      break;
+    case UDOT_z_zzzi_d:
+      mnemonic = "udot";
+      form = "'Zd.d, 'Zn.h, z'u1916.h['u2020]";
+      break;
+    case UDOT_z_zzzi_s:
+      mnemonic = "udot";
+      form = "'Zd.s, 'Zn.b, z'u1816.b['u2019]";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPermuteVectorExtract(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEPermuteVectorExtract)";
+
+  switch (instr->Mask(SVEPermuteVectorExtractMask)) {
+    case EXT_z_zi_des:
+      mnemonic = "ext";
+      form = "'Zd.b, 'Zd.b, 'Zn.b, #'u2016:1210";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPermuteVectorInterleaving(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Zd.'t, 'Zn.'t, 'Zm.'t";
+
+  switch (instr->Mask(SVEPermuteVectorInterleavingMask)) {
+    case TRN1_z_zz:
+      mnemonic = "trn1";
+      break;
+    case TRN2_z_zz:
+      mnemonic = "trn2";
+      break;
+    case UZP1_z_zz:
+      mnemonic = "uzp1";
+      break;
+    case UZP2_z_zz:
+      mnemonic = "uzp2";
+      break;
+    case ZIP1_z_zz:
+      mnemonic = "zip1";
+      break;
+    case ZIP2_z_zz:
+      mnemonic = "zip2";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPredicateCount(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEPredicateCount)";
+
+  switch (instr->Mask(SVEPredicateCountMask)) {
+    case CNTP_r_p_p:
+      mnemonic = "cntp";
+      form = "'Xd, p'u1310, 'Pn.'t";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPredicateLogical(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Pd.b, p'u1310/z, 'Pn.b, 'Pm.b";
+
+  int pd = instr->GetPd();
+  int pn = instr->GetPn();
+  int pm = instr->GetPm();
+  int pg = instr->ExtractBits(13, 10);
+
+  switch (instr->Mask(SVEPredicateLogicalMask)) {
+    case ANDS_p_p_pp_z:
+      mnemonic = "ands";
+      if (pn == pm) {
+        mnemonic = "movs";
+        form = "'Pd.b, p'u1310/z, 'Pn.b";
+      }
+      break;
+    case AND_p_p_pp_z:
+      mnemonic = "and";
+      if (pn == pm) {
+        mnemonic = "mov";
+        form = "'Pd.b, p'u1310/z, 'Pn.b";
+      }
+      break;
+    case BICS_p_p_pp_z:
+      mnemonic = "bics";
+      break;
+    case BIC_p_p_pp_z:
+      mnemonic = "bic";
+      break;
+    case EORS_p_p_pp_z:
+      mnemonic = "eors";
+      if (pm == pg) {
+        mnemonic = "nots";
+        form = "'Pd.b, 'Pm/z, 'Pn.b";
+      }
+      break;
+    case EOR_p_p_pp_z:
+      mnemonic = "eor";
+      if (pm == pg) {
+        mnemonic = "not";
+        form = "'Pd.b, 'Pm/z, 'Pn.b";
+      }
+      break;
+    case NANDS_p_p_pp_z:
+      mnemonic = "nands";
+      break;
+    case NAND_p_p_pp_z:
+      mnemonic = "nand";
+      break;
+    case NORS_p_p_pp_z:
+      mnemonic = "nors";
+      break;
+    case NOR_p_p_pp_z:
+      mnemonic = "nor";
+      break;
+    case ORNS_p_p_pp_z:
+      mnemonic = "orns";
+      break;
+    case ORN_p_p_pp_z:
+      mnemonic = "orn";
+      break;
+    case ORRS_p_p_pp_z:
+      mnemonic = "orrs";
+      if ((pn == pm) && (pn == pg)) {
+        mnemonic = "movs";
+        form = "'Pd.b, 'Pn.b";
+      }
+      break;
+    case ORR_p_p_pp_z:
+      mnemonic = "orr";
+      if ((pn == pm) && (pn == pg)) {
+        mnemonic = "mov";
+        form = "'Pd.b, 'Pn.b";
+      }
+      break;
+    case SEL_p_p_pp:
+      if (pd == pm) {
+        mnemonic = "mov";
+        form = "'Pd.b, p'u1310/m, 'Pn.b";
+      } else {
+        mnemonic = "sel";
+        form = "'Pd.b, p'u1310, 'Pn.b, 'Pm.b";
+      }
+      break;
+    default:
+      form = "(SVEPredicateLogical)";
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPredicateInitialize(const Instruction *instr) {
+  // This group only contains PTRUE{S}, and there are no unallocated encodings.
+  VIXL_STATIC_ASSERT(
+      SVEPredicateInitializeMask ==
+      (SVEPredicateInitializeFMask | SVEPredicateInitializeSetFlagsBit));
+  VIXL_ASSERT((instr->Mask(SVEPredicateInitializeMask) == PTRUE_p_s) ||
+              (instr->Mask(SVEPredicateInitializeMask) == PTRUES_p_s));
+
+  const char *mnemonic = instr->ExtractBit(16) ? "ptrues" : "ptrue";
+  const char *form = "'Pd.'t, 'Ipc";
+  // Omit the pattern if it is the default ('ALL').
+  if (instr->ExtractBits(9, 5) == SVE_ALL) form = "'Pd.'t";
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPredicateNextActive(const Instruction *instr) {
+  // This group only contains PNEXT, and there are no unallocated encodings.
+  VIXL_STATIC_ASSERT(SVEPredicateNextActiveFMask == SVEPredicateNextActiveMask);
+  VIXL_ASSERT(instr->Mask(SVEPredicateNextActiveMask) == PNEXT_p_p_p);
+
+  Format(instr, "pnext", "'Pd.'t, 'Pn, 'Pd.'t");
+}
+
+void Disassembler::VisitSVEPredicateReadFromFFR_Predicated(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEPredicateReadFromFFR_Predicated)";
+  switch (instr->Mask(SVEPredicateReadFromFFR_PredicatedMask)) {
+    case RDFFR_p_p_f:
+    case RDFFRS_p_p_f:
+      mnemonic = instr->ExtractBit(22) ? "rdffrs" : "rdffr";
+      form = "'Pd.b, 'Pn/z";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEPropagateBreak(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Pd.b, p'u1310/z, 'Pn.b, 'Pm.b";
+
+  switch (instr->Mask(SVEPropagateBreakMask)) {
+    case BRKPAS_p_p_pp:
+      mnemonic = "brkpas";
+      break;
+    case BRKPA_p_p_pp:
+      mnemonic = "brkpa";
+      break;
+    case BRKPBS_p_p_pp:
+      mnemonic = "brkpbs";
+      break;
+    case BRKPB_p_p_pp:
+      mnemonic = "brkpb";
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEStackFrameAdjustment(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Xds, 'Xms, #'s1005";
+
+  switch (instr->Mask(SVEStackFrameAdjustmentMask)) {
+    case ADDPL_r_ri:
+      mnemonic = "addpl";
+      break;
+    case ADDVL_r_ri:
+      mnemonic = "addvl";
+      break;
+    default:
+      form = "(SVEStackFrameAdjustment)";
+      break;
+  }
+
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEStackFrameSize(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEStackFrameSize)";
+
+  switch (instr->Mask(SVEStackFrameSizeMask)) {
+    case RDVL_r_i:
+      mnemonic = "rdvl";
+      form = "'Xd, #'s1005";
+      break;
+    default:
+      break;
+  }
+
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEVectorSelect(const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "(SVEVectorSelect)";
+
+  switch (instr->Mask(SVEVectorSelectMask)) {
+    case SEL_z_p_zz:
+      if (instr->GetRd() == instr->GetRm()) {
+        mnemonic = "mov";
+        form = "'Zd.'t, p'u1310/m, 'Zn.'t";
+      } else {
+        mnemonic = "sel";
+        form = "'Zd.'t, p'u1310, 'Zn.'t, 'Zm.'t";
+      }
+      break;
+    default:
+      break;
+  }
+  Format(instr, mnemonic, form);
+}
+
+void Disassembler::VisitSVEContiguousLoad_ScalarPlusImm(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.'tlss}, 'Pgl/z, ['Xns";
+  const char *suffix =
+      (instr->ExtractBits(19, 16) == 0) ? "]" : ", #'s1916, mul vl]";
+
+  switch (instr->Mask(SVEContiguousLoad_ScalarPlusImmMask)) {
+    case LD1B_z_p_bi_u16:
+    case LD1B_z_p_bi_u32:
+    case LD1B_z_p_bi_u64:
+    case LD1B_z_p_bi_u8:
+      mnemonic = "ld1b";
+      break;
+    case LD1D_z_p_bi_u64:
+      mnemonic = "ld1d";
+      break;
+    case LD1H_z_p_bi_u16:
+    case LD1H_z_p_bi_u32:
+    case LD1H_z_p_bi_u64:
+      mnemonic = "ld1h";
+      break;
+    case LD1SB_z_p_bi_s16:
+    case LD1SB_z_p_bi_s32:
+    case LD1SB_z_p_bi_s64:
+      mnemonic = "ld1sb";
+      break;
+    case LD1SH_z_p_bi_s32:
+    case LD1SH_z_p_bi_s64:
+      mnemonic = "ld1sh";
+      break;
+    case LD1SW_z_p_bi_s64:
+      mnemonic = "ld1sw";
+      break;
+    case LD1W_z_p_bi_u32:
+    case LD1W_z_p_bi_u64:
+      mnemonic = "ld1w";
+      break;
+    default:
+      form = "(SVEContiguousLoad_ScalarPlusImm)";
+      suffix = NULL;
+      break;
+  }
+
+  Format(instr, mnemonic, form, suffix);
+}
+
+void Disassembler::VisitSVEContiguousLoad_ScalarPlusScalar(
+    const Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "{'Zt.'tlss}, 'Pgl/z, ['Xns, 'Xm";
+  const char *suffix = NULL;
+
+  switch (instr->Mask(SVEContiguousLoad_ScalarPlusScalarMask)) {
+    case LD1B_z_p_br_u16:
+    case LD1B_z_p_br_u32:
+    case LD1B_z_p_br_u64:
+    case LD1B_z_p_br_u8:
+      mnemonic = "ld1b";
+      suffix = "]";
+      break;
+    case LD1D_z_p_br_u64:
+      mnemonic = "ld1d";
+      suffix = ", lsl #'u2423]";
+      break;
+    case LD1H_z_p_br_u16:
+    case LD1H_z_p_br_u32:
+    case LD1H_z_p_br_u64:
+      mnemonic = "ld1h";
+      suffix = ", lsl #'u2423]";
+      break;
+    case LD1SB_z_p_br_s16:
+    case LD1SB_z_p_br_s32:
+    case LD1SB_z_p_br_s64:
+      mnemonic = "ld1sb";
+      suffix = "]";
+      break;
+    case LD1SH_z_p_br_s32:
+    case LD1SH_z_p_br_s64:
+      mnemonic = "ld1sh";
+      suffix = ", lsl #1]";
+      break;
+    case LD1SW_z_p_br_s64:
+      mnemonic = "ld1sw";
+      suffix = ", lsl #2]";
+      break;
+    case LD1W_z_p_br_u32:
+    case LD1W_z_p_br_u64:
+      mnemonic = "ld1w";
+      suffix = ", lsl #'u2423]";
+      break;
+    default:
+      form = "(SVEContiguousLoad_ScalarPlusScalar)";
+      suffix = NULL;
+      break;
+  }
+
+  Format(instr, mnemonic, form, suffix);
+}
 
 void Disassembler::VisitReserved(const Instruction *instr) {
   // UDF is the only instruction in this group, and the Decoder is precise.
@@ -5059,14 +9633,18 @@
 
 void Disassembler::Format(const Instruction *instr,
                           const char *mnemonic,
-                          const char *format) {
+                          const char *format0,
+                          const char *format1) {
   VIXL_ASSERT(mnemonic != NULL);
   ResetOutput();
   Substitute(instr, mnemonic);
-  if (format != NULL) {
+  if (format0 != NULL) {
     VIXL_ASSERT(buffer_pos_ < buffer_size_);
     buffer_[buffer_pos_++] = ' ';
-    Substitute(instr, format);
+    Substitute(instr, format0);
+    if (format1 != NULL) {
+      Substitute(instr, format1);
+    }
   }
   VIXL_ASSERT(buffer_pos_ < buffer_size_);
   buffer_[buffer_pos_] = 0;
@@ -5091,10 +9669,11 @@
 int Disassembler::SubstituteField(const Instruction *instr,
                                   const char *format) {
   switch (format[0]) {
-    // NB. The remaining substitution prefix characters are: GJKUZ.
-    case 'R':  // Register. X or W, selected by sf bit.
+    // NB. The remaining substitution prefix upper-case characters are: JU.
+    case 'R':  // Register. X or W, selected by sf (or alternative) bit.
     case 'F':  // FP register. S or D, selected by type field.
     case 'V':  // Vector register, V, vector format.
+    case 'Z':  // Scalable vector register.
     case 'W':
     case 'X':
     case 'B':
@@ -5103,14 +9682,14 @@
     case 'D':
     case 'Q':
       return SubstituteRegisterField(instr, format);
+    case 'P':
+      return SubstitutePredicateRegisterField(instr, format);
     case 'I':
       return SubstituteImmediateField(instr, format);
     case 'L':
       return SubstituteLiteralField(instr, format);
     case 'N':
       return SubstituteShiftField(instr, format);
-    case 'P':
-      return SubstitutePrefetchField(instr, format);
     case 'C':
       return SubstituteConditionField(instr, format);
     case 'E':
@@ -5127,6 +9706,15 @@
       return SubstituteCrField(instr, format);
     case 'G':
       return SubstituteSysOpField(instr, format);
+    case 'p':
+      return SubstitutePrefetchField(instr, format);
+    case 'u':
+    case 's':
+      return SubstituteIntField(instr, format);
+    case 't':
+      return SubstituteSVESize(instr, format);
+    case '?':
+      return SubstituteTernary(instr, format);
     default: {
       VIXL_UNREACHABLE();
       return 1;
@@ -5134,55 +9722,20 @@
   }
 }
 
+std::pair<unsigned, unsigned> Disassembler::GetRegNumForField(
+    const Instruction *instr, char reg_prefix, const char *field) {
+  unsigned reg_num = UINT_MAX;
+  unsigned field_len = 1;
 
-int Disassembler::SubstituteRegisterField(const Instruction *instr,
-                                          const char *format) {
-  char reg_prefix = format[0];
-  unsigned reg_num = 0;
-  unsigned field_len = 2;
-
-  switch (format[1]) {
+  switch (field[0]) {
     case 'd':
       reg_num = instr->GetRd();
-      if (format[2] == 'q') {
-        reg_prefix = instr->GetNEONQ() ? 'X' : 'W';
-        field_len = 3;
-      }
       break;
     case 'n':
       reg_num = instr->GetRn();
       break;
     case 'm':
       reg_num = instr->GetRm();
-      switch (format[2]) {
-        // Handle registers tagged with b (bytes), z (instruction), or
-        // r (registers), used for address updates in
-        // NEON load/store instructions.
-        case 'r':
-        case 'b':
-        case 'z': {
-          field_len = 3;
-          char *eimm;
-          int imm = static_cast<int>(strtol(&format[3], &eimm, 10));
-          field_len += eimm - &format[3];
-          if (reg_num == 31) {
-            switch (format[2]) {
-              case 'z':
-                imm *= (1 << instr->GetNEONLSSize());
-                break;
-              case 'r':
-                imm *= (instr->GetNEONQ() == 0) ? kDRegSizeInBytes
-                                                : kQRegSizeInBytes;
-                break;
-              case 'b':
-                break;
-            }
-            AppendToOutput("#%d", imm);
-            return field_len;
-          }
-          break;
-        }
-      }
       break;
     case 'e':
       // This is register Rm, but using a 4-bit specifier. Used in NEON
@@ -5197,72 +9750,121 @@
       break;
     case 't':
       reg_num = instr->GetRt();
-      if (format[0] == 'V') {
-        if ((format[2] >= '2') && (format[2] <= '4')) {
-          // Handle consecutive vector register specifiers Vt2, Vt3 and Vt4.
-          reg_num = (reg_num + format[2] - '1') % 32;
-          field_len = 3;
-        }
-      } else {
-        if (format[2] == '2') {
-          // Handle register specifier Rt2.
-          reg_num = instr->GetRt2();
-          field_len = 3;
-        }
-      }
       break;
-    case '(': {
-      switch (format[2]) {
-        case 's':
-          reg_num = instr->GetRs();
-          break;
-        case 't':
-          reg_num = instr->GetRt();
-          break;
-        default:
-          VIXL_UNREACHABLE();
-      }
-
-      VIXL_ASSERT(format[3] == '+');
-      int i = 4;
-      int addition = 0;
-      while (format[i] != ')') {
-        VIXL_ASSERT((format[i] >= '0') && (format[i] <= '9'));
-        addition *= 10;
-        addition += format[i] - '0';
-        ++i;
-      }
-      reg_num += addition;
-      field_len = i + 1;
-      break;
-    }
     default:
       VIXL_UNREACHABLE();
   }
 
-  // Increase field length for registers tagged as stack.
-  if (format[1] != '(' && format[2] == 's') {
-    field_len = 3;
+  switch (field[1]) {
+    case '2':
+    case '3':
+    case '4':
+      if ((reg_prefix == 'V') || (reg_prefix == 'Z')) {  // Vt2/3/4, Zt2/3/4
+        VIXL_ASSERT(field[0] == 't');
+        reg_num = (reg_num + field[1] - '1') % 32;
+        field_len++;
+      } else {
+        VIXL_ASSERT((field[0] == 't') && (field[1] == '2'));
+        reg_num = instr->GetRt2();
+        field_len++;
+      }
+      break;
+    case '+':  // Rt+, Rs+ (ie. Rt + 1, Rs + 1)
+      VIXL_ASSERT((reg_prefix == 'W') || (reg_prefix == 'X'));
+      VIXL_ASSERT((field[0] == 's') || (field[0] == 't'));
+      reg_num++;
+      field_len++;
+      break;
+    case 's':  // Core registers that are (w)sp rather than zr.
+      VIXL_ASSERT((reg_prefix == 'W') || (reg_prefix == 'X'));
+      reg_num = (reg_num == kZeroRegCode) ? kSPRegInternalCode : reg_num;
+      field_len++;
+      break;
+  }
+
+  VIXL_ASSERT(reg_num != UINT_MAX);
+  return std::make_pair(reg_num, field_len);
+}
+
+int Disassembler::SubstituteRegisterField(const Instruction *instr,
+                                          const char *format) {
+  unsigned field_len = 1;  // Initially, count only the first character.
+
+  // The first character of the register format field, eg R, X, S, etc.
+  char reg_prefix = format[0];
+
+  // Pointer to the character after the prefix. This may be one of the standard
+  // symbols representing a register encoding, or a two digit bit position,
+  // handled by the following code.
+  const char *reg_field = &format[1];
+
+  if (reg_prefix == 'R') {
+    bool is_x = instr->GetSixtyFourBits();
+    if (strspn(reg_field, "0123456789") == 2) {  // r20d, r31n, etc.
+      // Core W or X registers where the type is determined by a specified bit
+      // position, eg. 'R20d, 'R05n. This is like the 'Rd syntax, where bit 31
+      // is implicitly used to select between W and X.
+      int bitpos = ((reg_field[0] - '0') * 10) + (reg_field[1] - '0');
+      VIXL_ASSERT(bitpos <= 31);
+      is_x = (instr->ExtractBit(bitpos) == 1);
+      reg_field = &format[3];
+      field_len += 2;
+    }
+    reg_prefix = is_x ? 'X' : 'W';
+  }
+
+  std::pair<unsigned, unsigned> rn =
+      GetRegNumForField(instr, reg_prefix, reg_field);
+  unsigned reg_num = rn.first;
+  field_len += rn.second;
+
+  if (reg_field[0] == 'm') {
+    switch (reg_field[1]) {
+      // Handle registers tagged with b (bytes), z (instruction), or
+      // r (registers), used for address updates in NEON load/store
+      // instructions.
+      case 'r':
+      case 'b':
+      case 'z': {
+        VIXL_ASSERT(reg_prefix == 'X');
+        field_len = 3;
+        char *eimm;
+        int imm = static_cast<int>(strtol(&reg_field[2], &eimm, 10));
+        field_len += eimm - &reg_field[2];
+        if (reg_num == 31) {
+          switch (reg_field[1]) {
+            case 'z':
+              imm *= (1 << instr->GetNEONLSSize());
+              break;
+            case 'r':
+              imm *= (instr->GetNEONQ() == 0) ? kDRegSizeInBytes
+                                              : kQRegSizeInBytes;
+              break;
+            case 'b':
+              break;
+          }
+          AppendToOutput("#%d", imm);
+          return field_len;
+        }
+        break;
+      }
+    }
   }
 
   CPURegister::RegisterType reg_type = CPURegister::kRegister;
   unsigned reg_size = kXRegSize;
 
-  switch (reg_prefix) {
-    case 'R':
-      reg_prefix = instr->GetSixtyFourBits() ? 'X' : 'W';
-      break;
-    case 'F':
-      switch (instr->GetFPType()) {
-        case 3:
-          reg_prefix = 'H';
-          break;
-        case 0:
-          reg_prefix = 'S';
-          break;
-        default:
-          reg_prefix = 'D';
-      }
+  if (reg_prefix == 'F') {
+    switch (instr->GetFPType()) {
+      case 3:
+        reg_prefix = 'H';
+        break;
+      case 0:
+        reg_prefix = 'S';
+        break;
+      default:
+        reg_prefix = 'D';
+    }
   }
 
   switch (reg_prefix) {
@@ -5295,22 +9897,51 @@
       reg_size = kQRegSize;
       break;
     case 'V':
+      if (reg_field[1] == 'v') {
+        reg_type = CPURegister::kVRegister;
+        reg_size = 1 << (instr->GetSVESize() + 3);
+        field_len++;
+        break;
+      }
       AppendToOutput("v%d", reg_num);
       return field_len;
+    case 'Z':
+      AppendToOutput("z%d", reg_num);
+      return field_len;
     default:
       VIXL_UNREACHABLE();
   }
 
-  if ((reg_type == CPURegister::kRegister) && (reg_num == kZeroRegCode) &&
-      (format[2] == 's')) {
-    reg_num = kSPRegInternalCode;
-  }
-
   AppendRegisterNameToOutput(instr, CPURegister(reg_num, reg_size, reg_type));
 
   return field_len;
 }
 
+int Disassembler::SubstitutePredicateRegisterField(const Instruction *instr,
+                                                   const char *format) {
+  VIXL_ASSERT(format[0] == 'P');
+  switch (format[1]) {
+    // This field only supports P register that are always encoded in the same
+    // position.
+    case 'd':
+    case 't':
+      AppendToOutput("p%u", instr->GetPt());
+      break;
+    case 'n':
+      AppendToOutput("p%u", instr->GetPn());
+      break;
+    case 'm':
+      AppendToOutput("p%u", instr->GetPm());
+      break;
+    case 'g':
+      VIXL_ASSERT(format[2] == 'l');
+      AppendToOutput("p%u", instr->GetPgLow8());
+      return 3;
+    default:
+      VIXL_UNREACHABLE();
+  }
+  return 2;
+}
 
 int Disassembler::SubstituteImmediateField(const Instruction *instr,
                                            const char *format) {
@@ -5391,36 +10022,92 @@
       return 6;
     }
     case 'A': {  // IAddSub.
-      VIXL_ASSERT(instr->GetShiftAddSub() <= 1);
-      int64_t imm = instr->GetImmAddSub() << (12 * instr->GetShiftAddSub());
+      int64_t imm = instr->GetImmAddSub() << (12 * instr->GetImmAddSubShift());
       AppendToOutput("#0x%" PRIx64 " (%" PRId64 ")", imm, imm);
       return 7;
     }
-    case 'F': {                // IFPHalf, IFPSingle, IFPDouble, or IFPFBits.
-      if (format[3] == 'F') {  // IFPFbits.
-        AppendToOutput("#%" PRId32, 64 - instr->GetFPScale());
-        return 8;
-      } else {
-        AppendToOutput("#0x%" PRIx32 " (%.4f)",
-                       instr->GetImmFP(),
-                       format[3] == 'H'
-                           ? FPToFloat(instr->GetImmFP16(), kIgnoreDefaultNaN)
-                           : (format[3] == 'S') ? instr->GetImmFP32()
-                                                : instr->GetImmFP64());
-        if (format[3] == 'H') {
-          return 7;
-        } else {
-          return 9;
-        }
+    case 'F': {  // IFP, IFPNeon, IFPSve or IFPFBits.
+      int imm8 = 0;
+      int len = strlen("IFP");
+      switch (format[3]) {
+        case 'F':
+          VIXL_ASSERT(strncmp(format, "IFPFBits", strlen("IFPFBits")) == 0);
+          AppendToOutput("#%" PRId32, 64 - instr->GetFPScale());
+          return strlen("IFPFBits");
+        case 'N':
+          VIXL_ASSERT(strncmp(format, "IFPNeon", strlen("IFPNeon")) == 0);
+          imm8 = instr->GetImmNEONabcdefgh();
+          len += strlen("Neon");
+          break;
+        case 'S':
+          VIXL_ASSERT(strncmp(format, "IFPSve", strlen("IFPSve")) == 0);
+          imm8 = instr->ExtractBits(12, 5);
+          len += strlen("Sve");
+          break;
+        default:
+          VIXL_ASSERT(strncmp(format, "IFP", strlen("IFP")) == 0);
+          imm8 = instr->GetImmFP();
+          break;
       }
+      AppendToOutput("#0x%" PRIx32 " (%.4f)",
+                     imm8,
+                     Instruction::Imm8ToFP32(imm8));
+      return len;
     }
     case 'H': {  // IH - ImmHint
       AppendToOutput("#%" PRId32, instr->GetImmHint());
       return 2;
     }
     case 'T': {  // ITri - Immediate Triangular Encoded.
-      AppendToOutput("#0x%" PRIx64, instr->GetImmLogical());
-      return 4;
+      if (format[4] == 'S') {
+        VIXL_ASSERT((format[5] == 'v') && (format[6] == 'e'));
+        switch (format[7]) {
+          case 'l':
+            // SVE logical immediate encoding.
+            AppendToOutput("#0x%" PRIx64, instr->GetSVEImmLogical());
+            return 8;
+          case 'p': {
+            // SVE predicated shift immediate encoding, lsl.
+            std::pair<int, int> shift_and_lane_size =
+                instr->GetSVEImmShiftAndLaneSizeLog2(
+                    /* is_predicated = */ true);
+            int lane_bits = 8 << shift_and_lane_size.second;
+            AppendToOutput("#%" PRId32, lane_bits - shift_and_lane_size.first);
+            return 8;
+          }
+          case 'q': {
+            // SVE predicated shift immediate encoding, asr and lsr.
+            std::pair<int, int> shift_and_lane_size =
+                instr->GetSVEImmShiftAndLaneSizeLog2(
+                    /* is_predicated = */ true);
+            AppendToOutput("#%" PRId32, shift_and_lane_size.first);
+            return 8;
+          }
+          case 'r': {
+            // SVE unpredicated shift immediate encoding, lsl.
+            std::pair<int, int> shift_and_lane_size =
+                instr->GetSVEImmShiftAndLaneSizeLog2(
+                    /* is_predicated = */ false);
+            int lane_bits = 8 << shift_and_lane_size.second;
+            AppendToOutput("#%" PRId32, lane_bits - shift_and_lane_size.first);
+            return 8;
+          }
+          case 's': {
+            // SVE unpredicated shift immediate encoding, asr and lsr.
+            std::pair<int, int> shift_and_lane_size =
+                instr->GetSVEImmShiftAndLaneSizeLog2(
+                    /* is_predicated = */ false);
+            AppendToOutput("#%" PRId32, shift_and_lane_size.first);
+            return 8;
+          }
+          default:
+            VIXL_UNREACHABLE();
+            return 0;
+        }
+      } else {
+        AppendToOutput("#0x%" PRIx64, instr->GetImmLogical());
+        return 4;
+      }
     }
     case 'N': {  // INzcv.
       int nzcv = (instr->GetNzcv() << Flags_offset);
@@ -5442,12 +10129,21 @@
       AppendToOutput("#%" PRId32, instr->GetImmS());
       return 8;
     }
-    case 'S': {  // IS - Test and branch bit.
+    case 't': {  // It - Test and branch bit.
       AppendToOutput("#%" PRId32,
                      (instr->GetImmTestBranchBit5() << 5) |
                          instr->GetImmTestBranchBit40());
       return 2;
     }
+    case 'S': {  // ISveSvl - SVE 'mul vl' immediate for structured ld/st.
+      VIXL_ASSERT(strncmp(format, "ISveSvl", 7) == 0);
+      int imm = instr->ExtractSignedBits(19, 16);
+      if (imm != 0) {
+        int reg_count = instr->ExtractBits(22, 21) + 1;
+        AppendToOutput(", #%d, mul vl", imm * reg_count);
+      }
+      return 7;
+    }
     case 's': {  // Is - Shift (immediate).
       switch (format[2]) {
         case '1': {  // Is1 - SSHR.
@@ -5539,6 +10235,13 @@
               }
             }
             return 0;
+          } else if (strncmp(format,
+                             "IVInsSVEIndex",
+                             strlen("IVInsSVEIndex")) == 0) {
+            std::pair<int, int> index_and_lane_size =
+                instr->GetSVEPermuteIndexAndLaneSizeLog2();
+            AppendToOutput("%d", index_and_lane_size.first);
+            return strlen("IVInsSVEIndex");
           }
           VIXL_FALLTHROUGH();
         }
@@ -5547,27 +10250,7 @@
           return 9;
         }
         case 'M': {  // Modified Immediate cases.
-          if (strncmp(format, "IVMIImmFPHalf", strlen("IVMIImmFPHalf")) == 0) {
-            AppendToOutput("#0x%" PRIx32 " (%.4f)",
-                           instr->GetImmNEONabcdefgh(),
-                           FPToFloat(instr->GetImmNEONFP16(),
-                                     kIgnoreDefaultNaN));
-            return strlen("IVMIImmFPHalf");
-          } else if (strncmp(format,
-                             "IVMIImmFPSingle",
-                             strlen("IVMIImmFPSingle")) == 0) {
-            AppendToOutput("#0x%" PRIx32 " (%.4f)",
-                           instr->GetImmNEONabcdefgh(),
-                           instr->GetImmNEONFP32());
-            return strlen("IVMIImmFPSingle");
-          } else if (strncmp(format,
-                             "IVMIImmFPDouble",
-                             strlen("IVMIImmFPDouble")) == 0) {
-            AppendToOutput("#0x%" PRIx32 " (%.4f)",
-                           instr->GetImmNEONabcdefgh(),
-                           instr->GetImmNEONFP64());
-            return strlen("IVMIImmFPDouble");
-          } else if (strncmp(format, "IVMIImm8", strlen("IVMIImm8")) == 0) {
+          if (strncmp(format, "IVMIImm8", strlen("IVMIImm8")) == 0) {
             uint64_t imm8 = instr->GetImmNEONabcdefgh();
             AppendToOutput("#0x%" PRIx64, imm8);
             return strlen("IVMIImm8");
@@ -5647,6 +10330,48 @@
         }
       }
     }
+    case 'p': {  // Ipc - SVE predicate constraint specifier.
+      VIXL_ASSERT(format[2] == 'c');
+      unsigned pattern = instr->GetImmSVEPredicateConstraint();
+      switch (pattern) {
+        // VL1-VL8 are encoded directly.
+        case SVE_VL1:
+        case SVE_VL2:
+        case SVE_VL3:
+        case SVE_VL4:
+        case SVE_VL5:
+        case SVE_VL6:
+        case SVE_VL7:
+        case SVE_VL8:
+          AppendToOutput("vl%u", pattern);
+          break;
+        // VL16-VL256 are encoded as log2(N) + c.
+        case SVE_VL16:
+        case SVE_VL32:
+        case SVE_VL64:
+        case SVE_VL128:
+        case SVE_VL256:
+          AppendToOutput("vl%u", 16 << (pattern - SVE_VL16));
+          break;
+        // Special cases.
+        case SVE_POW2:
+          AppendToOutput("pow2");
+          break;
+        case SVE_MUL4:
+          AppendToOutput("mul4");
+          break;
+        case SVE_MUL3:
+          AppendToOutput("mul3");
+          break;
+        case SVE_ALL:
+          AppendToOutput("all");
+          break;
+        default:
+          AppendToOutput("#0x%x", pattern);
+          break;
+      }
+      return 3;
+    }
     default: {
       VIXL_UNIMPLEMENTED();
       return 0;
@@ -5736,11 +10461,11 @@
   VIXL_ASSERT(instr->GetShiftDP() <= 0x3);
 
   switch (format[1]) {
-    case 'D': {  // HDP.
+    case 'D': {  // NDP.
       VIXL_ASSERT(instr->GetShiftDP() != ROR);
       VIXL_FALLTHROUGH();
     }
-    case 'L': {  // HLo.
+    case 'L': {  // NLo.
       if (instr->GetImmDPShift() != 0) {
         const char *shift_type[] = {"lsl", "lsr", "asr", "ror"};
         AppendToOutput(", %s #%" PRId32,
@@ -5749,6 +10474,14 @@
       }
       return 3;
     }
+    case 'S': {  // NSveS (SVE structured load/store indexing shift).
+      VIXL_ASSERT(strncmp(format, "NSveS", 5) == 0);
+      int msz = instr->ExtractBits(24, 23);
+      if (msz > 0) {
+        AppendToOutput(", lsl #%d", msz);
+      }
+      return 5;
+    }
     default:
       VIXL_UNIMPLEMENTED();
       return 0;
@@ -5919,30 +10652,43 @@
 
 int Disassembler::SubstitutePrefetchField(const Instruction *instr,
                                           const char *format) {
-  VIXL_ASSERT(format[0] == 'P');
+  VIXL_ASSERT(format[0] == 'p');
   USE(format);
 
-  static const char *hints[] = {"ld", "li", "st"};
+  bool is_sve =
+      (strncmp(format, "prefSVEOp", strlen("prefSVEOp")) == 0) ? true : false;
+  int placeholder_length = is_sve ? 9 : 6;
   static const char *stream_options[] = {"keep", "strm"};
 
-  unsigned hint = instr->GetPrefetchHint();
+  auto get_hints = [](bool is_sve) -> std::vector<std::string> {
+    static const std::vector<std::string> sve_hints = {"ld", "st"};
+    static const std::vector<std::string> core_hints = {"ld", "li", "st"};
+    return (is_sve) ? sve_hints : core_hints;
+  };
+
+  std::vector<std::string> hints = get_hints(is_sve);
+  unsigned hint =
+      is_sve ? instr->GetSVEPrefetchHint() : instr->GetPrefetchHint();
   unsigned target = instr->GetPrefetchTarget() + 1;
   unsigned stream = instr->GetPrefetchStream();
 
-  if ((hint >= ArrayLength(hints)) || (target > 3)) {
+  if ((hint >= hints.size()) || (target > 3)) {
     // Unallocated prefetch operations.
-    int prefetch_mode = instr->GetImmPrefetchOperation();
-    AppendToOutput("#0b%c%c%c%c%c",
-                   (prefetch_mode & (1 << 4)) ? '1' : '0',
-                   (prefetch_mode & (1 << 3)) ? '1' : '0',
-                   (prefetch_mode & (1 << 2)) ? '1' : '0',
-                   (prefetch_mode & (1 << 1)) ? '1' : '0',
-                   (prefetch_mode & (1 << 0)) ? '1' : '0');
+    if (is_sve) {
+      std::bitset<4> prefetch_mode(instr->GetSVEImmPrefetchOperation());
+      AppendToOutput("#0b%s", prefetch_mode.to_string().c_str());
+    } else {
+      std::bitset<5> prefetch_mode(instr->GetImmPrefetchOperation());
+      AppendToOutput("#0b%s", prefetch_mode.to_string().c_str());
+    }
   } else {
     VIXL_ASSERT(stream < ArrayLength(stream_options));
-    AppendToOutput("p%sl%d%s", hints[hint], target, stream_options[stream]);
+    AppendToOutput("p%sl%d%s",
+                   hints[hint].c_str(),
+                   target,
+                   stream_options[stream]);
   }
-  return 6;
+  return placeholder_length;
 }
 
 int Disassembler::SubstituteBarrierField(const Instruction *instr,
@@ -5997,6 +10743,159 @@
   return 2;
 }
 
+int Disassembler::SubstituteIntField(const Instruction *instr,
+                                     const char *format) {
+  VIXL_ASSERT((format[0] == 'u') || (format[0] == 's'));
+
+  // A generic signed or unsigned int field uses a placeholder of the form
+  // 'sAABB and 'uAABB respectively where AA and BB are two digit bit positions
+  // between 00 and 31, and AA >= BB. The placeholder is substituted with the
+  // decimal integer represented by the bits in the instruction between
+  // positions AA and BB inclusive.
+  //
+  // In addition, split fields can be represented using 'sAABB:CCDD, where CCDD
+  // become the least-significant bits of the result, and bit AA is the sign bit
+  // (if 's is used).
+  int32_t bits = 0;
+  int width = 0;
+  const char *c = format;
+  do {
+    c++;  // Skip the 'u', 's' or ':'.
+    VIXL_ASSERT(strspn(c, "0123456789") == 4);
+    int msb = ((c[0] - '0') * 10) + (c[1] - '0');
+    int lsb = ((c[2] - '0') * 10) + (c[3] - '0');
+    c += 4;  // Skip the characters we just read.
+    int chunk_width = msb - lsb + 1;
+    VIXL_ASSERT((chunk_width > 0) && (chunk_width < 32));
+    bits = (bits << chunk_width) | (instr->ExtractBits(msb, lsb));
+    width += chunk_width;
+  } while (*c == ':');
+  VIXL_ASSERT(IsUintN(width, bits));
+
+  if (format[0] == 's') {
+    bits = ExtractSignedBitfield32(width - 1, 0, bits);
+  }
+
+  if (*c == '+') {
+    // A "+n" trailing the format specifier indicates the extracted value should
+    // be incremented by n. This is for cases where the encoding is zero-based,
+    // but range of values is not, eg. values [1, 16] encoded as [0, 15]
+    char *new_c;
+    uint64_t value = strtoul(c + 1, &new_c, 10);
+    c = new_c;
+    VIXL_ASSERT(IsInt32(value));
+    bits += value;
+  } else if (*c == '*') {
+    // Similarly, a "*n" trailing the format specifier indicates the extracted
+    // value should be multiplied by n. This is for cases where the encoded
+    // immediate is scaled, for example by access size.
+    char *new_c;
+    uint64_t value = strtoul(c + 1, &new_c, 10);
+    c = new_c;
+    VIXL_ASSERT(IsInt32(value));
+    bits *= value;
+  }
+
+  AppendToOutput("%d", bits);
+
+  return static_cast<int>(c - format);
+}
+
+int Disassembler::SubstituteSVESize(const Instruction *instr,
+                                    const char *format) {
+  USE(format);
+  VIXL_ASSERT(format[0] == 't');
+
+  static const char sizes[] = {'b', 'h', 's', 'd', 'q'};
+  // TODO: only the most common case for <size> is supported at the moment,
+  // and even then, the RESERVED values are handled as if they're not
+  // reserved.
+  unsigned size_in_bytes_log2 = instr->GetSVESize();
+  int placeholder_length = 1;
+  switch (format[1]) {
+    case 'l':
+      placeholder_length++;
+      if (format[2] == 's') {
+        // 'tls: Loads and stores
+        size_in_bytes_log2 = instr->ExtractBits(22, 21);
+        placeholder_length++;
+        if (format[3] == 's') {
+          // Sign extension load.
+          unsigned msize = instr->ExtractBits(24, 23);
+          if (msize > size_in_bytes_log2) size_in_bytes_log2 ^= 0x3;
+          placeholder_length++;
+        }
+      } else {
+        // 'tl: Logical operations
+        size_in_bytes_log2 = instr->GetSVEBitwiseImmLaneSizeInBytesLog2();
+      }
+      break;
+    case 'm':  // 'tmsz
+      VIXL_ASSERT(strncmp(format, "tmsz", 4) == 0);
+      placeholder_length += 3;
+      size_in_bytes_log2 = instr->ExtractBits(24, 23);
+      break;
+    case 's':
+      if (format[2] == 'z') {
+        VIXL_ASSERT((format[3] == 'x') || (format[3] == 's') ||
+                    (format[3] == 'p'));
+        if (format[3] == 'x') {
+          // 'tszx: Indexes.
+          std::pair<int, int> index_and_lane_size =
+              instr->GetSVEPermuteIndexAndLaneSizeLog2();
+          size_in_bytes_log2 = index_and_lane_size.second;
+        } else if (format[3] == 'p') {
+          // 'tszp: Predicated shifts.
+          std::pair<int, int> shift_and_lane_size =
+              instr->GetSVEImmShiftAndLaneSizeLog2(/* is_predicated = */ true);
+          size_in_bytes_log2 = shift_and_lane_size.second;
+        } else {
+          // 'tszs: Unpredicated shifts.
+          std::pair<int, int> shift_and_lane_size =
+              instr->GetSVEImmShiftAndLaneSizeLog2(/* is_predicated = */ false);
+          size_in_bytes_log2 = shift_and_lane_size.second;
+        }
+        placeholder_length += 3;  // skip `sz[x|s]`
+      }
+      break;
+    case 'h':
+      // Half size of the lane size field.
+      size_in_bytes_log2 -= 1;
+      placeholder_length++;
+      break;
+    case 'q':
+      // Quarter size of the lane size field.
+      size_in_bytes_log2 -= 2;
+      placeholder_length++;
+      break;
+    default:
+      break;
+  }
+
+  VIXL_ASSERT(size_in_bytes_log2 < ArrayLength(sizes));
+  AppendToOutput("%c", sizes[size_in_bytes_log2]);
+
+  return placeholder_length;
+}
+
+int Disassembler::SubstituteTernary(const Instruction *instr,
+                                    const char *format) {
+  VIXL_ASSERT((format[0] == '?') && (format[3] == ':'));
+
+  // The ternary substitution of the format "'?bb:TF" is replaced by a single
+  // character, either T or F, depending on the value of the bit at position
+  // bb in the instruction. For example, "'?31:xw" is substituted with "x" if
+  // bit 31 is true, and "w" otherwise.
+  VIXL_ASSERT(strspn(&format[1], "0123456789") == 2);
+  char *c;
+  uint64_t value = strtoul(&format[1], &c, 10);
+  VIXL_ASSERT(value < (kInstructionSize * kBitsPerByte));
+  VIXL_ASSERT((*c == ':') && (strlen(c) >= 3));  // Minimum of ":TF"
+  c++;
+  AppendToOutput("%c", c[1 - instr->ExtractBit(static_cast<int>(value))]);
+  return 6;
+}
+
 void Disassembler::ResetOutput() {
   buffer_pos_ = 0;
   buffer_[buffer_pos_] = 0;
@@ -6040,9 +10939,28 @@
 
 
 void PrintDisassembler::ProcessOutput(const Instruction *instr) {
+  int64_t address = CodeRelativeAddress(instr);
+
+  uint64_t abs_address;
+  const char *sign;
+  if (signed_addresses_) {
+    if (address < 0) {
+      sign = "-";
+      abs_address = -static_cast<uint64_t>(address);
+    } else {
+      // Leave a leading space, to maintain alignment.
+      sign = " ";
+      abs_address = address;
+    }
+  } else {
+    sign = "";
+    abs_address = address;
+  }
+
   int bytes_printed = fprintf(stream_,
-                              "0x%016" PRIx64 "  %08" PRIx32 "\t\t%s",
-                              reinterpret_cast<uint64_t>(instr),
+                              "%s0x%016" PRIx64 "  %08" PRIx32 "\t\t%s",
+                              sign,
+                              abs_address,
                               instr->GetInstructionBits(),
                               GetOutput());
   if (cpu_features_auditor_ != NULL) {
diff --git a/src/aarch64/disasm-aarch64.h b/src/aarch64/disasm-aarch64.h
index c650bee..176fb79 100644
--- a/src/aarch64/disasm-aarch64.h
+++ b/src/aarch64/disasm-aarch64.h
@@ -27,6 +27,8 @@
 #ifndef VIXL_AARCH64_DISASM_AARCH64_H
 #define VIXL_AARCH64_DISASM_AARCH64_H
 
+#include <utility>
+
 #include "../globals-vixl.h"
 #include "../utils-vixl.h"
 
@@ -112,10 +114,13 @@
  private:
   void Format(const Instruction* instr,
               const char* mnemonic,
-              const char* format);
+              const char* format0,
+              const char* format1 = NULL);
   void Substitute(const Instruction* instr, const char* string);
   int SubstituteField(const Instruction* instr, const char* format);
   int SubstituteRegisterField(const Instruction* instr, const char* format);
+  int SubstitutePredicateRegisterField(const Instruction* instr,
+                                       const char* format);
   int SubstituteImmediateField(const Instruction* instr, const char* format);
   int SubstituteLiteralField(const Instruction* instr, const char* format);
   int SubstituteBitfieldImmediateField(const Instruction* instr,
@@ -130,6 +135,14 @@
   int SubstituteBarrierField(const Instruction* instr, const char* format);
   int SubstituteSysOpField(const Instruction* instr, const char* format);
   int SubstituteCrField(const Instruction* instr, const char* format);
+  int SubstituteIntField(const Instruction* instr, const char* format);
+  int SubstituteSVESize(const Instruction* instr, const char* format);
+  int SubstituteTernary(const Instruction* instr, const char* format);
+
+  std::pair<unsigned, unsigned> GetRegNumForField(const Instruction* instr,
+                                                  char reg_prefix,
+                                                  const char* field);
+
   bool RdIsZROrSP(const Instruction* instr) const {
     return (instr->GetRd() == kZeroRegCode);
   }
@@ -173,6 +186,7 @@
       : cpu_features_auditor_(NULL),
         cpu_features_prefix_("// Needs: "),
         cpu_features_suffix_(""),
+        signed_addresses_(false),
         stream_(stream) {}
 
   // Convenience helpers for quick disassembly, without having to manually
@@ -201,12 +215,23 @@
     cpu_features_suffix_ = suffix;
   }
 
+  // By default, addresses are printed as simple, unsigned 64-bit hex values.
+  //
+  // With `PrintSignedAddresses(true)`:
+  //  - negative addresses are printed as "-0x1234...",
+  //  - positive addresses have a leading space, like " 0x1234...", to maintain
+  //    alignment.
+  //
+  // This is most useful in combination with Disassembler::MapCodeAddress(...).
+  void PrintSignedAddresses(bool s) { signed_addresses_ = s; }
+
  protected:
   virtual void ProcessOutput(const Instruction* instr) VIXL_OVERRIDE;
 
   CPUFeaturesAuditor* cpu_features_auditor_;
   const char* cpu_features_prefix_;
   const char* cpu_features_suffix_;
+  bool signed_addresses_;
 
  private:
   FILE* stream_;
diff --git a/src/aarch64/instructions-aarch64.cc b/src/aarch64/instructions-aarch64.cc
index a99a045..b3e2838 100644
--- a/src/aarch64/instructions-aarch64.cc
+++ b/src/aarch64/instructions-aarch64.cc
@@ -35,7 +35,8 @@
                                     unsigned width) {
   VIXL_ASSERT((width == 2) || (width == 4) || (width == 8) || (width == 16) ||
               (width == 32));
-  VIXL_ASSERT((reg_size == kWRegSize) || (reg_size == kXRegSize));
+  VIXL_ASSERT((reg_size == kBRegSize) || (reg_size == kHRegSize) ||
+              (reg_size == kSRegSize) || (reg_size == kDRegSize));
   uint64_t result = value & ((UINT64_C(1) << width) - 1);
   for (unsigned i = width; i < reg_size; i *= 2) {
     result |= (result << i);
@@ -43,6 +44,503 @@
   return result;
 }
 
+bool Instruction::CanTakeSVEMovprfx(const Instruction* movprfx) const {
+  bool movprfx_is_predicated = movprfx->Mask(SVEMovprfxMask) == MOVPRFX_z_p_z;
+  bool movprfx_is_unpredicated =
+      movprfx->Mask(SVEConstructivePrefix_UnpredicatedMask) == MOVPRFX_z_z;
+  VIXL_ASSERT(movprfx_is_predicated != movprfx_is_unpredicated);
+
+  int movprfx_zd = movprfx->GetRd();
+  int movprfx_pg = movprfx_is_predicated ? movprfx->GetPgLow8() : -1;
+  VectorFormat movprfx_vform =
+      movprfx_is_predicated ? movprfx->GetSVEVectorFormat() : kFormatUndefined;
+
+  bool pg_matches_low8 = movprfx_pg == GetPgLow8();
+  bool vform_matches = movprfx_vform == GetSVEVectorFormat();
+  bool zd_matches = movprfx_zd == GetRd();
+  bool zd_matches_zm = movprfx_zd == GetRm();
+  bool zd_matches_zn = movprfx_zd == GetRn();
+
+  switch (Mask(SVEBitwiseLogicalWithImm_UnpredicatedMask)) {
+    case AND_z_zi:
+    case EOR_z_zi:
+    case ORR_z_zi:
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVEBitwiseLogical_PredicatedMask)) {
+    case AND_z_p_zz:
+    case BIC_z_p_zz:
+    case EOR_z_p_zz:
+    case ORR_z_p_zz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return zd_matches;
+  }
+  switch (Mask(SVEBitwiseShiftByImm_PredicatedMask)) {
+    case ASRD_z_p_zi:
+    case ASR_z_p_zi:
+    case LSL_z_p_zi:
+    case LSR_z_p_zi:
+      if (movprfx_is_predicated) {
+        if (!pg_matches_low8) return false;
+        unsigned tsz = ExtractBits<0x00c00300>();
+        VectorFormat instr_vform =
+            SVEFormatFromLaneSizeInBytesLog2(HighestSetBitPosition(tsz));
+        if (movprfx_vform != instr_vform) return false;
+      }
+      return zd_matches;
+  }
+  switch (Mask(SVEBitwiseShiftByVector_PredicatedMask)) {
+    case ASRR_z_p_zz:
+    case ASR_z_p_zz:
+    case LSLR_z_p_zz:
+    case LSL_z_p_zz:
+    case LSRR_z_p_zz:
+    case LSR_z_p_zz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return zd_matches;
+  }
+  switch (Mask(SVEBitwiseShiftByWideElements_PredicatedMask)) {
+    case ASR_z_p_zw:
+    case LSL_z_p_zw:
+    case LSR_z_p_zw:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return zd_matches;
+  }
+  switch (Mask(SVEConditionallyBroadcastElementToVectorMask)) {
+    case CLASTA_z_p_zz:
+    case CLASTB_z_p_zz:
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVECopyFPImm_PredicatedMask)) {
+    case FCPY_z_p_i:
+      if (movprfx_is_predicated) {
+        if (!vform_matches) return false;
+        if (movprfx_pg != GetRx<19, 16>()) return false;
+      }
+      return zd_matches;
+  }
+  switch (Mask(SVECopyGeneralRegisterToVector_PredicatedMask)) {
+    case CPY_z_p_r:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      return zd_matches;
+  }
+  switch (Mask(SVECopyIntImm_PredicatedMask)) {
+    case CPY_z_p_i:
+      if (movprfx_is_predicated) {
+        if (!vform_matches) return false;
+        if (movprfx_pg != GetRx<19, 16>()) return false;
+      }
+      // Only the merging form can take movprfx.
+      if (ExtractBit(14) == 0) return false;
+      return zd_matches;
+  }
+  switch (Mask(SVECopySIMDFPScalarRegisterToVector_PredicatedMask)) {
+    case CPY_z_p_v:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      return zd_matches && !zd_matches_zn;
+  }
+  switch (Mask(SVEFPArithmeticWithImm_PredicatedMask)) {
+    case FADD_z_p_zs:
+    case FMAXNM_z_p_zs:
+    case FMAX_z_p_zs:
+    case FMINNM_z_p_zs:
+    case FMIN_z_p_zs:
+    case FMUL_z_p_zs:
+    case FSUBR_z_p_zs:
+    case FSUB_z_p_zs:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      return zd_matches;
+  }
+  switch (Mask(SVEFPArithmetic_PredicatedMask)) {
+    case FABD_z_p_zz:
+    case FADD_z_p_zz:
+    case FDIVR_z_p_zz:
+    case FDIV_z_p_zz:
+    case FMAXNM_z_p_zz:
+    case FMAX_z_p_zz:
+    case FMINNM_z_p_zz:
+    case FMIN_z_p_zz:
+    case FMULX_z_p_zz:
+    case FMUL_z_p_zz:
+    case FSCALE_z_p_zz:
+    case FSUBR_z_p_zz:
+    case FSUB_z_p_zz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return zd_matches;
+  }
+  switch (Mask(SVEFPComplexAdditionMask)) {
+    case FCADD_z_p_zz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return zd_matches;
+  }
+  switch (Mask(SVEFPComplexMulAddIndexMask)) {
+    case FCMLA_z_zzzi_h:
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<18, 16>()) return false;
+      return movprfx_is_unpredicated && zd_matches && !zd_matches_zn;
+    case FCMLA_z_zzzi_s:
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<19, 16>()) return false;
+      return movprfx_is_unpredicated && zd_matches && !zd_matches_zn;
+  }
+  switch (Mask(SVEFPComplexMulAddMask)) {
+    case FCMLA_z_p_zzz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      return zd_matches && !zd_matches_zm && !zd_matches_zn;
+  }
+  switch (Mask(SVEFPConvertPrecisionMask)) {
+    case FCVT_z_p_z_d2h:
+    case FCVT_z_p_z_d2s:
+    case FCVT_z_p_z_h2d:
+    case FCVT_z_p_z_h2s:
+    case FCVT_z_p_z_s2d:
+    case FCVT_z_p_z_s2h:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      return zd_matches && !zd_matches_zn;
+  }
+  switch (Mask(SVEFPConvertToIntMask)) {
+    case FCVTZS_z_p_z_d2w:
+    case FCVTZS_z_p_z_d2x:
+    case FCVTZS_z_p_z_fp162h:
+    case FCVTZS_z_p_z_fp162w:
+    case FCVTZS_z_p_z_fp162x:
+    case FCVTZS_z_p_z_s2w:
+    case FCVTZS_z_p_z_s2x:
+    case FCVTZU_z_p_z_d2w:
+    case FCVTZU_z_p_z_d2x:
+    case FCVTZU_z_p_z_fp162h:
+    case FCVTZU_z_p_z_fp162w:
+    case FCVTZU_z_p_z_fp162x:
+    case FCVTZU_z_p_z_s2w:
+    case FCVTZU_z_p_z_s2x:
+      if (movprfx_is_predicated) {
+        if (!pg_matches_low8) return false;
+        // The movprfx element size must match the instruction's maximum encoded
+        // element size. We have to partially decode the opc and opc2 fields to
+        // find this.
+        unsigned opc = ExtractBits(23, 22);
+        unsigned opc2 = ExtractBits(18, 17);
+        VectorFormat instr_vform =
+            SVEFormatFromLaneSizeInBytesLog2(std::max(opc, opc2));
+        if (movprfx_vform != instr_vform) return false;
+      }
+      return zd_matches && !zd_matches_zn;
+  }
+  switch (Mask(SVEFPMulAddIndexMask)) {
+    case FMLA_z_zzzi_h:
+    case FMLA_z_zzzi_h_i3h:
+    case FMLA_z_zzzi_s:
+    case FMLS_z_zzzi_h:
+    case FMLS_z_zzzi_h_i3h:
+    case FMLS_z_zzzi_s:
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<18, 16>()) return false;
+      return movprfx_is_unpredicated && zd_matches && !zd_matches_zn;
+    case FMLA_z_zzzi_d:
+    case FMLS_z_zzzi_d:
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<19, 16>()) return false;
+      return movprfx_is_unpredicated && zd_matches && !zd_matches_zn;
+  }
+  switch (Mask(SVEFPMulAddMask)) {
+    case FMAD_z_p_zzz:
+    case FMSB_z_p_zzz:
+    case FNMAD_z_p_zzz:
+    case FNMSB_z_p_zzz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<20, 16>()) return false;
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return zd_matches;
+    case FMLA_z_p_zzz:
+    case FMLS_z_p_zzz:
+    case FNMLA_z_p_zzz:
+    case FNMLS_z_p_zzz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      return zd_matches && !zd_matches_zm && !zd_matches_zn;
+  }
+  switch (Mask(SVEFPRoundToIntegralValueMask)) {
+    case FRINTA_z_p_z:
+    case FRINTI_z_p_z:
+    case FRINTM_z_p_z:
+    case FRINTN_z_p_z:
+    case FRINTP_z_p_z:
+    case FRINTX_z_p_z:
+    case FRINTZ_z_p_z:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      return zd_matches && !zd_matches_zn;
+  }
+  switch (Mask(SVEFPTrigMulAddCoefficientMask)) {
+    case FTMAD_z_zzi:
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVEFPUnaryOpMask)) {
+    case FRECPX_z_p_z:
+    case FSQRT_z_p_z:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      return zd_matches && !zd_matches_zn;
+  }
+  switch (Mask(SVEIncDecByPredicateCountMask)) {
+    case DECP_z_p_z:
+    case INCP_z_p_z:
+    case SQDECP_z_p_z:
+    case SQINCP_z_p_z:
+    case UQDECP_z_p_z:
+    case UQINCP_z_p_z:
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVEIncDecVectorByElementCountMask)) {
+    case DECD_z_zs:
+    case DECH_z_zs:
+    case DECW_z_zs:
+    case INCD_z_zs:
+    case INCH_z_zs:
+    case INCW_z_zs:
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVEInsertGeneralRegisterMask)) {
+    case INSR_z_r:
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVEInsertSIMDFPScalarRegisterMask)) {
+    case INSR_z_v:
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVEIntAddSubtractImm_UnpredicatedMask)) {
+    case ADD_z_zi:
+    case SQADD_z_zi:
+    case SQSUB_z_zi:
+    case SUBR_z_zi:
+    case SUB_z_zi:
+    case UQADD_z_zi:
+    case UQSUB_z_zi:
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVEIntAddSubtractVectors_PredicatedMask)) {
+    case ADD_z_p_zz:
+    case SUBR_z_p_zz:
+    case SUB_z_p_zz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return zd_matches;
+  }
+  switch (Mask(SVEIntConvertToFPMask)) {
+    case SCVTF_z_p_z_h2fp16:
+    case SCVTF_z_p_z_w2d:
+    case SCVTF_z_p_z_w2fp16:
+    case SCVTF_z_p_z_w2s:
+    case SCVTF_z_p_z_x2d:
+    case SCVTF_z_p_z_x2fp16:
+    case SCVTF_z_p_z_x2s:
+    case UCVTF_z_p_z_h2fp16:
+    case UCVTF_z_p_z_w2d:
+    case UCVTF_z_p_z_w2fp16:
+    case UCVTF_z_p_z_w2s:
+    case UCVTF_z_p_z_x2d:
+    case UCVTF_z_p_z_x2fp16:
+    case UCVTF_z_p_z_x2s:
+      if (movprfx_is_predicated) {
+        if (!pg_matches_low8) return false;
+        // The movprfx element size must match the instruction's maximum encoded
+        // element size. We have to partially decode the opc and opc2 fields to
+        // find this.
+        unsigned opc = ExtractBits(23, 22);
+        unsigned opc2 = ExtractBits(18, 17);
+        VectorFormat instr_vform =
+            SVEFormatFromLaneSizeInBytesLog2(std::max(opc, opc2));
+        if (movprfx_vform != instr_vform) return false;
+      }
+      return zd_matches && !zd_matches_zn;
+  }
+  switch (Mask(SVEIntDivideVectors_PredicatedMask)) {
+    case SDIVR_z_p_zz:
+    case SDIV_z_p_zz:
+    case UDIVR_z_p_zz:
+    case UDIV_z_p_zz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return zd_matches;
+  }
+  switch (Mask(SVEIntMinMaxDifference_PredicatedMask)) {
+    case SABD_z_p_zz:
+    case SMAX_z_p_zz:
+    case SMIN_z_p_zz:
+    case UABD_z_p_zz:
+    case UMAX_z_p_zz:
+    case UMIN_z_p_zz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return zd_matches;
+  }
+  switch (Mask(SVEIntMinMaxImm_UnpredicatedMask)) {
+    case SMAX_z_zi:
+    case SMIN_z_zi:
+    case UMAX_z_zi:
+    case UMIN_z_zi:
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVEIntMulAddPredicatedMask)) {
+    case MAD_z_p_zzz:
+    case MSB_z_p_zzz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return zd_matches && !zd_matches_zm;
+    case MLA_z_p_zzz:
+    case MLS_z_p_zzz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      return zd_matches && !zd_matches_zm && !zd_matches_zn;
+  }
+  switch (Mask(SVEIntMulAddUnpredicatedMask)) {
+    case SDOT_z_zzz:
+    case UDOT_z_zzz:
+      return movprfx_is_unpredicated && zd_matches && !zd_matches_zm &&
+             !zd_matches_zn;
+  }
+  switch (Mask(SVEIntMulImm_UnpredicatedMask)) {
+    case MUL_z_zi:
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVEIntMulVectors_PredicatedMask)) {
+    case MUL_z_p_zz:
+    case SMULH_z_p_zz:
+    case UMULH_z_p_zz:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return zd_matches;
+  }
+  switch (Mask(SVEIntUnaryArithmeticPredicatedMask)) {
+    case ABS_z_p_z:
+    case CLS_z_p_z:
+    case CLZ_z_p_z:
+    case CNOT_z_p_z:
+    case CNT_z_p_z:
+    case FABS_z_p_z:
+    case FNEG_z_p_z:
+    case NEG_z_p_z:
+    case NOT_z_p_z:
+    case SXTB_z_p_z:
+    case SXTH_z_p_z:
+    case SXTW_z_p_z:
+    case UXTB_z_p_z:
+    case UXTH_z_p_z:
+    case UXTW_z_p_z:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      return zd_matches && !zd_matches_zn;
+  }
+  switch (Mask(SVEMulIndexMask)) {
+    case SDOT_z_zzzi_s:
+    case UDOT_z_zzzi_s:
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<18, 16>()) return false;
+      return movprfx_is_unpredicated && zd_matches && !zd_matches_zn;
+    case SDOT_z_zzzi_d:
+    case UDOT_z_zzzi_d:
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<19, 16>()) return false;
+      return movprfx_is_unpredicated && zd_matches && !zd_matches_zn;
+  }
+  switch (Mask(SVEPermuteVectorExtractMask)) {
+    case EXT_z_zi_des:
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVEReverseWithinElementsMask)) {
+    case RBIT_z_p_z:
+    case REVB_z_z:
+    case REVH_z_z:
+    case REVW_z_z:
+      if (movprfx_is_predicated && !(pg_matches_low8 && vform_matches)) {
+        return false;
+      }
+      return zd_matches && !zd_matches_zn;
+  }
+  switch (Mask(SVESaturatingIncDecVectorByElementCountMask)) {
+    case SQDECD_z_zs:
+    case SQDECH_z_zs:
+    case SQDECW_z_zs:
+    case SQINCD_z_zs:
+    case SQINCH_z_zs:
+    case SQINCW_z_zs:
+    case UQDECD_z_zs:
+    case UQDECH_z_zs:
+    case UQDECW_z_zs:
+    case UQINCD_z_zs:
+    case UQINCH_z_zs:
+    case UQINCW_z_zs:
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  switch (Mask(SVEVectorSplice_DestructiveMask)) {
+    case SPLICE_z_p_zz_des:
+      // The movprfx's `zd` must not alias any other inputs.
+      if (movprfx_zd == GetRx<9, 5>()) return false;
+      return movprfx_is_unpredicated && zd_matches;
+  }
+  return false;
+}  // NOLINT(readability/fn_size)
 
 bool Instruction::IsLoad() const {
   if (Mask(LoadStoreAnyFMask) != LoadStoreAnyFixed) {
@@ -103,6 +601,16 @@
 }
 
 
+std::pair<int, int> Instruction::GetSVEPermuteIndexAndLaneSizeLog2() const {
+  uint32_t imm_2 = ExtractBits<0x00C00000>();
+  uint32_t tsz_5 = ExtractBits<0x001F0000>();
+  uint32_t imm_7 = (imm_2 << 5) | tsz_5;
+  int lane_size_in_byte_log_2 = std::min(CountTrailingZeros(tsz_5), 5);
+  int index = ExtractUnsignedBitfield32(6, lane_size_in_byte_log_2 + 1, imm_7);
+  return std::make_pair(index, lane_size_in_byte_log_2);
+}
+
+
 // Logical immediates can't encode zero, so a return value of zero is used to
 // indicate a failure case. Specifically, where the constraints on imm_s are
 // not met.
@@ -111,7 +619,108 @@
   int32_t n = GetBitN();
   int32_t imm_s = GetImmSetBits();
   int32_t imm_r = GetImmRotate();
+  return DecodeImmBitMask(n, imm_s, imm_r, reg_size);
+}
 
+// Logical immediates can't encode zero, so a return value of zero is used to
+// indicate a failure case. Specifically, where the constraints on imm_s are
+// not met.
+uint64_t Instruction::GetSVEImmLogical() const {
+  int n = GetSVEBitN();
+  int imm_s = GetSVEImmSetBits();
+  int imm_r = GetSVEImmRotate();
+  int lane_size_in_bytes_log2 = GetSVEBitwiseImmLaneSizeInBytesLog2();
+  switch (lane_size_in_bytes_log2) {
+    case kDRegSizeInBytesLog2:
+    case kSRegSizeInBytesLog2:
+    case kHRegSizeInBytesLog2:
+    case kBRegSizeInBytesLog2: {
+      int lane_size_in_bits = 1 << (lane_size_in_bytes_log2 + 3);
+      return DecodeImmBitMask(n, imm_s, imm_r, lane_size_in_bits);
+    }
+    default:
+      return 0;
+  }
+}
+
+std::pair<int, int> Instruction::GetSVEImmShiftAndLaneSizeLog2(
+    bool is_predicated) const {
+  Instr tsize =
+      is_predicated ? ExtractBits<0x00C00300>() : ExtractBits<0x00D80000>();
+  Instr imm_3 =
+      is_predicated ? ExtractBits<0x000000E0>() : ExtractBits<0x00070000>();
+  if (tsize == 0) {
+    // The bit field `tsize` means undefined if it is zero, so return a
+    // convenience value kWMinInt to indicate a failure case.
+    return std::make_pair(kWMinInt, kWMinInt);
+  }
+
+  int lane_size_in_bytes_log_2 = 32 - CountLeadingZeros(tsize, 32) - 1;
+  int esize = (1 << lane_size_in_bytes_log_2) * kBitsPerByte;
+  int shift = (2 * esize) - ((tsize << 3) | imm_3);
+  return std::make_pair(shift, lane_size_in_bytes_log_2);
+}
+
+int Instruction::GetSVEMsizeFromDtype(bool is_signed, int dtype_h_lsb) const {
+  Instr dtype_h = ExtractBits(dtype_h_lsb + 1, dtype_h_lsb);
+  if (is_signed) {
+    dtype_h = dtype_h ^ 0x3;
+  }
+  return dtype_h;
+}
+
+int Instruction::GetSVEEsizeFromDtype(bool is_signed, int dtype_l_lsb) const {
+  Instr dtype_l = ExtractBits(dtype_l_lsb + 1, dtype_l_lsb);
+  if (is_signed) {
+    dtype_l = dtype_l ^ 0x3;
+  }
+  return dtype_l;
+}
+
+int Instruction::GetSVEBitwiseImmLaneSizeInBytesLog2() const {
+  int n = GetSVEBitN();
+  int imm_s = GetSVEImmSetBits();
+  unsigned type_bitset =
+      (n << SVEImmSetBits_width) | (~imm_s & GetUintMask(SVEImmSetBits_width));
+
+  // An lane size is constructed from the n and imm_s bits according to
+  // the following table:
+  //
+  // N   imms   size
+  // 0  0xxxxx   32
+  // 0  10xxxx   16
+  // 0  110xxx    8
+  // 0  1110xx    8
+  // 0  11110x    8
+  // 1  xxxxxx   64
+
+  if (type_bitset == 0) {
+    // Bail out early since `HighestSetBitPosition` doesn't accept zero
+    // value input.
+    return -1;
+  }
+
+  switch (HighestSetBitPosition(type_bitset)) {
+    case 6:
+      return kDRegSizeInBytesLog2;
+    case 5:
+      return kSRegSizeInBytesLog2;
+    case 4:
+      return kHRegSizeInBytesLog2;
+    case 3:
+    case 2:
+    case 1:
+      return kBRegSizeInBytesLog2;
+    default:
+      // RESERVED encoding.
+      return -1;
+  }
+}
+
+uint64_t Instruction::DecodeImmBitMask(int32_t n,
+                                       int32_t imm_s,
+                                       int32_t imm_r,
+                                       int32_t size) const {
   // An integer is constructed from the n, imm_s and imm_r bits according to
   // the following table:
   //
@@ -146,7 +755,7 @@
           return 0;
         }
         uint64_t bits = (UINT64_C(1) << ((imm_s & mask) + 1)) - 1;
-        return RepeatBitsAcrossReg(reg_size,
+        return RepeatBitsAcrossReg(size,
                                    RotateRight(bits, imm_r & mask, width),
                                    width);
       }
@@ -397,8 +1006,6 @@
 
 
 VectorFormat VectorFormatHalfWidth(VectorFormat vform) {
-  VIXL_ASSERT(vform == kFormat8H || vform == kFormat4S || vform == kFormat2D ||
-              vform == kFormatH || vform == kFormatS || vform == kFormatD);
   switch (vform) {
     case kFormat8H:
       return kFormat8B;
@@ -412,6 +1019,13 @@
       return kFormatH;
     case kFormatD:
       return kFormatS;
+    case kFormatVnH:
+      return kFormatVnB;
+    case kFormatVnS:
+      return kFormatVnH;
+    case kFormatVnD:
+      return kFormatVnS;
+      break;
     default:
       VIXL_UNREACHABLE();
       return kFormatUndefined;
@@ -480,6 +1094,12 @@
       return kFormat2S;
     case kFormat2D:
       return kFormat4S;
+    case kFormatVnH:
+      return kFormatVnB;
+    case kFormatVnS:
+      return kFormatVnH;
+    case kFormatVnD:
+      return kFormatVnS;
     default:
       VIXL_UNREACHABLE();
       return kFormatUndefined;
@@ -518,8 +1138,8 @@
 }
 
 
-VectorFormat ScalarFormatFromLaneSize(int laneSize) {
-  switch (laneSize) {
+VectorFormat ScalarFormatFromLaneSize(int lane_size_in_bits) {
+  switch (lane_size_in_bits) {
     case 8:
       return kFormatB;
     case 16:
@@ -535,6 +1155,69 @@
 }
 
 
+bool IsSVEFormat(VectorFormat vform) {
+  switch (vform) {
+    case kFormatVnB:
+    case kFormatVnH:
+    case kFormatVnS:
+    case kFormatVnD:
+    case kFormatVnQ:
+      return true;
+    default:
+      return false;
+  }
+}
+
+
+VectorFormat SVEFormatFromLaneSizeInBytes(int lane_size_in_bytes) {
+  switch (lane_size_in_bytes) {
+    case 1:
+      return kFormatVnB;
+    case 2:
+      return kFormatVnH;
+    case 4:
+      return kFormatVnS;
+    case 8:
+      return kFormatVnD;
+    case 16:
+      return kFormatVnQ;
+    default:
+      VIXL_UNREACHABLE();
+      return kFormatUndefined;
+  }
+}
+
+
+VectorFormat SVEFormatFromLaneSizeInBits(int lane_size_in_bits) {
+  switch (lane_size_in_bits) {
+    case 8:
+    case 16:
+    case 32:
+    case 64:
+    case 128:
+      return SVEFormatFromLaneSizeInBytes(lane_size_in_bits / kBitsPerByte);
+    default:
+      VIXL_UNREACHABLE();
+      return kFormatUndefined;
+  }
+}
+
+
+VectorFormat SVEFormatFromLaneSizeInBytesLog2(int lane_size_in_bytes_log2) {
+  switch (lane_size_in_bytes_log2) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+      return SVEFormatFromLaneSizeInBytes(1 << lane_size_in_bytes_log2);
+    default:
+      VIXL_UNREACHABLE();
+      return kFormatUndefined;
+  }
+}
+
+
 VectorFormat ScalarFormatFromFormat(VectorFormat vform) {
   return ScalarFormatFromLaneSize(LaneSizeInBitsFromFormat(vform));
 }
@@ -542,6 +1225,7 @@
 
 unsigned RegisterSizeInBitsFromFormat(VectorFormat vform) {
   VIXL_ASSERT(vform != kFormatUndefined);
+  VIXL_ASSERT(!IsSVEFormat(vform));
   switch (vform) {
     case kFormatB:
       return kBRegSize;
@@ -551,14 +1235,19 @@
     case kFormat2H:
       return kSRegSize;
     case kFormatD:
-      return kDRegSize;
     case kFormat8B:
     case kFormat4H:
     case kFormat2S:
     case kFormat1D:
       return kDRegSize;
-    default:
+    case kFormat16B:
+    case kFormat8H:
+    case kFormat4S:
+    case kFormat2D:
       return kQRegSize;
+    default:
+      VIXL_UNREACHABLE();
+      return 0;
   }
 }
 
@@ -574,20 +1263,26 @@
     case kFormatB:
     case kFormat8B:
     case kFormat16B:
+    case kFormatVnB:
       return 8;
     case kFormatH:
     case kFormat2H:
     case kFormat4H:
     case kFormat8H:
+    case kFormatVnH:
       return 16;
     case kFormatS:
     case kFormat2S:
     case kFormat4S:
+    case kFormatVnS:
       return 32;
     case kFormatD:
     case kFormat1D:
     case kFormat2D:
+    case kFormatVnD:
       return 64;
+    case kFormatVnQ:
+      return 128;
     default:
       VIXL_UNREACHABLE();
       return 0;
@@ -606,20 +1301,26 @@
     case kFormatB:
     case kFormat8B:
     case kFormat16B:
+    case kFormatVnB:
       return 0;
     case kFormatH:
     case kFormat2H:
     case kFormat4H:
     case kFormat8H:
+    case kFormatVnH:
       return 1;
     case kFormatS:
     case kFormat2S:
     case kFormat4S:
+    case kFormatVnS:
       return 2;
     case kFormatD:
     case kFormat1D:
     case kFormat2D:
+    case kFormatVnD:
       return 3;
+    case kFormatVnQ:
+      return 4;
     default:
       VIXL_UNREACHABLE();
       return 0;
@@ -697,17 +1398,19 @@
 
 
 int64_t MaxIntFromFormat(VectorFormat vform) {
-  return INT64_MAX >> (64 - LaneSizeInBitsFromFormat(vform));
+  int lane_size = LaneSizeInBitsFromFormat(vform);
+  return static_cast<int64_t>(GetUintMask(lane_size) >> 1);
 }
 
 
 int64_t MinIntFromFormat(VectorFormat vform) {
-  return INT64_MIN >> (64 - LaneSizeInBitsFromFormat(vform));
+  return -MaxIntFromFormat(vform) - 1;
 }
 
 
 uint64_t MaxUintFromFormat(VectorFormat vform) {
-  return UINT64_MAX >> (64 - LaneSizeInBitsFromFormat(vform));
+  return GetUintMask(LaneSizeInBitsFromFormat(vform));
 }
+
 }  // namespace aarch64
 }  // namespace vixl
diff --git a/src/aarch64/instructions-aarch64.h b/src/aarch64/instructions-aarch64.h
index 6d4f96b..5f56ae1 100644
--- a/src/aarch64/instructions-aarch64.h
+++ b/src/aarch64/instructions-aarch64.h
@@ -81,6 +81,7 @@
 const uint64_t kHRegMask = UINT64_C(0xffff);
 const uint64_t kSRegMask = UINT64_C(0xffffffff);
 const uint64_t kDRegMask = UINT64_C(0xffffffffffffffff);
+const uint64_t kHSignMask = UINT64_C(0x8000);
 const uint64_t kSSignMask = UINT64_C(0x80000000);
 const uint64_t kDSignMask = UINT64_C(0x8000000000000000);
 const uint64_t kWSignMask = UINT64_C(0x80000000);
@@ -116,6 +117,30 @@
 
 const uint64_t kTTBRMask = UINT64_C(1) << 55;
 
+// We can't define a static kZRegSize because the size depends on the
+// implementation. However, it is sometimes useful to know the minimum and
+// maxmimum possible sizes.
+const unsigned kZRegMinSize = 128;
+const unsigned kZRegMinSizeLog2 = 7;
+const unsigned kZRegMinSizeInBytes = kZRegMinSize / 8;
+const unsigned kZRegMinSizeInBytesLog2 = kZRegMinSizeLog2 - 3;
+const unsigned kZRegMaxSize = 2048;
+const unsigned kZRegMaxSizeLog2 = 11;
+const unsigned kZRegMaxSizeInBytes = kZRegMaxSize / 8;
+const unsigned kZRegMaxSizeInBytesLog2 = kZRegMaxSizeLog2 - 3;
+
+// The P register size depends on the Z register size.
+const unsigned kZRegBitsPerPRegBit = kBitsPerByte;
+const unsigned kZRegBitsPerPRegBitLog2 = 3;
+const unsigned kPRegMinSize = kZRegMinSize / kZRegBitsPerPRegBit;
+const unsigned kPRegMinSizeLog2 = kZRegMinSizeLog2 - 3;
+const unsigned kPRegMinSizeInBytes = kPRegMinSize / 8;
+const unsigned kPRegMinSizeInBytesLog2 = kPRegMinSizeLog2 - 3;
+const unsigned kPRegMaxSize = kZRegMaxSize / kZRegBitsPerPRegBit;
+const unsigned kPRegMaxSizeLog2 = kZRegMaxSizeLog2 - 3;
+const unsigned kPRegMaxSizeInBytes = kPRegMaxSize / 8;
+const unsigned kPRegMaxSizeInBytesLog2 = kPRegMaxSizeLog2 - 3;
+
 // Make these moved float constants backwards compatible
 // with explicit vixl::aarch64:: namespace references.
 using vixl::kDoubleMantissaBits;
@@ -151,6 +176,44 @@
 
 enum Reg31Mode { Reg31IsStackPointer, Reg31IsZeroRegister };
 
+enum VectorFormat {
+  kFormatUndefined = 0xffffffff,
+  kFormat8B = NEON_8B,
+  kFormat16B = NEON_16B,
+  kFormat4H = NEON_4H,
+  kFormat8H = NEON_8H,
+  kFormat2S = NEON_2S,
+  kFormat4S = NEON_4S,
+  kFormat1D = NEON_1D,
+  kFormat2D = NEON_2D,
+
+  // Scalar formats. We add the scalar bit to distinguish between scalar and
+  // vector enumerations; the bit is always set in the encoding of scalar ops
+  // and always clear for vector ops. Although kFormatD and kFormat1D appear
+  // to be the same, their meaning is subtly different. The first is a scalar
+  // operation, the second a vector operation that only affects one lane.
+  kFormatB = NEON_B | NEONScalar,
+  kFormatH = NEON_H | NEONScalar,
+  kFormatS = NEON_S | NEONScalar,
+  kFormatD = NEON_D | NEONScalar,
+
+  // An artificial value, used to distinguish from NEON format category.
+  kFormatSVE = 0x0000fffd,
+  // An artificial value. Q lane size isn't encoded in the usual size field.
+  kFormatSVEQ = 0x000f0000,
+  // Vector element width of SVE register with the unknown lane count since
+  // the vector length is implementation dependent.
+  kFormatVnB = SVE_B | kFormatSVE,
+  kFormatVnH = SVE_H | kFormatSVE,
+  kFormatVnS = SVE_S | kFormatSVE,
+  kFormatVnD = SVE_D | kFormatSVE,
+  kFormatVnQ = kFormatSVEQ | kFormatSVE,
+
+  // An artificial value, used by simulator trace tests and a few oddball
+  // instructions (such as FMLAL).
+  kFormat2H = 0xfffffffe
+};
+
 // Instructions. ---------------------------------------------------------------
 
 class Instruction {
@@ -229,6 +292,29 @@
   INSTRUCTION_FIELDS_LIST(DEFINE_GETTER)
 #undef DEFINE_GETTER
 
+  template <int msb, int lsb>
+  int32_t GetRx() const {
+    // We don't have any register fields wider than five bits, so the result
+    // will always fit into an int32_t.
+    VIXL_ASSERT((msb - lsb + 1) <= 5);
+    return this->ExtractBits(msb, lsb);
+  }
+
+  VectorFormat GetSVEVectorFormat() const {
+    switch (Mask(SVESizeFieldMask)) {
+      case SVE_B:
+        return kFormatVnB;
+      case SVE_H:
+        return kFormatVnH;
+      case SVE_S:
+        return kFormatVnS;
+      case SVE_D:
+        return kFormatVnD;
+    }
+    VIXL_UNREACHABLE();
+    return kFormatUndefined;
+  }
+
   // ImmPCRel is a compound field (not present in INSTRUCTION_FIELDS_LIST),
   // formed from ImmPCRelLo and ImmPCRelHi.
   int GetImmPCRel() const {
@@ -254,6 +340,20 @@
   VIXL_DEPRECATED("GetImmLogical", uint64_t ImmLogical() const) {
     return GetImmLogical();
   }
+  uint64_t GetSVEImmLogical() const;
+  int GetSVEBitwiseImmLaneSizeInBytesLog2() const;
+  uint64_t DecodeImmBitMask(int32_t n,
+                            int32_t imm_s,
+                            int32_t imm_r,
+                            int32_t size) const;
+
+  std::pair<int, int> GetSVEPermuteIndexAndLaneSizeLog2() const;
+
+  std::pair<int, int> GetSVEImmShiftAndLaneSizeLog2(bool is_predicated) const;
+
+  int GetSVEMsizeFromDtype(bool is_signed, int dtype_h_lsb = 23) const;
+
+  int GetSVEEsizeFromDtype(bool is_signed, int dtype_l_lsb = 21) const;
 
   unsigned GetImmNEONabcdefgh() const;
   VIXL_DEPRECATED("GetImmNEONabcdefgh", unsigned ImmNEONabcdefgh() const) {
@@ -280,6 +380,16 @@
     return GetImmNEONFP64();
   }
 
+  Float16 GetSVEImmFP16() const { return Imm8ToFloat16(ExtractBits(12, 5)); }
+
+  float GetSVEImmFP32() const { return Imm8ToFP32(ExtractBits(12, 5)); }
+
+  double GetSVEImmFP64() const { return Imm8ToFP64(ExtractBits(12, 5)); }
+
+  static Float16 Imm8ToFloat16(uint32_t imm8);
+  static float Imm8ToFP32(uint32_t imm8);
+  static double Imm8ToFP64(uint32_t imm8);
+
   unsigned GetSizeLS() const {
     return CalcLSDataSize(static_cast<LoadStoreOp>(Mask(LoadStoreMask)));
   }
@@ -342,6 +452,9 @@
     return Mask(LoadStoreAnyFMask) == LoadStoreAnyFixed;
   }
 
+  // True if `this` is valid immediately after the provided movprfx instruction.
+  bool CanTakeSVEMovprfx(Instruction const* movprfx) const;
+
   bool IsLoad() const;
   bool IsStore() const;
 
@@ -557,41 +670,12 @@
  private:
   int GetImmBranch() const;
 
-  static Float16 Imm8ToFloat16(uint32_t imm8);
-  static float Imm8ToFP32(uint32_t imm8);
-  static double Imm8ToFP64(uint32_t imm8);
-
   void SetPCRelImmTarget(const Instruction* target);
   void SetBranchImmTarget(const Instruction* target);
 };
 
 
-// Functions for handling NEON vector format information.
-enum VectorFormat {
-  kFormatUndefined = 0xffffffff,
-  kFormat8B = NEON_8B,
-  kFormat16B = NEON_16B,
-  kFormat4H = NEON_4H,
-  kFormat8H = NEON_8H,
-  kFormat2S = NEON_2S,
-  kFormat4S = NEON_4S,
-  kFormat1D = NEON_1D,
-  kFormat2D = NEON_2D,
-
-  // Scalar formats. We add the scalar bit to distinguish between scalar and
-  // vector enumerations; the bit is always set in the encoding of scalar ops
-  // and always clear for vector ops. Although kFormatD and kFormat1D appear
-  // to be the same, their meaning is subtly different. The first is a scalar
-  // operation, the second a vector operation that only affects one lane.
-  kFormatB = NEON_B | NEONScalar,
-  kFormatH = NEON_H | NEONScalar,
-  kFormatS = NEON_S | NEONScalar,
-  kFormatD = NEON_D | NEONScalar,
-
-  // An artificial value, used by simulator trace tests and a few oddball
-  // instructions (such as FMLAL).
-  kFormat2H = 0xfffffffe
-};
+// Functions for handling NEON and SVE vector format information.
 
 const int kMaxLanesPerVector = 16;
 
@@ -599,12 +683,16 @@
 VectorFormat VectorFormatDoubleWidth(VectorFormat vform);
 VectorFormat VectorFormatDoubleLanes(VectorFormat vform);
 VectorFormat VectorFormatHalfLanes(VectorFormat vform);
-VectorFormat ScalarFormatFromLaneSize(int lanesize);
+VectorFormat ScalarFormatFromLaneSize(int lane_size_in_bits);
 VectorFormat VectorFormatHalfWidthDoubleLanes(VectorFormat vform);
 VectorFormat VectorFormatFillQ(VectorFormat vform);
 VectorFormat ScalarFormatFromFormat(VectorFormat vform);
+VectorFormat SVEFormatFromLaneSizeInBits(int lane_size_in_bits);
+VectorFormat SVEFormatFromLaneSizeInBytes(int lane_size_in_bytes);
+VectorFormat SVEFormatFromLaneSizeInBytesLog2(int lane_size_in_bytes_log_2);
 unsigned RegisterSizeInBitsFromFormat(VectorFormat vform);
 unsigned RegisterSizeInBytesFromFormat(VectorFormat vform);
+bool IsSVEFormat(VectorFormat vform);
 // TODO: Make the return types of these functions consistent.
 unsigned LaneSizeInBitsFromFormat(VectorFormat vform);
 int LaneSizeInBytesFromFormat(VectorFormat vform);
diff --git a/src/aarch64/instrument-aarch64.cc b/src/aarch64/instrument-aarch64.cc
deleted file mode 100644
index 7cb6b20..0000000
--- a/src/aarch64/instrument-aarch64.cc
+++ /dev/null
@@ -1,975 +0,0 @@
-// Copyright 2014, VIXL authors
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//   * Redistributions of source code must retain the above copyright notice,
-//     this list of conditions and the following disclaimer.
-//   * Redistributions in binary form must reproduce the above copyright notice,
-//     this list of conditions and the following disclaimer in the documentation
-//     and/or other materials provided with the distribution.
-//   * Neither the name of ARM Limited nor the names of its contributors may be
-//     used to endorse or promote products derived from this software without
-//     specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include "instrument-aarch64.h"
-
-namespace vixl {
-namespace aarch64 {
-
-Counter::Counter(const char* name, CounterType type)
-    : count_(0), enabled_(false), type_(type) {
-  VIXL_ASSERT(name != NULL);
-  strncpy(name_, name, kCounterNameMaxLength - 1);
-  // Make sure `name_` is always NULL-terminated, even if the source's length is
-  // higher.
-  name_[kCounterNameMaxLength - 1] = '\0';
-}
-
-
-void Counter::Enable() { enabled_ = true; }
-
-
-void Counter::Disable() { enabled_ = false; }
-
-
-bool Counter::IsEnabled() { return enabled_; }
-
-
-void Counter::Increment() {
-  if (enabled_) {
-    count_++;
-  }
-}
-
-
-uint64_t Counter::GetCount() {
-  uint64_t result = count_;
-  if (type_ == Gauge) {
-    // If the counter is a Gauge, reset the count after reading.
-    count_ = 0;
-  }
-  return result;
-}
-
-
-const char* Counter::GetName() { return name_; }
-
-
-CounterType Counter::GetType() { return type_; }
-
-
-struct CounterDescriptor {
-  const char* name;
-  CounterType type;
-};
-
-
-static const CounterDescriptor kCounterList[] =
-    {{"Instruction", Cumulative},
-
-     {"Move Immediate", Gauge},
-     {"Add/Sub DP", Gauge},
-     {"Logical DP", Gauge},
-     {"Other Int DP", Gauge},
-     {"FP DP", Gauge},
-
-     {"Conditional Select", Gauge},
-     {"Conditional Compare", Gauge},
-
-     {"Unconditional Branch", Gauge},
-     {"Compare and Branch", Gauge},
-     {"Test and Branch", Gauge},
-     {"Conditional Branch", Gauge},
-
-     {"Load Integer", Gauge},
-     {"Load FP", Gauge},
-     {"Load Pair", Gauge},
-     {"Load Literal", Gauge},
-
-     {"Store Integer", Gauge},
-     {"Store FP", Gauge},
-     {"Store Pair", Gauge},
-
-     {"PC Addressing", Gauge},
-     {"Other", Gauge},
-     {"NEON", Gauge},
-     {"Crypto", Gauge}};
-
-
-Instrument::Instrument(const char* datafile, uint64_t sample_period)
-    : output_stream_(stdout), sample_period_(sample_period) {
-  // Set up the output stream. If datafile is non-NULL, use that file. If it
-  // can't be opened, or datafile is NULL, use stdout.
-  if (datafile != NULL) {
-    output_stream_ = fopen(datafile, "w");
-    if (output_stream_ == NULL) {
-      printf("Can't open output file %s. Using stdout.\n", datafile);
-      output_stream_ = stdout;
-    }
-  }
-
-  static const int num_counters =
-      sizeof(kCounterList) / sizeof(CounterDescriptor);
-
-  // Dump an instrumentation description comment at the top of the file.
-  fprintf(output_stream_, "# counters=%d\n", num_counters);
-  fprintf(output_stream_, "# sample_period=%" PRIu64 "\n", sample_period_);
-
-  // Construct Counter objects from counter description array.
-  for (int i = 0; i < num_counters; i++) {
-    Counter* counter = new Counter(kCounterList[i].name, kCounterList[i].type);
-    counters_.push_back(counter);
-  }
-
-  DumpCounterNames();
-}
-
-
-Instrument::~Instrument() {
-  // Dump any remaining instruction data to the output file.
-  DumpCounters();
-
-  // Free all the counter objects.
-  std::list<Counter*>::iterator it;
-  for (it = counters_.begin(); it != counters_.end(); it++) {
-    delete *it;
-  }
-
-  if (output_stream_ != stdout) {
-    fclose(output_stream_);
-  }
-}
-
-
-void Instrument::Update() {
-  // Increment the instruction counter, and dump all counters if a sample period
-  // has elapsed.
-  static Counter* counter = GetCounter("Instruction");
-  VIXL_ASSERT(counter->GetType() == Cumulative);
-  counter->Increment();
-
-  if ((sample_period_ != 0) && counter->IsEnabled() &&
-      (counter->GetCount() % sample_period_) == 0) {
-    DumpCounters();
-  }
-}
-
-
-void Instrument::DumpCounters() {
-  // Iterate through the counter objects, dumping their values to the output
-  // stream.
-  std::list<Counter*>::const_iterator it;
-  for (it = counters_.begin(); it != counters_.end(); it++) {
-    fprintf(output_stream_, "%" PRIu64 ",", (*it)->GetCount());
-  }
-  fprintf(output_stream_, "\n");
-  fflush(output_stream_);
-}
-
-
-void Instrument::DumpCounterNames() {
-  // Iterate through the counter objects, dumping the counter names to the
-  // output stream.
-  std::list<Counter*>::const_iterator it;
-  for (it = counters_.begin(); it != counters_.end(); it++) {
-    fprintf(output_stream_, "%s,", (*it)->GetName());
-  }
-  fprintf(output_stream_, "\n");
-  fflush(output_stream_);
-}
-
-
-void Instrument::HandleInstrumentationEvent(unsigned event) {
-  switch (event) {
-    case InstrumentStateEnable:
-      Enable();
-      break;
-    case InstrumentStateDisable:
-      Disable();
-      break;
-    default:
-      DumpEventMarker(event);
-  }
-}
-
-
-void Instrument::DumpEventMarker(unsigned marker) {
-  // Dumpan event marker to the output stream as a specially formatted comment
-  // line.
-  static Counter* counter = GetCounter("Instruction");
-
-  fprintf(output_stream_,
-          "# %c%c @ %" PRId64 "\n",
-          marker & 0xff,
-          (marker >> 8) & 0xff,
-          counter->GetCount());
-}
-
-
-Counter* Instrument::GetCounter(const char* name) {
-  // Get a Counter object by name from the counter list.
-  std::list<Counter*>::const_iterator it;
-  for (it = counters_.begin(); it != counters_.end(); it++) {
-    if (strcmp((*it)->GetName(), name) == 0) {
-      return *it;
-    }
-  }
-
-  // A Counter by that name does not exist: print an error message to stderr
-  // and the output file, and exit.
-  static const char* error_message =
-      "# Error: Unknown counter \"%s\". Exiting.\n";
-  fprintf(stderr, error_message, name);
-  fprintf(output_stream_, error_message, name);
-  exit(1);
-}
-
-
-void Instrument::Enable() {
-  std::list<Counter*>::iterator it;
-  for (it = counters_.begin(); it != counters_.end(); it++) {
-    (*it)->Enable();
-  }
-}
-
-
-void Instrument::Disable() {
-  std::list<Counter*>::iterator it;
-  for (it = counters_.begin(); it != counters_.end(); it++) {
-    (*it)->Disable();
-  }
-}
-
-
-void Instrument::VisitPCRelAddressing(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("PC Addressing");
-  counter->Increment();
-}
-
-
-void Instrument::VisitAddSubImmediate(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Add/Sub DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitLogicalImmediate(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Logical DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitMoveWideImmediate(const Instruction* instr) {
-  Update();
-  static Counter* counter = GetCounter("Move Immediate");
-
-  if (instr->IsMovn() && (instr->GetRd() == kZeroRegCode)) {
-    unsigned imm = instr->GetImmMoveWide();
-    HandleInstrumentationEvent(imm);
-  } else {
-    counter->Increment();
-  }
-}
-
-
-void Instrument::VisitBitfield(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other Int DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitExtract(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other Int DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitUnconditionalBranch(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Unconditional Branch");
-  counter->Increment();
-}
-
-
-void Instrument::VisitUnconditionalBranchToRegister(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Unconditional Branch");
-  counter->Increment();
-}
-
-
-void Instrument::VisitCompareBranch(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Compare and Branch");
-  counter->Increment();
-}
-
-
-void Instrument::VisitTestBranch(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Test and Branch");
-  counter->Increment();
-}
-
-
-void Instrument::VisitConditionalBranch(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Conditional Branch");
-  counter->Increment();
-}
-
-
-void Instrument::VisitSystem(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other");
-  counter->Increment();
-}
-
-
-void Instrument::VisitException(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other");
-  counter->Increment();
-}
-
-
-void Instrument::InstrumentLoadStorePair(const Instruction* instr) {
-  static Counter* load_pair_counter = GetCounter("Load Pair");
-  static Counter* store_pair_counter = GetCounter("Store Pair");
-
-  if (instr->Mask(LoadStorePairLBit) != 0) {
-    load_pair_counter->Increment();
-  } else {
-    store_pair_counter->Increment();
-  }
-}
-
-
-void Instrument::VisitLoadStorePairPostIndex(const Instruction* instr) {
-  Update();
-  InstrumentLoadStorePair(instr);
-}
-
-
-void Instrument::VisitLoadStorePairOffset(const Instruction* instr) {
-  Update();
-  InstrumentLoadStorePair(instr);
-}
-
-
-void Instrument::VisitLoadStorePairPreIndex(const Instruction* instr) {
-  Update();
-  InstrumentLoadStorePair(instr);
-}
-
-
-void Instrument::VisitLoadStorePairNonTemporal(const Instruction* instr) {
-  Update();
-  InstrumentLoadStorePair(instr);
-}
-
-
-void Instrument::VisitLoadStoreExclusive(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other");
-  counter->Increment();
-}
-
-
-void Instrument::VisitAtomicMemory(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other");
-  counter->Increment();
-}
-
-
-void Instrument::VisitLoadLiteral(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Load Literal");
-  counter->Increment();
-}
-
-
-void Instrument::VisitLoadStorePAC(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Load Integer");
-  counter->Increment();
-}
-
-
-void Instrument::InstrumentLoadStore(const Instruction* instr) {
-  static Counter* load_int_counter = GetCounter("Load Integer");
-  static Counter* store_int_counter = GetCounter("Store Integer");
-  static Counter* load_fp_counter = GetCounter("Load FP");
-  static Counter* store_fp_counter = GetCounter("Store FP");
-
-  switch (instr->Mask(LoadStoreMask)) {
-    case STRB_w:
-    case STRH_w:
-    case STR_w:
-      VIXL_FALLTHROUGH();
-    case STR_x:
-      store_int_counter->Increment();
-      break;
-    case STR_s:
-      VIXL_FALLTHROUGH();
-    case STR_d:
-      store_fp_counter->Increment();
-      break;
-    case LDRB_w:
-    case LDRH_w:
-    case LDR_w:
-    case LDR_x:
-    case LDRSB_x:
-    case LDRSH_x:
-    case LDRSW_x:
-    case LDRSB_w:
-      VIXL_FALLTHROUGH();
-    case LDRSH_w:
-      load_int_counter->Increment();
-      break;
-    case LDR_s:
-      VIXL_FALLTHROUGH();
-    case LDR_d:
-      load_fp_counter->Increment();
-      break;
-  }
-}
-
-
-void Instrument::VisitLoadStoreUnscaledOffset(const Instruction* instr) {
-  Update();
-  InstrumentLoadStore(instr);
-}
-
-
-void Instrument::VisitLoadStorePostIndex(const Instruction* instr) {
-  USE(instr);
-  Update();
-  InstrumentLoadStore(instr);
-}
-
-
-void Instrument::VisitLoadStorePreIndex(const Instruction* instr) {
-  Update();
-  InstrumentLoadStore(instr);
-}
-
-
-void Instrument::VisitLoadStoreRegisterOffset(const Instruction* instr) {
-  Update();
-  InstrumentLoadStore(instr);
-}
-
-void Instrument::VisitLoadStoreRCpcUnscaledOffset(const Instruction* instr) {
-  Update();
-  switch (instr->Mask(LoadStoreRCpcUnscaledOffsetMask)) {
-    case STLURB:
-    case STLURH:
-    case STLUR_w:
-    case STLUR_x: {
-      static Counter* counter = GetCounter("Store Integer");
-      counter->Increment();
-      break;
-    }
-    case LDAPURB:
-    case LDAPURSB_w:
-    case LDAPURSB_x:
-    case LDAPURH:
-    case LDAPURSH_w:
-    case LDAPURSH_x:
-    case LDAPUR_w:
-    case LDAPURSW:
-    case LDAPUR_x: {
-      static Counter* counter = GetCounter("Load Integer");
-      counter->Increment();
-      break;
-    }
-  }
-}
-
-
-void Instrument::VisitLoadStoreUnsignedOffset(const Instruction* instr) {
-  Update();
-  InstrumentLoadStore(instr);
-}
-
-
-void Instrument::VisitLogicalShifted(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Logical DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitAddSubShifted(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Add/Sub DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitAddSubExtended(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Add/Sub DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitAddSubWithCarry(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Add/Sub DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitRotateRightIntoFlags(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other");
-  counter->Increment();
-}
-
-
-void Instrument::VisitEvaluateIntoFlags(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other");
-  counter->Increment();
-}
-
-
-void Instrument::VisitConditionalCompareRegister(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Conditional Compare");
-  counter->Increment();
-}
-
-
-void Instrument::VisitConditionalCompareImmediate(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Conditional Compare");
-  counter->Increment();
-}
-
-
-void Instrument::VisitConditionalSelect(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Conditional Select");
-  counter->Increment();
-}
-
-
-void Instrument::VisitDataProcessing1Source(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other Int DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitDataProcessing2Source(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other Int DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitDataProcessing3Source(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other Int DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitFPCompare(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("FP DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitFPConditionalCompare(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Conditional Compare");
-  counter->Increment();
-}
-
-
-void Instrument::VisitFPConditionalSelect(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Conditional Select");
-  counter->Increment();
-}
-
-
-void Instrument::VisitFPImmediate(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("FP DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitFPDataProcessing1Source(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("FP DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitFPDataProcessing2Source(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("FP DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitFPDataProcessing3Source(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("FP DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitFPIntegerConvert(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("FP DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitFPFixedPointConvert(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("FP DP");
-  counter->Increment();
-}
-
-
-void Instrument::VisitCrypto2RegSHA(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Crypto");
-  counter->Increment();
-}
-
-
-void Instrument::VisitCrypto3RegSHA(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Crypto");
-  counter->Increment();
-}
-
-
-void Instrument::VisitCryptoAES(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Crypto");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEON2RegMisc(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEON2RegMiscFP16(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEON3Same(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEON3SameFP16(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEON3SameExtra(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEON3Different(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONAcrossLanes(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONByIndexedElement(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONCopy(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONExtract(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONLoadStoreMultiStruct(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONLoadStoreMultiStructPostIndex(
-    const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONLoadStoreSingleStruct(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONLoadStoreSingleStructPostIndex(
-    const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONModifiedImmediate(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONScalar2RegMisc(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONScalar2RegMiscFP16(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONScalar3Diff(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONScalar3Same(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONScalar3SameFP16(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONScalar3SameExtra(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONScalarByIndexedElement(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONScalarCopy(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONScalarPairwise(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONScalarShiftImmediate(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONShiftImmediate(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONTable(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitNEONPerm(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("NEON");
-  counter->Increment();
-}
-
-
-void Instrument::VisitReserved(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other");
-  counter->Increment();
-}
-
-
-void Instrument::VisitUnallocated(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other");
-  counter->Increment();
-}
-
-
-void Instrument::VisitUnimplemented(const Instruction* instr) {
-  USE(instr);
-  Update();
-  static Counter* counter = GetCounter("Other");
-  counter->Increment();
-}
-
-
-}  // namespace aarch64
-}  // namespace vixl
diff --git a/src/aarch64/instrument-aarch64.h b/src/aarch64/instrument-aarch64.h
deleted file mode 100644
index 4401b3e..0000000
--- a/src/aarch64/instrument-aarch64.h
+++ /dev/null
@@ -1,117 +0,0 @@
-// Copyright 2014, VIXL authors
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//   * Redistributions of source code must retain the above copyright notice,
-//     this list of conditions and the following disclaimer.
-//   * Redistributions in binary form must reproduce the above copyright notice,
-//     this list of conditions and the following disclaimer in the documentation
-//     and/or other materials provided with the distribution.
-//   * Neither the name of ARM Limited nor the names of its contributors may be
-//     used to endorse or promote products derived from this software without
-//     specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef VIXL_AARCH64_INSTRUMENT_AARCH64_H_
-#define VIXL_AARCH64_INSTRUMENT_AARCH64_H_
-
-#include "../globals-vixl.h"
-#include "../utils-vixl.h"
-
-#include "constants-aarch64.h"
-#include "decoder-aarch64.h"
-#include "instrument-aarch64.h"
-
-namespace vixl {
-namespace aarch64 {
-
-const int kCounterNameMaxLength = 256;
-const uint64_t kDefaultInstrumentationSamplingPeriod = 1 << 22;
-
-
-enum InstrumentState { InstrumentStateDisable = 0, InstrumentStateEnable = 1 };
-
-
-enum CounterType {
-  Gauge = 0,      // Gauge counters reset themselves after reading.
-  Cumulative = 1  // Cumulative counters keep their value after reading.
-};
-
-
-class Counter {
- public:
-  explicit Counter(const char* name, CounterType type = Gauge);
-
-  void Increment();
-  void Enable();
-  void Disable();
-  bool IsEnabled();
-  uint64_t GetCount();
-  VIXL_DEPRECATED("GetCount", uint64_t count()) { return GetCount(); }
-
-  const char* GetName();
-  VIXL_DEPRECATED("GetName", const char* name()) { return GetName(); }
-
-  CounterType GetType();
-  VIXL_DEPRECATED("GetType", CounterType type()) { return GetType(); }
-
- private:
-  char name_[kCounterNameMaxLength];
-  uint64_t count_;
-  bool enabled_;
-  CounterType type_;
-};
-
-
-class Instrument : public DecoderVisitor {
- public:
-  explicit Instrument(
-      const char* datafile = NULL,
-      uint64_t sample_period = kDefaultInstrumentationSamplingPeriod);
-  ~Instrument();
-
-  void Enable();
-  void Disable();
-
-// Declare all Visitor functions.
-#define DECLARE(A) void Visit##A(const Instruction* instr) VIXL_OVERRIDE;
-  VISITOR_LIST(DECLARE)
-#undef DECLARE
-
- private:
-  void Update();
-  void DumpCounters();
-  void DumpCounterNames();
-  void DumpEventMarker(unsigned marker);
-  void HandleInstrumentationEvent(unsigned event);
-  Counter* GetCounter(const char* name);
-
-  void InstrumentLoadStore(const Instruction* instr);
-  void InstrumentLoadStorePair(const Instruction* instr);
-
-  std::list<Counter*> counters_;
-
-  FILE* output_stream_;
-
-  // Counter information is dumped every sample_period_ instructions decoded.
-  // For a sample_period_ = 0 a final counter value is only produced when the
-  // Instrumentation class is destroyed.
-  uint64_t sample_period_;
-};
-
-}  // namespace aarch64
-}  // namespace vixl
-
-#endif  // VIXL_AARCH64_INSTRUMENT_AARCH64_H_
diff --git a/src/aarch64/logic-aarch64.cc b/src/aarch64/logic-aarch64.cc
index e7ede2f..cb82f71 100644
--- a/src/aarch64/logic-aarch64.cc
+++ b/src/aarch64/logic-aarch64.cc
@@ -170,7 +170,7 @@
 void Simulator::ld1(VectorFormat vform, LogicVRegister dst, uint64_t addr) {
   dst.ClearForWrite(vform);
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    dst.ReadUintFromMem(vform, i, addr);
+    LoadLane(dst, vform, i, addr);
     addr += LaneSizeInBytesFromFormat(vform);
   }
 }
@@ -180,15 +180,29 @@
                     LogicVRegister dst,
                     int index,
                     uint64_t addr) {
-  dst.ReadUintFromMem(vform, index, addr);
+  LoadLane(dst, vform, index, addr);
+}
+
+
+void Simulator::ld1r(VectorFormat vform,
+                     VectorFormat unpack_vform,
+                     LogicVRegister dst,
+                     uint64_t addr,
+                     bool is_signed) {
+  unsigned unpack_size = LaneSizeInBytesFromFormat(unpack_vform);
+  dst.ClearForWrite(vform);
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (is_signed) {
+      LoadIntToLane(dst, vform, unpack_size, i, addr);
+    } else {
+      LoadUintToLane(dst, vform, unpack_size, i, addr);
+    }
+  }
 }
 
 
 void Simulator::ld1r(VectorFormat vform, LogicVRegister dst, uint64_t addr) {
-  dst.ClearForWrite(vform);
-  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    dst.ReadUintFromMem(vform, i, addr);
-  }
+  ld1r(vform, vform, dst, addr);
 }
 
 
@@ -201,8 +215,8 @@
   int esize = LaneSizeInBytesFromFormat(vform);
   uint64_t addr2 = addr1 + esize;
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    dst1.ReadUintFromMem(vform, i, addr1);
-    dst2.ReadUintFromMem(vform, i, addr2);
+    LoadLane(dst1, vform, i, addr1);
+    LoadLane(dst2, vform, i, addr2);
     addr1 += 2 * esize;
     addr2 += 2 * esize;
   }
@@ -217,8 +231,8 @@
   dst1.ClearForWrite(vform);
   dst2.ClearForWrite(vform);
   uint64_t addr2 = addr1 + LaneSizeInBytesFromFormat(vform);
-  dst1.ReadUintFromMem(vform, index, addr1);
-  dst2.ReadUintFromMem(vform, index, addr2);
+  LoadLane(dst1, vform, index, addr1);
+  LoadLane(dst2, vform, index, addr2);
 }
 
 
@@ -230,8 +244,8 @@
   dst2.ClearForWrite(vform);
   uint64_t addr2 = addr + LaneSizeInBytesFromFormat(vform);
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    dst1.ReadUintFromMem(vform, i, addr);
-    dst2.ReadUintFromMem(vform, i, addr2);
+    LoadLane(dst1, vform, i, addr);
+    LoadLane(dst2, vform, i, addr2);
   }
 }
 
@@ -248,9 +262,9 @@
   uint64_t addr2 = addr1 + esize;
   uint64_t addr3 = addr2 + esize;
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    dst1.ReadUintFromMem(vform, i, addr1);
-    dst2.ReadUintFromMem(vform, i, addr2);
-    dst3.ReadUintFromMem(vform, i, addr3);
+    LoadLane(dst1, vform, i, addr1);
+    LoadLane(dst2, vform, i, addr2);
+    LoadLane(dst3, vform, i, addr3);
     addr1 += 3 * esize;
     addr2 += 3 * esize;
     addr3 += 3 * esize;
@@ -269,9 +283,9 @@
   dst3.ClearForWrite(vform);
   uint64_t addr2 = addr1 + LaneSizeInBytesFromFormat(vform);
   uint64_t addr3 = addr2 + LaneSizeInBytesFromFormat(vform);
-  dst1.ReadUintFromMem(vform, index, addr1);
-  dst2.ReadUintFromMem(vform, index, addr2);
-  dst3.ReadUintFromMem(vform, index, addr3);
+  LoadLane(dst1, vform, index, addr1);
+  LoadLane(dst2, vform, index, addr2);
+  LoadLane(dst3, vform, index, addr3);
 }
 
 
@@ -286,9 +300,9 @@
   uint64_t addr2 = addr + LaneSizeInBytesFromFormat(vform);
   uint64_t addr3 = addr2 + LaneSizeInBytesFromFormat(vform);
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    dst1.ReadUintFromMem(vform, i, addr);
-    dst2.ReadUintFromMem(vform, i, addr2);
-    dst3.ReadUintFromMem(vform, i, addr3);
+    LoadLane(dst1, vform, i, addr);
+    LoadLane(dst2, vform, i, addr2);
+    LoadLane(dst3, vform, i, addr3);
   }
 }
 
@@ -308,10 +322,10 @@
   uint64_t addr3 = addr2 + esize;
   uint64_t addr4 = addr3 + esize;
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    dst1.ReadUintFromMem(vform, i, addr1);
-    dst2.ReadUintFromMem(vform, i, addr2);
-    dst3.ReadUintFromMem(vform, i, addr3);
-    dst4.ReadUintFromMem(vform, i, addr4);
+    LoadLane(dst1, vform, i, addr1);
+    LoadLane(dst2, vform, i, addr2);
+    LoadLane(dst3, vform, i, addr3);
+    LoadLane(dst4, vform, i, addr4);
     addr1 += 4 * esize;
     addr2 += 4 * esize;
     addr3 += 4 * esize;
@@ -334,10 +348,10 @@
   uint64_t addr2 = addr1 + LaneSizeInBytesFromFormat(vform);
   uint64_t addr3 = addr2 + LaneSizeInBytesFromFormat(vform);
   uint64_t addr4 = addr3 + LaneSizeInBytesFromFormat(vform);
-  dst1.ReadUintFromMem(vform, index, addr1);
-  dst2.ReadUintFromMem(vform, index, addr2);
-  dst3.ReadUintFromMem(vform, index, addr3);
-  dst4.ReadUintFromMem(vform, index, addr4);
+  LoadLane(dst1, vform, index, addr1);
+  LoadLane(dst2, vform, index, addr2);
+  LoadLane(dst3, vform, index, addr3);
+  LoadLane(dst4, vform, index, addr4);
 }
 
 
@@ -355,17 +369,17 @@
   uint64_t addr3 = addr2 + LaneSizeInBytesFromFormat(vform);
   uint64_t addr4 = addr3 + LaneSizeInBytesFromFormat(vform);
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    dst1.ReadUintFromMem(vform, i, addr);
-    dst2.ReadUintFromMem(vform, i, addr2);
-    dst3.ReadUintFromMem(vform, i, addr3);
-    dst4.ReadUintFromMem(vform, i, addr4);
+    LoadLane(dst1, vform, i, addr);
+    LoadLane(dst2, vform, i, addr2);
+    LoadLane(dst3, vform, i, addr3);
+    LoadLane(dst4, vform, i, addr4);
   }
 }
 
 
 void Simulator::st1(VectorFormat vform, LogicVRegister src, uint64_t addr) {
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    src.WriteUintToMem(vform, i, addr);
+    StoreLane(src, vform, i, addr);
     addr += LaneSizeInBytesFromFormat(vform);
   }
 }
@@ -375,19 +389,19 @@
                     LogicVRegister src,
                     int index,
                     uint64_t addr) {
-  src.WriteUintToMem(vform, index, addr);
+  StoreLane(src, vform, index, addr);
 }
 
 
 void Simulator::st2(VectorFormat vform,
-                    LogicVRegister dst,
-                    LogicVRegister dst2,
+                    LogicVRegister src,
+                    LogicVRegister src2,
                     uint64_t addr) {
   int esize = LaneSizeInBytesFromFormat(vform);
   uint64_t addr2 = addr + esize;
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    dst.WriteUintToMem(vform, i, addr);
-    dst2.WriteUintToMem(vform, i, addr2);
+    StoreLane(src, vform, i, addr);
+    StoreLane(src2, vform, i, addr2);
     addr += 2 * esize;
     addr2 += 2 * esize;
   }
@@ -395,28 +409,28 @@
 
 
 void Simulator::st2(VectorFormat vform,
-                    LogicVRegister dst,
-                    LogicVRegister dst2,
+                    LogicVRegister src,
+                    LogicVRegister src2,
                     int index,
                     uint64_t addr) {
   int esize = LaneSizeInBytesFromFormat(vform);
-  dst.WriteUintToMem(vform, index, addr);
-  dst2.WriteUintToMem(vform, index, addr + 1 * esize);
+  StoreLane(src, vform, index, addr);
+  StoreLane(src2, vform, index, addr + 1 * esize);
 }
 
 
 void Simulator::st3(VectorFormat vform,
-                    LogicVRegister dst,
-                    LogicVRegister dst2,
-                    LogicVRegister dst3,
+                    LogicVRegister src,
+                    LogicVRegister src2,
+                    LogicVRegister src3,
                     uint64_t addr) {
   int esize = LaneSizeInBytesFromFormat(vform);
   uint64_t addr2 = addr + esize;
   uint64_t addr3 = addr2 + esize;
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    dst.WriteUintToMem(vform, i, addr);
-    dst2.WriteUintToMem(vform, i, addr2);
-    dst3.WriteUintToMem(vform, i, addr3);
+    StoreLane(src, vform, i, addr);
+    StoreLane(src2, vform, i, addr2);
+    StoreLane(src3, vform, i, addr3);
     addr += 3 * esize;
     addr2 += 3 * esize;
     addr3 += 3 * esize;
@@ -425,33 +439,33 @@
 
 
 void Simulator::st3(VectorFormat vform,
-                    LogicVRegister dst,
-                    LogicVRegister dst2,
-                    LogicVRegister dst3,
+                    LogicVRegister src,
+                    LogicVRegister src2,
+                    LogicVRegister src3,
                     int index,
                     uint64_t addr) {
   int esize = LaneSizeInBytesFromFormat(vform);
-  dst.WriteUintToMem(vform, index, addr);
-  dst2.WriteUintToMem(vform, index, addr + 1 * esize);
-  dst3.WriteUintToMem(vform, index, addr + 2 * esize);
+  StoreLane(src, vform, index, addr);
+  StoreLane(src2, vform, index, addr + 1 * esize);
+  StoreLane(src3, vform, index, addr + 2 * esize);
 }
 
 
 void Simulator::st4(VectorFormat vform,
-                    LogicVRegister dst,
-                    LogicVRegister dst2,
-                    LogicVRegister dst3,
-                    LogicVRegister dst4,
+                    LogicVRegister src,
+                    LogicVRegister src2,
+                    LogicVRegister src3,
+                    LogicVRegister src4,
                     uint64_t addr) {
   int esize = LaneSizeInBytesFromFormat(vform);
   uint64_t addr2 = addr + esize;
   uint64_t addr3 = addr2 + esize;
   uint64_t addr4 = addr3 + esize;
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    dst.WriteUintToMem(vform, i, addr);
-    dst2.WriteUintToMem(vform, i, addr2);
-    dst3.WriteUintToMem(vform, i, addr3);
-    dst4.WriteUintToMem(vform, i, addr4);
+    StoreLane(src, vform, i, addr);
+    StoreLane(src2, vform, i, addr2);
+    StoreLane(src3, vform, i, addr3);
+    StoreLane(src4, vform, i, addr4);
     addr += 4 * esize;
     addr2 += 4 * esize;
     addr3 += 4 * esize;
@@ -461,17 +475,17 @@
 
 
 void Simulator::st4(VectorFormat vform,
-                    LogicVRegister dst,
-                    LogicVRegister dst2,
-                    LogicVRegister dst3,
-                    LogicVRegister dst4,
+                    LogicVRegister src,
+                    LogicVRegister src2,
+                    LogicVRegister src3,
+                    LogicVRegister src4,
                     int index,
                     uint64_t addr) {
   int esize = LaneSizeInBytesFromFormat(vform);
-  dst.WriteUintToMem(vform, index, addr);
-  dst2.WriteUintToMem(vform, index, addr + 1 * esize);
-  dst3.WriteUintToMem(vform, index, addr + 2 * esize);
-  dst4.WriteUintToMem(vform, index, addr + 3 * esize);
+  StoreLane(src, vform, index, addr);
+  StoreLane(src2, vform, index, addr + 1 * esize);
+  StoreLane(src3, vform, index, addr + 2 * esize);
+  StoreLane(src4, vform, index, addr + 3 * esize);
 }
 
 
@@ -550,6 +564,7 @@
                               const LogicVRegister& src2) {
   int lane_size = LaneSizeInBitsFromFormat(vform);
   dst.ClearForWrite(vform);
+
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
     // Test for unsigned saturation.
     uint64_t ua = src1.UintLeftJustified(vform, i);
@@ -568,12 +583,39 @@
     if ((pos_a == pos_b) && (pos_a != pos_r)) {
       dst.SetSignedSat(i, pos_a);
     }
-
     dst.SetInt(vform, i, ur >> (64 - lane_size));
   }
   return dst;
 }
 
+LogicVRegister Simulator::add_uint(VectorFormat vform,
+                                   LogicVRegister dst,
+                                   const LogicVRegister& src1,
+                                   uint64_t value) {
+  int lane_size = LaneSizeInBitsFromFormat(vform);
+  VIXL_ASSERT(IsUintN(lane_size, value));
+  dst.ClearForWrite(vform);
+  // Left-justify `value`.
+  uint64_t ub = value << (64 - lane_size);
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    // Test for unsigned saturation.
+    uint64_t ua = src1.UintLeftJustified(vform, i);
+    uint64_t ur = ua + ub;
+    if (ur < ua) {
+      dst.SetUnsignedSat(i, true);
+    }
+
+    // Test for signed saturation.
+    // `value` is always positive, so we have an overflow if the (signed) result
+    // is smaller than the first operand.
+    if (RawbitsToInt64(ur) < RawbitsToInt64(ua)) {
+      dst.SetSignedSat(i, true);
+    }
+
+    dst.SetInt(vform, i, ur >> (64 - lane_size));
+  }
+  return dst;
+}
 
 LogicVRegister Simulator::addp(VectorFormat vform,
                                LogicVRegister dst,
@@ -586,25 +628,68 @@
   return dst;
 }
 
+LogicVRegister Simulator::sdiv(VectorFormat vform,
+                               LogicVRegister dst,
+                               const LogicVRegister& src1,
+                               const LogicVRegister& src2) {
+  VIXL_ASSERT((vform == kFormatVnS) || (vform == kFormatVnD));
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    int64_t val1 = src1.Int(vform, i);
+    int64_t val2 = src2.Int(vform, i);
+    int64_t min_int = (vform == kFormatVnD) ? kXMinInt : kWMinInt;
+    int64_t quotient = 0;
+    if ((val1 == min_int) && (val2 == -1)) {
+      quotient = min_int;
+    } else if (val2 != 0) {
+      quotient = val1 / val2;
+    }
+    dst.SetInt(vform, i, quotient);
+  }
+
+  return dst;
+}
+
+LogicVRegister Simulator::udiv(VectorFormat vform,
+                               LogicVRegister dst,
+                               const LogicVRegister& src1,
+                               const LogicVRegister& src2) {
+  VIXL_ASSERT((vform == kFormatVnS) || (vform == kFormatVnD));
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    uint64_t val1 = src1.Uint(vform, i);
+    uint64_t val2 = src2.Uint(vform, i);
+    uint64_t quotient = 0;
+    if (val2 != 0) {
+      quotient = val1 / val2;
+    }
+    dst.SetUint(vform, i, quotient);
+  }
+
+  return dst;
+}
+
 
 LogicVRegister Simulator::mla(VectorFormat vform,
                               LogicVRegister dst,
+                              const LogicVRegister& srca,
                               const LogicVRegister& src1,
                               const LogicVRegister& src2) {
   SimVRegister temp;
   mul(vform, temp, src1, src2);
-  add(vform, dst, dst, temp);
+  add(vform, dst, srca, temp);
   return dst;
 }
 
 
 LogicVRegister Simulator::mls(VectorFormat vform,
                               LogicVRegister dst,
+                              const LogicVRegister& srca,
                               const LogicVRegister& src1,
                               const LogicVRegister& src2) {
   SimVRegister temp;
   mul(vform, temp, src1, src2);
-  sub(vform, dst, dst, temp);
+  sub(vform, dst, srca, temp);
   return dst;
 }
 
@@ -614,6 +699,7 @@
                               const LogicVRegister& src1,
                               const LogicVRegister& src2) {
   dst.ClearForWrite(vform);
+
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
     dst.SetUint(vform, i, src1.Uint(vform, i) * src2.Uint(vform, i));
   }
@@ -632,6 +718,70 @@
 }
 
 
+LogicVRegister Simulator::smulh(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicVRegister& src1,
+                                const LogicVRegister& src2) {
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    int64_t dst_val;
+    int64_t val1 = src1.Int(vform, i);
+    int64_t val2 = src2.Int(vform, i);
+    switch (LaneSizeInBitsFromFormat(vform)) {
+      case 8:
+        dst_val = internal::MultiplyHigh<8>(val1, val2);
+        break;
+      case 16:
+        dst_val = internal::MultiplyHigh<16>(val1, val2);
+        break;
+      case 32:
+        dst_val = internal::MultiplyHigh<32>(val1, val2);
+        break;
+      case 64:
+        dst_val = internal::MultiplyHigh<64>(val1, val2);
+        break;
+      default:
+        dst_val = 0xbadbeef;
+        VIXL_UNREACHABLE();
+        break;
+    }
+    dst.SetInt(vform, i, dst_val);
+  }
+  return dst;
+}
+
+
+LogicVRegister Simulator::umulh(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicVRegister& src1,
+                                const LogicVRegister& src2) {
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    uint64_t dst_val;
+    uint64_t val1 = src1.Uint(vform, i);
+    uint64_t val2 = src2.Uint(vform, i);
+    switch (LaneSizeInBitsFromFormat(vform)) {
+      case 8:
+        dst_val = internal::MultiplyHigh<8>(val1, val2);
+        break;
+      case 16:
+        dst_val = internal::MultiplyHigh<16>(val1, val2);
+        break;
+      case 32:
+        dst_val = internal::MultiplyHigh<32>(val1, val2);
+        break;
+      case 64:
+        dst_val = internal::MultiplyHigh<64>(val1, val2);
+        break;
+      default:
+        dst_val = 0xbadbeef;
+        VIXL_UNREACHABLE();
+        break;
+    }
+    dst.SetUint(vform, i, dst_val);
+  }
+  return dst;
+}
+
+
 LogicVRegister Simulator::mla(VectorFormat vform,
                               LogicVRegister dst,
                               const LogicVRegister& src1,
@@ -639,7 +789,7 @@
                               int index) {
   SimVRegister temp;
   VectorFormat indexform = VectorFormatFillQ(vform);
-  return mla(vform, dst, src1, dup_element(indexform, temp, src2, index));
+  return mla(vform, dst, dst, src1, dup_element(indexform, temp, src2, index));
 }
 
 
@@ -650,7 +800,7 @@
                               int index) {
   SimVRegister temp;
   VectorFormat indexform = VectorFormatFillQ(vform);
-  return mls(vform, dst, src1, dup_element(indexform, temp, src2, index));
+  return mls(vform, dst, dst, src1, dup_element(indexform, temp, src2, index));
 }
 
 
@@ -898,8 +1048,14 @@
                                const LogicVRegister& src2,
                                int index) {
   SimVRegister temp;
-  VectorFormat indexform = VectorFormatFillQ(vform);
-  return sdot(vform, dst, src1, dup_element(indexform, temp, src2, index));
+  // NEON indexed `dot` allows the index value exceed the register size.
+  // Promote the format to Q-sized vector format before the duplication.
+  dup_elements_to_segments(IsSVEFormat(vform) ? vform
+                                              : VectorFormatFillQ(vform),
+                           temp,
+                           src2,
+                           index);
+  return sdot(vform, dst, src1, temp);
 }
 
 
@@ -920,8 +1076,14 @@
                                const LogicVRegister& src2,
                                int index) {
   SimVRegister temp;
-  VectorFormat indexform = VectorFormatFillQ(vform);
-  return udot(vform, dst, src1, dup_element(indexform, temp, src2, index));
+  // NEON indexed `dot` allows the index value exceed the register size.
+  // Promote the format to Q-sized vector format before the duplication.
+  dup_elements_to_segments(IsSVEFormat(vform) ? vform
+                                              : VectorFormatFillQ(vform),
+                           temp,
+                           src2,
+                           index);
+  return udot(vform, dst, src1, temp);
 }
 
 
@@ -1025,6 +1187,34 @@
   return dst;
 }
 
+LogicVRegister Simulator::sub_uint(VectorFormat vform,
+                                   LogicVRegister dst,
+                                   const LogicVRegister& src1,
+                                   uint64_t value) {
+  int lane_size = LaneSizeInBitsFromFormat(vform);
+  VIXL_ASSERT(IsUintN(lane_size, value));
+  dst.ClearForWrite(vform);
+  // Left-justify `value`.
+  uint64_t ub = value << (64 - lane_size);
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    // Test for unsigned saturation.
+    uint64_t ua = src1.UintLeftJustified(vform, i);
+    uint64_t ur = ua - ub;
+    if (ub > ua) {
+      dst.SetUnsignedSat(i, false);
+    }
+
+    // Test for signed saturation.
+    // `value` is always positive, so we have an overflow if the (signed) result
+    // is greater than the first operand.
+    if (RawbitsToInt64(ur) > RawbitsToInt64(ua)) {
+      dst.SetSignedSat(i, false);
+    }
+
+    dst.SetInt(vform, i, ur >> (64 - lane_size));
+  }
+  return dst;
+}
 
 LogicVRegister Simulator::and_(VectorFormat vform,
                                LogicVRegister dst,
@@ -1091,12 +1281,12 @@
                               const LogicVRegister& src,
                               uint64_t imm) {
   uint64_t result[16];
-  int laneCount = LaneCountFromFormat(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  int lane_count = LaneCountFromFormat(vform);
+  for (int i = 0; i < lane_count; ++i) {
     result[i] = src.Uint(vform, i) & ~imm;
   }
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
@@ -1298,10 +1488,13 @@
 
 LogicVRegister Simulator::sminmaxv(VectorFormat vform,
                                    LogicVRegister dst,
+                                   const LogicPRegister& pg,
                                    const LogicVRegister& src,
                                    bool max) {
   int64_t dst_val = max ? INT64_MIN : INT64_MAX;
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
     int64_t src_val = src.Int(vform, i);
     if (max) {
       dst_val = (src_val > dst_val) ? src_val : dst_val;
@@ -1318,7 +1511,7 @@
 LogicVRegister Simulator::smaxv(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src) {
-  sminmaxv(vform, dst, src, true);
+  sminmaxv(vform, dst, GetPTrue(), src, true);
   return dst;
 }
 
@@ -1326,7 +1519,27 @@
 LogicVRegister Simulator::sminv(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src) {
-  sminmaxv(vform, dst, src, false);
+  sminmaxv(vform, dst, GetPTrue(), src, false);
+  return dst;
+}
+
+
+LogicVRegister Simulator::smaxv(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  sminmaxv(vform, dst, pg, src, true);
+  return dst;
+}
+
+
+LogicVRegister Simulator::sminv(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  sminmaxv(vform, dst, pg, src, false);
   return dst;
 }
 
@@ -1414,10 +1627,13 @@
 
 LogicVRegister Simulator::uminmaxv(VectorFormat vform,
                                    LogicVRegister dst,
+                                   const LogicPRegister& pg,
                                    const LogicVRegister& src,
                                    bool max) {
   uint64_t dst_val = max ? 0 : UINT64_MAX;
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
     uint64_t src_val = src.Uint(vform, i);
     if (max) {
       dst_val = (src_val > dst_val) ? src_val : dst_val;
@@ -1434,7 +1650,7 @@
 LogicVRegister Simulator::umaxv(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src) {
-  uminmaxv(vform, dst, src, true);
+  uminmaxv(vform, dst, GetPTrue(), src, true);
   return dst;
 }
 
@@ -1442,7 +1658,27 @@
 LogicVRegister Simulator::uminv(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src) {
-  uminmaxv(vform, dst, src, false);
+  uminmaxv(vform, dst, GetPTrue(), src, false);
+  return dst;
+}
+
+
+LogicVRegister Simulator::umaxv(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  uminmaxv(vform, dst, pg, src, true);
+  return dst;
+}
+
+
+LogicVRegister Simulator::uminv(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  uminmaxv(vform, dst, pg, src, false);
   return dst;
 }
 
@@ -1521,14 +1757,104 @@
   return ushl(vform, dst, extendedreg, shiftreg);
 }
 
+std::pair<bool, uint64_t> Simulator::clast(VectorFormat vform,
+                                           const LogicPRegister& pg,
+                                           const LogicVRegister& src,
+                                           int offset_from_last_active) {
+  // Untested for any other values.
+  VIXL_ASSERT((offset_from_last_active == 0) || (offset_from_last_active == 1));
+
+  int last_active = GetLastActive(vform, pg);
+  int lane_count = LaneCountFromFormat(vform);
+  int index =
+      ((last_active + offset_from_last_active) + lane_count) % lane_count;
+  return std::make_pair(last_active >= 0, src.Uint(vform, index));
+}
+
+LogicVRegister Simulator::compact(VectorFormat vform,
+                                  LogicVRegister dst,
+                                  const LogicPRegister& pg,
+                                  const LogicVRegister& src) {
+  int j = 0;
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (pg.IsActive(vform, i)) {
+      dst.SetUint(vform, j++, src.Uint(vform, i));
+    }
+  }
+  for (; j < LaneCountFromFormat(vform); j++) {
+    dst.SetUint(vform, j, 0);
+  }
+  return dst;
+}
+
+LogicVRegister Simulator::splice(VectorFormat vform,
+                                 LogicVRegister dst,
+                                 const LogicPRegister& pg,
+                                 const LogicVRegister& src1,
+                                 const LogicVRegister& src2) {
+  int lane_count = LaneCountFromFormat(vform);
+  int first_active = GetFirstActive(vform, pg);
+  int last_active = GetLastActive(vform, pg);
+  int dst_idx = 0;
+  uint64_t result[kZRegMaxSizeInBytes];
+
+  if (first_active >= 0) {
+    VIXL_ASSERT(last_active >= first_active);
+    VIXL_ASSERT(last_active < lane_count);
+    for (int i = first_active; i <= last_active; i++) {
+      result[dst_idx++] = src1.Uint(vform, i);
+    }
+  }
+
+  VIXL_ASSERT(dst_idx <= lane_count);
+  for (int i = dst_idx; i < lane_count; i++) {
+    result[i] = src2.Uint(vform, i - dst_idx);
+  }
+
+  for (int i = 0; i < lane_count; i++) {
+    dst.SetUint(vform, i, result[i]);
+  }
+  return dst;
+}
+
+LogicVRegister Simulator::sel(VectorFormat vform,
+                              LogicVRegister dst,
+                              const SimPRegister& pg,
+                              const LogicVRegister& src1,
+                              const LogicVRegister& src2) {
+  int p_reg_bits_per_lane =
+      LaneSizeInBitsFromFormat(vform) / kZRegBitsPerPRegBit;
+  for (int lane = 0; lane < LaneCountFromFormat(vform); lane++) {
+    uint64_t lane_value = pg.GetBit(lane * p_reg_bits_per_lane)
+                              ? src1.Uint(vform, lane)
+                              : src2.Uint(vform, lane);
+    dst.SetUint(vform, lane, lane_value);
+  }
+  return dst;
+}
+
+
+LogicPRegister Simulator::sel(LogicPRegister dst,
+                              const LogicPRegister& pg,
+                              const LogicPRegister& src1,
+                              const LogicPRegister& src2) {
+  for (int i = 0; i < dst.GetChunkCount(); i++) {
+    LogicPRegister::ChunkType mask = pg.GetChunk(i);
+    LogicPRegister::ChunkType result =
+        (mask & src1.GetChunk(i)) | (~mask & src2.GetChunk(i));
+    dst.SetChunk(i, result);
+  }
+  return dst;
+}
+
 
 LogicVRegister Simulator::sli(VectorFormat vform,
                               LogicVRegister dst,
                               const LogicVRegister& src,
                               int shift) {
   dst.ClearForWrite(vform);
-  int laneCount = LaneCountFromFormat(vform);
-  for (int i = 0; i < laneCount; i++) {
+  int lane_count = LaneCountFromFormat(vform);
+  for (int i = 0; i < lane_count; i++) {
     uint64_t src_lane = src.Uint(vform, i);
     uint64_t dst_lane = dst.Uint(vform, i);
     uint64_t shifted = src_lane << shift;
@@ -1577,10 +1903,10 @@
                               const LogicVRegister& src,
                               int shift) {
   dst.ClearForWrite(vform);
-  int laneCount = LaneCountFromFormat(vform);
+  int lane_count = LaneCountFromFormat(vform);
   VIXL_ASSERT((shift > 0) &&
               (shift <= static_cast<int>(LaneSizeInBitsFromFormat(vform))));
-  for (int i = 0; i < laneCount; i++) {
+  for (int i = 0; i < lane_count; i++) {
     uint64_t src_lane = src.Uint(vform, i);
     uint64_t dst_lane = dst.Uint(vform, i);
     uint64_t shifted;
@@ -1663,15 +1989,18 @@
 LogicVRegister Simulator::cls(VectorFormat vform,
                               LogicVRegister dst,
                               const LogicVRegister& src) {
-  uint64_t result[16];
-  int laneSizeInBits = LaneSizeInBitsFromFormat(vform);
-  int laneCount = LaneCountFromFormat(vform);
-  for (int i = 0; i < laneCount; i++) {
-    result[i] = CountLeadingSignBits(src.Int(vform, i), laneSizeInBits);
+  int lane_size_in_bits = LaneSizeInBitsFromFormat(vform);
+  int lane_count = LaneCountFromFormat(vform);
+
+  // Ensure that we can store one result per lane.
+  int result[kZRegMaxSizeInBytes];
+
+  for (int i = 0; i < lane_count; i++) {
+    result[i] = CountLeadingSignBits(src.Int(vform, i), lane_size_in_bits);
   }
 
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
@@ -1681,38 +2010,51 @@
 LogicVRegister Simulator::clz(VectorFormat vform,
                               LogicVRegister dst,
                               const LogicVRegister& src) {
-  uint64_t result[16];
-  int laneSizeInBits = LaneSizeInBitsFromFormat(vform);
-  int laneCount = LaneCountFromFormat(vform);
-  for (int i = 0; i < laneCount; i++) {
-    result[i] = CountLeadingZeros(src.Uint(vform, i), laneSizeInBits);
+  int lane_size_in_bits = LaneSizeInBitsFromFormat(vform);
+  int lane_count = LaneCountFromFormat(vform);
+
+  // Ensure that we can store one result per lane.
+  int result[kZRegMaxSizeInBytes];
+
+  for (int i = 0; i < lane_count; i++) {
+    result[i] = CountLeadingZeros(src.Uint(vform, i), lane_size_in_bits);
   }
 
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
 }
 
 
+LogicVRegister Simulator::cnot(VectorFormat vform,
+                               LogicVRegister dst,
+                               const LogicVRegister& src) {
+  dst.ClearForWrite(vform);
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    uint64_t value = (src.Uint(vform, i) == 0) ? 1 : 0;
+    dst.SetUint(vform, i, value);
+  }
+  return dst;
+}
+
+
 LogicVRegister Simulator::cnt(VectorFormat vform,
                               LogicVRegister dst,
                               const LogicVRegister& src) {
-  uint64_t result[16];
-  int laneSizeInBits = LaneSizeInBitsFromFormat(vform);
-  int laneCount = LaneCountFromFormat(vform);
-  for (int i = 0; i < laneCount; i++) {
-    uint64_t value = src.Uint(vform, i);
-    result[i] = 0;
-    for (int j = 0; j < laneSizeInBits; j++) {
-      result[i] += (value & 1);
-      value >>= 1;
-    }
+  int lane_size_in_bits = LaneSizeInBitsFromFormat(vform);
+  int lane_count = LaneCountFromFormat(vform);
+
+  // Ensure that we can store one result per lane.
+  int result[kZRegMaxSizeInBytes];
+
+  for (int i = 0; i < lane_count; i++) {
+    result[i] = CountSetBits(src.Uint(vform, i), lane_size_in_bits);
   }
 
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
@@ -1896,11 +2238,108 @@
 }
 
 
+LogicVRegister Simulator::andv(VectorFormat vform,
+                               LogicVRegister dst,
+                               const LogicPRegister& pg,
+                               const LogicVRegister& src) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  uint64_t result = GetUintMask(LaneSizeInBitsFromFormat(vform));
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    result &= src.Uint(vform, i);
+  }
+  VectorFormat vform_dst =
+      ScalarFormatFromLaneSize(LaneSizeInBitsFromFormat(vform));
+  dst.ClearForWrite(vform_dst);
+  dst.SetUint(vform_dst, 0, result);
+  return dst;
+}
+
+
+LogicVRegister Simulator::eorv(VectorFormat vform,
+                               LogicVRegister dst,
+                               const LogicPRegister& pg,
+                               const LogicVRegister& src) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  uint64_t result = 0;
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    result ^= src.Uint(vform, i);
+  }
+  VectorFormat vform_dst =
+      ScalarFormatFromLaneSize(LaneSizeInBitsFromFormat(vform));
+  dst.ClearForWrite(vform_dst);
+  dst.SetUint(vform_dst, 0, result);
+  return dst;
+}
+
+
+LogicVRegister Simulator::orv(VectorFormat vform,
+                              LogicVRegister dst,
+                              const LogicPRegister& pg,
+                              const LogicVRegister& src) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  uint64_t result = 0;
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    result |= src.Uint(vform, i);
+  }
+  VectorFormat vform_dst =
+      ScalarFormatFromLaneSize(LaneSizeInBitsFromFormat(vform));
+  dst.ClearForWrite(vform_dst);
+  dst.SetUint(vform_dst, 0, result);
+  return dst;
+}
+
+
+LogicVRegister Simulator::saddv(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) <= kSRegSize);
+  int64_t result = 0;
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    // The destination register always has D-lane sizes and the source register
+    // always has S-lanes or smaller, so signed integer overflow -- undefined
+    // behaviour -- can't occur.
+    result += src.Int(vform, i);
+  }
+
+  dst.ClearForWrite(kFormatD);
+  dst.SetInt(kFormatD, 0, result);
+  return dst;
+}
+
+
+LogicVRegister Simulator::uaddv(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  uint64_t result = 0;
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    result += src.Uint(vform, i);
+  }
+
+  dst.ClearForWrite(kFormatD);
+  dst.SetUint(kFormatD, 0, result);
+  return dst;
+}
+
+
 LogicVRegister Simulator::extractnarrow(VectorFormat dstform,
                                         LogicVRegister dst,
-                                        bool dstIsSigned,
+                                        bool dst_is_signed,
                                         const LogicVRegister& src,
-                                        bool srcIsSigned) {
+                                        bool src_is_signed) {
   bool upperhalf = false;
   VectorFormat srcform = kFormatUndefined;
   int64_t ssrc[8];
@@ -1969,7 +2408,7 @@
     }
 
     // Test for unsigned saturation
-    if (srcIsSigned) {
+    if (src_is_signed) {
       if (ssrc[i] > static_cast<int64_t>(MaxUintFromFormat(dstform))) {
         dst.SetUnsignedSat(offset + i, true);
       } else if (ssrc[i] < 0) {
@@ -1982,13 +2421,13 @@
     }
 
     int64_t result;
-    if (srcIsSigned) {
+    if (src_is_signed) {
       result = ssrc[i] & MaxUintFromFormat(dstform);
     } else {
       result = usrc[i] & MaxUintFromFormat(dstform);
     }
 
-    if (dstIsSigned) {
+    if (dst_is_signed) {
       dst.SetInt(dstform, offset + i, result);
     } else {
       dst.SetUint(dstform, offset + i, result);
@@ -2030,17 +2469,17 @@
                                   LogicVRegister dst,
                                   const LogicVRegister& src1,
                                   const LogicVRegister& src2,
-                                  bool issigned) {
+                                  bool is_signed) {
   dst.ClearForWrite(vform);
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    if (issigned) {
-      int64_t sr = src1.Int(vform, i) - src2.Int(vform, i);
-      sr = sr > 0 ? sr : -sr;
-      dst.SetInt(vform, i, sr);
+    bool src1_gt_src2 = is_signed ? (src1.Int(vform, i) > src2.Int(vform, i))
+                                  : (src1.Uint(vform, i) > src2.Uint(vform, i));
+    // Always calculate the answer using unsigned arithmetic, to avoid
+    // implemenation-defined signed overflow.
+    if (src1_gt_src2) {
+      dst.SetUint(vform, i, src1.Uint(vform, i) - src2.Uint(vform, i));
     } else {
-      int64_t sr = src1.Uint(vform, i) - src2.Uint(vform, i);
-      sr = sr > 0 ? sr : -sr;
-      dst.SetUint(vform, i, sr);
+      dst.SetUint(vform, i, src2.Uint(vform, i) - src1.Uint(vform, i));
     }
   }
   return dst;
@@ -2085,15 +2524,15 @@
 LogicVRegister Simulator::rbit(VectorFormat vform,
                                LogicVRegister dst,
                                const LogicVRegister& src) {
-  uint64_t result[16];
-  int laneCount = LaneCountFromFormat(vform);
-  int laneSizeInBits = LaneSizeInBitsFromFormat(vform);
+  uint64_t result[kZRegMaxSizeInBytes];
+  int lane_count = LaneCountFromFormat(vform);
+  int lane_size_in_bits = LaneSizeInBitsFromFormat(vform);
   uint64_t reversed_value;
   uint64_t value;
-  for (int i = 0; i < laneCount; i++) {
+  for (int i = 0; i < lane_count; i++) {
     value = src.Uint(vform, i);
     reversed_value = 0;
-    for (int j = 0; j < laneSizeInBits; j++) {
+    for (int j = 0; j < lane_size_in_bits; j++) {
       reversed_value = (reversed_value << 1) | (value & 1);
       value >>= 1;
     }
@@ -2101,7 +2540,7 @@
   }
 
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
@@ -2110,19 +2549,33 @@
 
 LogicVRegister Simulator::rev(VectorFormat vform,
                               LogicVRegister dst,
-                              const LogicVRegister& src,
-                              int revSize) {
-  uint64_t result[16];
-  int laneCount = LaneCountFromFormat(vform);
-  int laneSize = LaneSizeInBytesFromFormat(vform);
-  int lanesPerLoop = revSize / laneSize;
-  for (int i = 0; i < laneCount; i += lanesPerLoop) {
-    for (int j = 0; j < lanesPerLoop; j++) {
-      result[i + lanesPerLoop - 1 - j] = src.Uint(vform, i + j);
+                              const LogicVRegister& src) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  int lane_count = LaneCountFromFormat(vform);
+  for (int i = 0; i < lane_count / 2; i++) {
+    uint64_t t = src.Uint(vform, i);
+    dst.SetUint(vform, i, src.Uint(vform, lane_count - i - 1));
+    dst.SetUint(vform, lane_count - i - 1, t);
+  }
+  return dst;
+}
+
+
+LogicVRegister Simulator::rev_byte(VectorFormat vform,
+                                   LogicVRegister dst,
+                                   const LogicVRegister& src,
+                                   int rev_size) {
+  uint64_t result[kZRegMaxSizeInBytes];
+  int lane_count = LaneCountFromFormat(vform);
+  int lane_size = LaneSizeInBytesFromFormat(vform);
+  int lanes_per_loop = rev_size / lane_size;
+  for (int i = 0; i < lane_count; i += lanes_per_loop) {
+    for (int j = 0; j < lanes_per_loop; j++) {
+      result[i + lanes_per_loop - 1 - j] = src.Uint(vform, i + j);
     }
   }
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
@@ -2132,21 +2585,21 @@
 LogicVRegister Simulator::rev16(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src) {
-  return rev(vform, dst, src, 2);
+  return rev_byte(vform, dst, src, 2);
 }
 
 
 LogicVRegister Simulator::rev32(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src) {
-  return rev(vform, dst, src, 4);
+  return rev_byte(vform, dst, src, 4);
 }
 
 
 LogicVRegister Simulator::rev64(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src) {
-  return rev(vform, dst, src, 8);
+  return rev_byte(vform, dst, src, 8);
 }
 
 
@@ -2215,22 +2668,60 @@
                               const LogicVRegister& src1,
                               const LogicVRegister& src2,
                               int index) {
-  uint8_t result[16];
-  int laneCount = LaneCountFromFormat(vform);
-  for (int i = 0; i < laneCount - index; ++i) {
+  uint8_t result[kZRegMaxSizeInBytes];
+  int lane_count = LaneCountFromFormat(vform);
+  for (int i = 0; i < lane_count - index; ++i) {
     result[i] = src1.Uint(vform, i + index);
   }
   for (int i = 0; i < index; ++i) {
-    result[laneCount - index + i] = src2.Uint(vform, i);
+    result[lane_count - index + i] = src2.Uint(vform, i);
   }
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
 }
 
 template <typename T>
+LogicVRegister Simulator::fadda(VectorFormat vform,
+                                LogicVRegister acc,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src) {
+  T result = acc.Float<T>(0);
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    result = FPAdd(result, src.Float<T>(i));
+  }
+  VectorFormat vform_dst =
+      ScalarFormatFromLaneSize(LaneSizeInBitsFromFormat(vform));
+  acc.ClearForWrite(vform_dst);
+  acc.SetFloat(0, result);
+  return acc;
+}
+
+LogicVRegister Simulator::fadda(VectorFormat vform,
+                                LogicVRegister acc,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src) {
+  switch (LaneSizeInBitsFromFormat(vform)) {
+    case kHRegSize:
+      fadda<SimFloat16>(vform, acc, pg, src);
+      break;
+    case kSRegSize:
+      fadda<float>(vform, acc, pg, src);
+      break;
+    case kDRegSize:
+      fadda<double>(vform, acc, pg, src);
+      break;
+    default:
+      VIXL_UNREACHABLE();
+  }
+  return acc;
+}
+
+template <typename T>
 LogicVRegister Simulator::fcadd(VectorFormat vform,
                                 LogicVRegister dst,          // d
                                 const LogicVRegister& src1,  // n
@@ -2273,7 +2764,7 @@
                                 const LogicVRegister& src2,  // m
                                 int rot) {
   if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-    VIXL_UNIMPLEMENTED();
+    fcadd<SimFloat16>(vform, dst, src1, src2, rot);
   } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
     fcadd<float>(vform, dst, src1, src2, rot);
   } else {
@@ -2283,12 +2774,12 @@
   return dst;
 }
 
-
 template <typename T>
 LogicVRegister Simulator::fcmla(VectorFormat vform,
-                                LogicVRegister dst,          // d
-                                const LogicVRegister& src1,  // n
-                                const LogicVRegister& src2,  // m
+                                LogicVRegister dst,
+                                const LogicVRegister& src1,
+                                const LogicVRegister& src2,
+                                const LogicVRegister& acc,
                                 int index,
                                 int rot) {
   int elements = LaneCountFromFormat(vform);
@@ -2301,29 +2792,33 @@
   // 4S --> (4/2 = 2) - 1 = 1) --> 2 x Complex Number (2x2 components: r+i)
 
   for (int e = 0; e <= (elements / 2) - 1; e++) {
+    // Index == -1 indicates a vector/vector rather than vector/indexed-element
+    // operation.
+    int f = (index < 0) ? e : index;
+
     switch (rot) {
       case 0:
-        element1 = src2.Float<T>(index * 2);
+        element1 = src2.Float<T>(f * 2);
         element2 = src1.Float<T>(e * 2);
-        element3 = src2.Float<T>(index * 2 + 1);
+        element3 = src2.Float<T>(f * 2 + 1);
         element4 = src1.Float<T>(e * 2);
         break;
       case 90:
-        element1 = FPNeg(src2.Float<T>(index * 2 + 1));
+        element1 = FPNeg(src2.Float<T>(f * 2 + 1));
         element2 = src1.Float<T>(e * 2 + 1);
-        element3 = src2.Float<T>(index * 2);
+        element3 = src2.Float<T>(f * 2);
         element4 = src1.Float<T>(e * 2 + 1);
         break;
       case 180:
-        element1 = FPNeg(src2.Float<T>(index * 2));
+        element1 = FPNeg(src2.Float<T>(f * 2));
         element2 = src1.Float<T>(e * 2);
-        element3 = FPNeg(src2.Float<T>(index * 2 + 1));
+        element3 = FPNeg(src2.Float<T>(f * 2 + 1));
         element4 = src1.Float<T>(e * 2);
         break;
       case 270:
-        element1 = src2.Float<T>(index * 2 + 1);
+        element1 = src2.Float<T>(f * 2 + 1);
         element2 = src1.Float<T>(e * 2 + 1);
-        element3 = FPNeg(src2.Float<T>(index * 2));
+        element3 = FPNeg(src2.Float<T>(f * 2));
         element4 = src1.Float<T>(e * 2 + 1);
         break;
       default:
@@ -2331,79 +2826,28 @@
         return dst;  // prevents "element(n) may be unintialized" errors
     }
     dst.ClearForWrite(vform);
-    dst.SetFloat<T>(e * 2, FPMulAdd(dst.Float<T>(e * 2), element2, element1));
-    dst.SetFloat<T>(e * 2 + 1,
-                    FPMulAdd(dst.Float<T>(e * 2 + 1), element4, element3));
+    dst.SetFloat<T>(vform,
+                    e * 2,
+                    FPMulAdd(acc.Float<T>(e * 2), element2, element1));
+    dst.SetFloat<T>(vform,
+                    e * 2 + 1,
+                    FPMulAdd(acc.Float<T>(e * 2 + 1), element4, element3));
   }
   return dst;
 }
 
-
-template <typename T>
 LogicVRegister Simulator::fcmla(VectorFormat vform,
-                                LogicVRegister dst,          // d
-                                const LogicVRegister& src1,  // n
-                                const LogicVRegister& src2,  // m
-                                int rot) {
-  int elements = LaneCountFromFormat(vform);
-
-  T element1, element2, element3, element4;
-  rot *= 90;
-
-  // Loop example:
-  // 2S --> (2/2 = 1 - 1 = 0) --> 1 x Complex Number (2x components: r+i)
-  // 4S --> (4/2 = 2) - 1 = 1) --> 2 x Complex Number (2x2 components: r+i)
-
-  for (int e = 0; e <= (elements / 2) - 1; e++) {
-    switch (rot) {
-      case 0:
-        element1 = src2.Float<T>(e * 2);
-        element2 = src1.Float<T>(e * 2);
-        element3 = src2.Float<T>(e * 2 + 1);
-        element4 = src1.Float<T>(e * 2);
-        break;
-      case 90:
-        element1 = FPNeg(src2.Float<T>(e * 2 + 1));
-        element2 = src1.Float<T>(e * 2 + 1);
-        element3 = src2.Float<T>(e * 2);
-        element4 = src1.Float<T>(e * 2 + 1);
-        break;
-      case 180:
-        element1 = FPNeg(src2.Float<T>(e * 2));
-        element2 = src1.Float<T>(e * 2);
-        element3 = FPNeg(src2.Float<T>(e * 2 + 1));
-        element4 = src1.Float<T>(e * 2);
-        break;
-      case 270:
-        element1 = src2.Float<T>(e * 2 + 1);
-        element2 = src1.Float<T>(e * 2 + 1);
-        element3 = FPNeg(src2.Float<T>(e * 2));
-        element4 = src1.Float<T>(e * 2 + 1);
-        break;
-      default:
-        VIXL_UNREACHABLE();
-        return dst;  // prevents "element(n) may be unintialized" errors
-    }
-    dst.ClearForWrite(vform);
-    dst.SetFloat<T>(e * 2, FPMulAdd(dst.Float<T>(e * 2), element2, element1));
-    dst.SetFloat<T>(e * 2 + 1,
-                    FPMulAdd(dst.Float<T>(e * 2 + 1), element4, element3));
-  }
-  return dst;
-}
-
-
-LogicVRegister Simulator::fcmla(VectorFormat vform,
-                                LogicVRegister dst,          // d
-                                const LogicVRegister& src1,  // n
-                                const LogicVRegister& src2,  // m
+                                LogicVRegister dst,
+                                const LogicVRegister& src1,
+                                const LogicVRegister& src2,
+                                const LogicVRegister& acc,
                                 int rot) {
   if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-    VIXL_UNIMPLEMENTED();
+    fcmla<SimFloat16>(vform, dst, src1, src2, acc, -1, rot);
   } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
-    fcmla<float>(vform, dst, src1, src2, rot);
+    fcmla<float>(vform, dst, src1, src2, acc, -1, rot);
   } else {
-    fcmla<double>(vform, dst, src1, src2, rot);
+    fcmla<double>(vform, dst, src1, src2, acc, -1, rot);
   }
   return dst;
 }
@@ -2418,9 +2862,9 @@
   if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
     VIXL_UNIMPLEMENTED();
   } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
-    fcmla<float>(vform, dst, src1, src2, index, rot);
+    fcmla<float>(vform, dst, src1, src2, dst, index, rot);
   } else {
-    fcmla<double>(vform, dst, src1, src2, index, rot);
+    fcmla<double>(vform, dst, src1, src2, dst, index, rot);
   }
   return dst;
 }
@@ -2430,23 +2874,59 @@
                                       LogicVRegister dst,
                                       const LogicVRegister& src,
                                       int src_index) {
-  int laneCount = LaneCountFromFormat(vform);
-  uint64_t value = src.Uint(vform, src_index);
-  dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
-    dst.SetUint(vform, i, value);
+  if (vform == kFormatVnQ) {
+    // When duplicating a 128-bit value, split it into two 64-bit parts, and
+    // then copy the two to their slots on destination register.
+    uint64_t low = src.Uint(kFormatVnD, src_index * 2);
+    uint64_t high = src.Uint(kFormatVnD, (src_index * 2) + 1);
+    dst.ClearForWrite(vform);
+    for (int d_lane = 0; d_lane < LaneCountFromFormat(kFormatVnD);
+         d_lane += 2) {
+      dst.SetUint(kFormatVnD, d_lane, low);
+      dst.SetUint(kFormatVnD, d_lane + 1, high);
+    }
+  } else {
+    int lane_count = LaneCountFromFormat(vform);
+    uint64_t value = src.Uint(vform, src_index);
+    dst.ClearForWrite(vform);
+    for (int i = 0; i < lane_count; ++i) {
+      dst.SetUint(vform, i, value);
+    }
   }
   return dst;
 }
 
+LogicVRegister Simulator::dup_elements_to_segments(VectorFormat vform,
+                                                   LogicVRegister dst,
+                                                   const LogicVRegister& src,
+                                                   int src_index) {
+  // In SVE, a segment is a 128-bit portion of a vector, like a Q register,
+  // whereas in NEON, the size of segment is equal to the size of register
+  // itself.
+  int segment_size = std::min(kQRegSize, RegisterSizeInBitsFromFormat(vform));
+  VIXL_ASSERT(IsMultiple(segment_size, LaneSizeInBitsFromFormat(vform)));
+  int lanes_per_segment = segment_size / LaneSizeInBitsFromFormat(vform);
+
+  VIXL_ASSERT(src_index >= 0);
+  VIXL_ASSERT(src_index < lanes_per_segment);
+
+  dst.ClearForWrite(vform);
+  for (int j = 0; j < LaneCountFromFormat(vform); j += lanes_per_segment) {
+    uint64_t value = src.Uint(vform, j + src_index);
+    for (int i = 0; i < lanes_per_segment; i++) {
+      dst.SetUint(vform, j + i, value);
+    }
+  }
+  return dst;
+}
 
 LogicVRegister Simulator::dup_immediate(VectorFormat vform,
                                         LogicVRegister dst,
                                         uint64_t imm) {
-  int laneCount = LaneCountFromFormat(vform);
+  int lane_count = LaneCountFromFormat(vform);
   uint64_t value = imm & MaxUintFromFormat(vform);
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, value);
   }
   return dst;
@@ -2473,12 +2953,93 @@
 }
 
 
+LogicVRegister Simulator::index(VectorFormat vform,
+                                LogicVRegister dst,
+                                uint64_t start,
+                                uint64_t step) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  uint64_t value = start;
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    dst.SetUint(vform, i, value);
+    value += step;
+  }
+  return dst;
+}
+
+
+LogicVRegister Simulator::insr(VectorFormat vform,
+                               LogicVRegister dst,
+                               uint64_t imm) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  for (int i = LaneCountFromFormat(vform) - 1; i > 0; i--) {
+    dst.SetUint(vform, i, dst.Uint(vform, i - 1));
+  }
+  dst.SetUint(vform, 0, imm);
+  return dst;
+}
+
+
+LogicVRegister Simulator::mov(VectorFormat vform,
+                              LogicVRegister dst,
+                              const LogicVRegister& src) {
+  dst.ClearForWrite(vform);
+  for (int lane = 0; lane < LaneCountFromFormat(vform); lane++) {
+    dst.SetUint(vform, lane, src.Uint(vform, lane));
+  }
+  return dst;
+}
+
+
+LogicPRegister Simulator::mov(LogicPRegister dst, const LogicPRegister& src) {
+  // Avoid a copy if the registers already alias.
+  if (dst.Aliases(src)) return dst;
+
+  for (int i = 0; i < dst.GetChunkCount(); i++) {
+    dst.SetChunk(i, src.GetChunk(i));
+  }
+  return dst;
+}
+
+
+LogicVRegister Simulator::mov_merging(VectorFormat vform,
+                                      LogicVRegister dst,
+                                      const SimPRegister& pg,
+                                      const LogicVRegister& src) {
+  return sel(vform, dst, pg, src, dst);
+}
+
+
+LogicVRegister Simulator::mov_zeroing(VectorFormat vform,
+                                      LogicVRegister dst,
+                                      const SimPRegister& pg,
+                                      const LogicVRegister& src) {
+  SimVRegister zero;
+  dup_immediate(vform, zero, 0);
+  return sel(vform, dst, pg, src, zero);
+}
+
+
+LogicPRegister Simulator::mov_merging(LogicPRegister dst,
+                                      const LogicPRegister& pg,
+                                      const LogicPRegister& src) {
+  return sel(dst, pg, src, dst);
+}
+
+
+LogicPRegister Simulator::mov_zeroing(LogicPRegister dst,
+                                      const LogicPRegister& pg,
+                                      const LogicPRegister& src) {
+  SimPRegister all_false;
+  return sel(dst, pg, src, pfalse(all_false));
+}
+
+
 LogicVRegister Simulator::movi(VectorFormat vform,
                                LogicVRegister dst,
                                uint64_t imm) {
-  int laneCount = LaneCountFromFormat(vform);
+  int lane_count = LaneCountFromFormat(vform);
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, imm);
   }
   return dst;
@@ -2488,9 +3049,9 @@
 LogicVRegister Simulator::mvni(VectorFormat vform,
                                LogicVRegister dst,
                                uint64_t imm) {
-  int laneCount = LaneCountFromFormat(vform);
+  int lane_count = LaneCountFromFormat(vform);
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, ~imm);
   }
   return dst;
@@ -2502,12 +3063,12 @@
                               const LogicVRegister& src,
                               uint64_t imm) {
   uint64_t result[16];
-  int laneCount = LaneCountFromFormat(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  int lane_count = LaneCountFromFormat(vform);
+  for (int i = 0; i < lane_count; ++i) {
     result[i] = src.Uint(vform, i) | imm;
   }
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
@@ -2568,6 +3129,37 @@
 }
 
 
+LogicVRegister Simulator::uxt(VectorFormat vform,
+                              LogicVRegister dst,
+                              const LogicVRegister& src,
+                              unsigned from_size_in_bits) {
+  int lane_count = LaneCountFromFormat(vform);
+  uint64_t mask = GetUintMask(from_size_in_bits);
+
+  dst.ClearForWrite(vform);
+  for (int i = 0; i < lane_count; i++) {
+    dst.SetInt(vform, i, src.Uint(vform, i) & mask);
+  }
+  return dst;
+}
+
+
+LogicVRegister Simulator::sxt(VectorFormat vform,
+                              LogicVRegister dst,
+                              const LogicVRegister& src,
+                              unsigned from_size_in_bits) {
+  int lane_count = LaneCountFromFormat(vform);
+
+  dst.ClearForWrite(vform);
+  for (int i = 0; i < lane_count; i++) {
+    uint64_t value =
+        ExtractSignedBitfield64(from_size_in_bits - 1, 0, src.Uint(vform, i));
+    dst.SetInt(vform, i, value);
+  }
+  return dst;
+}
+
+
 LogicVRegister Simulator::shrn(VectorFormat vform,
                                LogicVRegister dst,
                                const LogicVRegister& src,
@@ -2615,6 +3207,22 @@
   return extractnarrow(vformdst, dst, false, shifted_src, false);
 }
 
+LogicVRegister Simulator::Table(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicVRegister& tab,
+                                const LogicVRegister& ind) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  int lane_count = LaneCountFromFormat(vform);
+  for (int i = 0; i < lane_count; i++) {
+    uint64_t index = ind.Uint(vform, i);
+    uint64_t value = (index >= static_cast<uint64_t>(lane_count))
+                         ? 0
+                         : tab.Uint(vform, static_cast<int>(index));
+    dst.SetUint(vform, i, value);
+  }
+  return dst;
+}
+
 
 LogicVRegister Simulator::Table(VectorFormat vform,
                                 LogicVRegister dst,
@@ -3182,7 +3790,7 @@
   SimVRegister temp1, temp2;
   uxtl(vform, temp1, src1);
   uxtl(vform, temp2, src2);
-  mls(vform, dst, temp1, temp2);
+  mls(vform, dst, dst, temp1, temp2);
   return dst;
 }
 
@@ -3194,7 +3802,7 @@
   SimVRegister temp1, temp2;
   uxtl2(vform, temp1, src1);
   uxtl2(vform, temp2, src2);
-  mls(vform, dst, temp1, temp2);
+  mls(vform, dst, dst, temp1, temp2);
   return dst;
 }
 
@@ -3206,7 +3814,7 @@
   SimVRegister temp1, temp2;
   sxtl(vform, temp1, src1);
   sxtl(vform, temp2, src2);
-  mls(vform, dst, temp1, temp2);
+  mls(vform, dst, dst, temp1, temp2);
   return dst;
 }
 
@@ -3218,7 +3826,7 @@
   SimVRegister temp1, temp2;
   sxtl2(vform, temp1, src1);
   sxtl2(vform, temp2, src2);
-  mls(vform, dst, temp1, temp2);
+  mls(vform, dst, dst, temp1, temp2);
   return dst;
 }
 
@@ -3230,7 +3838,7 @@
   SimVRegister temp1, temp2;
   uxtl(vform, temp1, src1);
   uxtl(vform, temp2, src2);
-  mla(vform, dst, temp1, temp2);
+  mla(vform, dst, dst, temp1, temp2);
   return dst;
 }
 
@@ -3242,7 +3850,7 @@
   SimVRegister temp1, temp2;
   uxtl2(vform, temp1, src1);
   uxtl2(vform, temp2, src2);
-  mla(vform, dst, temp1, temp2);
+  mla(vform, dst, dst, temp1, temp2);
   return dst;
 }
 
@@ -3254,7 +3862,7 @@
   SimVRegister temp1, temp2;
   sxtl(vform, temp1, src1);
   sxtl(vform, temp2, src2);
-  mla(vform, dst, temp1, temp2);
+  mla(vform, dst, dst, temp1, temp2);
   return dst;
 }
 
@@ -3266,7 +3874,7 @@
   SimVRegister temp1, temp2;
   sxtl2(vform, temp1, src1);
   sxtl2(vform, temp2, src2);
-  mla(vform, dst, temp1, temp2);
+  mla(vform, dst, dst, temp1, temp2);
   return dst;
 }
 
@@ -3371,7 +3979,7 @@
 
   dst.ClearForWrite(vform);
   for (int e = 0; e < LaneCountFromFormat(vform); e++) {
-    int64_t result = 0;
+    uint64_t result = 0;
     int64_t element1, element2;
     for (int i = 0; i < 4; i++) {
       int index = 4 * e + i;
@@ -3384,9 +3992,7 @@
       }
       result += element1 * element2;
     }
-
-    result += dst.Int(vform, e);
-    dst.SetInt(vform, e, result);
+    dst.SetUint(vform, e, result + dst.Uint(vform, e));
   }
   return dst;
 }
@@ -3564,16 +4170,16 @@
                                LogicVRegister dst,
                                const LogicVRegister& src1,
                                const LogicVRegister& src2) {
-  uint64_t result[16];
-  int laneCount = LaneCountFromFormat(vform);
-  int pairs = laneCount / 2;
+  uint64_t result[kZRegMaxSizeInBytes];
+  int lane_count = LaneCountFromFormat(vform);
+  int pairs = lane_count / 2;
   for (int i = 0; i < pairs; ++i) {
     result[2 * i] = src1.Uint(vform, 2 * i);
     result[(2 * i) + 1] = src2.Uint(vform, 2 * i);
   }
 
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
@@ -3584,16 +4190,16 @@
                                LogicVRegister dst,
                                const LogicVRegister& src1,
                                const LogicVRegister& src2) {
-  uint64_t result[16];
-  int laneCount = LaneCountFromFormat(vform);
-  int pairs = laneCount / 2;
+  uint64_t result[kZRegMaxSizeInBytes];
+  int lane_count = LaneCountFromFormat(vform);
+  int pairs = lane_count / 2;
   for (int i = 0; i < pairs; ++i) {
     result[2 * i] = src1.Uint(vform, (2 * i) + 1);
     result[(2 * i) + 1] = src2.Uint(vform, (2 * i) + 1);
   }
 
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
@@ -3604,16 +4210,16 @@
                                LogicVRegister dst,
                                const LogicVRegister& src1,
                                const LogicVRegister& src2) {
-  uint64_t result[16];
-  int laneCount = LaneCountFromFormat(vform);
-  int pairs = laneCount / 2;
+  uint64_t result[kZRegMaxSizeInBytes];
+  int lane_count = LaneCountFromFormat(vform);
+  int pairs = lane_count / 2;
   for (int i = 0; i < pairs; ++i) {
     result[2 * i] = src1.Uint(vform, i);
     result[(2 * i) + 1] = src2.Uint(vform, i);
   }
 
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
@@ -3624,16 +4230,16 @@
                                LogicVRegister dst,
                                const LogicVRegister& src1,
                                const LogicVRegister& src2) {
-  uint64_t result[16];
-  int laneCount = LaneCountFromFormat(vform);
-  int pairs = laneCount / 2;
+  uint64_t result[kZRegMaxSizeInBytes];
+  int lane_count = LaneCountFromFormat(vform);
+  int pairs = lane_count / 2;
   for (int i = 0; i < pairs; ++i) {
     result[2 * i] = src1.Uint(vform, pairs + i);
     result[(2 * i) + 1] = src2.Uint(vform, pairs + i);
   }
 
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[i]);
   }
   return dst;
@@ -3644,15 +4250,15 @@
                                LogicVRegister dst,
                                const LogicVRegister& src1,
                                const LogicVRegister& src2) {
-  uint64_t result[32];
-  int laneCount = LaneCountFromFormat(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  uint64_t result[kZRegMaxSizeInBytes * 2];
+  int lane_count = LaneCountFromFormat(vform);
+  for (int i = 0; i < lane_count; ++i) {
     result[i] = src1.Uint(vform, i);
-    result[laneCount + i] = src2.Uint(vform, i);
+    result[lane_count + i] = src2.Uint(vform, i);
   }
 
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[2 * i]);
   }
   return dst;
@@ -3663,15 +4269,15 @@
                                LogicVRegister dst,
                                const LogicVRegister& src1,
                                const LogicVRegister& src2) {
-  uint64_t result[32];
-  int laneCount = LaneCountFromFormat(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  uint64_t result[kZRegMaxSizeInBytes * 2];
+  int lane_count = LaneCountFromFormat(vform);
+  for (int i = 0; i < lane_count; ++i) {
     result[i] = src1.Uint(vform, i);
-    result[laneCount + i] = src2.Uint(vform, i);
+    result[lane_count + i] = src2.Uint(vform, i);
   }
 
   dst.ClearForWrite(vform);
-  for (int i = 0; i < laneCount; ++i) {
+  for (int i = 0; i < lane_count; ++i) {
     dst.SetUint(vform, i, result[(2 * i) + 1]);
   }
   return dst;
@@ -4105,11 +4711,20 @@
 
   double result = FPRoundIntCommon(value, round_mode);
 
+  // We want to compare `result > INT64_MAX` below, but INT64_MAX isn't exactly
+  // representable as a double, and is rounded to (INT64_MAX + 1) when
+  // converted. To avoid this, we compare `result >= int64_max_plus_one`
+  // instead; this is safe because `result` is known to be integral, and
+  // `int64_max_plus_one` is exactly representable as a double.
+  constexpr uint64_t int64_max_plus_one = static_cast<uint64_t>(INT64_MAX) + 1;
+  VIXL_STATIC_ASSERT(static_cast<uint64_t>(static_cast<double>(
+                         int64_max_plus_one)) == int64_max_plus_one);
+
   if (frint_mode == kFrintToInt32) {
     if ((result > INT32_MAX) || (result < INT32_MIN)) {
       return INT32_MIN;
     }
-  } else if ((result > INT64_MAX) || (result < INT64_MIN)) {
+  } else if ((result >= int64_max_plus_one) || (result < INT64_MIN)) {
     return INT64_MIN;
   }
 
@@ -4201,7 +4816,7 @@
       } else {                                                   \
         result = OP(op1, op2);                                   \
       }                                                          \
-      dst.SetFloat(i, result);                                   \
+      dst.SetFloat(vform, i, result);                            \
     }                                                            \
     return dst;                                                  \
   }                                                              \
@@ -4244,7 +4859,7 @@
     T op1 = -src1.Float<T>(i);
     T op2 = src2.Float<T>(i);
     T result = FPProcessNaNs(op1, op2);
-    dst.SetFloat(i, IsNaN(result) ? result : FPRecipStepFused(op1, op2));
+    dst.SetFloat(vform, i, IsNaN(result) ? result : FPRecipStepFused(op1, op2));
   }
   return dst;
 }
@@ -4276,7 +4891,7 @@
     T op1 = -src1.Float<T>(i);
     T op2 = src2.Float<T>(i);
     T result = FPProcessNaNs(op1, op2);
-    dst.SetFloat(i, IsNaN(result) ? result : FPRSqrtStepFused(op1, op2));
+    dst.SetFloat(vform, i, IsNaN(result) ? result : FPRSqrtStepFused(op1, op2));
   }
   return dst;
 }
@@ -4309,29 +4924,41 @@
     bool result = false;
     T op1 = src1.Float<T>(i);
     T op2 = src2.Float<T>(i);
-    T nan_result = FPProcessNaNs(op1, op2);
-    if (!IsNaN(nan_result)) {
-      switch (cond) {
-        case eq:
-          result = (op1 == op2);
-          break;
-        case ge:
-          result = (op1 >= op2);
-          break;
-        case gt:
-          result = (op1 > op2);
-          break;
-        case le:
-          result = (op1 <= op2);
-          break;
-        case lt:
-          result = (op1 < op2);
-          break;
-        default:
-          VIXL_UNREACHABLE();
-          break;
-      }
+    bool unordered = IsNaN(FPProcessNaNs(op1, op2));
+
+    switch (cond) {
+      case eq:
+        result = (op1 == op2);
+        break;
+      case ge:
+        result = (op1 >= op2);
+        break;
+      case gt:
+        result = (op1 > op2);
+        break;
+      case le:
+        result = (op1 <= op2);
+        break;
+      case lt:
+        result = (op1 < op2);
+        break;
+      case ne:
+        result = (op1 != op2);
+        break;
+      case uo:
+        result = unordered;
+        break;
+      default:
+        // Other conditions are defined in terms of those above.
+        VIXL_UNREACHABLE();
+        break;
     }
+
+    if (result && unordered) {
+      // Only `uo` and `ne` can be true for unordered comparisons.
+      VIXL_ASSERT((cond == uo) || (cond == ne));
+    }
+
     dst.SetUint(vform, i, result ? MaxUintFromFormat(vform) : 0);
   }
   return dst;
@@ -4403,15 +5030,16 @@
 template <typename T>
 LogicVRegister Simulator::fmla(VectorFormat vform,
                                LogicVRegister dst,
+                               const LogicVRegister& srca,
                                const LogicVRegister& src1,
                                const LogicVRegister& src2) {
   dst.ClearForWrite(vform);
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
     T op1 = src1.Float<T>(i);
     T op2 = src2.Float<T>(i);
-    T acc = dst.Float<T>(i);
+    T acc = srca.Float<T>(i);
     T result = FPMulAdd(acc, op1, op2);
-    dst.SetFloat(i, result);
+    dst.SetFloat(vform, i, result);
   }
   return dst;
 }
@@ -4419,15 +5047,16 @@
 
 LogicVRegister Simulator::fmla(VectorFormat vform,
                                LogicVRegister dst,
+                               const LogicVRegister& srca,
                                const LogicVRegister& src1,
                                const LogicVRegister& src2) {
   if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-    fmla<SimFloat16>(vform, dst, src1, src2);
+    fmla<SimFloat16>(vform, dst, srca, src1, src2);
   } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
-    fmla<float>(vform, dst, src1, src2);
+    fmla<float>(vform, dst, srca, src1, src2);
   } else {
     VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
-    fmla<double>(vform, dst, src1, src2);
+    fmla<double>(vform, dst, srca, src1, src2);
   }
   return dst;
 }
@@ -4436,13 +5065,14 @@
 template <typename T>
 LogicVRegister Simulator::fmls(VectorFormat vform,
                                LogicVRegister dst,
+                               const LogicVRegister& srca,
                                const LogicVRegister& src1,
                                const LogicVRegister& src2) {
   dst.ClearForWrite(vform);
   for (int i = 0; i < LaneCountFromFormat(vform); i++) {
     T op1 = -src1.Float<T>(i);
     T op2 = src2.Float<T>(i);
-    T acc = dst.Float<T>(i);
+    T acc = srca.Float<T>(i);
     T result = FPMulAdd(acc, op1, op2);
     dst.SetFloat(i, result);
   }
@@ -4452,15 +5082,16 @@
 
 LogicVRegister Simulator::fmls(VectorFormat vform,
                                LogicVRegister dst,
+                               const LogicVRegister& srca,
                                const LogicVRegister& src1,
                                const LogicVRegister& src2) {
   if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-    fmls<SimFloat16>(vform, dst, src1, src2);
+    fmls<SimFloat16>(vform, dst, srca, src1, src2);
   } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
-    fmls<float>(vform, dst, src1, src2);
+    fmls<float>(vform, dst, srca, src1, src2);
   } else {
     VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
-    fmls<double>(vform, dst, src1, src2);
+    fmls<double>(vform, dst, srca, src1, src2);
   }
   return dst;
 }
@@ -4740,75 +5371,131 @@
 #undef DEFINE_NEON_FP_PAIR_OP
 
 template <typename T>
-LogicVRegister Simulator::fminmaxv(VectorFormat vform,
-                                   LogicVRegister dst,
-                                   const LogicVRegister& src,
-                                   typename TFPMinMaxOp<T>::type Op) {
-  VIXL_ASSERT((vform == kFormat4H) || (vform == kFormat8H) ||
-              (vform == kFormat4S));
-  USE(vform);
-  T result1 = (this->*Op)(src.Float<T>(0), src.Float<T>(1));
-  T result2 = (this->*Op)(src.Float<T>(2), src.Float<T>(3));
-  if (vform == kFormat8H) {
-    T result3 = (this->*Op)(src.Float<T>(4), src.Float<T>(5));
-    T result4 = (this->*Op)(src.Float<T>(6), src.Float<T>(7));
-    result1 = (this->*Op)(result1, result3);
-    result2 = (this->*Op)(result2, result4);
+LogicVRegister Simulator::FPPairedAcrossHelper(VectorFormat vform,
+                                               LogicVRegister dst,
+                                               const LogicVRegister& src,
+                                               typename TFPPairOp<T>::type fn,
+                                               uint64_t inactive_value) {
+  int lane_count = LaneCountFromFormat(vform);
+  T result[kZRegMaxSizeInBytes / sizeof(T)];
+  // Copy the source vector into a working array. Initialise the unused elements
+  // at the end of the array to the same value that a false predicate would set.
+  for (int i = 0; i < static_cast<int>(ArrayLength(result)); i++) {
+    result[i] = (i < lane_count)
+                    ? src.Float<T>(i)
+                    : RawbitsWithSizeToFP<T>(sizeof(T) * 8, inactive_value);
   }
-  T result = (this->*Op)(result1, result2);
+
+  // Pairwise reduce the elements to a single value, using the pair op function
+  // argument.
+  for (int step = 1; step < lane_count; step *= 2) {
+    for (int i = 0; i < lane_count; i += step * 2) {
+      result[i] = (this->*fn)(result[i], result[i + step]);
+    }
+  }
   dst.ClearForWrite(ScalarFormatFromFormat(vform));
-  dst.SetFloat<T>(0, result);
+  dst.SetFloat<T>(0, result[0]);
   return dst;
 }
 
+LogicVRegister Simulator::FPPairedAcrossHelper(
+    VectorFormat vform,
+    LogicVRegister dst,
+    const LogicVRegister& src,
+    typename TFPPairOp<SimFloat16>::type fn16,
+    typename TFPPairOp<float>::type fn32,
+    typename TFPPairOp<double>::type fn64,
+    uint64_t inactive_value) {
+  switch (LaneSizeInBitsFromFormat(vform)) {
+    case kHRegSize:
+      return FPPairedAcrossHelper<SimFloat16>(vform,
+                                              dst,
+                                              src,
+                                              fn16,
+                                              inactive_value);
+    case kSRegSize:
+      return FPPairedAcrossHelper<float>(vform, dst, src, fn32, inactive_value);
+    default:
+      VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
+      return FPPairedAcrossHelper<double>(vform,
+                                          dst,
+                                          src,
+                                          fn64,
+                                          inactive_value);
+  }
+}
+
+LogicVRegister Simulator::faddv(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicVRegister& src) {
+  return FPPairedAcrossHelper(vform,
+                              dst,
+                              src,
+                              &Simulator::FPAdd<SimFloat16>,
+                              &Simulator::FPAdd<float>,
+                              &Simulator::FPAdd<double>,
+                              0);
+}
 
 LogicVRegister Simulator::fmaxv(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src) {
-  if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-    return fminmaxv<SimFloat16>(vform, dst, src, &Simulator::FPMax<SimFloat16>);
-  } else {
-    return fminmaxv<float>(vform, dst, src, &Simulator::FPMax<float>);
-  }
+  int lane_size = LaneSizeInBitsFromFormat(vform);
+  uint64_t inactive_value =
+      FPToRawbitsWithSize(lane_size, kFP64NegativeInfinity);
+  return FPPairedAcrossHelper(vform,
+                              dst,
+                              src,
+                              &Simulator::FPMax<SimFloat16>,
+                              &Simulator::FPMax<float>,
+                              &Simulator::FPMax<double>,
+                              inactive_value);
 }
 
 
 LogicVRegister Simulator::fminv(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src) {
-  if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-    return fminmaxv<SimFloat16>(vform, dst, src, &Simulator::FPMin<SimFloat16>);
-  } else {
-    return fminmaxv<float>(vform, dst, src, &Simulator::FPMin<float>);
-  }
+  int lane_size = LaneSizeInBitsFromFormat(vform);
+  uint64_t inactive_value =
+      FPToRawbitsWithSize(lane_size, kFP64PositiveInfinity);
+  return FPPairedAcrossHelper(vform,
+                              dst,
+                              src,
+                              &Simulator::FPMin<SimFloat16>,
+                              &Simulator::FPMin<float>,
+                              &Simulator::FPMin<double>,
+                              inactive_value);
 }
 
 
 LogicVRegister Simulator::fmaxnmv(VectorFormat vform,
                                   LogicVRegister dst,
                                   const LogicVRegister& src) {
-  if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-    return fminmaxv<SimFloat16>(vform,
-                                dst,
-                                src,
-                                &Simulator::FPMaxNM<SimFloat16>);
-  } else {
-    return fminmaxv<float>(vform, dst, src, &Simulator::FPMaxNM<float>);
-  }
+  int lane_size = LaneSizeInBitsFromFormat(vform);
+  uint64_t inactive_value = FPToRawbitsWithSize(lane_size, kFP64DefaultNaN);
+  return FPPairedAcrossHelper(vform,
+                              dst,
+                              src,
+                              &Simulator::FPMaxNM<SimFloat16>,
+                              &Simulator::FPMaxNM<float>,
+                              &Simulator::FPMaxNM<double>,
+                              inactive_value);
 }
 
 
 LogicVRegister Simulator::fminnmv(VectorFormat vform,
                                   LogicVRegister dst,
                                   const LogicVRegister& src) {
-  if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-    return fminmaxv<SimFloat16>(vform,
-                                dst,
-                                src,
-                                &Simulator::FPMinNM<SimFloat16>);
-  } else {
-    return fminmaxv<float>(vform, dst, src, &Simulator::FPMinNM<float>);
-  }
+  int lane_size = LaneSizeInBitsFromFormat(vform);
+  uint64_t inactive_value = FPToRawbitsWithSize(lane_size, kFP64DefaultNaN);
+  return FPPairedAcrossHelper(vform,
+                              dst,
+                              src,
+                              &Simulator::FPMinNM<SimFloat16>,
+                              &Simulator::FPMinNM<float>,
+                              &Simulator::FPMinNM<double>,
+                              inactive_value);
 }
 
 
@@ -4843,14 +5530,14 @@
   SimVRegister temp;
   if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
     LogicVRegister index_reg = dup_element(kFormat8H, temp, src2, index);
-    fmla<SimFloat16>(vform, dst, src1, index_reg);
+    fmla<SimFloat16>(vform, dst, dst, src1, index_reg);
   } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
     LogicVRegister index_reg = dup_element(kFormat4S, temp, src2, index);
-    fmla<float>(vform, dst, src1, index_reg);
+    fmla<float>(vform, dst, dst, src1, index_reg);
   } else {
     VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
     LogicVRegister index_reg = dup_element(kFormat2D, temp, src2, index);
-    fmla<double>(vform, dst, src1, index_reg);
+    fmla<double>(vform, dst, dst, src1, index_reg);
   }
   return dst;
 }
@@ -4865,14 +5552,14 @@
   SimVRegister temp;
   if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
     LogicVRegister index_reg = dup_element(kFormat8H, temp, src2, index);
-    fmls<SimFloat16>(vform, dst, src1, index_reg);
+    fmls<SimFloat16>(vform, dst, dst, src1, index_reg);
   } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
     LogicVRegister index_reg = dup_element(kFormat4S, temp, src2, index);
-    fmls<float>(vform, dst, src1, index_reg);
+    fmls<float>(vform, dst, dst, src1, index_reg);
   } else {
     VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
     LogicVRegister index_reg = dup_element(kFormat2D, temp, src2, index);
-    fmls<double>(vform, dst, src1, index_reg);
+    fmls<double>(vform, dst, dst, src1, index_reg);
   }
   return dst;
 }
@@ -4941,63 +5628,143 @@
   return dst;
 }
 
+LogicVRegister Simulator::fcvt(VectorFormat vform,
+                               unsigned dst_data_size_in_bits,
+                               unsigned src_data_size_in_bits,
+                               LogicVRegister dst,
+                               const LogicPRegister& pg,
+                               const LogicVRegister& src) {
+  VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) >= dst_data_size_in_bits);
+  VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) >= src_data_size_in_bits);
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    uint64_t src_raw_bits = ExtractUnsignedBitfield64(src_data_size_in_bits - 1,
+                                                      0,
+                                                      src.Uint(vform, i));
+    double dst_value =
+        RawbitsWithSizeToFP<double>(src_data_size_in_bits, src_raw_bits);
+
+    uint64_t dst_raw_bits =
+        FPToRawbitsWithSize(dst_data_size_in_bits, dst_value);
+
+    dst.SetUint(vform, i, dst_raw_bits);
+  }
+
+  return dst;
+}
+
+LogicVRegister Simulator::fcvts(VectorFormat vform,
+                                unsigned dst_data_size_in_bits,
+                                unsigned src_data_size_in_bits,
+                                LogicVRegister dst,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src,
+                                FPRounding round,
+                                int fbits) {
+  VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) >= dst_data_size_in_bits);
+  VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) >= src_data_size_in_bits);
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    uint64_t value = ExtractUnsignedBitfield64(src_data_size_in_bits - 1,
+                                               0,
+                                               src.Uint(vform, i));
+    double result = RawbitsWithSizeToFP<double>(src_data_size_in_bits, value) *
+                    std::pow(2.0, fbits);
+
+    switch (dst_data_size_in_bits) {
+      case kHRegSize:
+        dst.SetInt(vform, i, FPToInt16(result, round));
+        break;
+      case kSRegSize:
+        dst.SetInt(vform, i, FPToInt32(result, round));
+        break;
+      case kDRegSize:
+        dst.SetInt(vform, i, FPToInt64(result, round));
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  }
+
+  return dst;
+}
 
 LogicVRegister Simulator::fcvts(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src,
-                                FPRounding rounding_mode,
+                                FPRounding round,
                                 int fbits) {
   dst.ClearForWrite(vform);
-  if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-    for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-      SimFloat16 op =
-          static_cast<double>(src.Float<SimFloat16>(i)) * std::pow(2.0, fbits);
-      dst.SetInt(vform, i, FPToInt16(op, rounding_mode));
-    }
-  } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
-    for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-      float op = src.Float<float>(i) * std::pow(2.0f, fbits);
-      dst.SetInt(vform, i, FPToInt32(op, rounding_mode));
-    }
-  } else {
-    VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
-    for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-      double op = src.Float<double>(i) * std::pow(2.0, fbits);
-      dst.SetInt(vform, i, FPToInt64(op, rounding_mode));
-    }
-  }
-  return dst;
+  return fcvts(vform,
+               LaneSizeInBitsFromFormat(vform),
+               LaneSizeInBitsFromFormat(vform),
+               dst,
+               GetPTrue(),
+               src,
+               round,
+               fbits);
 }
 
+LogicVRegister Simulator::fcvtu(VectorFormat vform,
+                                unsigned dst_data_size_in_bits,
+                                unsigned src_data_size_in_bits,
+                                LogicVRegister dst,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src,
+                                FPRounding round,
+                                int fbits) {
+  VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) >= dst_data_size_in_bits);
+  VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) >= src_data_size_in_bits);
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    uint64_t value = ExtractUnsignedBitfield64(src_data_size_in_bits - 1,
+                                               0,
+                                               src.Uint(vform, i));
+    double result = RawbitsWithSizeToFP<double>(src_data_size_in_bits, value) *
+                    std::pow(2.0, fbits);
+
+    switch (dst_data_size_in_bits) {
+      case kHRegSize:
+        dst.SetUint(vform, i, FPToUInt16(result, round));
+        break;
+      case kSRegSize:
+        dst.SetUint(vform, i, FPToUInt32(result, round));
+        break;
+      case kDRegSize:
+        dst.SetUint(vform, i, FPToUInt64(result, round));
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  }
+
+  return dst;
+}
 
 LogicVRegister Simulator::fcvtu(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src,
-                                FPRounding rounding_mode,
+                                FPRounding round,
                                 int fbits) {
   dst.ClearForWrite(vform);
-  if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-    for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-      SimFloat16 op =
-          static_cast<double>(src.Float<SimFloat16>(i)) * std::pow(2.0, fbits);
-      dst.SetUint(vform, i, FPToUInt16(op, rounding_mode));
-    }
-  } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
-    for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-      float op = src.Float<float>(i) * std::pow(2.0f, fbits);
-      dst.SetUint(vform, i, FPToUInt32(op, rounding_mode));
-    }
-  } else {
-    VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
-    for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-      double op = src.Float<double>(i) * std::pow(2.0, fbits);
-      dst.SetUint(vform, i, FPToUInt64(op, rounding_mode));
-    }
-  }
-  return dst;
+  return fcvtu(vform,
+               LaneSizeInBitsFromFormat(vform),
+               LaneSizeInBitsFromFormat(vform),
+               dst,
+               GetPTrue(),
+               src,
+               round,
+               fbits);
 }
 
-
 LogicVRegister Simulator::fcvtl(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src) {
@@ -5208,18 +5975,18 @@
   if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
     for (int i = 0; i < LaneCountFromFormat(vform); i++) {
       SimFloat16 input = src.Float<SimFloat16>(i);
-      dst.SetFloat(i, FPRecipSqrtEstimate<SimFloat16>(input));
+      dst.SetFloat(vform, i, FPRecipSqrtEstimate<SimFloat16>(input));
     }
   } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
     for (int i = 0; i < LaneCountFromFormat(vform); i++) {
       float input = src.Float<float>(i);
-      dst.SetFloat(i, FPRecipSqrtEstimate<float>(input));
+      dst.SetFloat(vform, i, FPRecipSqrtEstimate<float>(input));
     }
   } else {
     VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
     for (int i = 0; i < LaneCountFromFormat(vform); i++) {
       double input = src.Float<double>(i);
-      dst.SetFloat(i, FPRecipSqrtEstimate<double>(input));
+      dst.SetFloat(vform, i, FPRecipSqrtEstimate<double>(input));
     }
   }
   return dst;
@@ -5354,18 +6121,18 @@
   if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
     for (int i = 0; i < LaneCountFromFormat(vform); i++) {
       SimFloat16 input = src.Float<SimFloat16>(i);
-      dst.SetFloat(i, FPRecipEstimate<SimFloat16>(input, round));
+      dst.SetFloat(vform, i, FPRecipEstimate<SimFloat16>(input, round));
     }
   } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
     for (int i = 0; i < LaneCountFromFormat(vform); i++) {
       float input = src.Float<float>(i);
-      dst.SetFloat(i, FPRecipEstimate<float>(input, round));
+      dst.SetFloat(vform, i, FPRecipEstimate<float>(input, round));
     }
   } else {
     VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
     for (int i = 0; i < LaneCountFromFormat(vform); i++) {
       double input = src.Float<double>(i);
-      dst.SetFloat(i, FPRecipEstimate<double>(input, round));
+      dst.SetFloat(vform, i, FPRecipEstimate<double>(input, round));
     }
   }
   return dst;
@@ -5426,6 +6193,47 @@
   return dst;
 }
 
+LogicPRegister Simulator::pfalse(LogicPRegister dst) {
+  dst.Clear();
+  return dst;
+}
+
+LogicPRegister Simulator::pfirst(LogicPRegister dst,
+                                 const LogicPRegister& pg,
+                                 const LogicPRegister& src) {
+  int first_pg = GetFirstActive(kFormatVnB, pg);
+  VIXL_ASSERT(first_pg < LaneCountFromFormat(kFormatVnB));
+  mov(dst, src);
+  if (first_pg >= 0) dst.SetActive(kFormatVnB, first_pg, true);
+  return dst;
+}
+
+LogicPRegister Simulator::ptrue(VectorFormat vform,
+                                LogicPRegister dst,
+                                int pattern) {
+  int count = GetPredicateConstraintLaneCount(vform, pattern);
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    dst.SetActive(vform, i, i < count);
+  }
+  return dst;
+}
+
+LogicPRegister Simulator::pnext(VectorFormat vform,
+                                LogicPRegister dst,
+                                const LogicPRegister& pg,
+                                const LogicPRegister& src) {
+  int next = GetLastActive(vform, src) + 1;
+  while (next < LaneCountFromFormat(vform)) {
+    if (pg.IsActive(vform, next)) break;
+    next++;
+  }
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    dst.SetActive(vform, i, (i == next));
+  }
+  return dst;
+}
+
 template <typename T>
 LogicVRegister Simulator::frecpx(VectorFormat vform,
                                  LogicVRegister dst,
@@ -5477,49 +6285,1133 @@
   return dst;
 }
 
+LogicVRegister Simulator::ftsmul(VectorFormat vform,
+                                 LogicVRegister dst,
+                                 const LogicVRegister& src1,
+                                 const LogicVRegister& src2) {
+  SimVRegister maybe_neg_src1;
+
+  // The bottom bit of src2 controls the sign of the result. Use it to
+  // conditionally invert the sign of one `fmul` operand.
+  shl(vform, maybe_neg_src1, src2, LaneSizeInBitsFromFormat(vform) - 1);
+  eor(vform, maybe_neg_src1, maybe_neg_src1, src1);
+
+  // Multiply src1 by the modified neg_src1, which is potentially its negation.
+  // In the case of NaNs, NaN * -NaN will return the first NaN intact, so src1,
+  // rather than neg_src1, must be the first source argument.
+  fmul(vform, dst, src1, maybe_neg_src1);
+
+  return dst;
+}
+
+LogicVRegister Simulator::ftssel(VectorFormat vform,
+                                 LogicVRegister dst,
+                                 const LogicVRegister& src1,
+                                 const LogicVRegister& src2) {
+  unsigned lane_bits = LaneSizeInBitsFromFormat(vform);
+  uint64_t sign_bit = UINT64_C(1) << (lane_bits - 1);
+  uint64_t one;
+
+  if (lane_bits == kHRegSize) {
+    one = Float16ToRawbits(Float16(1.0));
+  } else if (lane_bits == kSRegSize) {
+    one = FloatToRawbits(1.0);
+  } else {
+    VIXL_ASSERT(lane_bits == kDRegSize);
+    one = DoubleToRawbits(1.0);
+  }
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    // Use integer accessors for this operation, as this is a data manipulation
+    // task requiring no calculation.
+    uint64_t op = src1.Uint(vform, i);
+
+    // Only the bottom two bits of the src2 register are significant, indicating
+    // the quadrant. Bit 0 controls whether src1 or 1.0 is written to dst. Bit 1
+    // determines the sign of the value written to dst.
+    uint64_t q = src2.Uint(vform, i);
+    if ((q & 1) == 1) op = one;
+    if ((q & 2) == 2) op ^= sign_bit;
+
+    dst.SetUint(vform, i, op);
+  }
+
+  return dst;
+}
+
+template <typename T>
+LogicVRegister Simulator::FTMaddHelper(VectorFormat vform,
+                                       LogicVRegister dst,
+                                       const LogicVRegister& src1,
+                                       const LogicVRegister& src2,
+                                       uint64_t coeff_pos,
+                                       uint64_t coeff_neg) {
+  SimVRegister zero;
+  dup_immediate(kFormatVnB, zero, 0);
+
+  SimVRegister cf;
+  SimVRegister cfn;
+  dup_immediate(vform, cf, coeff_pos);
+  dup_immediate(vform, cfn, coeff_neg);
+
+  // The specification requires testing the top bit of the raw value, rather
+  // than the sign of the floating point number, so use an integer comparison
+  // here.
+  SimPRegister is_neg;
+  SVEIntCompareVectorsHelper(lt,
+                             vform,
+                             is_neg,
+                             GetPTrue(),
+                             src2,
+                             zero,
+                             false,
+                             LeaveFlags);
+  mov_merging(vform, cf, is_neg, cfn);
+
+  SimVRegister temp;
+  fabs_<T>(vform, temp, src2);
+  fmla<T>(vform, cf, cf, src1, temp);
+  mov(vform, dst, cf);
+  return dst;
+}
+
+
+LogicVRegister Simulator::ftmad(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicVRegister& src1,
+                                const LogicVRegister& src2,
+                                unsigned index) {
+  static const uint64_t ftmad_coeff16[] = {0x3c00,
+                                           0xb155,
+                                           0x2030,
+                                           0x0000,
+                                           0x0000,
+                                           0x0000,
+                                           0x0000,
+                                           0x0000,
+                                           0x3c00,
+                                           0xb800,
+                                           0x293a,
+                                           0x0000,
+                                           0x0000,
+                                           0x0000,
+                                           0x0000,
+                                           0x0000};
+
+  static const uint64_t ftmad_coeff32[] = {0x3f800000,
+                                           0xbe2aaaab,
+                                           0x3c088886,
+                                           0xb95008b9,
+                                           0x36369d6d,
+                                           0x00000000,
+                                           0x00000000,
+                                           0x00000000,
+                                           0x3f800000,
+                                           0xbf000000,
+                                           0x3d2aaaa6,
+                                           0xbab60705,
+                                           0x37cd37cc,
+                                           0x00000000,
+                                           0x00000000,
+                                           0x00000000};
+
+  static const uint64_t ftmad_coeff64[] = {0x3ff0000000000000,
+                                           0xbfc5555555555543,
+                                           0x3f8111111110f30c,
+                                           0xbf2a01a019b92fc6,
+                                           0x3ec71de351f3d22b,
+                                           0xbe5ae5e2b60f7b91,
+                                           0x3de5d8408868552f,
+                                           0x0000000000000000,
+                                           0x3ff0000000000000,
+                                           0xbfe0000000000000,
+                                           0x3fa5555555555536,
+                                           0xbf56c16c16c13a0b,
+                                           0x3efa01a019b1e8d8,
+                                           0xbe927e4f7282f468,
+                                           0x3e21ee96d2641b13,
+                                           0xbda8f76380fbb401};
+  VIXL_ASSERT((index + 8) < ArrayLength(ftmad_coeff64));
+  VIXL_ASSERT(ArrayLength(ftmad_coeff16) == ArrayLength(ftmad_coeff64));
+  VIXL_ASSERT(ArrayLength(ftmad_coeff32) == ArrayLength(ftmad_coeff64));
+
+  if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
+    FTMaddHelper<SimFloat16>(vform,
+                             dst,
+                             src1,
+                             src2,
+                             ftmad_coeff16[index],
+                             ftmad_coeff16[index + 8]);
+  } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
+    FTMaddHelper<float>(vform,
+                        dst,
+                        src1,
+                        src2,
+                        ftmad_coeff32[index],
+                        ftmad_coeff32[index + 8]);
+  } else {
+    VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
+    FTMaddHelper<double>(vform,
+                         dst,
+                         src1,
+                         src2,
+                         ftmad_coeff64[index],
+                         ftmad_coeff64[index + 8]);
+  }
+  return dst;
+}
+
+LogicVRegister Simulator::fexpa(VectorFormat vform,
+                                LogicVRegister dst,
+                                const LogicVRegister& src) {
+  static const uint64_t fexpa_coeff16[] = {0x0000, 0x0016, 0x002d, 0x0045,
+                                           0x005d, 0x0075, 0x008e, 0x00a8,
+                                           0x00c2, 0x00dc, 0x00f8, 0x0114,
+                                           0x0130, 0x014d, 0x016b, 0x0189,
+                                           0x01a8, 0x01c8, 0x01e8, 0x0209,
+                                           0x022b, 0x024e, 0x0271, 0x0295,
+                                           0x02ba, 0x02e0, 0x0306, 0x032e,
+                                           0x0356, 0x037f, 0x03a9, 0x03d4};
+
+  static const uint64_t fexpa_coeff32[] =
+      {0x000000, 0x0164d2, 0x02cd87, 0x043a29, 0x05aac3, 0x071f62, 0x08980f,
+       0x0a14d5, 0x0b95c2, 0x0d1adf, 0x0ea43a, 0x1031dc, 0x11c3d3, 0x135a2b,
+       0x14f4f0, 0x16942d, 0x1837f0, 0x19e046, 0x1b8d3a, 0x1d3eda, 0x1ef532,
+       0x20b051, 0x227043, 0x243516, 0x25fed7, 0x27cd94, 0x29a15b, 0x2b7a3a,
+       0x2d583f, 0x2f3b79, 0x3123f6, 0x3311c4, 0x3504f3, 0x36fd92, 0x38fbaf,
+       0x3aff5b, 0x3d08a4, 0x3f179a, 0x412c4d, 0x4346cd, 0x45672a, 0x478d75,
+       0x49b9be, 0x4bec15, 0x4e248c, 0x506334, 0x52a81e, 0x54f35b, 0x5744fd,
+       0x599d16, 0x5bfbb8, 0x5e60f5, 0x60ccdf, 0x633f89, 0x65b907, 0x68396a,
+       0x6ac0c7, 0x6d4f30, 0x6fe4ba, 0x728177, 0x75257d, 0x77d0df, 0x7a83b3,
+       0x7d3e0c};
+
+  static const uint64_t fexpa_coeff64[] =
+      {0X0000000000000, 0X02c9a3e778061, 0X059b0d3158574, 0X0874518759bc8,
+       0X0b5586cf9890f, 0X0e3ec32d3d1a2, 0X11301d0125b51, 0X1429aaea92de0,
+       0X172b83c7d517b, 0X1a35beb6fcb75, 0X1d4873168b9aa, 0X2063b88628cd6,
+       0X2387a6e756238, 0X26b4565e27cdd, 0X29e9df51fdee1, 0X2d285a6e4030b,
+       0X306fe0a31b715, 0X33c08b26416ff, 0X371a7373aa9cb, 0X3a7db34e59ff7,
+       0X3dea64c123422, 0X4160a21f72e2a, 0X44e086061892d, 0X486a2b5c13cd0,
+       0X4bfdad5362a27, 0X4f9b2769d2ca7, 0X5342b569d4f82, 0X56f4736b527da,
+       0X5ab07dd485429, 0X5e76f15ad2148, 0X6247eb03a5585, 0X6623882552225,
+       0X6a09e667f3bcd, 0X6dfb23c651a2f, 0X71f75e8ec5f74, 0X75feb564267c9,
+       0X7a11473eb0187, 0X7e2f336cf4e62, 0X82589994cce13, 0X868d99b4492ed,
+       0X8ace5422aa0db, 0X8f1ae99157736, 0X93737b0cdc5e5, 0X97d829fde4e50,
+       0X9c49182a3f090, 0Xa0c667b5de565, 0Xa5503b23e255d, 0Xa9e6b5579fdbf,
+       0Xae89f995ad3ad, 0Xb33a2b84f15fb, 0Xb7f76f2fb5e47, 0Xbcc1e904bc1d2,
+       0Xc199bdd85529c, 0Xc67f12e57d14b, 0Xcb720dcef9069, 0Xd072d4a07897c,
+       0Xd5818dcfba487, 0Xda9e603db3285, 0Xdfc97337b9b5f, 0Xe502ee78b3ff6,
+       0Xea4afa2a490da, 0Xefa1bee615a27, 0Xf50765b6e4540, 0Xfa7c1819e90d8};
+
+  unsigned lane_size = LaneSizeInBitsFromFormat(vform);
+  int index_highbit = 5;
+  int op_highbit, op_shift;
+  const uint64_t* fexpa_coeff;
+
+  if (lane_size == kHRegSize) {
+    index_highbit = 4;
+    VIXL_ASSERT(ArrayLength(fexpa_coeff16) == (1U << (index_highbit + 1)));
+    fexpa_coeff = fexpa_coeff16;
+    op_highbit = 9;
+    op_shift = 10;
+  } else if (lane_size == kSRegSize) {
+    VIXL_ASSERT(ArrayLength(fexpa_coeff32) == (1U << (index_highbit + 1)));
+    fexpa_coeff = fexpa_coeff32;
+    op_highbit = 13;
+    op_shift = 23;
+  } else {
+    VIXL_ASSERT(lane_size == kDRegSize);
+    VIXL_ASSERT(ArrayLength(fexpa_coeff64) == (1U << (index_highbit + 1)));
+    fexpa_coeff = fexpa_coeff64;
+    op_highbit = 16;
+    op_shift = 52;
+  }
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    uint64_t op = src.Uint(vform, i);
+    uint64_t result = fexpa_coeff[Bits(op, index_highbit, 0)];
+    result |= (Bits(op, op_highbit, index_highbit + 1) << op_shift);
+    dst.SetUint(vform, i, result);
+  }
+  return dst;
+}
+
+template <typename T>
+LogicVRegister Simulator::fscale(VectorFormat vform,
+                                 LogicVRegister dst,
+                                 const LogicVRegister& src1,
+                                 const LogicVRegister& src2) {
+  T two = T(2.0);
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    T s1 = src1.Float<T>(i);
+    if (!IsNaN(s1)) {
+      int64_t scale = src2.Int(vform, i);
+      // TODO: this is a low-performance implementation, but it's simple and
+      // less likely to be buggy. Consider replacing it with something faster.
+
+      // Scales outside of these bounds become infinity or zero, so there's no
+      // point iterating further.
+      scale = std::min<int64_t>(std::max<int64_t>(scale, -2048), 2048);
+
+      // Compute s1 * 2 ^ scale. If scale is positive, multiply by two and
+      // decrement scale until it's zero.
+      while (scale-- > 0) {
+        s1 = FPMul(s1, two);
+      }
+
+      // If scale is negative, divide by two and increment scale until it's
+      // zero. Initially, scale is (src2 - 1), so we pre-increment.
+      while (++scale < 0) {
+        s1 = FPDiv(s1, two);
+      }
+    }
+    dst.SetFloat<T>(i, s1);
+  }
+  return dst;
+}
+
+LogicVRegister Simulator::fscale(VectorFormat vform,
+                                 LogicVRegister dst,
+                                 const LogicVRegister& src1,
+                                 const LogicVRegister& src2) {
+  if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
+    fscale<SimFloat16>(vform, dst, src1, src2);
+  } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
+    fscale<float>(vform, dst, src1, src2);
+  } else {
+    VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
+    fscale<double>(vform, dst, src1, src2);
+  }
+  return dst;
+}
+
+LogicVRegister Simulator::scvtf(VectorFormat vform,
+                                unsigned dst_data_size_in_bits,
+                                unsigned src_data_size_in_bits,
+                                LogicVRegister dst,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src,
+                                FPRounding round,
+                                int fbits) {
+  VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) >= dst_data_size_in_bits);
+  VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) >= src_data_size_in_bits);
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    int64_t value = ExtractSignedBitfield64(src_data_size_in_bits - 1,
+                                            0,
+                                            src.Uint(vform, i));
+
+    switch (dst_data_size_in_bits) {
+      case kHRegSize: {
+        SimFloat16 result = FixedToFloat16(value, fbits, round);
+        dst.SetUint(vform, i, Float16ToRawbits(result));
+        break;
+      }
+      case kSRegSize: {
+        float result = FixedToFloat(value, fbits, round);
+        dst.SetUint(vform, i, FloatToRawbits(result));
+        break;
+      }
+      case kDRegSize: {
+        double result = FixedToDouble(value, fbits, round);
+        dst.SetUint(vform, i, DoubleToRawbits(result));
+        break;
+      }
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  }
+
+  return dst;
+}
+
 LogicVRegister Simulator::scvtf(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src,
                                 int fbits,
                                 FPRounding round) {
-  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-      SimFloat16 result = FixedToFloat16(src.Int(kFormatH, i), fbits, round);
-      dst.SetFloat<SimFloat16>(i, result);
-    } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
-      float result = FixedToFloat(src.Int(kFormatS, i), fbits, round);
-      dst.SetFloat<float>(i, result);
-    } else {
-      VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
-      double result = FixedToDouble(src.Int(kFormatD, i), fbits, round);
-      dst.SetFloat<double>(i, result);
-    }
-  }
-  return dst;
+  return scvtf(vform,
+               LaneSizeInBitsFromFormat(vform),
+               LaneSizeInBitsFromFormat(vform),
+               dst,
+               GetPTrue(),
+               src,
+               round,
+               fbits);
 }
 
+LogicVRegister Simulator::ucvtf(VectorFormat vform,
+                                unsigned dst_data_size_in_bits,
+                                unsigned src_data_size_in_bits,
+                                LogicVRegister dst,
+                                const LogicPRegister& pg,
+                                const LogicVRegister& src,
+                                FPRounding round,
+                                int fbits) {
+  VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) >= dst_data_size_in_bits);
+  VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) >= src_data_size_in_bits);
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    uint64_t value = ExtractUnsignedBitfield64(src_data_size_in_bits - 1,
+                                               0,
+                                               src.Uint(vform, i));
+
+    switch (dst_data_size_in_bits) {
+      case kHRegSize: {
+        SimFloat16 result = UFixedToFloat16(value, fbits, round);
+        dst.SetUint(vform, i, Float16ToRawbits(result));
+        break;
+      }
+      case kSRegSize: {
+        float result = UFixedToFloat(value, fbits, round);
+        dst.SetUint(vform, i, FloatToRawbits(result));
+        break;
+      }
+      case kDRegSize: {
+        double result = UFixedToDouble(value, fbits, round);
+        dst.SetUint(vform, i, DoubleToRawbits(result));
+        break;
+      }
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  }
+
+  return dst;
+}
 
 LogicVRegister Simulator::ucvtf(VectorFormat vform,
                                 LogicVRegister dst,
                                 const LogicVRegister& src,
                                 int fbits,
                                 FPRounding round) {
-  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
-    if (LaneSizeInBitsFromFormat(vform) == kHRegSize) {
-      SimFloat16 result = UFixedToFloat16(src.Uint(kFormatH, i), fbits, round);
-      dst.SetFloat<SimFloat16>(i, result);
-    } else if (LaneSizeInBitsFromFormat(vform) == kSRegSize) {
-      float result = UFixedToFloat(src.Uint(kFormatS, i), fbits, round);
-      dst.SetFloat<float>(i, result);
-    } else {
-      VIXL_ASSERT(LaneSizeInBitsFromFormat(vform) == kDRegSize);
-      double result = UFixedToDouble(src.Uint(kFormatD, i), fbits, round);
-      dst.SetFloat<double>(i, result);
+  return ucvtf(vform,
+               LaneSizeInBitsFromFormat(vform),
+               LaneSizeInBitsFromFormat(vform),
+               dst,
+               GetPTrue(),
+               src,
+               round,
+               fbits);
+}
+
+LogicVRegister Simulator::unpk(VectorFormat vform,
+                               LogicVRegister dst,
+                               const LogicVRegister& src,
+                               UnpackType unpack_type,
+                               ExtendType extend_type) {
+  VectorFormat vform_half = VectorFormatHalfWidth(vform);
+  const int lane_count = LaneCountFromFormat(vform);
+  const int src_start_lane = (unpack_type == kLoHalf) ? 0 : lane_count;
+
+  switch (extend_type) {
+    case kSignedExtend: {
+      int64_t result[kZRegMaxSizeInBytes];
+      for (int i = 0; i < lane_count; ++i) {
+        result[i] = src.Int(vform_half, i + src_start_lane);
+      }
+      for (int i = 0; i < lane_count; ++i) {
+        dst.SetInt(vform, i, result[i]);
+      }
+      break;
     }
+    case kUnsignedExtend: {
+      uint64_t result[kZRegMaxSizeInBytes];
+      for (int i = 0; i < lane_count; ++i) {
+        result[i] = src.Uint(vform_half, i + src_start_lane);
+      }
+      for (int i = 0; i < lane_count; ++i) {
+        dst.SetUint(vform, i, result[i]);
+      }
+      break;
+    }
+    default:
+      VIXL_UNREACHABLE();
   }
   return dst;
 }
 
+LogicPRegister Simulator::SVEIntCompareVectorsHelper(Condition cond,
+                                                     VectorFormat vform,
+                                                     LogicPRegister dst,
+                                                     const LogicPRegister& mask,
+                                                     const LogicVRegister& src1,
+                                                     const LogicVRegister& src2,
+                                                     bool is_wide_elements,
+                                                     FlagsUpdate flags) {
+  for (int lane = 0; lane < LaneCountFromFormat(vform); lane++) {
+    bool result = false;
+    if (mask.IsActive(vform, lane)) {
+      int64_t op1 = 0xbadbeef;
+      int64_t op2 = 0xbadbeef;
+      int d_lane = (lane * LaneSizeInBitsFromFormat(vform)) / kDRegSize;
+      switch (cond) {
+        case eq:
+        case ge:
+        case gt:
+        case lt:
+        case le:
+        case ne:
+          op1 = src1.Int(vform, lane);
+          op2 = is_wide_elements ? src2.Int(kFormatVnD, d_lane)
+                                 : src2.Int(vform, lane);
+          break;
+        case hi:
+        case hs:
+        case ls:
+        case lo:
+          op1 = src1.Uint(vform, lane);
+          op2 = is_wide_elements ? src2.Uint(kFormatVnD, d_lane)
+                                 : src2.Uint(vform, lane);
+          break;
+        default:
+          VIXL_UNREACHABLE();
+      }
+
+      switch (cond) {
+        case eq:
+          result = (op1 == op2);
+          break;
+        case ne:
+          result = (op1 != op2);
+          break;
+        case ge:
+          result = (op1 >= op2);
+          break;
+        case gt:
+          result = (op1 > op2);
+          break;
+        case le:
+          result = (op1 <= op2);
+          break;
+        case lt:
+          result = (op1 < op2);
+          break;
+        case hs:
+          result = (static_cast<uint64_t>(op1) >= static_cast<uint64_t>(op2));
+          break;
+        case hi:
+          result = (static_cast<uint64_t>(op1) > static_cast<uint64_t>(op2));
+          break;
+        case ls:
+          result = (static_cast<uint64_t>(op1) <= static_cast<uint64_t>(op2));
+          break;
+        case lo:
+          result = (static_cast<uint64_t>(op1) < static_cast<uint64_t>(op2));
+          break;
+        default:
+          VIXL_UNREACHABLE();
+      }
+    }
+    dst.SetActive(vform, lane, result);
+  }
+
+  if (flags == SetFlags) PredTest(vform, mask, dst);
+
+  return dst;
+}
+
+LogicVRegister Simulator::SVEBitwiseShiftHelper(Shift shift_op,
+                                                VectorFormat vform,
+                                                LogicVRegister dst,
+                                                const LogicVRegister& src1,
+                                                const LogicVRegister& src2,
+                                                bool is_wide_elements) {
+  unsigned lane_size = LaneSizeInBitsFromFormat(vform);
+  VectorFormat shift_vform = is_wide_elements ? kFormatVnD : vform;
+
+  for (int lane = 0; lane < LaneCountFromFormat(vform); lane++) {
+    int shift_src_lane = lane;
+    if (is_wide_elements) {
+      // If the shift amount comes from wide elements, select the D-sized lane
+      // which occupies the corresponding lanes of the value to be shifted.
+      shift_src_lane = (lane * lane_size) / kDRegSize;
+    }
+    uint64_t shift_amount = src2.Uint(shift_vform, shift_src_lane);
+
+    // Saturate shift_amount to the size of the lane that will be shifted.
+    if (shift_amount > lane_size) shift_amount = lane_size;
+
+    uint64_t value = src1.Uint(vform, lane);
+    int64_t result = ShiftOperand(lane_size,
+                                  value,
+                                  shift_op,
+                                  static_cast<unsigned>(shift_amount));
+    dst.SetUint(vform, lane, result);
+  }
+
+  return dst;
+}
+
+LogicVRegister Simulator::asrd(VectorFormat vform,
+                               LogicVRegister dst,
+                               const LogicVRegister& src1,
+                               int shift) {
+  VIXL_ASSERT((shift > 0) && (static_cast<unsigned>(shift) <=
+                              LaneSizeInBitsFromFormat(vform)));
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    int64_t value = src1.Int(vform, i);
+    if (shift <= 63) {
+      if (value < 0) {
+        // The max possible mask is 0x7fff'ffff'ffff'ffff, which can be safely
+        // cast to int64_t, and cannot cause signed overflow in the result.
+        value = value + GetUintMask(shift);
+      }
+      value = ShiftOperand(kDRegSize, value, ASR, shift);
+    } else {
+      value = 0;
+    }
+    dst.SetInt(vform, i, value);
+  }
+  return dst;
+}
+
+LogicVRegister Simulator::SVEBitwiseLogicalUnpredicatedHelper(
+    LogicalOp logical_op,
+    VectorFormat vform,
+    LogicVRegister zd,
+    const LogicVRegister& zn,
+    const LogicVRegister& zm) {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    uint64_t op1 = zn.Uint(vform, i);
+    uint64_t op2 = zm.Uint(vform, i);
+    uint64_t result;
+    switch (logical_op) {
+      case AND:
+        result = op1 & op2;
+        break;
+      case BIC:
+        result = op1 & ~op2;
+        break;
+      case EOR:
+        result = op1 ^ op2;
+        break;
+      case ORR:
+        result = op1 | op2;
+        break;
+      default:
+        result = 0;
+        VIXL_UNIMPLEMENTED();
+    }
+    zd.SetUint(vform, i, result);
+  }
+
+  return zd;
+}
+
+LogicPRegister Simulator::SVEPredicateLogicalHelper(SVEPredicateLogicalOp op,
+                                                    LogicPRegister pd,
+                                                    const LogicPRegister& pn,
+                                                    const LogicPRegister& pm) {
+  for (int i = 0; i < pn.GetChunkCount(); i++) {
+    LogicPRegister::ChunkType op1 = pn.GetChunk(i);
+    LogicPRegister::ChunkType op2 = pm.GetChunk(i);
+    LogicPRegister::ChunkType result;
+    switch (op) {
+      case ANDS_p_p_pp_z:
+      case AND_p_p_pp_z:
+        result = op1 & op2;
+        break;
+      case BICS_p_p_pp_z:
+      case BIC_p_p_pp_z:
+        result = op1 & ~op2;
+        break;
+      case EORS_p_p_pp_z:
+      case EOR_p_p_pp_z:
+        result = op1 ^ op2;
+        break;
+      case NANDS_p_p_pp_z:
+      case NAND_p_p_pp_z:
+        result = ~(op1 & op2);
+        break;
+      case NORS_p_p_pp_z:
+      case NOR_p_p_pp_z:
+        result = ~(op1 | op2);
+        break;
+      case ORNS_p_p_pp_z:
+      case ORN_p_p_pp_z:
+        result = op1 | ~op2;
+        break;
+      case ORRS_p_p_pp_z:
+      case ORR_p_p_pp_z:
+        result = op1 | op2;
+        break;
+      default:
+        result = 0;
+        VIXL_UNIMPLEMENTED();
+    }
+    pd.SetChunk(i, result);
+  }
+  return pd;
+}
+
+LogicVRegister Simulator::SVEBitwiseImmHelper(
+    SVEBitwiseLogicalWithImm_UnpredicatedOp op,
+    VectorFormat vform,
+    LogicVRegister zd,
+    uint64_t imm) {
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    uint64_t op1 = zd.Uint(vform, i);
+    uint64_t result;
+    switch (op) {
+      case AND_z_zi:
+        result = op1 & imm;
+        break;
+      case EOR_z_zi:
+        result = op1 ^ imm;
+        break;
+      case ORR_z_zi:
+        result = op1 | imm;
+        break;
+      default:
+        result = 0;
+        VIXL_UNIMPLEMENTED();
+    }
+    zd.SetUint(vform, i, result);
+  }
+
+  return zd;
+}
+
+void Simulator::SVEStructuredStoreHelper(VectorFormat vform,
+                                         const LogicPRegister& pg,
+                                         unsigned zt_code,
+                                         const LogicSVEAddressVector& addr) {
+  VIXL_ASSERT(zt_code < kNumberOfZRegisters);
+
+  int esize_in_bytes_log2 = LaneSizeInBytesLog2FromFormat(vform);
+  int msize_in_bytes_log2 = addr.GetMsizeInBytesLog2();
+  int msize_in_bytes = addr.GetMsizeInBytes();
+  int reg_count = addr.GetRegCount();
+
+  VIXL_ASSERT(esize_in_bytes_log2 >= msize_in_bytes_log2);
+  VIXL_ASSERT((reg_count >= 1) && (reg_count <= 4));
+
+  unsigned zt_codes[4] = {zt_code,
+                          (zt_code + 1) % kNumberOfZRegisters,
+                          (zt_code + 2) % kNumberOfZRegisters,
+                          (zt_code + 3) % kNumberOfZRegisters};
+
+  LogicVRegister zt[4] = {
+      ReadVRegister(zt_codes[0]),
+      ReadVRegister(zt_codes[1]),
+      ReadVRegister(zt_codes[2]),
+      ReadVRegister(zt_codes[3]),
+  };
+
+  // For unpacked forms (e.g. `st1b { z0.h }, ...`, the upper parts of the lanes
+  // are ignored, so read the source register using the VectorFormat that
+  // corresponds with the storage format, and multiply the index accordingly.
+  VectorFormat unpack_vform =
+      SVEFormatFromLaneSizeInBytesLog2(msize_in_bytes_log2);
+  int unpack_shift = esize_in_bytes_log2 - msize_in_bytes_log2;
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (!pg.IsActive(vform, i)) continue;
+
+    for (int r = 0; r < reg_count; r++) {
+      uint64_t element_address = addr.GetElementAddress(i, r);
+      StoreLane(zt[r], unpack_vform, i << unpack_shift, element_address);
+    }
+  }
+
+  if (ShouldTraceWrites()) {
+    PrintRegisterFormat format = GetPrintRegisterFormat(vform);
+    if (esize_in_bytes_log2 == msize_in_bytes_log2) {
+      // Use an FP format where it's likely that we're accessing FP data.
+      format = GetPrintRegisterFormatTryFP(format);
+    }
+    // Stores don't represent a change to the source register's value, so only
+    // print the relevant part of the value.
+    format = GetPrintRegPartial(format);
+
+    PrintZStructAccess(zt_code,
+                       reg_count,
+                       pg,
+                       format,
+                       msize_in_bytes,
+                       "->",
+                       addr);
+  }
+}
+
+void Simulator::SVEStructuredLoadHelper(VectorFormat vform,
+                                        const LogicPRegister& pg,
+                                        unsigned zt_code,
+                                        const LogicSVEAddressVector& addr,
+                                        bool is_signed) {
+  int esize_in_bytes_log2 = LaneSizeInBytesLog2FromFormat(vform);
+  int msize_in_bytes_log2 = addr.GetMsizeInBytesLog2();
+  int msize_in_bytes = addr.GetMsizeInBytes();
+  int reg_count = addr.GetRegCount();
+
+  VIXL_ASSERT(zt_code < kNumberOfZRegisters);
+  VIXL_ASSERT(esize_in_bytes_log2 >= msize_in_bytes_log2);
+  VIXL_ASSERT((reg_count >= 1) && (reg_count <= 4));
+
+  unsigned zt_codes[4] = {zt_code,
+                          (zt_code + 1) % kNumberOfZRegisters,
+                          (zt_code + 2) % kNumberOfZRegisters,
+                          (zt_code + 3) % kNumberOfZRegisters};
+  LogicVRegister zt[4] = {
+      ReadVRegister(zt_codes[0]),
+      ReadVRegister(zt_codes[1]),
+      ReadVRegister(zt_codes[2]),
+      ReadVRegister(zt_codes[3]),
+  };
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    for (int r = 0; r < reg_count; r++) {
+      uint64_t element_address = addr.GetElementAddress(i, r);
+
+      if (!pg.IsActive(vform, i)) {
+        zt[r].SetUint(vform, i, 0);
+        continue;
+      }
+
+      if (is_signed) {
+        LoadIntToLane(zt[r], vform, msize_in_bytes, i, element_address);
+      } else {
+        LoadUintToLane(zt[r], vform, msize_in_bytes, i, element_address);
+      }
+    }
+  }
+
+  if (ShouldTraceVRegs()) {
+    PrintRegisterFormat format = GetPrintRegisterFormat(vform);
+    if ((esize_in_bytes_log2 == msize_in_bytes_log2) && !is_signed) {
+      // Use an FP format where it's likely that we're accessing FP data.
+      format = GetPrintRegisterFormatTryFP(format);
+    }
+    PrintZStructAccess(zt_code,
+                       reg_count,
+                       pg,
+                       format,
+                       msize_in_bytes,
+                       "<-",
+                       addr);
+  }
+}
+
+LogicPRegister Simulator::brka(LogicPRegister pd,
+                               const LogicPRegister& pg,
+                               const LogicPRegister& pn) {
+  bool break_ = false;
+  for (int i = 0; i < LaneCountFromFormat(kFormatVnB); i++) {
+    if (pg.IsActive(kFormatVnB, i)) {
+      pd.SetActive(kFormatVnB, i, !break_);
+      break_ |= pn.IsActive(kFormatVnB, i);
+    }
+  }
+
+  return pd;
+}
+
+LogicPRegister Simulator::brkb(LogicPRegister pd,
+                               const LogicPRegister& pg,
+                               const LogicPRegister& pn) {
+  bool break_ = false;
+  for (int i = 0; i < LaneCountFromFormat(kFormatVnB); i++) {
+    if (pg.IsActive(kFormatVnB, i)) {
+      break_ |= pn.IsActive(kFormatVnB, i);
+      pd.SetActive(kFormatVnB, i, !break_);
+    }
+  }
+
+  return pd;
+}
+
+LogicPRegister Simulator::brkn(LogicPRegister pdm,
+                               const LogicPRegister& pg,
+                               const LogicPRegister& pn) {
+  if (!IsLastActive(kFormatVnB, pg, pn)) {
+    pfalse(pdm);
+  }
+  return pdm;
+}
+
+LogicPRegister Simulator::brkpa(LogicPRegister pd,
+                                const LogicPRegister& pg,
+                                const LogicPRegister& pn,
+                                const LogicPRegister& pm) {
+  bool last_active = IsLastActive(kFormatVnB, pg, pn);
+
+  for (int i = 0; i < LaneCountFromFormat(kFormatVnB); i++) {
+    bool active = false;
+    if (pg.IsActive(kFormatVnB, i)) {
+      active = last_active;
+      last_active = last_active && !pm.IsActive(kFormatVnB, i);
+    }
+    pd.SetActive(kFormatVnB, i, active);
+  }
+
+  return pd;
+}
+
+LogicPRegister Simulator::brkpb(LogicPRegister pd,
+                                const LogicPRegister& pg,
+                                const LogicPRegister& pn,
+                                const LogicPRegister& pm) {
+  bool last_active = IsLastActive(kFormatVnB, pg, pn);
+
+  for (int i = 0; i < LaneCountFromFormat(kFormatVnB); i++) {
+    bool active = false;
+    if (pg.IsActive(kFormatVnB, i)) {
+      last_active = last_active && !pm.IsActive(kFormatVnB, i);
+      active = last_active;
+    }
+    pd.SetActive(kFormatVnB, i, active);
+  }
+
+  return pd;
+}
+
+void Simulator::SVEFaultTolerantLoadHelper(VectorFormat vform,
+                                           const LogicPRegister& pg,
+                                           unsigned zt_code,
+                                           const LogicSVEAddressVector& addr,
+                                           SVEFaultTolerantLoadType type,
+                                           bool is_signed) {
+  int esize_in_bytes = LaneSizeInBytesFromFormat(vform);
+  int msize_in_bits = addr.GetMsizeInBits();
+  int msize_in_bytes = addr.GetMsizeInBytes();
+
+  VIXL_ASSERT(zt_code < kNumberOfZRegisters);
+  VIXL_ASSERT(esize_in_bytes >= msize_in_bytes);
+  VIXL_ASSERT(addr.GetRegCount() == 1);
+
+  LogicVRegister zt = ReadVRegister(zt_code);
+  LogicPRegister ffr = ReadFFR();
+
+  // Non-faulting loads are allowed to fail arbitrarily. To stress user
+  // code, fail a random element in roughly one in eight full-vector loads.
+  uint32_t rnd = static_cast<uint32_t>(jrand48(rand_state_));
+  int fake_fault_at_lane = rnd % (LaneCountFromFormat(vform) * 8);
+
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    uint64_t value = 0;
+
+    if (pg.IsActive(vform, i)) {
+      uint64_t element_address = addr.GetElementAddress(i, 0);
+
+      if (type == kSVEFirstFaultLoad) {
+        // First-faulting loads always load the first active element, regardless
+        // of FFR. The result will be discarded if its FFR lane is inactive, but
+        // it could still generate a fault.
+        value = MemReadUint(msize_in_bytes, element_address);
+        // All subsequent elements have non-fault semantics.
+        type = kSVENonFaultLoad;
+
+      } else if (ffr.IsActive(vform, i)) {
+        // Simulation of fault-tolerant loads relies on system calls, and is
+        // likely to be relatively slow, so we only actually perform the load if
+        // its FFR lane is active.
+
+        bool can_read = (i < fake_fault_at_lane) &&
+                        CanReadMemory(element_address, msize_in_bytes);
+        if (can_read) {
+          value = MemReadUint(msize_in_bytes, element_address);
+        } else {
+          // Propagate the fault to the end of FFR.
+          for (int j = i; j < LaneCountFromFormat(vform); j++) {
+            ffr.SetActive(vform, j, false);
+          }
+        }
+      }
+    }
+
+    // The architecture permits a few possible results for inactive FFR lanes
+    // (including those caused by a fault in this instruction). We choose to
+    // leave the register value unchanged (like merging predication) because
+    // no other input to this instruction can have the same behaviour.
+    //
+    // Note that this behaviour takes precedence over pg's zeroing predication.
+
+    if (ffr.IsActive(vform, i)) {
+      int msb = msize_in_bits - 1;
+      if (is_signed) {
+        zt.SetInt(vform, i, ExtractSignedBitfield64(msb, 0, value));
+      } else {
+        zt.SetUint(vform, i, ExtractUnsignedBitfield64(msb, 0, value));
+      }
+    }
+  }
+
+  if (ShouldTraceVRegs()) {
+    PrintRegisterFormat format = GetPrintRegisterFormat(vform);
+    if ((esize_in_bytes == msize_in_bytes) && !is_signed) {
+      // Use an FP format where it's likely that we're accessing FP data.
+      format = GetPrintRegisterFormatTryFP(format);
+    }
+    // Log accessed lanes that are active in both pg and ffr. PrintZStructAccess
+    // expects a single mask, so combine the two predicates.
+    SimPRegister mask;
+    SVEPredicateLogicalHelper(AND_p_p_pp_z, mask, pg, ffr);
+    PrintZStructAccess(zt_code, 1, mask, format, msize_in_bytes, "<-", addr);
+  }
+}
+
+void Simulator::SVEGatherLoadScalarPlusVectorHelper(const Instruction* instr,
+                                                    VectorFormat vform,
+                                                    SVEOffsetModifier mod) {
+  bool is_signed = instr->ExtractBit(14) == 0;
+  bool is_ff = instr->ExtractBit(13) == 1;
+  // Note that these instructions don't use the Dtype encoding.
+  int msize_in_bytes_log2 = instr->ExtractBits(24, 23);
+  int scale = instr->ExtractBit(21) * msize_in_bytes_log2;
+  uint64_t base = ReadXRegister(instr->GetRn());
+  LogicSVEAddressVector addr(base,
+                             &ReadVRegister(instr->GetRm()),
+                             vform,
+                             mod,
+                             scale);
+  addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+  if (is_ff) {
+    SVEFaultTolerantLoadHelper(vform,
+                               ReadPRegister(instr->GetPgLow8()),
+                               instr->GetRt(),
+                               addr,
+                               kSVEFirstFaultLoad,
+                               is_signed);
+  } else {
+    SVEStructuredLoadHelper(vform,
+                            ReadPRegister(instr->GetPgLow8()),
+                            instr->GetRt(),
+                            addr,
+                            is_signed);
+  }
+}
+
+int Simulator::GetFirstActive(VectorFormat vform,
+                              const LogicPRegister& pg) const {
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    if (pg.IsActive(vform, i)) return i;
+  }
+  return -1;
+}
+
+int Simulator::GetLastActive(VectorFormat vform,
+                             const LogicPRegister& pg) const {
+  for (int i = LaneCountFromFormat(vform) - 1; i >= 0; i--) {
+    if (pg.IsActive(vform, i)) return i;
+  }
+  return -1;
+}
+
+int Simulator::CountActiveLanes(VectorFormat vform,
+                                const LogicPRegister& pg) const {
+  int count = 0;
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    count += pg.IsActive(vform, i) ? 1 : 0;
+  }
+  return count;
+}
+
+int Simulator::CountActiveAndTrueLanes(VectorFormat vform,
+                                       const LogicPRegister& pg,
+                                       const LogicPRegister& pn) const {
+  int count = 0;
+  for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+    count += (pg.IsActive(vform, i) && pn.IsActive(vform, i)) ? 1 : 0;
+  }
+  return count;
+}
+
+int Simulator::GetPredicateConstraintLaneCount(VectorFormat vform,
+                                               int pattern) const {
+  VIXL_ASSERT(IsSVEFormat(vform));
+  int all = LaneCountFromFormat(vform);
+  VIXL_ASSERT(all > 0);
+
+  switch (pattern) {
+    case SVE_VL1:
+    case SVE_VL2:
+    case SVE_VL3:
+    case SVE_VL4:
+    case SVE_VL5:
+    case SVE_VL6:
+    case SVE_VL7:
+    case SVE_VL8:
+      // VL1-VL8 are encoded directly.
+      VIXL_STATIC_ASSERT(SVE_VL1 == 1);
+      VIXL_STATIC_ASSERT(SVE_VL8 == 8);
+      return (pattern <= all) ? pattern : 0;
+    case SVE_VL16:
+    case SVE_VL32:
+    case SVE_VL64:
+    case SVE_VL128:
+    case SVE_VL256: {
+      // VL16-VL256 are encoded as log2(N) + c.
+      int min = 16 << (pattern - SVE_VL16);
+      return (min <= all) ? min : 0;
+    }
+    // Special cases.
+    case SVE_POW2:
+      return 1 << HighestSetBitPosition(all);
+    case SVE_MUL4:
+      return all - (all % 4);
+    case SVE_MUL3:
+      return all - (all % 3);
+    case SVE_ALL:
+      return all;
+  }
+  // Unnamed cases archicturally return 0.
+  return 0;
+}
+
+uint64_t LogicSVEAddressVector::GetStructAddress(int lane) const {
+  if (IsContiguous()) {
+    return base_ + (lane * GetRegCount()) * GetMsizeInBytes();
+  }
+
+  VIXL_ASSERT(IsScatterGather());
+  VIXL_ASSERT(vector_ != NULL);
+
+  // For scatter-gather accesses, we need to extract the offset from vector_,
+  // and apply modifiers.
+
+  uint64_t offset = 0;
+  switch (vector_form_) {
+    case kFormatVnS:
+      offset = vector_->GetLane<uint32_t>(lane);
+      break;
+    case kFormatVnD:
+      offset = vector_->GetLane<uint64_t>(lane);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  switch (vector_mod_) {
+    case SVE_MUL_VL:
+      VIXL_UNIMPLEMENTED();
+      break;
+    case SVE_LSL:
+      // We apply the shift below. There's nothing to do here.
+      break;
+    case NO_SVE_OFFSET_MODIFIER:
+      VIXL_ASSERT(vector_shift_ == 0);
+      break;
+    case SVE_UXTW:
+      offset = ExtractUnsignedBitfield64(kWRegSize - 1, 0, offset);
+      break;
+    case SVE_SXTW:
+      offset = ExtractSignedBitfield64(kWRegSize - 1, 0, offset);
+      break;
+  }
+
+  return base_ + (offset << vector_shift_);
+}
+
 
 }  // namespace aarch64
 }  // namespace vixl
diff --git a/src/aarch64/macro-assembler-aarch64.cc b/src/aarch64/macro-assembler-aarch64.cc
index 85954fc..56c6eaf 100644
--- a/src/aarch64/macro-assembler-aarch64.cc
+++ b/src/aarch64/macro-assembler-aarch64.cc
@@ -65,7 +65,7 @@
 
 
 void LiteralPool::Reset() {
-  std::vector<RawLiteral *>::iterator it, end;
+  std::vector<RawLiteral*>::iterator it, end;
   for (it = entries_.begin(), end = entries_.end(); it != end; ++it) {
     RawLiteral* literal = *it;
     if (literal->deletion_policy_ == RawLiteral::kDeletedOnPlacementByPool) {
@@ -145,7 +145,7 @@
     }
 
     // Now populate the literal pool.
-    std::vector<RawLiteral *>::iterator it, end;
+    std::vector<RawLiteral*>::iterator it, end;
     for (it = entries_.begin(), end = entries_.end(); it != end; ++it) {
       VIXL_ASSERT((*it)->IsUsed());
       masm_->place(*it);
@@ -321,11 +321,13 @@
       generate_simulator_code_(VIXL_AARCH64_GENERATE_SIMULATOR_CODE),
       sp_(sp),
       tmp_list_(ip0, ip1),
-      fptmp_list_(d31),
+      v_tmp_list_(d31),
+      p_tmp_list_(CPURegList::Empty(CPURegister::kPRegister)),
       current_scratch_scope_(NULL),
       literal_pool_(this),
       veneer_pool_(this),
-      recommended_checkpoint_(Pool::kNoCheckpointRequired) {
+      recommended_checkpoint_(Pool::kNoCheckpointRequired),
+      fp_nan_propagation_(NoFPMacroNaNPropagationSelected) {
   checkpoint_ = GetNextCheckPoint();
 #ifndef VIXL_DEBUG
   USE(allow_macro_instructions_);
@@ -342,11 +344,13 @@
       generate_simulator_code_(VIXL_AARCH64_GENERATE_SIMULATOR_CODE),
       sp_(sp),
       tmp_list_(ip0, ip1),
-      fptmp_list_(d31),
+      v_tmp_list_(d31),
+      p_tmp_list_(CPURegList::Empty(CPURegister::kPRegister)),
       current_scratch_scope_(NULL),
       literal_pool_(this),
       veneer_pool_(this),
-      recommended_checkpoint_(Pool::kNoCheckpointRequired) {
+      recommended_checkpoint_(Pool::kNoCheckpointRequired),
+      fp_nan_propagation_(NoFPMacroNaNPropagationSelected) {
   checkpoint_ = GetNextCheckPoint();
 }
 
@@ -361,11 +365,13 @@
       generate_simulator_code_(VIXL_AARCH64_GENERATE_SIMULATOR_CODE),
       sp_(sp),
       tmp_list_(ip0, ip1),
-      fptmp_list_(d31),
+      v_tmp_list_(d31),
+      p_tmp_list_(CPURegList::Empty(CPURegister::kPRegister)),
       current_scratch_scope_(NULL),
       literal_pool_(this),
       veneer_pool_(this),
-      recommended_checkpoint_(Pool::kNoCheckpointRequired) {
+      recommended_checkpoint_(Pool::kNoCheckpointRequired),
+      fp_nan_propagation_(NoFPMacroNaNPropagationSelected) {
   checkpoint_ = GetNextCheckPoint();
 }
 
@@ -819,6 +825,12 @@
   //  * 1 instruction to move to sp
   MacroEmissionCheckScope guard(this);
   UseScratchRegisterScope temps(this);
+  // Use `rd` as a temp, if we can.
+  temps.Include(rd);
+  // We read `rn` after evaluating `operand`.
+  temps.Exclude(rn);
+  // It doesn't matter if `operand` is in `temps` (e.g. because it alises `rd`)
+  // because we don't need it after it is evaluated.
 
   if (operand.IsImmediate()) {
     uint64_t immediate = operand.GetImmediate();
@@ -886,6 +898,7 @@
     } else {
       // Immediate can't be encoded: synthesize using move immediate.
       Register temp = temps.AcquireSameSizeAs(rn);
+      VIXL_ASSERT(!temp.Aliases(rn));
 
       // If the left-hand input is the stack pointer, we can't pre-shift the
       // immediate, as the encoding won't allow the subsequent post shift.
@@ -910,8 +923,8 @@
         operand.GetRegister().Is64Bits() ||
         ((operand.GetExtend() != UXTX) && (operand.GetExtend() != SXTX)));
 
-    temps.Exclude(operand.GetRegister());
     Register temp = temps.AcquireSameSizeAs(rn);
+    VIXL_ASSERT(!temp.Aliases(rn));
     EmitExtendShift(temp,
                     operand.GetRegister(),
                     operand.GetExtend(),
@@ -1139,17 +1152,13 @@
     // Call the macro assembler for generic immediates.
     Mvn(rd, operand.GetImmediate());
   } else if (operand.IsExtendedRegister()) {
-    UseScratchRegisterScope temps(this);
-    temps.Exclude(operand.GetRegister());
-
     // Emit two instructions for the extend case. This differs from Mov, as
     // the extend and invert can't be achieved in one instruction.
-    Register temp = temps.AcquireSameSizeAs(rd);
-    EmitExtendShift(temp,
+    EmitExtendShift(rd,
                     operand.GetRegister(),
                     operand.GetExtend(),
                     operand.GetShiftAmount());
-    mvn(rd, Operand(temp));
+    mvn(rd, rd);
   } else {
     // Otherwise, register and shifted register cases can be handled by the
     // assembler directly, using orn.
@@ -1418,12 +1427,15 @@
                          const Operand& operand,
                          FlagsUpdate S) {
   VIXL_ASSERT(allow_macro_instructions_);
-  if (operand.IsImmediate() && (operand.GetImmediate() < 0) &&
-      IsImmAddSub(-operand.GetImmediate())) {
-    AddSubMacro(rd, rn, -operand.GetImmediate(), S, SUB);
-  } else {
-    AddSubMacro(rd, rn, operand, S, ADD);
+  if (operand.IsImmediate()) {
+    int64_t imm = operand.GetImmediate();
+    if ((imm < 0) && (imm != std::numeric_limits<int64_t>::min()) &&
+        IsImmAddSub(-imm)) {
+      AddSubMacro(rd, rn, -imm, S, SUB);
+      return;
+    }
   }
+  AddSubMacro(rd, rn, operand, S, ADD);
 }
 
 
@@ -1439,12 +1451,15 @@
                          const Operand& operand,
                          FlagsUpdate S) {
   VIXL_ASSERT(allow_macro_instructions_);
-  if (operand.IsImmediate() && (operand.GetImmediate() < 0) &&
-      IsImmAddSub(-operand.GetImmediate())) {
-    AddSubMacro(rd, rn, -operand.GetImmediate(), S, ADD);
-  } else {
-    AddSubMacro(rd, rn, operand, S, SUB);
+  if (operand.IsImmediate()) {
+    int64_t imm = operand.GetImmediate();
+    if ((imm < 0) && (imm != std::numeric_limits<int64_t>::min()) &&
+        IsImmAddSub(-imm)) {
+      AddSubMacro(rd, rn, -imm, S, ADD);
+      return;
+    }
   }
+  AddSubMacro(rd, rn, operand, S, SUB);
 }
 
 
@@ -1757,6 +1772,12 @@
       (rn.IsZero() && !operand.IsShiftedRegister()) ||
       (operand.IsShiftedRegister() && (operand.GetShift() == ROR))) {
     UseScratchRegisterScope temps(this);
+    // Use `rd` as a temp, if we can.
+    temps.Include(rd);
+    // We read `rn` after evaluating `operand`.
+    temps.Exclude(rn);
+    // It doesn't matter if `operand` is in `temps` (e.g. because it alises
+    // `rd`) because we don't need it after it is evaluated.
     Register temp = temps.AcquireSameSizeAs(rn);
     if (operand.IsImmediate()) {
       PreShiftImmMode mode = kAnyShift;
@@ -1842,6 +1863,12 @@
   //  * 1 instruction for add/sub
   MacroEmissionCheckScope guard(this);
   UseScratchRegisterScope temps(this);
+  // Use `rd` as a temp, if we can.
+  temps.Include(rd);
+  // We read `rn` after evaluating `operand`.
+  temps.Exclude(rn);
+  // It doesn't matter if `operand` is in `temps` (e.g. because it alises `rd`)
+  // because we don't need it after it is evaluated.
 
   if (operand.IsImmediate() ||
       (operand.IsShiftedRegister() && (operand.GetShift() == ROR))) {
@@ -1856,7 +1883,6 @@
     VIXL_ASSERT(
         IsUintN(rd.GetSizeInBits() == kXRegSize ? kXRegSizeLog2 : kWRegSizeLog2,
                 operand.GetShiftAmount()));
-    temps.Exclude(operand.GetRegister());
     Register temp = temps.AcquireSameSizeAs(rn);
     EmitShift(temp,
               operand.GetRegister(),
@@ -1872,7 +1898,6 @@
     VIXL_ASSERT(
         operand.GetRegister().Is64Bits() ||
         ((operand.GetExtend() != UXTX) && (operand.GetExtend() != SXTX)));
-    temps.Exclude(operand.GetRegister());
     Register temp = temps.AcquireSameSizeAs(rn);
     EmitExtendShift(temp,
                     operand.GetRegister(),
@@ -2397,7 +2422,8 @@
   // We do not handle pre-indexing or post-indexing.
   VIXL_ASSERT(!(mem.IsPreIndex() || mem.IsPostIndex()));
   VIXL_ASSERT(!registers.Overlaps(tmp_list_));
-  VIXL_ASSERT(!registers.Overlaps(fptmp_list_));
+  VIXL_ASSERT(!registers.Overlaps(v_tmp_list_));
+  VIXL_ASSERT(!registers.Overlaps(p_tmp_list_));
   VIXL_ASSERT(!registers.IncludesAliasOf(sp));
 
   UseScratchRegisterScope temps(this);
@@ -2481,7 +2507,7 @@
 }
 
 
-// TODO(all): Fix printf for NEON registers.
+// TODO(all): Fix printf for NEON and SVE registers.
 
 // This is the main Printf implementation. All callee-saved registers are
 // preserved, but NZCV and the caller-saved registers may be clobbered.
@@ -2764,32 +2790,6 @@
 }
 
 
-void MacroAssembler::EnableInstrumentation() {
-  VIXL_ASSERT(!isprint(InstrumentStateEnable));
-  ExactAssemblyScope scope(this, kInstructionSize);
-  movn(xzr, InstrumentStateEnable);
-}
-
-
-void MacroAssembler::DisableInstrumentation() {
-  VIXL_ASSERT(!isprint(InstrumentStateDisable));
-  ExactAssemblyScope scope(this, kInstructionSize);
-  movn(xzr, InstrumentStateDisable);
-}
-
-
-void MacroAssembler::AnnotateInstrumentation(const char* marker_name) {
-  VIXL_ASSERT(strlen(marker_name) == 2);
-
-  // We allow only printable characters in the marker names. Unprintable
-  // characters are reserved for controlling features of the instrumentation.
-  VIXL_ASSERT(isprint(marker_name[0]) && isprint(marker_name[1]));
-
-  ExactAssemblyScope scope(this, kInstructionSize);
-  movn(xzr, (marker_name[1] << 8) | marker_name[0]);
-}
-
-
 void MacroAssembler::SetSimulatorCPUFeatures(const CPUFeatures& features) {
   ConfigureSimulatorCPUFeaturesHelper(features, kSetCPUFeaturesOpcode);
 }
@@ -2870,10 +2870,13 @@
 
   CPURegList* available = masm->GetScratchRegisterList();
   CPURegList* available_v = masm->GetScratchVRegisterList();
+  CPURegList* available_p = masm->GetScratchPRegisterList();
   old_available_ = available->GetList();
   old_available_v_ = available_v->GetList();
+  old_available_p_ = available_p->GetList();
   VIXL_ASSERT(available->GetType() == CPURegister::kRegister);
   VIXL_ASSERT(available_v->GetType() == CPURegister::kVRegister);
+  VIXL_ASSERT(available_p->GetType() == CPURegister::kPRegister);
 
   parent_ = masm->GetCurrentScratchRegisterScope();
   masm->SetCurrentScratchRegisterScope(this);
@@ -2891,6 +2894,7 @@
 
     masm_->GetScratchRegisterList()->SetList(old_available_);
     masm_->GetScratchVRegisterList()->SetList(old_available_v_);
+    masm_->GetScratchPRegisterList()->SetList(old_available_p_);
 
     masm_ = NULL;
   }
@@ -2899,44 +2903,46 @@
 
 bool UseScratchRegisterScope::IsAvailable(const CPURegister& reg) const {
   return masm_->GetScratchRegisterList()->IncludesAliasOf(reg) ||
-         masm_->GetScratchVRegisterList()->IncludesAliasOf(reg);
+         masm_->GetScratchVRegisterList()->IncludesAliasOf(reg) ||
+         masm_->GetScratchPRegisterList()->IncludesAliasOf(reg);
 }
 
-
 Register UseScratchRegisterScope::AcquireRegisterOfSize(int size_in_bits) {
-  int code = AcquireNextAvailable(masm_->GetScratchRegisterList()).GetCode();
+  int code = AcquireFrom(masm_->GetScratchRegisterList()).GetCode();
   return Register(code, size_in_bits);
 }
 
 
 VRegister UseScratchRegisterScope::AcquireVRegisterOfSize(int size_in_bits) {
-  int code = AcquireNextAvailable(masm_->GetScratchVRegisterList()).GetCode();
+  int code = AcquireFrom(masm_->GetScratchVRegisterList()).GetCode();
   return VRegister(code, size_in_bits);
 }
 
 
 void UseScratchRegisterScope::Release(const CPURegister& reg) {
   VIXL_ASSERT(masm_ != NULL);
-  if (reg.IsRegister()) {
-    ReleaseByCode(masm_->GetScratchRegisterList(), reg.GetCode());
-  } else if (reg.IsVRegister()) {
-    ReleaseByCode(masm_->GetScratchVRegisterList(), reg.GetCode());
-  } else {
-    VIXL_ASSERT(reg.IsNone());
-  }
+
+  // Release(NoReg) has no effect.
+  if (reg.IsNone()) return;
+
+  ReleaseByCode(GetAvailableListFor(reg.GetBank()), reg.GetCode());
 }
 
 
 void UseScratchRegisterScope::Include(const CPURegList& list) {
   VIXL_ASSERT(masm_ != NULL);
+
+  // Including an empty list has no effect.
+  if (list.IsEmpty()) return;
+  VIXL_ASSERT(list.GetType() != CPURegister::kNoRegister);
+
+  RegList reg_list = list.GetList();
   if (list.GetType() == CPURegister::kRegister) {
     // Make sure that neither sp nor xzr are included the list.
-    IncludeByRegList(masm_->GetScratchRegisterList(),
-                     list.GetList() & ~(xzr.GetBit() | sp.GetBit()));
-  } else {
-    VIXL_ASSERT(list.GetType() == CPURegister::kVRegister);
-    IncludeByRegList(masm_->GetScratchVRegisterList(), list.GetList());
+    reg_list &= ~(xzr.GetBit() | sp.GetBit());
   }
+
+  IncludeByRegList(GetAvailableListFor(list.GetBank()), reg_list);
 }
 
 
@@ -2964,13 +2970,43 @@
 }
 
 
-void UseScratchRegisterScope::Exclude(const CPURegList& list) {
-  if (list.GetType() == CPURegister::kRegister) {
-    ExcludeByRegList(masm_->GetScratchRegisterList(), list.GetList());
-  } else {
-    VIXL_ASSERT(list.GetType() == CPURegister::kVRegister);
-    ExcludeByRegList(masm_->GetScratchVRegisterList(), list.GetList());
+void UseScratchRegisterScope::Include(const CPURegister& reg1,
+                                      const CPURegister& reg2,
+                                      const CPURegister& reg3,
+                                      const CPURegister& reg4) {
+  RegList include = 0;
+  RegList include_v = 0;
+  RegList include_p = 0;
+
+  const CPURegister regs[] = {reg1, reg2, reg3, reg4};
+
+  for (size_t i = 0; i < ArrayLength(regs); i++) {
+    RegList bit = regs[i].GetBit();
+    switch (regs[i].GetBank()) {
+      case CPURegister::kNoRegisterBank:
+        // Include(NoReg) has no effect.
+        VIXL_ASSERT(regs[i].IsNone());
+        break;
+      case CPURegister::kRRegisterBank:
+        include |= bit;
+        break;
+      case CPURegister::kVRegisterBank:
+        include_v |= bit;
+        break;
+      case CPURegister::kPRegisterBank:
+        include_p |= bit;
+        break;
+    }
   }
+
+  IncludeByRegList(masm_->GetScratchRegisterList(), include);
+  IncludeByRegList(masm_->GetScratchVRegisterList(), include_v);
+  IncludeByRegList(masm_->GetScratchPRegisterList(), include_p);
+}
+
+
+void UseScratchRegisterScope::Exclude(const CPURegList& list) {
+  ExcludeByRegList(GetAvailableListFor(list.GetBank()), list.GetList());
 }
 
 
@@ -2988,9 +3024,9 @@
                                       const VRegister& reg2,
                                       const VRegister& reg3,
                                       const VRegister& reg4) {
-  RegList excludefp =
+  RegList exclude_v =
       reg1.GetBit() | reg2.GetBit() | reg3.GetBit() | reg4.GetBit();
-  ExcludeByRegList(masm_->GetScratchVRegisterList(), excludefp);
+  ExcludeByRegList(masm_->GetScratchVRegisterList(), exclude_v);
 }
 
 
@@ -2999,22 +3035,33 @@
                                       const CPURegister& reg3,
                                       const CPURegister& reg4) {
   RegList exclude = 0;
-  RegList excludefp = 0;
+  RegList exclude_v = 0;
+  RegList exclude_p = 0;
 
   const CPURegister regs[] = {reg1, reg2, reg3, reg4};
 
   for (size_t i = 0; i < ArrayLength(regs); i++) {
-    if (regs[i].IsRegister()) {
-      exclude |= regs[i].GetBit();
-    } else if (regs[i].IsVRegister()) {
-      excludefp |= regs[i].GetBit();
-    } else {
-      VIXL_ASSERT(regs[i].IsNone());
+    RegList bit = regs[i].GetBit();
+    switch (regs[i].GetBank()) {
+      case CPURegister::kNoRegisterBank:
+        // Exclude(NoReg) has no effect.
+        VIXL_ASSERT(regs[i].IsNone());
+        break;
+      case CPURegister::kRRegisterBank:
+        exclude |= bit;
+        break;
+      case CPURegister::kVRegisterBank:
+        exclude_v |= bit;
+        break;
+      case CPURegister::kPRegisterBank:
+        exclude_p |= bit;
+        break;
     }
   }
 
   ExcludeByRegList(masm_->GetScratchRegisterList(), exclude);
-  ExcludeByRegList(masm_->GetScratchVRegisterList(), excludefp);
+  ExcludeByRegList(masm_->GetScratchVRegisterList(), exclude_v);
+  ExcludeByRegList(masm_->GetScratchPRegisterList(), exclude_p);
 }
 
 
@@ -3023,13 +3070,15 @@
                    masm_->GetScratchRegisterList()->GetList());
   ExcludeByRegList(masm_->GetScratchVRegisterList(),
                    masm_->GetScratchVRegisterList()->GetList());
+  ExcludeByRegList(masm_->GetScratchPRegisterList(),
+                   masm_->GetScratchPRegisterList()->GetList());
 }
 
 
-CPURegister UseScratchRegisterScope::AcquireNextAvailable(
-    CPURegList* available) {
-  VIXL_CHECK(!available->IsEmpty());
-  CPURegister result = available->PopLowestIndex();
+CPURegister UseScratchRegisterScope::AcquireFrom(CPURegList* available,
+                                                 RegList mask) {
+  VIXL_CHECK((available->GetList() & mask) != 0);
+  CPURegister result = available->PopLowestIndex(mask);
   VIXL_ASSERT(!AreAliased(result, xzr, sp));
   return result;
 }
@@ -3057,5 +3106,22 @@
   available->SetList(available->GetList() & ~exclude);
 }
 
+CPURegList* UseScratchRegisterScope::GetAvailableListFor(
+    CPURegister::RegisterBank bank) {
+  switch (bank) {
+    case CPURegister::kNoRegisterBank:
+      return NULL;
+    case CPURegister::kRRegisterBank:
+      return masm_->GetScratchRegisterList();
+    case CPURegister::kVRegisterBank:
+      return masm_->GetScratchVRegisterList();
+    case CPURegister::kPRegisterBank:
+      return masm_->GetScratchPRegisterList();
+      return NULL;
+  }
+  VIXL_UNREACHABLE();
+  return NULL;
+}
+
 }  // namespace aarch64
 }  // namespace vixl
diff --git a/src/aarch64/macro-assembler-aarch64.h b/src/aarch64/macro-assembler-aarch64.h
index 31db8da..8becddb 100644
--- a/src/aarch64/macro-assembler-aarch64.h
+++ b/src/aarch64/macro-assembler-aarch64.h
@@ -35,7 +35,6 @@
 #include "../macro-assembler-interface.h"
 
 #include "assembler-aarch64.h"
-#include "instrument-aarch64.h"
 // Required for runtime call support.
 // TODO: Break this dependency. We should be able to separate out the necessary
 // parts so that we don't need to include the whole simulator header.
@@ -61,7 +60,7 @@
 #define LSPAIR_MACRO_LIST(V)                             \
   V(Ldp, CPURegister&, rt, rt2, LoadPairOpFor(rt, rt2))  \
   V(Stp, CPURegister&, rt, rt2, StorePairOpFor(rt, rt2)) \
-  V(Ldpsw, CPURegister&, rt, rt2, LDPSW_x)
+  V(Ldpsw, Register&, rt, rt2, LDPSW_x)
 
 namespace vixl {
 namespace aarch64 {
@@ -528,6 +527,57 @@
 };
 
 
+// This scope simplifies the handling of the SVE `movprfx` instruction.
+//
+// If dst.Aliases(src):
+// - Start an ExactAssemblyScope(masm, kInstructionSize).
+// Otherwise:
+// - Start an ExactAssemblyScope(masm, 2 * kInstructionSize).
+// - Generate a suitable `movprfx` instruction.
+//
+// In both cases, the ExactAssemblyScope is left with enough remaining space for
+// exactly one destructive instruction.
+class MovprfxHelperScope : public ExactAssemblyScope {
+ public:
+  inline MovprfxHelperScope(MacroAssembler* masm,
+                            const ZRegister& dst,
+                            const ZRegister& src);
+
+  inline MovprfxHelperScope(MacroAssembler* masm,
+                            const ZRegister& dst,
+                            const PRegister& pg,
+                            const ZRegister& src);
+
+  // TODO: Implement constructors that examine _all_ sources. If `dst` aliases
+  // any other source register, we can't use `movprfx`. This isn't obviously
+  // useful, but the MacroAssembler should not generate invalid code for it.
+  // Valid behaviour can be implemented using `mov`.
+  //
+  // The best way to handle this in an instruction-agnostic way is probably to
+  // use variadic templates.
+
+ private:
+  inline bool ShouldGenerateMovprfx(const ZRegister& dst,
+                                    const ZRegister& src) {
+    VIXL_ASSERT(AreSameLaneSize(dst, src));
+    return !dst.Aliases(src);
+  }
+
+  inline bool ShouldGenerateMovprfx(const ZRegister& dst,
+                                    const PRegister& pg,
+                                    const ZRegister& src) {
+    VIXL_ASSERT(pg.IsMerging() || pg.IsZeroing());
+    // We need to emit movprfx in two cases:
+    //  1. To give a predicated merging unary instruction zeroing predication.
+    //  2. To make destructive instructions constructive.
+    //
+    // There are no predicated zeroing instructions that can take movprfx, so we
+    // will never generate an unnecessary movprfx with this logic.
+    return pg.IsZeroing() || ShouldGenerateMovprfx(dst, src);
+  }
+};
+
+
 enum BranchType {
   // Copies of architectural conditions.
   // The associated conditions can be used in place of those, the code will
@@ -566,7 +616,19 @@
   kBranchTypeFirstCondition = eq,
   kBranchTypeLastCondition = nv,
   kBranchTypeFirstUsingReg = reg_zero,
-  kBranchTypeFirstUsingBit = reg_bit_clear
+  kBranchTypeFirstUsingBit = reg_bit_clear,
+
+  // SVE branch conditions.
+  integer_none = eq,
+  integer_any = ne,
+  integer_nlast = cs,
+  integer_last = cc,
+  integer_first = mi,
+  integer_nfrst = pl,
+  integer_pmore = hi,
+  integer_plast = ls,
+  integer_tcont = ge,
+  integer_tstop = lt
 };
 
 
@@ -587,6 +649,18 @@
   kAnyShift          // Allow any pre-shift.
 };
 
+enum FPMacroNaNPropagationOption {
+  // The default option. This generates a run-time error in macros that respect
+  // this option.
+  NoFPMacroNaNPropagationSelected,
+  // For example, Fmin(result, NaN(a), NaN(b)) always selects NaN(a) if both
+  // NaN(a) and NaN(b) are both quiet, or both are signalling, at the
+  // cost of extra code generation in some cases.
+  StrictNaNPropagation,
+  // For example, Fmin(result, NaN(a), NaN(b)) selects either NaN, but using the
+  // fewest instructions.
+  FastNaNPropagation
+};
 
 class MacroAssembler : public Assembler, public MacroAssemblerInterface {
  public:
@@ -946,6 +1020,20 @@
   void Claim(const Operand& size);
   void Drop(const Operand& size);
 
+  // As above, but for multiples of the SVE vector length.
+  void ClaimVL(int64_t multiplier) {
+    // We never need to worry about sp alignment because the VL is always a
+    // multiple of 16.
+    VIXL_STATIC_ASSERT((kZRegMinSizeInBytes % 16) == 0);
+    VIXL_ASSERT(multiplier >= 0);
+    Addvl(sp, sp, -multiplier);
+  }
+  void DropVL(int64_t multiplier) {
+    VIXL_STATIC_ASSERT((kZRegMinSizeInBytes % 16) == 0);
+    VIXL_ASSERT(multiplier >= 0);
+    Addvl(sp, sp, multiplier);
+  }
+
   // Preserve the callee-saved registers (as defined by AAPCS64).
   //
   // Higher-numbered registers are pushed before lower-numbered registers, and
@@ -1489,13 +1577,8 @@
   void Fmov(const VRegister& vd, const VRegister& vn) {
     VIXL_ASSERT(allow_macro_instructions_);
     SingleEmissionCheckScope guard(this);
-    // Only emit an instruction if vd and vn are different, and they are both D
-    // registers. fmov(s0, s0) is not a no-op because it clears the top word of
-    // d0. Technically, fmov(d0, d0) is not a no-op either because it clears
-    // the top of q0, but VRegister does not currently support Q registers.
-    if (!vd.Is(vn) || !vd.Is64Bits()) {
-      fmov(vd, vn);
-    }
+    // TODO: Use DiscardMoveMode to allow this move to be elided if vd.Is(vn).
+    fmov(vd, vn);
   }
   void Fmov(const VRegister& vd, const Register& rn) {
     VIXL_ASSERT(allow_macro_instructions_);
@@ -1503,12 +1586,6 @@
     SingleEmissionCheckScope guard(this);
     fmov(vd, rn);
   }
-  void Fmov(const VRegister& vd, const XRegister& xn) {
-    Fmov(vd, Register(xn));
-  }
-  void Fmov(const VRegister& vd, const WRegister& wn) {
-    Fmov(vd, Register(wn));
-  }
   void Fmov(const VRegister& vd, int index, const Register& rn) {
     VIXL_ASSERT(allow_macro_instructions_);
     SingleEmissionCheckScope guard(this);
@@ -2970,6 +3047,43 @@
   NEON_2VREG_SHIFT_LONG_MACRO_LIST(DEFINE_MACRO_ASM_FUNC)
 #undef DEFINE_MACRO_ASM_FUNC
 
+// SVE 3 vector register instructions.
+#define SVE_3VREG_COMMUTATIVE_MACRO_LIST(V) \
+  V(add, Add)                               \
+  V(and_, And)                              \
+  V(bic, Bic)                               \
+  V(eor, Eor)                               \
+  V(mul, Mul)                               \
+  V(orr, Orr)                               \
+  V(sabd, Sabd)                             \
+  V(smax, Smax)                             \
+  V(smulh, Smulh)                           \
+  V(smin, Smin)                             \
+  V(uabd, Uabd)                             \
+  V(umax, Umax)                             \
+  V(umin, Umin)                             \
+  V(umulh, Umulh)
+
+#define DEFINE_MACRO_ASM_FUNC(ASM, MASM)          \
+  void MASM(const ZRegister& zd,                  \
+            const PRegisterM& pg,                 \
+            const ZRegister& zn,                  \
+            const ZRegister& zm) {                \
+    VIXL_ASSERT(allow_macro_instructions_);       \
+    if (zd.Aliases(zn)) {                         \
+      SingleEmissionCheckScope guard(this);       \
+      ASM(zd, pg, zd, zm);                        \
+    } else if (zd.Aliases(zm)) {                  \
+      SingleEmissionCheckScope guard(this);       \
+      ASM(zd, pg, zd, zn);                        \
+    } else {                                      \
+      MovprfxHelperScope guard(this, zd, pg, zn); \
+      ASM(zd, pg, zd, zm);                        \
+    }                                             \
+  }
+  SVE_3VREG_COMMUTATIVE_MACRO_LIST(DEFINE_MACRO_ASM_FUNC)
+#undef DEFINE_MACRO_ASM_FUNC
+
   void Bic(const VRegister& vd, const int imm8, const int left_shift = 0) {
     VIXL_ASSERT(allow_macro_instructions_);
     SingleEmissionCheckScope guard(this);
@@ -3357,6 +3471,2901 @@
     crc32cx(rd, rn, rm);
   }
 
+  // Scalable Vector Extensions.
+  void Abs(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    abs(zd, pg, zn);
+  }
+  void Add(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    add(zd, zn, zm);
+  }
+  void Add(const ZRegister& zd, const ZRegister& zn, IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    AddSubHelper(kAddImmediate, zd, zn, imm);
+  }
+  void Addpl(const Register& xd, const Register& xn, int64_t multiplier);
+  void Addvl(const Register& xd, const Register& xn, int64_t multiplier);
+  // Note that unlike the core ISA, SVE's `adr` is not PC-relative.
+  void Adr(const ZRegister& zd, const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    adr(zd, addr);
+  }
+  void And(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    and_(pd, pg, pn, pm);
+  }
+  void And(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (IsImmLogical(imm, zd.GetLaneSizeInBits())) {
+      and_(zd, zn, imm);
+    } else {
+      // TODO: Synthesise the immediate once 'Mov' is implemented.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void And(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+    SingleEmissionCheckScope guard(this);
+    and_(zd.VnD(), zn.VnD(), zm.VnD());
+  }
+  void Ands(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ands(pd, pg, pn, pm);
+  }
+  void Andv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    andv(vd, pg, zn);
+  }
+  void Asr(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           int shift) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    asr(zd, pg, zd, shift);
+  }
+  void Asr(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+  void Asr(const ZRegister& zd, const ZRegister& zn, int shift) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    asr(zd, zn, shift);
+  }
+  void Asr(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    asr(zd, zn, zm);
+  }
+  void Asrd(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            int shift) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    asrd(zd, pg, zd, shift);
+  }
+  void Bic(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    bic(pd, pg, pn, pm);
+  }
+  void Bic(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+    SingleEmissionCheckScope guard(this);
+    bic(zd.VnD(), zn.VnD(), zm.VnD());
+  }
+  void Bic(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (IsImmLogical(imm, zd.GetLaneSizeInBits())) {
+      bic(zd, zn, imm);
+    } else {
+      // TODO: Synthesise the immediate once 'Mov' is implemented.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void Bics(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    bics(pd, pg, pn, pm);
+  }
+  void Brka(const PRegisterWithLaneSize& pd,
+            const PRegister& pg,
+            const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    brka(pd, pg, pn);
+  }
+  void Brkas(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    brkas(pd, pg, pn);
+  }
+  void Brkb(const PRegisterWithLaneSize& pd,
+            const PRegister& pg,
+            const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    brkb(pd, pg, pn);
+  }
+  void Brkbs(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    brkbs(pd, pg, pn);
+  }
+  void Brkn(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    if (!pd.Aliases(pm)) {
+      Mov(pd, pm);
+    }
+    SingleEmissionCheckScope guard(this);
+    brkn(pd, pg, pn, pd);
+  }
+  void Brkns(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn,
+             const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    if (!pd.Aliases(pm)) {
+      Mov(pd, pm);
+    }
+    SingleEmissionCheckScope guard(this);
+    brkns(pd, pg, pn, pd);
+  }
+  void Brkpa(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn,
+             const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    brkpa(pd, pg, pn, pm);
+  }
+  void Brkpas(const PRegisterWithLaneSize& pd,
+              const PRegisterZ& pg,
+              const PRegisterWithLaneSize& pn,
+              const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    brkpas(pd, pg, pn, pm);
+  }
+  void Brkpb(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn,
+             const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    brkpb(pd, pg, pn, pm);
+  }
+  void Brkpbs(const PRegisterWithLaneSize& pd,
+              const PRegisterZ& pg,
+              const PRegisterWithLaneSize& pn,
+              const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    brkpbs(pd, pg, pn, pm);
+  }
+  void Clasta(const Register& rd,
+              const PRegister& pg,
+              const Register& rn,
+              const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    clasta(rd, pg, rn, zm);
+  }
+  void Clasta(const VRegister& vd,
+              const PRegister& pg,
+              const VRegister& vn,
+              const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    clasta(vd, pg, vn, zm);
+  }
+  void Clasta(const ZRegister& zd,
+              const PRegister& pg,
+              const ZRegister& zn,
+              const ZRegister& zm);
+  void Clastb(const Register& rd,
+              const PRegister& pg,
+              const Register& rn,
+              const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    clastb(rd, pg, rn, zm);
+  }
+  void Clastb(const VRegister& vd,
+              const PRegister& pg,
+              const VRegister& vn,
+              const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    clastb(vd, pg, vn, zm);
+  }
+  void Clastb(const ZRegister& zd,
+              const PRegister& pg,
+              const ZRegister& zn,
+              const ZRegister& zm);
+  void Cls(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cls(zd, pg, zn);
+  }
+  void Clz(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    clz(zd, pg, zn);
+  }
+  void Cmpeq(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cmpeq(pd, pg, zn, zm);
+  }
+  void Cmpeq(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    int imm5;
+    if (imm.TryEncodeAsIntNForLane<5>(zn, &imm5)) {
+      SingleEmissionCheckScope guard(this);
+      cmpeq(pd, pg, zn, imm5);
+    } else {
+      CompareHelper(eq, pd, pg, zn, imm);
+    }
+  }
+  void Cmpge(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cmpge(pd, pg, zn, zm);
+  }
+  void Cmpge(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    int imm5;
+    if (imm.TryEncodeAsIntNForLane<5>(zn, &imm5)) {
+      SingleEmissionCheckScope guard(this);
+      cmpge(pd, pg, zn, imm5);
+    } else {
+      CompareHelper(ge, pd, pg, zn, imm);
+    }
+  }
+  void Cmpgt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cmpgt(pd, pg, zn, zm);
+  }
+  void Cmpgt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    int imm5;
+    if (imm.TryEncodeAsIntNForLane<5>(zn, &imm5)) {
+      SingleEmissionCheckScope guard(this);
+      cmpgt(pd, pg, zn, imm5);
+    } else {
+      CompareHelper(gt, pd, pg, zn, imm);
+    }
+  }
+  void Cmphi(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cmphi(pd, pg, zn, zm);
+  }
+  void Cmphi(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    if (imm.IsUintN(7)) {
+      SingleEmissionCheckScope guard(this);
+      cmphi(pd, pg, zn, static_cast<unsigned>(imm.AsUintN(7)));
+    } else {
+      CompareHelper(hi, pd, pg, zn, imm);
+    }
+  }
+  void Cmphs(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cmphs(pd, pg, zn, zm);
+  }
+  void Cmphs(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             IntegerOperand imm) {
+    if (imm.IsUintN(7)) {
+      SingleEmissionCheckScope guard(this);
+      cmphs(pd, pg, zn, static_cast<unsigned>(imm.AsUintN(7)));
+    } else {
+      CompareHelper(hs, pd, pg, zn, imm);
+    }
+  }
+  void Cmple(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cmple(pd, pg, zn, zm);
+  }
+  void Cmple(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    int imm5;
+    if (imm.TryEncodeAsIntNForLane<5>(zn, &imm5)) {
+      SingleEmissionCheckScope guard(this);
+      cmple(pd, pg, zn, imm5);
+    } else {
+      CompareHelper(le, pd, pg, zn, imm);
+    }
+  }
+  void Cmplo(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cmplo(pd, pg, zn, zm);
+  }
+  void Cmplo(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             IntegerOperand imm) {
+    if (imm.IsUintN(7)) {
+      SingleEmissionCheckScope guard(this);
+      cmplo(pd, pg, zn, static_cast<unsigned>(imm.AsUintN(7)));
+    } else {
+      CompareHelper(lo, pd, pg, zn, imm);
+    }
+  }
+  void Cmpls(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cmpls(pd, pg, zn, zm);
+  }
+  void Cmpls(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             IntegerOperand imm) {
+    if (imm.IsUintN(7)) {
+      SingleEmissionCheckScope guard(this);
+      cmpls(pd, pg, zn, static_cast<unsigned>(imm.AsUintN(7)));
+    } else {
+      CompareHelper(ls, pd, pg, zn, imm);
+    }
+  }
+  void Cmplt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cmplt(pd, pg, zn, zm);
+  }
+  void Cmplt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    int imm5;
+    if (imm.TryEncodeAsIntNForLane<5>(zn, &imm5)) {
+      SingleEmissionCheckScope guard(this);
+      cmplt(pd, pg, zn, imm5);
+    } else {
+      CompareHelper(lt, pd, pg, zn, imm);
+    }
+  }
+  void Cmpne(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cmpne(pd, pg, zn, zm);
+  }
+  void Cmpne(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    int imm5;
+    if (imm.TryEncodeAsIntNForLane<5>(zn, &imm5)) {
+      SingleEmissionCheckScope guard(this);
+      cmpne(pd, pg, zn, imm5);
+    } else {
+      CompareHelper(ne, pd, pg, zn, imm);
+    }
+  }
+  void Cnot(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cnot(zd, pg, zn);
+  }
+  void Cnt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cnt(zd, pg, zn);
+  }
+  void Cntb(const Register& rd, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cntb(rd, pattern, multiplier);
+  }
+  void Cntd(const Register& rd, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cntd(rd, pattern, multiplier);
+  }
+  void Cnth(const Register& rd, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cnth(rd, pattern, multiplier);
+  }
+  void Cntp(const Register& rd,
+            const PRegister& pg,
+            const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    // The `cntp` instruction architecturally takes an X register, but the
+    // result will always be in the range [0, kPRegMaxSize] (and therefore
+    // always fits in a W register), so we can accept a W-sized rd here.
+    cntp(rd.X(), pg, pn);
+  }
+  void Cntw(const Register& rd, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cntw(rd, pattern, multiplier);
+  }
+  void Compact(const ZRegister& zd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    compact(zd, pg, zn);
+  }
+  void Cpy(const ZRegister& zd, const PRegister& pg, IntegerOperand imm);
+  void Cpy(const ZRegister& zd, const PRegisterM& pg, const Register& rn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cpy(zd, pg, rn);
+  }
+  void Cpy(const ZRegister& zd, const PRegisterM& pg, const VRegister& vn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    cpy(zd, pg, vn);
+  }
+  void Ctermeq(const Register& rn, const Register& rm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ctermeq(rn, rm);
+  }
+  void Ctermne(const Register& rn, const Register& rm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ctermne(rn, rm);
+  }
+  void Decb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    decb(rdn, pattern, multiplier);
+  }
+  void Decd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    decd(rdn, pattern, multiplier);
+  }
+  void Decd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    decd(zdn, pattern, multiplier);
+  }
+  void Dech(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    dech(rdn, pattern, multiplier);
+  }
+  void Dech(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    dech(zdn, pattern, multiplier);
+  }
+  void Decp(const Register& rdn, const PRegisterWithLaneSize& pg) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    decp(rdn, pg);
+  }
+  void Decp(const ZRegister& zd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(AreSameFormat(zd, zn));
+    // `decp` writes every lane, so use an unpredicated movprfx.
+    MovprfxHelperScope guard(this, zd, zn);
+    decp(zd, pg);
+  }
+  void Decp(const ZRegister& zdn, const PRegister& pg) { Decp(zdn, pg, zdn); }
+  void Decw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    decw(rdn, pattern, multiplier);
+  }
+  void Decw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    decw(zdn, pattern, multiplier);
+  }
+  void Dup(const ZRegister& zd, const Register& xn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    dup(zd, xn);
+  }
+  void Dup(const ZRegister& zd, const ZRegister& zn, int index) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    dup(zd, zn, index);
+  }
+  void Dup(const ZRegister& zd, IntegerOperand imm);
+  void Eon(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (IsImmLogical(imm, zd.GetLaneSizeInBits())) {
+      eon(zd, zn, imm);
+    } else {
+      // TODO: Synthesise the immediate once 'Mov' is implemented.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void Eor(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    eor(pd, pg, pn, pm);
+  }
+  void Eor(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (IsImmLogical(imm, zd.GetLaneSizeInBits())) {
+      eor(zd, zn, imm);
+    } else {
+      // TODO: Synthesise the immediate once 'Mov' is implemented.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void Eor(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+    SingleEmissionCheckScope guard(this);
+    eor(zd.VnD(), zn.VnD(), zm.VnD());
+  }
+  void Eors(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    eors(pd, pg, pn, pm);
+  }
+  void Eorv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    eorv(vd, pg, zn);
+  }
+  void Ext(const ZRegister& zd,
+           const ZRegister& zn,
+           const ZRegister& zm,
+           unsigned offset);
+  void Fabd(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            FPMacroNaNPropagationOption nan_option);
+  void Fabs(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fabs(zd, pg, zn);
+  }
+  void Facge(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    facge(pd, pg, zn, zm);
+  }
+  void Facgt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    facgt(pd, pg, zn, zm);
+  }
+  void Facle(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    facge(pd, pg, zm, zn);
+  }
+  void Faclt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    facgt(pd, pg, zm, zn);
+  }
+  void Fadd(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            double imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fadd(zd, pg, zd, imm);
+  }
+  void Fadd(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            FPMacroNaNPropagationOption nan_option);
+  void Fadd(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fadd(zd, zn, zm);
+  }
+  void Fadda(const VRegister& vd,
+             const PRegister& pg,
+             const VRegister& vn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fadda(vd, pg, vn, zm);
+  }
+  void Faddv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    faddv(vd, pg, zn);
+  }
+  void Fcadd(const ZRegister& zd,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm,
+             int rot);
+  void Fcmeq(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (zero == 0.0) {
+      fcmeq(pd, pg, zn, zero);
+    } else {
+      // TODO: Synthesise other immediates.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void Fcmeq(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fcmeq(pd, pg, zn, zm);
+  }
+  void Fcmge(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (zero == 0.0) {
+      fcmge(pd, pg, zn, zero);
+    } else {
+      // TODO: Synthesise other immediates.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void Fcmge(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fcmge(pd, pg, zn, zm);
+  }
+  void Fcmgt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (zero == 0.0) {
+      fcmgt(pd, pg, zn, zero);
+    } else {
+      // TODO: Synthesise other immediates.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void Fcmgt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fcmgt(pd, pg, zn, zm);
+  }
+  void Fcmla(const ZRegister& zda,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm,
+             int rot) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zda, pg, zda);
+    fcmla(zda, pg, zn, zm, rot);
+  }
+  void Fcmla(const ZRegister& zda,
+             const ZRegister& zn,
+             const ZRegister& zm,
+             int index,
+             int rot) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fcmla(zda, zn, zm, index, rot);
+  }
+  void Fcmle(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (zero == 0.0) {
+      fcmle(pd, pg, zn, zero);
+    } else {
+      // TODO: Synthesise other immediates.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void Fcmle(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fcmge(pd, pg, zm, zn);
+  }
+  void Fcmlt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (zero == 0.0) {
+      fcmlt(pd, pg, zn, zero);
+    } else {
+      // TODO: Synthesise other immediates.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void Fcmlt(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fcmgt(pd, pg, zm, zn);
+  }
+  void Fcmne(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             double zero) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (zero == 0.0) {
+      fcmne(pd, pg, zn, zero);
+    } else {
+      // TODO: Synthesise other immediates.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void Fcmne(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fcmne(pd, pg, zn, zm);
+  }
+  void Fcmuo(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const ZRegister& zn,
+             const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fcmuo(pd, pg, zn, zm);
+  }
+  void Fcpy(const ZRegister& zd, const PRegisterM& pg, double imm);
+  void Fcpy(const ZRegister& zd, const PRegisterM& pg, float imm);
+  void Fcpy(const ZRegister& zd, const PRegisterM& pg, Float16 imm);
+  void Fcvt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fcvt(zd, pg, zn);
+  }
+  void Fcvt(const ZRegister& zd, const PRegisterZ& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    // The element type in this predicated movprfx is determined by the larger
+    // type between the source and destination.
+    int lane_size = std::max(zd.GetLaneSizeInBits(), zn.GetLaneSizeInBits());
+    MovprfxHelperScope guard(this,
+                             zd.WithLaneSize(lane_size),
+                             pg,
+                             zn.WithLaneSize(lane_size));
+    fcvt(zd, pg.Merging(), zn);
+  }
+  void Fcvtzs(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fcvtzs(zd, pg, zn);
+  }
+  void Fcvtzu(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fcvtzu(zd, pg, zn);
+  }
+  void Fdiv(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+  void Fdup(const ZRegister& zd, double imm);
+  void Fdup(const ZRegister& zd, float imm);
+  void Fdup(const ZRegister& zd, Float16 imm);
+  void Fexpa(const ZRegister& zd, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fexpa(zd, zn);
+  }
+  void Fmad(const ZRegister& zdn,
+            const PRegisterM& pg,
+            const ZRegister& zm,
+            const ZRegister& za) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fmad(zdn, pg, zm, za);
+  }
+  void Fmax(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            double imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fmax(zd, pg, zd, imm);
+  }
+  void Fmax(
+      const ZRegister& zd,
+      const PRegisterM& pg,
+      const ZRegister& zn,
+      const ZRegister& zm,
+      FPMacroNaNPropagationOption nan_option = NoFPMacroNaNPropagationSelected);
+  void Fmaxnm(const ZRegister& zd,
+              const PRegisterM& pg,
+              const ZRegister& zn,
+              double imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fmaxnm(zd, pg, zd, imm);
+  }
+  void Fmaxnm(const ZRegister& zd,
+              const PRegisterM& pg,
+              const ZRegister& zn,
+              const ZRegister& zm,
+              FPMacroNaNPropagationOption nan_option);
+  void Fmaxnmv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fmaxnmv(vd, pg, zn);
+  }
+  void Fmaxv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fmaxv(vd, pg, zn);
+  }
+  void Fmin(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            double imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fmin(zd, pg, zd, imm);
+  }
+  void Fmin(
+      const ZRegister& zd,
+      const PRegisterM& pg,
+      const ZRegister& zn,
+      const ZRegister& zm,
+      FPMacroNaNPropagationOption nan_option = NoFPMacroNaNPropagationSelected);
+  void Fminnm(const ZRegister& zd,
+              const PRegisterM& pg,
+              const ZRegister& zn,
+              double imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fminnm(zd, pg, zd, imm);
+  }
+  void Fminnm(const ZRegister& zd,
+              const PRegisterM& pg,
+              const ZRegister& zn,
+              const ZRegister& zm,
+              FPMacroNaNPropagationOption nan_option);
+  void Fminnmv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fminnmv(vd, pg, zn);
+  }
+  void Fminv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fminv(vd, pg, zn);
+  }
+  // zd = za + (zn * zm)
+  void Fmla(
+      const ZRegister& zd,
+      const PRegisterM& pg,
+      const ZRegister& za,
+      const ZRegister& zn,
+      const ZRegister& zm,
+      FPMacroNaNPropagationOption nan_option = NoFPMacroNaNPropagationSelected);
+  void Fmla(const ZRegister& zd,
+            const ZRegister& za,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            int index);
+  // zd = za - (zn * zm)
+  void Fmls(
+      const ZRegister& zd,
+      const PRegisterM& pg,
+      const ZRegister& za,
+      const ZRegister& zn,
+      const ZRegister& zm,
+      FPMacroNaNPropagationOption nan_option = NoFPMacroNaNPropagationSelected);
+  void Fmls(const ZRegister& zd,
+            const ZRegister& za,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            int index);
+  void Fmov(const ZRegister& zd, double imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    Fdup(zd, imm);
+  }
+  void Fmov(const ZRegister& zd, float imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    Fdup(zd, imm);
+  }
+  void Fmov(const ZRegister& zd, Float16 imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    Fdup(zd, imm);
+  }
+  void Fmov(const ZRegister& zd, const PRegisterM& pg, double imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    Fcpy(zd, pg, imm);
+  }
+  void Fmov(const ZRegister& zd, const PRegisterM& pg, float imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    Fcpy(zd, pg, imm);
+  }
+  void Fmov(const ZRegister& zd, const PRegisterM& pg, Float16 imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    Fcpy(zd, pg, imm);
+  }
+  void Fmsb(const ZRegister& zdn,
+            const PRegisterM& pg,
+            const ZRegister& zm,
+            const ZRegister& za) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fmsb(zdn, pg, zm, za);
+  }
+  void Fmul(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            double imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fmul(zd, pg, zd, imm);
+  }
+  void Fmul(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            FPMacroNaNPropagationOption nan_option);
+  void Fmul(const ZRegister& zd,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            unsigned index) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fmul(zd, zn, zm, index);
+  }
+  void Fmul(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fmul(zd, zn, zm);
+  }
+  void Fmulx(const ZRegister& zd,
+             const PRegisterM& pg,
+             const ZRegister& zn,
+             const ZRegister& zm,
+             FPMacroNaNPropagationOption nan_option);
+  void Fneg(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fneg(zd, pg, zn);
+  }
+  void Fnmla(
+      const ZRegister& zda,
+      const PRegisterM& pg,
+      const ZRegister& za,
+      const ZRegister& zn,
+      const ZRegister& zm,
+      FPMacroNaNPropagationOption nan_option = NoFPMacroNaNPropagationSelected);
+  void Fnmls(
+      const ZRegister& zd,
+      const PRegisterM& pg,
+      const ZRegister& za,
+      const ZRegister& zn,
+      const ZRegister& zm,
+      FPMacroNaNPropagationOption nan_option = NoFPMacroNaNPropagationSelected);
+  void Frecpe(const ZRegister& zd, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frecpe(zd, zn);
+  }
+  void Frecps(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frecps(zd, zn, zm);
+  }
+  void Frecpx(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frecpx(zd, pg, zn);
+  }
+  void Frecpx(const ZRegister& zd, const PRegisterZ& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    frecpx(zd, pg.Merging(), zn);
+  }
+  void Frinta(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frinta(zd, pg, zn);
+  }
+  void Frinta(const ZRegister& zd, const PRegisterZ& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    frinta(zd, pg.Merging(), zn);
+  }
+  void Frinti(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frinti(zd, pg, zn);
+  }
+  void Frinti(const ZRegister& zd, const PRegisterZ& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    frinti(zd, pg.Merging(), zn);
+  }
+  void Frintm(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frintm(zd, pg, zn);
+  }
+  void Frintm(const ZRegister& zd, const PRegisterZ& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    frintm(zd, pg.Merging(), zn);
+  }
+  void Frintn(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frintn(zd, pg, zn);
+  }
+  void Frintn(const ZRegister& zd, const PRegisterZ& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    frintn(zd, pg.Merging(), zn);
+  }
+  void Frintp(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frintp(zd, pg, zn);
+  }
+  void Frintp(const ZRegister& zd, const PRegisterZ& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    frintp(zd, pg.Merging(), zn);
+  }
+  void Frintx(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frintx(zd, pg, zn);
+  }
+  void Frintx(const ZRegister& zd, const PRegisterZ& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    frintx(zd, pg.Merging(), zn);
+  }
+  void Frintz(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frintz(zd, pg, zn);
+  }
+  void Frintz(const ZRegister& zd, const PRegisterZ& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    frintz(zd, pg.Merging(), zn);
+  }
+  void Frsqrte(const ZRegister& zd, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frsqrte(zd, zn);
+  }
+  void Frsqrts(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    frsqrts(zd, zn, zm);
+  }
+  void Fscale(const ZRegister& zd,
+              const PRegisterM& pg,
+              const ZRegister& zn,
+              const ZRegister& zm);
+  void Fsqrt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fsqrt(zd, pg, zn);
+  }
+  void Fsqrt(const ZRegister& zd, const PRegisterZ& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fsqrt(zd, pg.Merging(), zn);
+  }
+  void Fsub(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            double imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fsub(zd, pg, zd, imm);
+  }
+  void Fsub(const ZRegister& zd,
+            const PRegisterM& pg,
+            double imm,
+            const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fsubr(zd, pg, zd, imm);
+  }
+  void Fsub(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+  void Fsub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    fsub(zd, zn, zm);
+  }
+  void Ftmad(const ZRegister& zd,
+             const ZRegister& zn,
+             const ZRegister& zm,
+             int imm3);
+  void Ftsmul(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ftsmul(zd, zn, zm);
+  }
+  void Ftssel(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ftssel(zd, zn, zm);
+  }
+  void Incb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    incb(rdn, pattern, multiplier);
+  }
+  void Incd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    incd(rdn, pattern, multiplier);
+  }
+  void Incd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    incd(zdn, pattern, multiplier);
+  }
+  void Inch(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    inch(rdn, pattern, multiplier);
+  }
+  void Inch(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    inch(zdn, pattern, multiplier);
+  }
+  void Incp(const Register& rdn, const PRegisterWithLaneSize& pg) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    incp(rdn, pg);
+  }
+  void Incp(const ZRegister& zd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(AreSameFormat(zd, zn));
+    // `incp` writes every lane, so use an unpredicated movprfx.
+    MovprfxHelperScope guard(this, zd, zn);
+    incp(zd, pg);
+  }
+  void Incp(const ZRegister& zdn, const PRegister& pg) { Incp(zdn, pg, zdn); }
+  void Incw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    incw(rdn, pattern, multiplier);
+  }
+  void Incw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    incw(zdn, pattern, multiplier);
+  }
+  void Index(const ZRegister& zd, const Operand& start, const Operand& step);
+  void Insr(const ZRegister& zdn, const Register& rm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    insr(zdn, rm);
+  }
+  void Insr(const ZRegister& zdn, const VRegister& vm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    insr(zdn, vm);
+  }
+  void Insr(const ZRegister& zdn, IntegerOperand imm);
+  void Lasta(const Register& rd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    lasta(rd, pg, zn);
+  }
+  void Lasta(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    lasta(vd, pg, zn);
+  }
+  void Lastb(const Register& rd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    lastb(rd, pg, zn);
+  }
+  void Lastb(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    lastb(vd, pg, zn);
+  }
+  void Ld1b(const ZRegister& zt,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+  void Ld1h(const ZRegister& zt,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+  void Ld1w(const ZRegister& zt,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+  void Ld1d(const ZRegister& zt,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr);
+  void Ld1rb(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SVELoadBroadcastImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ld1rb,
+                              kBRegSizeInBytes);
+  }
+  void Ld1rh(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SVELoadBroadcastImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ld1rh,
+                              kHRegSizeInBytes);
+  }
+  void Ld1rw(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SVELoadBroadcastImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ld1rw,
+                              kSRegSizeInBytes);
+  }
+  void Ld1rd(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SVELoadBroadcastImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ld1rd,
+                              kDRegSizeInBytes);
+  }
+  void Ld1rqb(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ld1rqd(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ld1rqh(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ld1rqw(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ld1rsb(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SVELoadBroadcastImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ld1rsb,
+                              kBRegSizeInBytes);
+  }
+  void Ld1rsh(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SVELoadBroadcastImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ld1rsh,
+                              kHRegSizeInBytes);
+  }
+  void Ld1rsw(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SVELoadBroadcastImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ld1rsw,
+                              kSRegSizeInBytes);
+  }
+  void Ld1sb(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr);
+  void Ld1sh(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr);
+  void Ld1sw(const ZRegister& zt,
+             const PRegisterZ& pg,
+             const SVEMemOperand& addr);
+  void Ld2b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld2b(zt1, zt2, pg, addr);
+  }
+  void Ld2h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld2h(zt1, zt2, pg, addr);
+  }
+  void Ld2w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld2w(zt1, zt2, pg, addr);
+  }
+  void Ld2d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld2d(zt1, zt2, pg, addr);
+  }
+  void Ld3b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld3b(zt1, zt2, zt3, pg, addr);
+  }
+  void Ld3h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld3h(zt1, zt2, zt3, pg, addr);
+  }
+  void Ld3w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld3w(zt1, zt2, zt3, pg, addr);
+  }
+  void Ld3d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld3d(zt1, zt2, zt3, pg, addr);
+  }
+  void Ld4b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld4b(zt1, zt2, zt3, zt4, pg, addr);
+  }
+  void Ld4h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld4h(zt1, zt2, zt3, zt4, pg, addr);
+  }
+  void Ld4w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld4w(zt1, zt2, zt3, zt4, pg, addr);
+  }
+  void Ld4d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegisterZ& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ld4d(zt1, zt2, zt3, zt4, pg, addr);
+  }
+  void Ldff1b(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ldff1h(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ldff1w(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ldff1d(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ldff1sb(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr);
+  void Ldff1sh(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr);
+  void Ldff1sw(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr);
+  void Ldff1b(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const Register& xn,
+              const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1b(zt, pg, xn, zm);
+  }
+  void Ldff1b(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const ZRegister& zn,
+              int imm5) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1b(zt, pg, zn, imm5);
+  }
+  void Ldff1d(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const Register& xn,
+              const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1d(zt, pg, xn, zm);
+  }
+  void Ldff1d(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const ZRegister& zn,
+              int imm5) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1d(zt, pg, zn, imm5);
+  }
+  void Ldff1h(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const Register& xn,
+              const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1h(zt, pg, xn, zm);
+  }
+  void Ldff1h(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const ZRegister& zn,
+              int imm5) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1h(zt, pg, zn, imm5);
+  }
+  void Ldff1sb(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const Register& xn,
+               const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1sb(zt, pg, xn, zm);
+  }
+  void Ldff1sb(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const ZRegister& zn,
+               int imm5) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1sb(zt, pg, zn, imm5);
+  }
+  void Ldff1sh(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const Register& xn,
+               const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1sh(zt, pg, xn, zm);
+  }
+  void Ldff1sh(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const ZRegister& zn,
+               int imm5) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1sh(zt, pg, zn, imm5);
+  }
+  void Ldff1sw(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const Register& xn,
+               const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1sw(zt, pg, xn, zm);
+  }
+  void Ldff1sw(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const ZRegister& zn,
+               int imm5) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1sw(zt, pg, zn, imm5);
+  }
+  void Ldff1w(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const Register& xn,
+              const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1w(zt, pg, xn, zm);
+  }
+  void Ldff1w(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const ZRegister& zn,
+              int imm5) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldff1w(zt, pg, zn, imm5);
+  }
+  void Ldnf1b(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldnf1b(zt, pg, addr);
+  }
+  void Ldnf1d(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldnf1d(zt, pg, addr);
+  }
+  void Ldnf1h(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldnf1h(zt, pg, addr);
+  }
+  void Ldnf1sb(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldnf1sb(zt, pg, addr);
+  }
+  void Ldnf1sh(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldnf1sh(zt, pg, addr);
+  }
+  void Ldnf1sw(const ZRegister& zt,
+               const PRegisterZ& pg,
+               const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldnf1sw(zt, pg, addr);
+  }
+  void Ldnf1w(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ldnf1w(zt, pg, addr);
+  }
+  void Ldnt1b(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ldnt1d(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ldnt1h(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ldnt1w(const ZRegister& zt,
+              const PRegisterZ& pg,
+              const SVEMemOperand& addr);
+  void Ldr(const CPURegister& rt, const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SVELoadStoreScalarImmHelper(rt, addr, &MacroAssembler::ldr);
+  }
+  void Lsl(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           int shift) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    lsl(zd, pg, zd, shift);
+  }
+  void Lsl(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+  void Lsl(const ZRegister& zd, const ZRegister& zn, int shift) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    lsl(zd, zn, shift);
+  }
+  void Lsl(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    lsl(zd, zn, zm);
+  }
+  void Lsr(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           int shift) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    lsr(zd, pg, zd, shift);
+  }
+  void Lsr(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+  void Lsr(const ZRegister& zd, const ZRegister& zn, int shift) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    lsr(zd, zn, shift);
+  }
+  void Lsr(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    lsr(zd, zn, zm);
+  }
+  void Mov(const PRegister& pd, const PRegister& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    mov(pd.VnB(), pn.VnB());
+  }
+  void Mov(const PRegisterWithLaneSize& pd,
+           const PRegisterM& pg,
+           const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    mov(pd, pg, pn);
+  }
+  void Mov(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    mov(pd, pg, pn);
+  }
+  void Mov(const ZRegister& zd, const Register& xn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    mov(zd, xn);
+  }
+
+  void Mov(const ZRegister& zd, const VRegister& vn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    mov(zd, vn);
+  }
+
+  void Mov(const ZRegister& zd, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    mov(zd, zn);
+  }
+  void Mov(const ZRegister& zd, const ZRegister& zn, unsigned index) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    mov(zd, zn, index);
+  }
+  void Mov(const ZRegister& zd, const PRegister& pg, IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    Cpy(zd, pg, imm);
+  }
+  // TODO: support zeroing predicated moves using movprfx.
+  void Mov(const ZRegister& zd, const PRegisterM& pg, const Register& rn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    mov(zd, pg, rn);
+  }
+  void Mov(const ZRegister& zd, const PRegisterM& pg, const VRegister& vn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    mov(zd, pg, vn);
+  }
+  void Mov(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    mov(zd, pg, zn);
+  }
+  void Mov(const ZRegister& zd, IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    Dup(zd, imm);
+  }
+  void Movs(const PRegister& pd, const PRegister& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    movs(pd, pn);
+  }
+  void Movs(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    movs(pd, pg, pn);
+  }
+  // zd = za + (zn * zm)
+  void Mla(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& za,
+           const ZRegister& zn,
+           const ZRegister& zm);
+  // zd = za - (zn * zm)
+  void Mls(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& za,
+           const ZRegister& zn,
+           const ZRegister& zm);
+  void Mul(const ZRegister& zd, const ZRegister& zn, IntegerOperand imm);
+  void Nand(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    nand(pd, pg, pn, pm);
+  }
+  void Nands(const PRegisterWithLaneSize& pd,
+             const PRegisterZ& pg,
+             const PRegisterWithLaneSize& pn,
+             const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    nands(pd, pg, pn, pm);
+  }
+  // There is no instruction with this form, but we can implement it using
+  // `subr`.
+  void Neg(const ZRegister& zd, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    MovprfxHelperScope guard(this, zd, zn);
+    subr(zd, zd, 0);
+  }
+  void Neg(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    neg(zd, pg, zn);
+  }
+  void Nor(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    nor(pd, pg, pn, pm);
+  }
+  void Nors(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    nors(pd, pg, pn, pm);
+  }
+  void Not(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    not_(pd, pg, pn);
+  }
+  void Not(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    not_(zd, pg, zn);
+  }
+  void Nots(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    nots(pd, pg, pn);
+  }
+  void Orn(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    orn(pd, pg, pn, pm);
+  }
+  void Orn(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (IsImmLogical(imm, zd.GetLaneSizeInBits())) {
+      orn(zd, zn, imm);
+    } else {
+      // TODO: Synthesise the immediate once 'Mov' is implemented.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void Orns(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    orns(pd, pg, pn, pm);
+  }
+  void Orr(const PRegisterWithLaneSize& pd,
+           const PRegisterZ& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    orr(pd, pg, pn, pm);
+  }
+  void Orr(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    if (IsImmLogical(imm, zd.GetLaneSizeInBits())) {
+      orr(zd, zn, imm);
+    } else {
+      // TODO: Synthesise the immediate once 'Mov' is implemented.
+      VIXL_UNIMPLEMENTED();
+    }
+  }
+  void Orr(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(AreSameLaneSize(zd, zn, zm));
+    SingleEmissionCheckScope guard(this);
+    orr(zd.VnD(), zn.VnD(), zm.VnD());
+  }
+  void Orrs(const PRegisterWithLaneSize& pd,
+            const PRegisterZ& pg,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    orrs(pd, pg, pn, pm);
+  }
+  void Orv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    orv(vd, pg, zn);
+  }
+  void Pfalse(const PRegister& pd) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(pd.IsUnqualified());
+    SingleEmissionCheckScope guard(this);
+    // No matter what the lane size is, overall this operation just writes zeros
+    // throughout the register.
+    pfalse(pd.VnB());
+  }
+  void Pfirst(const PRegisterWithLaneSize& pd,
+              const PRegister& pg,
+              const PRegisterWithLaneSize& pn);
+  void Pnext(const PRegisterWithLaneSize& pd,
+             const PRegister& pg,
+             const PRegisterWithLaneSize& pn);
+  void Prfb(PrefetchOperation prfop,
+            const PRegister& pg,
+            const SVEMemOperand addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    prfb(prfop, pg, addr);
+  }
+  void Prfh(PrefetchOperation prfop,
+            const PRegister& pg,
+            const SVEMemOperand addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    prfh(prfop, pg, addr);
+  }
+  void Prfw(PrefetchOperation prfop,
+            const PRegister& pg,
+            const SVEMemOperand addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    prfw(prfop, pg, addr);
+  }
+  void Prfd(PrefetchOperation prfop,
+            const PRegister& pg,
+            const SVEMemOperand addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    prfd(prfop, pg, addr);
+  }
+  void Ptest(const PRegister& pg, const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ptest(pg, pn);
+  }
+  void Ptrue(const PRegisterWithLaneSize& pd,
+             SVEPredicateConstraint pattern,
+             FlagsUpdate s);
+  void Ptrue(const PRegisterWithLaneSize& pd,
+             SVEPredicateConstraint pattern = SVE_ALL) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ptrue(pd, pattern);
+  }
+  void Ptrues(const PRegisterWithLaneSize& pd,
+              SVEPredicateConstraint pattern = SVE_ALL) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ptrues(pd, pattern);
+  }
+  void Punpkhi(const PRegisterWithLaneSize& pd,
+               const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    punpkhi(pd, pn);
+  }
+  void Punpklo(const PRegisterWithLaneSize& pd,
+               const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    punpklo(pd, pn);
+  }
+  void Rbit(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    rbit(zd, pg, zn);
+  }
+  void Rdffr(const PRegister& pd) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    // Although this is essentially just a move, it writes every bit and so can
+    // only support b-sized lane because other lane sizes would simplicity clear
+    // bits in `pd`.
+    VIXL_ASSERT(!pd.HasLaneSize() || pd.IsLaneSizeB());
+    VIXL_ASSERT(pd.IsUnqualified());
+    SingleEmissionCheckScope guard(this);
+    rdffr(pd.VnB());
+  }
+  void Rdffr(const PRegisterWithLaneSize& pd, const PRegisterZ& pg) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    rdffr(pd, pg);
+  }
+  void Rdffrs(const PRegisterWithLaneSize& pd, const PRegisterZ& pg) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    rdffrs(pd, pg);
+  }
+  // Note that there is no `rdpl` instruction, but this macro emulates it (for
+  // symmetry with `Rdvl`).
+  void Rdpl(const Register& xd, int64_t multiplier) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    Addpl(xd, xzr, multiplier);
+  }
+  void Rdvl(const Register& xd, int64_t multiplier) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    Addvl(xd, xzr, multiplier);
+  }
+  void Rev(const PRegisterWithLaneSize& pd, const PRegisterWithLaneSize& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    rev(pd, pn);
+  }
+  void Rev(const ZRegister& zd, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    rev(zd, zn);
+  }
+  void Revb(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    revb(zd, pg, zn);
+  }
+  void Revh(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    revh(zd, pg, zn);
+  }
+  void Revw(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    revw(zd, pg, zn);
+  }
+  void Saddv(const VRegister& dd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    saddv(dd, pg, zn);
+  }
+  void Scvtf(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    scvtf(zd, pg, zn);
+  }
+  void Sdiv(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+  void Sdot(const ZRegister& zd,
+            const ZRegister& za,
+            const ZRegister& zn,
+            const ZRegister& zm);
+  void Sdot(const ZRegister& zd,
+            const ZRegister& za,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            int index);
+  void Sel(const PRegisterWithLaneSize& pd,
+           const PRegister& pg,
+           const PRegisterWithLaneSize& pn,
+           const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sel(pd, pg, pn, pm);
+  }
+  void Sel(const ZRegister& zd,
+           const PRegister& pg,
+           const ZRegister& zn,
+           const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sel(zd, pg, zn, zm);
+  }
+  void Setffr() {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    setffr();
+  }
+  void Smax(const ZRegister& zd, const ZRegister& zn, IntegerOperand imm);
+  void Smaxv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    smaxv(vd, pg, zn);
+  }
+  void Smin(const ZRegister& zd, const ZRegister& zn, IntegerOperand imm);
+  void Sminv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sminv(vd, pg, zn);
+  }
+  void Splice(const ZRegister& zd,
+              const PRegister& pg,
+              const ZRegister& zn,
+              const ZRegister& zm);
+  void Sqadd(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqadd(zd, zn, zm);
+  }
+  void Sqadd(const ZRegister& zd, const ZRegister& zn, IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(imm.IsUint8() ||
+                (imm.IsUint16() && ((imm.AsUint16() & 0xff) == 0)));
+    MovprfxHelperScope guard(this, zd, zn);
+    sqadd(zd, zd, imm.AsUint16());
+  }
+  void Sqdecb(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdecb(xd, wn, pattern, multiplier);
+  }
+  void Sqdecb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdecb(rdn, pattern, multiplier);
+  }
+  void Sqdecd(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdecd(xd, wn, pattern, multiplier);
+  }
+  void Sqdecd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdecd(rdn, pattern, multiplier);
+  }
+  void Sqdecd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdecd(zdn, pattern, multiplier);
+  }
+  void Sqdech(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdech(xd, wn, pattern, multiplier);
+  }
+  void Sqdech(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdech(rdn, pattern, multiplier);
+  }
+  void Sqdech(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdech(zdn, pattern, multiplier);
+  }
+  void Sqdecp(const Register& xdn,
+              const PRegisterWithLaneSize& pg,
+              const Register& wdn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdecp(xdn, pg, wdn);
+  }
+  void Sqdecp(const Register& xdn, const PRegisterWithLaneSize& pg) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdecp(xdn, pg);
+  }
+  void Sqdecp(const ZRegister& zd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(AreSameFormat(zd, zn));
+    // `sqdecp` writes every lane, so use an unpredicated movprfx.
+    MovprfxHelperScope guard(this, zd, zn);
+    sqdecp(zd, pg);
+  }
+  void Sqdecp(const ZRegister& zdn, const PRegister& pg) {
+    Sqdecp(zdn, pg, zdn);
+  }
+  void Sqdecw(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdecw(xd, wn, pattern, multiplier);
+  }
+  void Sqdecw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdecw(rdn, pattern, multiplier);
+  }
+  void Sqdecw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqdecw(zdn, pattern, multiplier);
+  }
+  void Sqincb(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqincb(xd, wn, pattern, multiplier);
+  }
+  void Sqincb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqincb(rdn, pattern, multiplier);
+  }
+  void Sqincd(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqincd(xd, wn, pattern, multiplier);
+  }
+  void Sqincd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqincd(rdn, pattern, multiplier);
+  }
+  void Sqincd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqincd(zdn, pattern, multiplier);
+  }
+  void Sqinch(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqinch(xd, wn, pattern, multiplier);
+  }
+  void Sqinch(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqinch(rdn, pattern, multiplier);
+  }
+  void Sqinch(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqinch(zdn, pattern, multiplier);
+  }
+  void Sqincp(const Register& xdn,
+              const PRegisterWithLaneSize& pg,
+              const Register& wdn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqincp(xdn, pg, wdn);
+  }
+  void Sqincp(const Register& xdn, const PRegisterWithLaneSize& pg) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqincp(xdn, pg);
+  }
+  void Sqincp(const ZRegister& zd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(AreSameFormat(zd, zn));
+    // `sqincp` writes every lane, so use an unpredicated movprfx.
+    MovprfxHelperScope guard(this, zd, zn);
+    sqincp(zd, pg);
+  }
+  void Sqincp(const ZRegister& zdn, const PRegister& pg) {
+    Sqincp(zdn, pg, zdn);
+  }
+  void Sqincw(const Register& xd,
+              const Register& wn,
+              int pattern = SVE_ALL,
+              int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqincw(xd, wn, pattern, multiplier);
+  }
+  void Sqincw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqincw(rdn, pattern, multiplier);
+  }
+  void Sqincw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqincw(zdn, pattern, multiplier);
+  }
+  void Sqsub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sqsub(zd, zn, zm);
+  }
+  void Sqsub(const ZRegister& zd, const ZRegister& zn, IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(imm.IsUint8() ||
+                (imm.IsUint16() && ((imm.AsUint16() & 0xff) == 0)));
+    MovprfxHelperScope guard(this, zd, zn);
+    sqsub(zd, zd, imm.AsUint16());
+  }
+  void St1b(const ZRegister& zt,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+  void St1h(const ZRegister& zt,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+  void St1w(const ZRegister& zt,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+  void St1d(const ZRegister& zt,
+            const PRegister& pg,
+            const SVEMemOperand& addr);
+  void St2b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st2b(zt1, zt2, pg, addr);
+  }
+  void St2h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st2h(zt1, zt2, pg, addr);
+  }
+  void St2w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st2w(zt1, zt2, pg, addr);
+  }
+  void St2d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st2d(zt1, zt2, pg, addr);
+  }
+  void St3b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st3b(zt1, zt2, zt3, pg, addr);
+  }
+  void St3h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st3h(zt1, zt2, zt3, pg, addr);
+  }
+  void St3w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st3w(zt1, zt2, zt3, pg, addr);
+  }
+  void St3d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st3d(zt1, zt2, zt3, pg, addr);
+  }
+  void St4b(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st4b(zt1, zt2, zt3, zt4, pg, addr);
+  }
+  void St4h(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st4h(zt1, zt2, zt3, zt4, pg, addr);
+  }
+  void St4w(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st4w(zt1, zt2, zt3, zt4, pg, addr);
+  }
+  void St4d(const ZRegister& zt1,
+            const ZRegister& zt2,
+            const ZRegister& zt3,
+            const ZRegister& zt4,
+            const PRegister& pg,
+            const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    st4d(zt1, zt2, zt3, zt4, pg, addr);
+  }
+  void Stnt1b(const ZRegister& zt,
+              const PRegister& pg,
+              const SVEMemOperand& addr);
+  void Stnt1d(const ZRegister& zt,
+              const PRegister& pg,
+              const SVEMemOperand& addr);
+  void Stnt1h(const ZRegister& zt,
+              const PRegister& pg,
+              const SVEMemOperand& addr);
+  void Stnt1w(const ZRegister& zt,
+              const PRegister& pg,
+              const SVEMemOperand& addr);
+  void Str(const CPURegister& rt, const SVEMemOperand& addr) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SVELoadStoreScalarImmHelper(rt, addr, &MacroAssembler::str);
+  }
+  void Sub(const ZRegister& zd,
+           const PRegisterM& pg,
+           const ZRegister& zn,
+           const ZRegister& zm);
+  void Sub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sub(zd, zn, zm);
+  }
+  void Sub(const ZRegister& zd, const ZRegister& zn, IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    AddSubHelper(kSubImmediate, zd, zn, imm);
+  }
+  void Sub(const ZRegister& zd, IntegerOperand imm, const ZRegister& zm);
+  void Sunpkhi(const ZRegister& zd, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sunpkhi(zd, zn);
+  }
+  void Sunpklo(const ZRegister& zd, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sunpklo(zd, zn);
+  }
+  void Sxtb(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sxtb(zd, pg, zn);
+  }
+  void Sxth(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sxth(zd, pg, zn);
+  }
+  void Sxtw(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    sxtw(zd, pg, zn);
+  }
+  void Tbl(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    tbl(zd, zn, zm);
+  }
+  void Trn1(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    trn1(pd, pn, pm);
+  }
+  void Trn1(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    trn1(zd, zn, zm);
+  }
+  void Trn2(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    trn2(pd, pn, pm);
+  }
+  void Trn2(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    trn2(zd, zn, zm);
+  }
+  void Uaddv(const VRegister& dd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uaddv(dd, pg, zn);
+  }
+  void Ucvtf(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    ucvtf(zd, pg, zn);
+  }
+  void Udiv(const ZRegister& zd,
+            const PRegisterM& pg,
+            const ZRegister& zn,
+            const ZRegister& zm);
+  void Udot(const ZRegister& zd,
+            const ZRegister& za,
+            const ZRegister& zn,
+            const ZRegister& zm);
+  void Udot(const ZRegister& zd,
+            const ZRegister& za,
+            const ZRegister& zn,
+            const ZRegister& zm,
+            int index);
+  void Umax(const ZRegister& zd, const ZRegister& zn, IntegerOperand imm);
+  void Umaxv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    umaxv(vd, pg, zn);
+  }
+  void Umin(const ZRegister& zd, const ZRegister& zn, IntegerOperand imm);
+  void Uminv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uminv(vd, pg, zn);
+  }
+  void Uqadd(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqadd(zd, zn, zm);
+  }
+  void Uqadd(const ZRegister& zd, const ZRegister& zn, IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(imm.IsUint8() ||
+                (imm.IsUint16() && ((imm.AsUint16() & 0xff) == 0)));
+    MovprfxHelperScope guard(this, zd, zn);
+    uqadd(zd, zd, imm.AsUint16());
+  }
+  void Uqdecb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqdecb(rdn, pattern, multiplier);
+  }
+  void Uqdecd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqdecd(rdn, pattern, multiplier);
+  }
+  void Uqdecd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqdecd(zdn, pattern, multiplier);
+  }
+  void Uqdech(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqdech(rdn, pattern, multiplier);
+  }
+  void Uqdech(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqdech(zdn, pattern, multiplier);
+  }
+  // The saturation is based on the size of `rn`. The result is zero-extended
+  // into `rd`, which must be at least as big.
+  void Uqdecp(const Register& rd,
+              const PRegisterWithLaneSize& pg,
+              const Register& rn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(rd.Aliases(rn));
+    VIXL_ASSERT(rd.GetSizeInBytes() >= rn.GetSizeInBytes());
+    SingleEmissionCheckScope guard(this);
+    if (rn.Is64Bits()) {
+      uqdecp(rd, pg);
+    } else {
+      // Convert <Xd> into <Wd>, to make this more consistent with Sqdecp.
+      uqdecp(rd.W(), pg);
+    }
+  }
+  void Uqdecp(const Register& rdn, const PRegisterWithLaneSize& pg) {
+    Uqdecp(rdn, pg, rdn);
+  }
+  void Uqdecp(const ZRegister& zd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(AreSameFormat(zd, zn));
+    // `sqdecp` writes every lane, so use an unpredicated movprfx.
+    MovprfxHelperScope guard(this, zd, zn);
+    uqdecp(zd, pg);
+  }
+  void Uqdecp(const ZRegister& zdn, const PRegister& pg) {
+    Uqdecp(zdn, pg, zdn);
+  }
+  void Uqdecw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqdecw(rdn, pattern, multiplier);
+  }
+  void Uqdecw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqdecw(zdn, pattern, multiplier);
+  }
+  void Uqincb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqincb(rdn, pattern, multiplier);
+  }
+  void Uqincd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqincd(rdn, pattern, multiplier);
+  }
+  void Uqincd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqincd(zdn, pattern, multiplier);
+  }
+  void Uqinch(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqinch(rdn, pattern, multiplier);
+  }
+  void Uqinch(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqinch(zdn, pattern, multiplier);
+  }
+  // The saturation is based on the size of `rn`. The result is zero-extended
+  // into `rd`, which must be at least as big.
+  void Uqincp(const Register& rd,
+              const PRegisterWithLaneSize& pg,
+              const Register& rn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(rd.Aliases(rn));
+    VIXL_ASSERT(rd.GetSizeInBytes() >= rn.GetSizeInBytes());
+    SingleEmissionCheckScope guard(this);
+    if (rn.Is64Bits()) {
+      uqincp(rd, pg);
+    } else {
+      // Convert <Xd> into <Wd>, to make this more consistent with Sqincp.
+      uqincp(rd.W(), pg);
+    }
+  }
+  void Uqincp(const Register& rdn, const PRegisterWithLaneSize& pg) {
+    Uqincp(rdn, pg, rdn);
+  }
+  void Uqincp(const ZRegister& zd, const PRegister& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(AreSameFormat(zd, zn));
+    // `sqincp` writes every lane, so use an unpredicated movprfx.
+    MovprfxHelperScope guard(this, zd, zn);
+    uqincp(zd, pg);
+  }
+  void Uqincp(const ZRegister& zdn, const PRegister& pg) {
+    Uqincp(zdn, pg, zdn);
+  }
+  void Uqincw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqincw(rdn, pattern, multiplier);
+  }
+  void Uqincw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqincw(zdn, pattern, multiplier);
+  }
+  void Uqsub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uqsub(zd, zn, zm);
+  }
+  void Uqsub(const ZRegister& zd, const ZRegister& zn, IntegerOperand imm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    VIXL_ASSERT(imm.IsUint8() ||
+                (imm.IsUint16() && ((imm.AsUint16() & 0xff) == 0)));
+    MovprfxHelperScope guard(this, zd, zn);
+    uqsub(zd, zd, imm.AsUint16());
+  }
+  void Uunpkhi(const ZRegister& zd, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uunpkhi(zd, zn);
+  }
+  void Uunpklo(const ZRegister& zd, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uunpklo(zd, zn);
+  }
+  void Uxtb(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uxtb(zd, pg, zn);
+  }
+  void Uxth(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uxth(zd, pg, zn);
+  }
+  void Uxtw(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uxtw(zd, pg, zn);
+  }
+  void Uzp1(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uzp1(pd, pn, pm);
+  }
+  void Uzp1(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uzp1(zd, zn, zm);
+  }
+  void Uzp2(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uzp2(pd, pn, pm);
+  }
+  void Uzp2(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    uzp2(zd, zn, zm);
+  }
+  void Whilele(const PRegisterWithLaneSize& pd,
+               const Register& rn,
+               const Register& rm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    whilele(pd, rn, rm);
+  }
+  void Whilelo(const PRegisterWithLaneSize& pd,
+               const Register& rn,
+               const Register& rm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    whilelo(pd, rn, rm);
+  }
+  void Whilels(const PRegisterWithLaneSize& pd,
+               const Register& rn,
+               const Register& rm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    whilels(pd, rn, rm);
+  }
+  void Whilelt(const PRegisterWithLaneSize& pd,
+               const Register& rn,
+               const Register& rm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    whilelt(pd, rn, rm);
+  }
+  void Wrffr(const PRegister& pn) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    // Although this is essentially just a move, it writes every bit and so can
+    // only support b-sized lane because other lane sizes would implicitly clear
+    // bits in `ffr`.
+    VIXL_ASSERT(!pn.HasLaneSize() || pn.IsLaneSizeB());
+    VIXL_ASSERT(pn.IsUnqualified());
+    SingleEmissionCheckScope guard(this);
+    wrffr(pn.VnB());
+  }
+  void Zip1(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    zip1(pd, pn, pm);
+  }
+  void Zip1(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    zip1(zd, zn, zm);
+  }
+  void Zip2(const PRegisterWithLaneSize& pd,
+            const PRegisterWithLaneSize& pn,
+            const PRegisterWithLaneSize& pm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    zip2(pd, pn, pm);
+  }
+  void Zip2(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) {
+    VIXL_ASSERT(allow_macro_instructions_);
+    SingleEmissionCheckScope guard(this);
+    zip2(zd, zn, zm);
+  }
+
   template <typename T>
   Literal<T>* CreateLiteralDestroyedWithPool(T value) {
     return new Literal<T>(value,
@@ -3480,11 +6489,13 @@
     return GetScratchRegisterList();
   }
 
-  CPURegList* GetScratchVRegisterList() { return &fptmp_list_; }
+  CPURegList* GetScratchVRegisterList() { return &v_tmp_list_; }
   VIXL_DEPRECATED("GetScratchVRegisterList", CPURegList* FPTmpList()) {
     return GetScratchVRegisterList();
   }
 
+  CPURegList* GetScratchPRegisterList() { return &p_tmp_list_; }
+
   // Get or set the current (most-deeply-nested) UseScratchRegisterScope.
   void SetCurrentScratchRegisterScope(UseScratchRegisterScope* scope) {
     current_scratch_scope_ = scope;
@@ -3548,16 +6559,6 @@
   // Will output the flags.
   void Log(TraceParameters parameters);
 
-  // Enable or disable instrumentation when an Instrument visitor is attached to
-  // the simulator.
-  void EnableInstrumentation();
-  void DisableInstrumentation();
-
-  // Add a marker to the instrumentation data produced by an Instrument visitor.
-  // The name is a two character string that will be attached to the marker in
-  // the output data.
-  void AnnotateInstrumentation(const char* marker_name);
-
   // Enable or disable CPU features dynamically. This mechanism allows users to
   // strictly check the use of CPU features in different regions of code.
   void SetSimulatorCPUFeatures(const CPUFeatures& features);
@@ -3661,6 +6662,36 @@
                                                Condition cond,
                                                bool* should_synthesise_left);
 
+  // Generate code to calculate the address represented by `addr` and write it
+  // into `xd`. This is used as a common fall-back for out-of-range load and
+  // store operands.
+  //
+  // The vl_divisor_log2 argument is used to scale the VL, for use with
+  // SVE_MUL_VL.
+  void CalculateSVEAddress(const Register& xd,
+                           const SVEMemOperand& addr,
+                           int vl_divisor_log2 = 0);
+
+  void CalculateSVEAddress(const Register& xd,
+                           const SVEMemOperand& addr,
+                           const CPURegister& rt) {
+    VIXL_ASSERT(rt.IsPRegister() || rt.IsZRegister());
+    int vl_divisor_log2 = rt.IsPRegister() ? kZRegBitsPerPRegBitLog2 : 0;
+    CalculateSVEAddress(xd, addr, vl_divisor_log2);
+  }
+
+  void SetFPNaNPropagationOption(FPMacroNaNPropagationOption nan_option) {
+    fp_nan_propagation_ = nan_option;
+  }
+
+  void ResolveFPNaNPropagationOption(FPMacroNaNPropagationOption* nan_option) {
+    // The input option has priority over the option that has set.
+    if (*nan_option == NoFPMacroNaNPropagationSelected) {
+      *nan_option = fp_nan_propagation_;
+    }
+    VIXL_ASSERT(*nan_option != NoFPMacroNaNPropagationSelected);
+  }
+
  private:
   // The actual Push and Pop implementations. These don't generate any code
   // other than that required for the push or pop. This allows
@@ -3714,6 +6745,183 @@
   void ConfigureSimulatorCPUFeaturesHelper(const CPUFeatures& features,
                                            DebugHltOpcode action);
 
+  void CompareHelper(Condition cond,
+                     const PRegisterWithLaneSize& pd,
+                     const PRegisterZ& pg,
+                     const ZRegister& zn,
+                     IntegerOperand imm);
+
+  // E.g. Ld1rb.
+  typedef void (Assembler::*SVELoadBroadcastFn)(const ZRegister& zt,
+                                                const PRegisterZ& pg,
+                                                const SVEMemOperand& addr);
+
+  void SVELoadBroadcastImmHelper(const ZRegister& zt,
+                                 const PRegisterZ& pg,
+                                 const SVEMemOperand& addr,
+                                 SVELoadBroadcastFn fn,
+                                 int divisor);
+
+  // E.g. ldr/str
+  typedef void (Assembler::*SVELoadStoreFn)(const CPURegister& rt,
+                                            const SVEMemOperand& addr);
+
+  void SVELoadStoreScalarImmHelper(const CPURegister& rt,
+                                   const SVEMemOperand& addr,
+                                   SVELoadStoreFn fn);
+
+  typedef void (Assembler::*SVELoad1Fn)(const ZRegister& zt,
+                                        const PRegisterZ& pg,
+                                        const SVEMemOperand& addr);
+  typedef void (Assembler::*SVEStore1Fn)(const ZRegister& zt,
+                                         const PRegister& pg,
+                                         const SVEMemOperand& addr);
+
+  // Helper for predicated Z register loads with addressing modes not directly
+  // encodable in the instruction. The supported_modifier parameter indicates
+  // which offset modifier the calling instruction encoder supports (eg.
+  // SVE_MUL_VL). The ratio log2 of VL to memory access size is passed as
+  // vl_divisor_log2; pass -1 to indicate no dependency.
+  template <typename Tg, typename Tf>
+  void SVELoadStoreScalarImmHelper(
+      const ZRegister& zt,
+      const Tg& pg,
+      const SVEMemOperand& addr,
+      Tf fn,
+      int imm_bits,
+      int shift_amount,
+      SVEOffsetModifier supported_modifier = NO_SVE_OFFSET_MODIFIER,
+      int vl_divisor_log2 = 0);
+
+  template <typename Tg, typename Tf>
+  void SVELoadStore1Helper(int msize_in_bytes_log2,
+                           const ZRegister& zt,
+                           const Tg& pg,
+                           const SVEMemOperand& addr,
+                           Tf fn);
+
+  template <typename Tf>
+  void SVELoadFFHelper(int msize_in_bytes_log2,
+                       const ZRegister& zt,
+                       const PRegisterZ& pg,
+                       const SVEMemOperand& addr,
+                       Tf fn);
+
+  typedef void (MacroAssembler::*IntWideImmMacroFn)(const ZRegister& zd,
+                                                    const ZRegister& zn,
+                                                    IntegerOperand imm);
+
+  typedef void (Assembler::*IntWideImmShiftFn)(const ZRegister& zd,
+                                               const ZRegister& zn,
+                                               int imm,
+                                               int shift);
+
+  typedef void (Assembler::*IntArithFn)(const ZRegister& zd,
+                                        const ZRegister& zn,
+                                        const ZRegister& zm);
+
+  typedef void (Assembler::*IntWideImmFn)(const ZRegister& zd,
+                                          const ZRegister& zn,
+                                          int imm);
+
+  typedef void (Assembler::*IntArithIndexFn)(const ZRegister& zd,
+                                             const ZRegister& zn,
+                                             const ZRegister& zm,
+                                             int index);
+
+  typedef void (MacroAssembler::*SVEArithPredicatedFn)(const ZRegister& zd,
+                                                       const PRegisterM& pg,
+                                                       const ZRegister& zn,
+                                                       const ZRegister& zm);
+
+  void IntWideImmHelper(IntWideImmFn imm_fn,
+                        SVEArithPredicatedFn reg_fn,
+                        const ZRegister& zd,
+                        const ZRegister& zn,
+                        IntegerOperand imm,
+                        bool is_signed_imm);
+
+  enum AddSubHelperOption { kAddImmediate, kSubImmediate };
+
+  void AddSubHelper(AddSubHelperOption option,
+                    const ZRegister& zd,
+                    const ZRegister& zn,
+                    IntegerOperand imm);
+
+  // Try to emit an add- or sub-like instruction (imm_fn) with `imm`, or the
+  // corresponding sub- or add-like instruction (n_imm_fn) with a negated `imm`.
+  // A `movprfx` is automatically generated if one is required. If successful,
+  // return true. Otherwise, return false.
+  //
+  // This helper uses two's complement equivalences, for example treating 0xffff
+  // as -1 for H-sized lanes.
+  bool TrySingleAddSub(AddSubHelperOption option,
+                       const ZRegister& zd,
+                       const ZRegister& zn,
+                       IntegerOperand imm);
+
+  void SVESdotUdotHelper(IntArithFn fn,
+                         const ZRegister& zd,
+                         const ZRegister& za,
+                         const ZRegister& zn,
+                         const ZRegister& zm);
+
+  void SVESdotUdotIndexHelper(IntArithIndexFn fn,
+                              const ZRegister& zd,
+                              const ZRegister& za,
+                              const ZRegister& zn,
+                              const ZRegister& zm,
+                              int index);
+
+  // For noncommutative arithmetic operations.
+  void NoncommutativeArithmeticHelper(const ZRegister& zd,
+                                      const PRegisterM& pg,
+                                      const ZRegister& zn,
+                                      const ZRegister& zm,
+                                      SVEArithPredicatedFn fn,
+                                      SVEArithPredicatedFn rev_fn);
+
+  void FPCommutativeArithmeticHelper(const ZRegister& zd,
+                                     const PRegisterM& pg,
+                                     const ZRegister& zn,
+                                     const ZRegister& zm,
+                                     SVEArithPredicatedFn fn,
+                                     FPMacroNaNPropagationOption nan_option);
+
+  // Floating-point fused multiply-add vectors (predicated), writing addend.
+  typedef void (Assembler::*SVEMulAddPredicatedZdaFn)(const ZRegister& zda,
+                                                      const PRegisterM& pg,
+                                                      const ZRegister& zn,
+                                                      const ZRegister& zm);
+
+  // Floating-point fused multiply-add vectors (predicated), writing
+  // multiplicand.
+  typedef void (Assembler::*SVEMulAddPredicatedZdnFn)(const ZRegister& zdn,
+                                                      const PRegisterM& pg,
+                                                      const ZRegister& zn,
+                                                      const ZRegister& zm);
+
+  void FPMulAddHelper(const ZRegister& zd,
+                      const PRegisterM& pg,
+                      const ZRegister& za,
+                      const ZRegister& zn,
+                      const ZRegister& zm,
+                      SVEMulAddPredicatedZdaFn fn_zda,
+                      SVEMulAddPredicatedZdnFn fn_zdn,
+                      FPMacroNaNPropagationOption nan_option);
+
+  typedef void (Assembler::*SVEMulAddIndexFn)(const ZRegister& zda,
+                                              const ZRegister& zn,
+                                              const ZRegister& zm,
+                                              int index);
+
+  void FPMulAddIndexHelper(SVEMulAddIndexFn fn,
+                           const ZRegister& zd,
+                           const ZRegister& za,
+                           const ZRegister& zn,
+                           const ZRegister& zm,
+                           int index);
+
   // Tell whether any of the macro instruction can be used. When false the
   // MacroAssembler will assert if a method which can emit a variable number
   // of instructions is called.
@@ -3727,7 +6935,8 @@
 
   // Scratch registers available for use by the MacroAssembler.
   CPURegList tmp_list_;
-  CPURegList fptmp_list_;
+  CPURegList v_tmp_list_;
+  CPURegList p_tmp_list_;
 
   UseScratchRegisterScope* current_scratch_scope_;
 
@@ -3737,6 +6946,8 @@
   ptrdiff_t checkpoint_;
   ptrdiff_t recommended_checkpoint_;
 
+  FPMacroNaNPropagationOption fp_nan_propagation_;
+
   friend class Pool;
   friend class LiteralPool;
 };
@@ -3805,11 +7016,35 @@
   MacroAssembler* masm_;
 };
 
+MovprfxHelperScope::MovprfxHelperScope(MacroAssembler* masm,
+                                       const ZRegister& dst,
+                                       const ZRegister& src)
+    : ExactAssemblyScope(masm,
+                         ShouldGenerateMovprfx(dst, src)
+                             ? (2 * kInstructionSize)
+                             : kInstructionSize) {
+  if (ShouldGenerateMovprfx(dst, src)) {
+    masm->movprfx(dst, src);
+  }
+}
+
+MovprfxHelperScope::MovprfxHelperScope(MacroAssembler* masm,
+                                       const ZRegister& dst,
+                                       const PRegister& pg,
+                                       const ZRegister& src)
+    : ExactAssemblyScope(masm,
+                         ShouldGenerateMovprfx(dst, pg, src)
+                             ? (2 * kInstructionSize)
+                             : kInstructionSize) {
+  if (ShouldGenerateMovprfx(dst, pg, src)) {
+    masm->movprfx(dst, pg, src);
+  }
+}
 
 // This scope utility allows scratch registers to be managed safely. The
-// MacroAssembler's GetScratchRegisterList() (and GetScratchVRegisterList()) is
-// used as a pool of scratch registers. These registers can be allocated on
-// demand, and will be returned at the end of the scope.
+// MacroAssembler's GetScratch*RegisterList() are used as a pool of scratch
+// registers. These registers can be allocated on demand, and will be returned
+// at the end of the scope.
 //
 // When the scope ends, the MacroAssembler's lists will be restored to their
 // original state, even if the lists were modified by some other means.
@@ -3819,14 +7054,22 @@
   // must not be `NULL`), so it is ready to use immediately after it has been
   // constructed.
   explicit UseScratchRegisterScope(MacroAssembler* masm)
-      : masm_(NULL), parent_(NULL), old_available_(0), old_available_v_(0) {
+      : masm_(NULL),
+        parent_(NULL),
+        old_available_(0),
+        old_available_v_(0),
+        old_available_p_(0) {
     Open(masm);
   }
   // This constructor does not implicitly initialise the scope. Instead, the
   // user is required to explicitly call the `Open` function before using the
   // scope.
   UseScratchRegisterScope()
-      : masm_(NULL), parent_(NULL), old_available_(0), old_available_v_(0) {}
+      : masm_(NULL),
+        parent_(NULL),
+        old_available_(0),
+        old_available_v_(0),
+        old_available_p_(0) {}
 
   // This function performs the actual initialisation work.
   void Open(MacroAssembler* masm);
@@ -3841,25 +7084,42 @@
 
   bool IsAvailable(const CPURegister& reg) const;
 
-
   // Take a register from the appropriate temps list. It will be returned
   // automatically when the scope ends.
   Register AcquireW() {
-    return AcquireNextAvailable(masm_->GetScratchRegisterList()).W();
+    return AcquireFrom(masm_->GetScratchRegisterList()).W();
   }
   Register AcquireX() {
-    return AcquireNextAvailable(masm_->GetScratchRegisterList()).X();
+    return AcquireFrom(masm_->GetScratchRegisterList()).X();
   }
   VRegister AcquireH() {
-    return AcquireNextAvailable(masm_->GetScratchVRegisterList()).H();
+    return AcquireFrom(masm_->GetScratchVRegisterList()).H();
   }
   VRegister AcquireS() {
-    return AcquireNextAvailable(masm_->GetScratchVRegisterList()).S();
+    return AcquireFrom(masm_->GetScratchVRegisterList()).S();
   }
   VRegister AcquireD() {
-    return AcquireNextAvailable(masm_->GetScratchVRegisterList()).D();
+    return AcquireFrom(masm_->GetScratchVRegisterList()).D();
   }
-
+  ZRegister AcquireZ() {
+    return AcquireFrom(masm_->GetScratchVRegisterList()).Z();
+  }
+  PRegister AcquireP() {
+    // Prefer to allocate p8-p15 if we can, to leave p0-p7 available for use as
+    // governing predicates.
+    CPURegList* available = masm_->GetScratchPRegisterList();
+    RegList preferred = ~kGoverningPRegisterMask;
+    if ((available->GetList() & preferred) != 0) {
+      return AcquireFrom(available, preferred).P();
+    }
+    return AcquireFrom(available).P();
+  }
+  // Acquire a P register suitable for use as a governing predicate in
+  // instructions which only accept p0-p7 for that purpose.
+  PRegister AcquireGoverningP() {
+    CPURegList* available = masm_->GetScratchPRegisterList();
+    return AcquireFrom(available, kGoverningPRegisterMask).P();
+  }
 
   Register AcquireRegisterOfSize(int size_in_bits);
   Register AcquireSameSizeAs(const Register& reg) {
@@ -3875,6 +7135,12 @@
                : CPURegister(AcquireRegisterOfSize(size_in_bits));
   }
 
+  // Acquire a register big enough to represent one lane of `vector`.
+  Register AcquireRegisterToHoldLane(const CPURegister& vector) {
+    VIXL_ASSERT(vector.GetLaneSizeInBits() <= kXRegSize);
+    return (vector.GetLaneSizeInBits() > kWRegSize) ? AcquireX() : AcquireW();
+  }
+
 
   // Explicitly release an acquired (or excluded) register, putting it back in
   // the appropriate temps list.
@@ -3892,6 +7158,10 @@
                const VRegister& reg2 = NoVReg,
                const VRegister& reg3 = NoVReg,
                const VRegister& reg4 = NoVReg);
+  void Include(const CPURegister& reg1,
+               const CPURegister& reg2 = NoCPUReg,
+               const CPURegister& reg3 = NoCPUReg,
+               const CPURegister& reg4 = NoCPUReg);
 
 
   // Make sure that the specified registers are not available in this scope.
@@ -3911,21 +7181,40 @@
                const CPURegister& reg3 = NoCPUReg,
                const CPURegister& reg4 = NoCPUReg);
 
+  // Convenience for excluding registers that are part of Operands. This is
+  // useful for sequences like this:
+  //
+  //    // Use 'rd' as a scratch, but only if it's not aliased by an input.
+  //    temps.Include(rd);
+  //    temps.Exclude(rn);
+  //    temps.Exclude(operand);
+  //
+  // Otherwise, a conditional check is needed on the last 'Exclude'.
+  void Exclude(const Operand& operand) {
+    if (operand.IsShiftedRegister() || operand.IsExtendedRegister()) {
+      Exclude(operand.GetRegister());
+    } else {
+      VIXL_ASSERT(operand.IsImmediate());
+    }
+  }
 
   // Prevent any scratch registers from being used in this scope.
   void ExcludeAll();
 
  private:
-  static CPURegister AcquireNextAvailable(CPURegList* available);
+  static CPURegister AcquireFrom(CPURegList* available,
+                                 RegList mask = ~static_cast<RegList>(0));
 
   static void ReleaseByCode(CPURegList* available, int code);
-
   static void ReleaseByRegList(CPURegList* available, RegList regs);
-
   static void IncludeByRegList(CPURegList* available, RegList exclude);
-
   static void ExcludeByRegList(CPURegList* available, RegList exclude);
 
+  CPURegList* GetAvailableListFor(CPURegister::RegisterBank bank);
+
+  static const RegList kGoverningPRegisterMask =
+      (static_cast<RegList>(1) << kNumberOfGoverningPRegisters) - 1;
+
   // The MacroAssembler maintains a list of available scratch registers, and
   // also keeps track of the most recently-opened scope so that on destruction
   // we can check that scopes do not outlive their parents.
@@ -3934,7 +7223,8 @@
 
   // The state of the available lists at the start of this scope.
   RegList old_available_;    // kRegister
-  RegList old_available_v_;  // kVRegister
+  RegList old_available_v_;  // kVRegister / kZRegister
+  RegList old_available_p_;  // kPRegister
 
   // Disallow copy constructor and operator=.
   VIXL_NO_RETURN_IN_DEBUG_MODE UseScratchRegisterScope(
@@ -3955,23 +7245,11 @@
 // features needs a corresponding macro instruction.
 class SimulationCPUFeaturesScope {
  public:
-  explicit SimulationCPUFeaturesScope(
-      MacroAssembler* masm,
-      CPUFeatures::Feature feature0 = CPUFeatures::kNone,
-      CPUFeatures::Feature feature1 = CPUFeatures::kNone,
-      CPUFeatures::Feature feature2 = CPUFeatures::kNone,
-      CPUFeatures::Feature feature3 = CPUFeatures::kNone)
-      : masm_(masm),
-        cpu_features_scope_(masm, feature0, feature1, feature2, feature3) {
+  template <typename... T>
+  explicit SimulationCPUFeaturesScope(MacroAssembler* masm, T... features)
+      : masm_(masm), cpu_features_scope_(masm, features...) {
     masm_->SaveSimulatorCPUFeatures();
-    masm_->EnableSimulatorCPUFeatures(
-        CPUFeatures(feature0, feature1, feature2, feature3));
-  }
-
-  SimulationCPUFeaturesScope(MacroAssembler* masm, const CPUFeatures& other)
-      : masm_(masm), cpu_features_scope_(masm, other) {
-    masm_->SaveSimulatorCPUFeatures();
-    masm_->EnableSimulatorCPUFeatures(other);
+    masm_->EnableSimulatorCPUFeatures(CPUFeatures(features...));
   }
 
   ~SimulationCPUFeaturesScope() { masm_->RestoreSimulatorCPUFeatures(); }
diff --git a/src/aarch64/macro-assembler-sve-aarch64.cc b/src/aarch64/macro-assembler-sve-aarch64.cc
new file mode 100644
index 0000000..b107f13
--- /dev/null
+++ b/src/aarch64/macro-assembler-sve-aarch64.cc
@@ -0,0 +1,2027 @@
+// Copyright 2019, VIXL authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//   * Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//   * Neither the name of ARM Limited nor the names of its contributors may be
+//     used to endorse or promote products derived from this software without
+//     specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "macro-assembler-aarch64.h"
+
+namespace vixl {
+namespace aarch64 {
+
+void MacroAssembler::AddSubHelper(AddSubHelperOption option,
+                                  const ZRegister& zd,
+                                  const ZRegister& zn,
+                                  IntegerOperand imm) {
+  VIXL_ASSERT(imm.FitsInLane(zd));
+
+  // Simple, encodable cases.
+  if (TrySingleAddSub(option, zd, zn, imm)) return;
+
+  VIXL_ASSERT((option == kAddImmediate) || (option == kSubImmediate));
+  bool add_imm = (option == kAddImmediate);
+
+  // Try to translate Add(..., -imm) to Sub(..., imm) if we can encode it in one
+  // instruction. Also interpret the immediate as signed, so we can convert
+  // Add(zd.VnH(), zn.VnH(), 0xffff...) to Sub(..., 1), etc.
+  IntegerOperand signed_imm(imm.AsIntN(zd.GetLaneSizeInBits()));
+  if (signed_imm.IsNegative()) {
+    AddSubHelperOption n_option = add_imm ? kSubImmediate : kAddImmediate;
+    IntegerOperand n_imm(signed_imm.GetMagnitude());
+    // IntegerOperand can represent -INT_MIN, so this is always safe.
+    VIXL_ASSERT(n_imm.IsPositiveOrZero());
+    if (TrySingleAddSub(n_option, zd, zn, n_imm)) return;
+  }
+
+  // Otherwise, fall back to dup + ADD_z_z/SUB_z_z.
+  UseScratchRegisterScope temps(this);
+  ZRegister scratch = temps.AcquireZ().WithLaneSize(zn.GetLaneSizeInBits());
+  Dup(scratch, imm);
+
+  SingleEmissionCheckScope guard(this);
+  if (add_imm) {
+    add(zd, zn, scratch);
+  } else {
+    sub(zd, zn, scratch);
+  }
+}
+
+bool MacroAssembler::TrySingleAddSub(AddSubHelperOption option,
+                                     const ZRegister& zd,
+                                     const ZRegister& zn,
+                                     IntegerOperand imm) {
+  VIXL_ASSERT(imm.FitsInLane(zd));
+
+  int imm8;
+  int shift = -1;
+  if (imm.TryEncodeAsShiftedUintNForLane<8, 0>(zd, &imm8, &shift) ||
+      imm.TryEncodeAsShiftedUintNForLane<8, 8>(zd, &imm8, &shift)) {
+    MovprfxHelperScope guard(this, zd, zn);
+    switch (option) {
+      case kAddImmediate:
+        add(zd, zd, imm8, shift);
+        return true;
+      case kSubImmediate:
+        sub(zd, zd, imm8, shift);
+        return true;
+    }
+  }
+  return false;
+}
+
+void MacroAssembler::IntWideImmHelper(IntWideImmFn imm_fn,
+                                      SVEArithPredicatedFn reg_macro,
+                                      const ZRegister& zd,
+                                      const ZRegister& zn,
+                                      IntegerOperand imm,
+                                      bool is_signed) {
+  if (is_signed) {
+    // E.g. MUL_z_zi, SMIN_z_zi, SMAX_z_zi
+    if (imm.IsInt8()) {
+      MovprfxHelperScope guard(this, zd, zn);
+      (this->*imm_fn)(zd, zd, imm.AsInt8());
+      return;
+    }
+  } else {
+    // E.g. UMIN_z_zi, UMAX_z_zi
+    if (imm.IsUint8()) {
+      MovprfxHelperScope guard(this, zd, zn);
+      (this->*imm_fn)(zd, zd, imm.AsUint8());
+      return;
+    }
+  }
+
+  UseScratchRegisterScope temps(this);
+  PRegister pg = temps.AcquireGoverningP();
+  Ptrue(pg.WithSameLaneSizeAs(zd));
+
+  // Try to re-use zd if we can, so we can avoid a movprfx.
+  ZRegister scratch =
+      zd.Aliases(zn) ? temps.AcquireZ().WithLaneSize(zn.GetLaneSizeInBits())
+                     : zd;
+  Dup(scratch, imm);
+
+  // The vector-form macro for commutative operations will swap the arguments to
+  // avoid movprfx, if necessary.
+  (this->*reg_macro)(zd, pg.Merging(), zn, scratch);
+}
+
+void MacroAssembler::Mul(const ZRegister& zd,
+                         const ZRegister& zn,
+                         IntegerOperand imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  IntWideImmFn imm_fn = &Assembler::mul;
+  SVEArithPredicatedFn reg_fn = &MacroAssembler::Mul;
+  IntWideImmHelper(imm_fn, reg_fn, zd, zn, imm, true);
+}
+
+void MacroAssembler::Smin(const ZRegister& zd,
+                          const ZRegister& zn,
+                          IntegerOperand imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(imm.FitsInSignedLane(zd));
+  IntWideImmFn imm_fn = &Assembler::smin;
+  SVEArithPredicatedFn reg_fn = &MacroAssembler::Smin;
+  IntWideImmHelper(imm_fn, reg_fn, zd, zn, imm, true);
+}
+
+void MacroAssembler::Smax(const ZRegister& zd,
+                          const ZRegister& zn,
+                          IntegerOperand imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(imm.FitsInSignedLane(zd));
+  IntWideImmFn imm_fn = &Assembler::smax;
+  SVEArithPredicatedFn reg_fn = &MacroAssembler::Smax;
+  IntWideImmHelper(imm_fn, reg_fn, zd, zn, imm, true);
+}
+
+void MacroAssembler::Umax(const ZRegister& zd,
+                          const ZRegister& zn,
+                          IntegerOperand imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(imm.FitsInUnsignedLane(zd));
+  IntWideImmFn imm_fn = &Assembler::umax;
+  SVEArithPredicatedFn reg_fn = &MacroAssembler::Umax;
+  IntWideImmHelper(imm_fn, reg_fn, zd, zn, imm, false);
+}
+
+void MacroAssembler::Umin(const ZRegister& zd,
+                          const ZRegister& zn,
+                          IntegerOperand imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(imm.FitsInUnsignedLane(zd));
+  IntWideImmFn imm_fn = &Assembler::umin;
+  SVEArithPredicatedFn reg_fn = &MacroAssembler::Umin;
+  IntWideImmHelper(imm_fn, reg_fn, zd, zn, imm, false);
+}
+
+void MacroAssembler::Addpl(const Register& xd,
+                           const Register& xn,
+                           int64_t multiplier) {
+  VIXL_ASSERT(allow_macro_instructions_);
+
+  // This macro relies on `Rdvl` to handle some out-of-range cases. Check that
+  // `VL * multiplier` cannot overflow, for any possible value of VL.
+  VIXL_ASSERT(multiplier <= (INT64_MAX / kZRegMaxSizeInBytes));
+  VIXL_ASSERT(multiplier >= (INT64_MIN / kZRegMaxSizeInBytes));
+
+  if (xd.IsZero()) return;
+  if (xn.IsZero() && xd.IsSP()) {
+    // TODO: This operation doesn't make much sense, but we could support it
+    // with a scratch register if necessary.
+    VIXL_UNIMPLEMENTED();
+  }
+
+  // Handling xzr requires an extra move, so defer it until later so we can try
+  // to use `rdvl` instead (via `Addvl`).
+  if (IsInt6(multiplier) && !xn.IsZero()) {
+    SingleEmissionCheckScope guard(this);
+    addpl(xd, xn, static_cast<int>(multiplier));
+    return;
+  }
+
+  // If `multiplier` is a multiple of 8, we can use `Addvl` instead.
+  if ((multiplier % kZRegBitsPerPRegBit) == 0) {
+    Addvl(xd, xn, multiplier / kZRegBitsPerPRegBit);
+    return;
+  }
+
+  if (IsInt6(multiplier)) {
+    VIXL_ASSERT(xn.IsZero());  // Other cases were handled with `addpl`.
+    // There is no simple `rdpl` instruction, and `addpl` cannot accept xzr, so
+    // materialise a zero.
+    MacroEmissionCheckScope guard(this);
+    movz(xd, 0);
+    addpl(xd, xd, static_cast<int>(multiplier));
+    return;
+  }
+
+  // TODO: Some probable cases result in rather long sequences. For example,
+  // `Addpl(sp, sp, 33)` requires five instructions, even though it's only just
+  // outside the encodable range. We should look for ways to cover such cases
+  // without drastically increasing the complexity of this logic.
+
+  // For other cases, calculate xn + (PL * multiplier) using discrete
+  // instructions. This requires two scratch registers in the general case, so
+  // try to re-use the destination as a scratch register.
+  UseScratchRegisterScope temps(this);
+  temps.Include(xd);
+  temps.Exclude(xn);
+
+  Register scratch = temps.AcquireX();
+  // Because there is no `rdpl`, so we have to calculate PL from VL. We can't
+  // scale the multiplier because (we already know) it isn't a multiple of 8.
+  Rdvl(scratch, multiplier);
+
+  MacroEmissionCheckScope guard(this);
+  if (xn.IsZero()) {
+    asr(xd, scratch, kZRegBitsPerPRegBitLog2);
+  } else if (xd.IsSP() || xn.IsSP()) {
+    // TODO: MacroAssembler::Add should be able to handle this.
+    asr(scratch, scratch, kZRegBitsPerPRegBitLog2);
+    add(xd, xn, scratch);
+  } else {
+    add(xd, xn, Operand(scratch, ASR, kZRegBitsPerPRegBitLog2));
+  }
+}
+
+void MacroAssembler::Addvl(const Register& xd,
+                           const Register& xn,
+                           int64_t multiplier) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(xd.IsX());
+  VIXL_ASSERT(xn.IsX());
+
+  // Check that `VL * multiplier` cannot overflow, for any possible value of VL.
+  VIXL_ASSERT(multiplier <= (INT64_MAX / kZRegMaxSizeInBytes));
+  VIXL_ASSERT(multiplier >= (INT64_MIN / kZRegMaxSizeInBytes));
+
+  if (xd.IsZero()) return;
+  if (xn.IsZero() && xd.IsSP()) {
+    // TODO: This operation doesn't make much sense, but we could support it
+    // with a scratch register if necessary. `rdvl` cannot write into `sp`.
+    VIXL_UNIMPLEMENTED();
+  }
+
+  if (IsInt6(multiplier)) {
+    SingleEmissionCheckScope guard(this);
+    if (xn.IsZero()) {
+      rdvl(xd, static_cast<int>(multiplier));
+    } else {
+      addvl(xd, xn, static_cast<int>(multiplier));
+    }
+    return;
+  }
+
+  // TODO: Some probable cases result in rather long sequences. For example,
+  // `Addvl(sp, sp, 42)` requires four instructions, even though it's only just
+  // outside the encodable range. We should look for ways to cover such cases
+  // without drastically increasing the complexity of this logic.
+
+  // For other cases, calculate xn + (VL * multiplier) using discrete
+  // instructions. This requires two scratch registers in the general case, so
+  // we try to re-use the destination as a scratch register.
+  UseScratchRegisterScope temps(this);
+  temps.Include(xd);
+  temps.Exclude(xn);
+
+  Register a = temps.AcquireX();
+  Mov(a, multiplier);
+
+  MacroEmissionCheckScope guard(this);
+  Register b = temps.AcquireX();
+  rdvl(b, 1);
+  if (xn.IsZero()) {
+    mul(xd, a, b);
+  } else if (xd.IsSP() || xn.IsSP()) {
+    mul(a, a, b);
+    add(xd, xn, a);
+  } else {
+    madd(xd, a, b, xn);
+  }
+}
+
+void MacroAssembler::CalculateSVEAddress(const Register& xd,
+                                         const SVEMemOperand& addr,
+                                         int vl_divisor_log2) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(!addr.IsScatterGather());
+  VIXL_ASSERT(xd.IsX());
+
+  // The lower bound is where a whole Z register is accessed.
+  VIXL_ASSERT(!addr.IsMulVl() || (vl_divisor_log2 >= 0));
+  // The upper bound is for P register accesses, and for instructions like
+  // "st1b { z0.d } [...]", where one byte is accessed for every D-sized lane.
+  VIXL_ASSERT(vl_divisor_log2 <= static_cast<int>(kZRegBitsPerPRegBitLog2));
+
+  SVEOffsetModifier mod = addr.GetOffsetModifier();
+  Register base = addr.GetScalarBase();
+
+  if (addr.IsEquivalentToScalar()) {
+    // For example:
+    //   [x0]
+    //   [x0, #0]
+    //   [x0, xzr, LSL 2]
+    Mov(xd, base);
+  } else if (addr.IsScalarPlusImmediate()) {
+    // For example:
+    //   [x0, #42]
+    //   [x0, #42, MUL VL]
+    int64_t offset = addr.GetImmediateOffset();
+    VIXL_ASSERT(offset != 0);  // Handled by IsEquivalentToScalar.
+    if (addr.IsMulVl()) {
+      int vl_divisor = 1 << vl_divisor_log2;
+      // For all possible values of vl_divisor, we can simply use `Addpl`. This
+      // will select `addvl` if necessary.
+      VIXL_ASSERT((kZRegBitsPerPRegBit % vl_divisor) == 0);
+      Addpl(xd, base, offset * (kZRegBitsPerPRegBit / vl_divisor));
+    } else {
+      // IsScalarPlusImmediate() ensures that no other modifiers can occur.
+      VIXL_ASSERT(mod == NO_SVE_OFFSET_MODIFIER);
+      Add(xd, base, offset);
+    }
+  } else if (addr.IsScalarPlusScalar()) {
+    // For example:
+    //   [x0, x1]
+    //   [x0, x1, LSL #4]
+    Register offset = addr.GetScalarOffset();
+    VIXL_ASSERT(!offset.IsZero());  // Handled by IsEquivalentToScalar.
+    if (mod == SVE_LSL) {
+      Add(xd, base, Operand(offset, LSL, addr.GetShiftAmount()));
+    } else {
+      // IsScalarPlusScalar() ensures that no other modifiers can occur.
+      VIXL_ASSERT(mod == NO_SVE_OFFSET_MODIFIER);
+      Add(xd, base, offset);
+    }
+  } else {
+    // All other forms are scatter-gather addresses, which cannot be evaluated
+    // into an X register.
+    VIXL_UNREACHABLE();
+  }
+}
+
+void MacroAssembler::Cpy(const ZRegister& zd,
+                         const PRegister& pg,
+                         IntegerOperand imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(imm.FitsInLane(zd));
+  int imm8;
+  int shift;
+  if (imm.TryEncodeAsShiftedIntNForLane<8, 0>(zd, &imm8, &shift) ||
+      imm.TryEncodeAsShiftedIntNForLane<8, 8>(zd, &imm8, &shift)) {
+    SingleEmissionCheckScope guard(this);
+    cpy(zd, pg, imm8, shift);
+    return;
+  }
+
+  // The fallbacks rely on `cpy` variants that only support merging predication.
+  // If zeroing predication was requested, zero the destination first.
+  if (pg.IsZeroing()) {
+    SingleEmissionCheckScope guard(this);
+    dup(zd, 0);
+  }
+  PRegisterM pg_m = pg.Merging();
+
+  // Try to encode the immediate using fcpy.
+  VIXL_ASSERT(imm.FitsInLane(zd));
+  if (zd.GetLaneSizeInBits() >= kHRegSize) {
+    double fp_imm = 0.0;
+    switch (zd.GetLaneSizeInBits()) {
+      case kHRegSize:
+        fp_imm =
+            FPToDouble(RawbitsToFloat16(imm.AsUint16()), kIgnoreDefaultNaN);
+        break;
+      case kSRegSize:
+        fp_imm = RawbitsToFloat(imm.AsUint32());
+        break;
+      case kDRegSize:
+        fp_imm = RawbitsToDouble(imm.AsUint64());
+        break;
+      default:
+        VIXL_UNREACHABLE();
+        break;
+    }
+    // IsImmFP64 is equivalent to IsImmFP<n> for the same arithmetic value, so
+    // we can use IsImmFP64 for all lane sizes.
+    if (IsImmFP64(fp_imm)) {
+      SingleEmissionCheckScope guard(this);
+      fcpy(zd, pg_m, fp_imm);
+      return;
+    }
+  }
+
+  // Fall back to using a scratch register.
+  UseScratchRegisterScope temps(this);
+  Register scratch = temps.AcquireRegisterToHoldLane(zd);
+  Mov(scratch, imm);
+
+  SingleEmissionCheckScope guard(this);
+  cpy(zd, pg_m, scratch);
+}
+
+// TODO: We implement Fcpy (amongst other things) for all FP types because it
+// allows us to preserve user-specified NaNs. We should come up with some
+// FPImmediate type to abstract this, and avoid all the duplication below (and
+// elsewhere).
+
+void MacroAssembler::Fcpy(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          double imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(pg.IsMerging());
+
+  if (IsImmFP64(imm)) {
+    SingleEmissionCheckScope guard(this);
+    fcpy(zd, pg, imm);
+    return;
+  }
+
+  // As a fall-back, cast the immediate to the required lane size, and try to
+  // encode the bit pattern using `Cpy`.
+  Cpy(zd, pg, FPToRawbitsWithSize(zd.GetLaneSizeInBits(), imm));
+}
+
+void MacroAssembler::Fcpy(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          float imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(pg.IsMerging());
+
+  if (IsImmFP32(imm)) {
+    SingleEmissionCheckScope guard(this);
+    fcpy(zd, pg, imm);
+    return;
+  }
+
+  // As a fall-back, cast the immediate to the required lane size, and try to
+  // encode the bit pattern using `Cpy`.
+  Cpy(zd, pg, FPToRawbitsWithSize(zd.GetLaneSizeInBits(), imm));
+}
+
+void MacroAssembler::Fcpy(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          Float16 imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(pg.IsMerging());
+
+  if (IsImmFP16(imm)) {
+    SingleEmissionCheckScope guard(this);
+    fcpy(zd, pg, imm);
+    return;
+  }
+
+  // As a fall-back, cast the immediate to the required lane size, and try to
+  // encode the bit pattern using `Cpy`.
+  Cpy(zd, pg, FPToRawbitsWithSize(zd.GetLaneSizeInBits(), imm));
+}
+
+void MacroAssembler::Dup(const ZRegister& zd, IntegerOperand imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(imm.FitsInLane(zd));
+  unsigned lane_size = zd.GetLaneSizeInBits();
+  int imm8;
+  int shift;
+  if (imm.TryEncodeAsShiftedIntNForLane<8, 0>(zd, &imm8, &shift) ||
+      imm.TryEncodeAsShiftedIntNForLane<8, 8>(zd, &imm8, &shift)) {
+    SingleEmissionCheckScope guard(this);
+    dup(zd, imm8, shift);
+  } else if (IsImmLogical(imm.AsUintN(lane_size), lane_size)) {
+    SingleEmissionCheckScope guard(this);
+    dupm(zd, imm.AsUintN(lane_size));
+  } else {
+    UseScratchRegisterScope temps(this);
+    Register scratch = temps.AcquireRegisterToHoldLane(zd);
+    Mov(scratch, imm);
+
+    SingleEmissionCheckScope guard(this);
+    dup(zd, scratch);
+  }
+}
+
+void MacroAssembler::NoncommutativeArithmeticHelper(
+    const ZRegister& zd,
+    const PRegisterM& pg,
+    const ZRegister& zn,
+    const ZRegister& zm,
+    SVEArithPredicatedFn fn,
+    SVEArithPredicatedFn rev_fn) {
+  if (zd.Aliases(zn)) {
+    // E.g. zd = zd / zm
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zd, pg, zn, zm);
+  } else if (zd.Aliases(zm)) {
+    // E.g. zd = zn / zd
+    SingleEmissionCheckScope guard(this);
+    (this->*rev_fn)(zd, pg, zm, zn);
+  } else {
+    // E.g. zd = zn / zm
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    (this->*fn)(zd, pg, zd, zm);
+  }
+}
+
+void MacroAssembler::FPCommutativeArithmeticHelper(
+    const ZRegister& zd,
+    const PRegisterM& pg,
+    const ZRegister& zn,
+    const ZRegister& zm,
+    SVEArithPredicatedFn fn,
+    FPMacroNaNPropagationOption nan_option) {
+  ResolveFPNaNPropagationOption(&nan_option);
+
+  if (zd.Aliases(zn)) {
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zd, pg, zd, zm);
+  } else if (zd.Aliases(zm)) {
+    switch (nan_option) {
+      case FastNaNPropagation: {
+        // Swap the arguments.
+        SingleEmissionCheckScope guard(this);
+        (this->*fn)(zd, pg, zd, zn);
+        return;
+      }
+      case StrictNaNPropagation: {
+        UseScratchRegisterScope temps(this);
+        // Use a scratch register to keep the argument order exactly as
+        // specified.
+        ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zn);
+        {
+          MovprfxHelperScope guard(this, scratch, pg, zn);
+          (this->*fn)(scratch, pg, scratch, zm);
+        }
+        Mov(zd, scratch);
+        return;
+      }
+      case NoFPMacroNaNPropagationSelected:
+        VIXL_UNREACHABLE();
+        return;
+    }
+  } else {
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    (this->*fn)(zd, pg, zd, zm);
+  }
+}
+
+void MacroAssembler::Asr(const ZRegister& zd,
+                         const PRegisterM& pg,
+                         const ZRegister& zn,
+                         const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  NoncommutativeArithmeticHelper(zd,
+                                 pg,
+                                 zn,
+                                 zm,
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::asr),
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::asrr));
+}
+
+void MacroAssembler::Lsl(const ZRegister& zd,
+                         const PRegisterM& pg,
+                         const ZRegister& zn,
+                         const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  NoncommutativeArithmeticHelper(zd,
+                                 pg,
+                                 zn,
+                                 zm,
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::lsl),
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::lslr));
+}
+
+void MacroAssembler::Lsr(const ZRegister& zd,
+                         const PRegisterM& pg,
+                         const ZRegister& zn,
+                         const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  NoncommutativeArithmeticHelper(zd,
+                                 pg,
+                                 zn,
+                                 zm,
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::lsr),
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::lsrr));
+}
+
+void MacroAssembler::Fdiv(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          const ZRegister& zn,
+                          const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  NoncommutativeArithmeticHelper(zd,
+                                 pg,
+                                 zn,
+                                 zm,
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::fdiv),
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::fdivr));
+}
+
+void MacroAssembler::Fsub(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          const ZRegister& zn,
+                          const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  NoncommutativeArithmeticHelper(zd,
+                                 pg,
+                                 zn,
+                                 zm,
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::fsub),
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::fsubr));
+}
+
+void MacroAssembler::Fadd(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          const ZRegister& zn,
+                          const ZRegister& zm,
+                          FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPCommutativeArithmeticHelper(zd,
+                                pg,
+                                zn,
+                                zm,
+                                static_cast<SVEArithPredicatedFn>(
+                                    &Assembler::fadd),
+                                nan_option);
+}
+
+void MacroAssembler::Fabd(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          const ZRegister& zn,
+                          const ZRegister& zm,
+                          FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPCommutativeArithmeticHelper(zd,
+                                pg,
+                                zn,
+                                zm,
+                                static_cast<SVEArithPredicatedFn>(
+                                    &Assembler::fabd),
+                                nan_option);
+}
+
+void MacroAssembler::Fmul(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          const ZRegister& zn,
+                          const ZRegister& zm,
+                          FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPCommutativeArithmeticHelper(zd,
+                                pg,
+                                zn,
+                                zm,
+                                static_cast<SVEArithPredicatedFn>(
+                                    &Assembler::fmul),
+                                nan_option);
+}
+
+void MacroAssembler::Fmulx(const ZRegister& zd,
+                           const PRegisterM& pg,
+                           const ZRegister& zn,
+                           const ZRegister& zm,
+                           FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPCommutativeArithmeticHelper(zd,
+                                pg,
+                                zn,
+                                zm,
+                                static_cast<SVEArithPredicatedFn>(
+                                    &Assembler::fmulx),
+                                nan_option);
+}
+
+void MacroAssembler::Fmax(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          const ZRegister& zn,
+                          const ZRegister& zm,
+                          FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPCommutativeArithmeticHelper(zd,
+                                pg,
+                                zn,
+                                zm,
+                                static_cast<SVEArithPredicatedFn>(
+                                    &Assembler::fmax),
+                                nan_option);
+}
+
+void MacroAssembler::Fmin(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          const ZRegister& zn,
+                          const ZRegister& zm,
+                          FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPCommutativeArithmeticHelper(zd,
+                                pg,
+                                zn,
+                                zm,
+                                static_cast<SVEArithPredicatedFn>(
+                                    &Assembler::fmin),
+                                nan_option);
+}
+
+void MacroAssembler::Fmaxnm(const ZRegister& zd,
+                            const PRegisterM& pg,
+                            const ZRegister& zn,
+                            const ZRegister& zm,
+                            FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPCommutativeArithmeticHelper(zd,
+                                pg,
+                                zn,
+                                zm,
+                                static_cast<SVEArithPredicatedFn>(
+                                    &Assembler::fmaxnm),
+                                nan_option);
+}
+
+void MacroAssembler::Fminnm(const ZRegister& zd,
+                            const PRegisterM& pg,
+                            const ZRegister& zn,
+                            const ZRegister& zm,
+                            FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPCommutativeArithmeticHelper(zd,
+                                pg,
+                                zn,
+                                zm,
+                                static_cast<SVEArithPredicatedFn>(
+                                    &Assembler::fminnm),
+                                nan_option);
+}
+
+void MacroAssembler::Fdup(const ZRegister& zd, double imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+
+  switch (zd.GetLaneSizeInBits()) {
+    case kHRegSize:
+      Fdup(zd, Float16(imm));
+      break;
+    case kSRegSize:
+      Fdup(zd, static_cast<float>(imm));
+      break;
+    case kDRegSize:
+      if (IsImmFP64(imm)) {
+        SingleEmissionCheckScope guard(this);
+        fdup(zd, imm);
+      } else {
+        Dup(zd, DoubleToRawbits(imm));
+      }
+      break;
+  }
+}
+
+void MacroAssembler::Fdup(const ZRegister& zd, float imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+
+  switch (zd.GetLaneSizeInBits()) {
+    case kHRegSize:
+      Fdup(zd, Float16(imm));
+      break;
+    case kSRegSize:
+      if (IsImmFP32(imm)) {
+        SingleEmissionCheckScope guard(this);
+        fdup(zd, imm);
+      } else {
+        Dup(zd, FloatToRawbits(imm));
+      }
+      break;
+    case kDRegSize:
+      Fdup(zd, static_cast<double>(imm));
+      break;
+  }
+}
+
+void MacroAssembler::Fdup(const ZRegister& zd, Float16 imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+
+  switch (zd.GetLaneSizeInBits()) {
+    case kHRegSize:
+      if (IsImmFP16(imm)) {
+        SingleEmissionCheckScope guard(this);
+        fdup(zd, imm);
+      } else {
+        Dup(zd, Float16ToRawbits(imm));
+      }
+      break;
+    case kSRegSize:
+      Fdup(zd, FPToFloat(imm, kIgnoreDefaultNaN));
+      break;
+    case kDRegSize:
+      Fdup(zd, FPToDouble(imm, kIgnoreDefaultNaN));
+      break;
+  }
+}
+
+void MacroAssembler::Index(const ZRegister& zd,
+                           const Operand& start,
+                           const Operand& step) {
+  class IndexOperand : public Operand {
+   public:
+    static IndexOperand Prepare(MacroAssembler* masm,
+                                UseScratchRegisterScope* temps,
+                                const Operand& op,
+                                const ZRegister& zd) {
+      // Look for encodable immediates.
+      int imm;
+      if (op.IsImmediate()) {
+        if (IntegerOperand(op).TryEncodeAsIntNForLane<5>(zd, &imm)) {
+          return IndexOperand(imm);
+        }
+        Register scratch = temps->AcquireRegisterToHoldLane(zd);
+        masm->Mov(scratch, op);
+        return IndexOperand(scratch);
+      } else {
+        // Plain registers can be encoded directly.
+        VIXL_ASSERT(op.IsPlainRegister());
+        return IndexOperand(op.GetRegister());
+      }
+    }
+
+    int GetImm5() const {
+      int64_t imm = GetImmediate();
+      VIXL_ASSERT(IsInt5(imm));
+      return static_cast<int>(imm);
+    }
+
+   private:
+    explicit IndexOperand(const Register& reg) : Operand(reg) {}
+    explicit IndexOperand(int64_t imm) : Operand(imm) {}
+  };
+
+  UseScratchRegisterScope temps(this);
+  IndexOperand start_enc = IndexOperand::Prepare(this, &temps, start, zd);
+  IndexOperand step_enc = IndexOperand::Prepare(this, &temps, step, zd);
+
+  SingleEmissionCheckScope guard(this);
+  if (start_enc.IsImmediate()) {
+    if (step_enc.IsImmediate()) {
+      index(zd, start_enc.GetImm5(), step_enc.GetImm5());
+    } else {
+      index(zd, start_enc.GetImm5(), step_enc.GetRegister());
+    }
+  } else {
+    if (step_enc.IsImmediate()) {
+      index(zd, start_enc.GetRegister(), step_enc.GetImm5());
+    } else {
+      index(zd, start_enc.GetRegister(), step_enc.GetRegister());
+    }
+  }
+}
+
+void MacroAssembler::Insr(const ZRegister& zdn, IntegerOperand imm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(imm.FitsInLane(zdn));
+
+  if (imm.IsZero()) {
+    SingleEmissionCheckScope guard(this);
+    insr(zdn, xzr);
+    return;
+  }
+
+  UseScratchRegisterScope temps(this);
+  Register scratch = temps.AcquireRegisterToHoldLane(zdn);
+
+  // TODO: There are many cases where we could optimise immediates, such as by
+  // detecting repeating patterns or FP immediates. We should optimise and
+  // abstract this for use in other SVE mov-immediate-like macros.
+  Mov(scratch, imm);
+
+  SingleEmissionCheckScope guard(this);
+  insr(zdn, scratch);
+}
+
+void MacroAssembler::Mla(const ZRegister& zd,
+                         const PRegisterM& pg,
+                         const ZRegister& za,
+                         const ZRegister& zn,
+                         const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  if (zd.Aliases(za)) {
+    // zda = zda + (zn * zm)
+    SingleEmissionCheckScope guard(this);
+    mla(zd, pg, zn, zm);
+  } else if (zd.Aliases(zn)) {
+    // zdn = za + (zdn * zm)
+    SingleEmissionCheckScope guard(this);
+    mad(zd, pg, zm, za);
+  } else if (zd.Aliases(zm)) {
+    // Multiplication is commutative, so we can swap zn and zm.
+    // zdm = za + (zdm * zn)
+    SingleEmissionCheckScope guard(this);
+    mad(zd, pg, zn, za);
+  } else {
+    // zd = za + (zn * zm)
+    ExactAssemblyScope guard(this, 2 * kInstructionSize);
+    movprfx(zd, pg, za);
+    mla(zd, pg, zn, zm);
+  }
+}
+
+void MacroAssembler::Mls(const ZRegister& zd,
+                         const PRegisterM& pg,
+                         const ZRegister& za,
+                         const ZRegister& zn,
+                         const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  if (zd.Aliases(za)) {
+    // zda = zda - (zn * zm)
+    SingleEmissionCheckScope guard(this);
+    mls(zd, pg, zn, zm);
+  } else if (zd.Aliases(zn)) {
+    // zdn = za - (zdn * zm)
+    SingleEmissionCheckScope guard(this);
+    msb(zd, pg, zm, za);
+  } else if (zd.Aliases(zm)) {
+    // Multiplication is commutative, so we can swap zn and zm.
+    // zdm = za - (zdm * zn)
+    SingleEmissionCheckScope guard(this);
+    msb(zd, pg, zn, za);
+  } else {
+    // zd = za - (zn * zm)
+    ExactAssemblyScope guard(this, 2 * kInstructionSize);
+    movprfx(zd, pg, za);
+    mls(zd, pg, zn, zm);
+  }
+}
+
+void MacroAssembler::CompareHelper(Condition cond,
+                                   const PRegisterWithLaneSize& pd,
+                                   const PRegisterZ& pg,
+                                   const ZRegister& zn,
+                                   IntegerOperand imm) {
+  UseScratchRegisterScope temps(this);
+  ZRegister zm = temps.AcquireZ().WithLaneSize(zn.GetLaneSizeInBits());
+  Dup(zm, imm);
+  SingleEmissionCheckScope guard(this);
+  cmp(cond, pd, pg, zn, zm);
+}
+
+void MacroAssembler::Pfirst(const PRegisterWithLaneSize& pd,
+                            const PRegister& pg,
+                            const PRegisterWithLaneSize& pn) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(pd.IsLaneSizeB());
+  VIXL_ASSERT(pn.IsLaneSizeB());
+  if (pd.Is(pn)) {
+    SingleEmissionCheckScope guard(this);
+    pfirst(pd, pg, pn);
+  } else {
+    UseScratchRegisterScope temps(this);
+    PRegister temp_pg = pg;
+    if (pd.Aliases(pg)) {
+      temp_pg = temps.AcquireP();
+      Mov(temp_pg.VnB(), pg.VnB());
+    }
+    Mov(pd, pn);
+    SingleEmissionCheckScope guard(this);
+    pfirst(pd, temp_pg, pd);
+  }
+}
+
+void MacroAssembler::Pnext(const PRegisterWithLaneSize& pd,
+                           const PRegister& pg,
+                           const PRegisterWithLaneSize& pn) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(AreSameFormat(pd, pn));
+  if (pd.Is(pn)) {
+    SingleEmissionCheckScope guard(this);
+    pnext(pd, pg, pn);
+  } else {
+    UseScratchRegisterScope temps(this);
+    PRegister temp_pg = pg;
+    if (pd.Aliases(pg)) {
+      temp_pg = temps.AcquireP();
+      Mov(temp_pg.VnB(), pg.VnB());
+    }
+    Mov(pd.VnB(), pn.VnB());
+    SingleEmissionCheckScope guard(this);
+    pnext(pd, temp_pg, pd);
+  }
+}
+
+void MacroAssembler::Ptrue(const PRegisterWithLaneSize& pd,
+                           SVEPredicateConstraint pattern,
+                           FlagsUpdate s) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  switch (s) {
+    case LeaveFlags:
+      Ptrue(pd, pattern);
+      return;
+    case SetFlags:
+      Ptrues(pd, pattern);
+      return;
+  }
+  VIXL_UNREACHABLE();
+}
+
+void MacroAssembler::Sdiv(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          const ZRegister& zn,
+                          const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  NoncommutativeArithmeticHelper(zd,
+                                 pg,
+                                 zn,
+                                 zm,
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::sdiv),
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::sdivr));
+}
+
+void MacroAssembler::Sub(const ZRegister& zd,
+                         IntegerOperand imm,
+                         const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+
+  int imm8;
+  int shift = -1;
+  if (imm.TryEncodeAsShiftedUintNForLane<8, 0>(zd, &imm8, &shift) ||
+      imm.TryEncodeAsShiftedUintNForLane<8, 8>(zd, &imm8, &shift)) {
+    MovprfxHelperScope guard(this, zd, zm);
+    subr(zd, zd, imm8, shift);
+  } else {
+    UseScratchRegisterScope temps(this);
+    ZRegister scratch = temps.AcquireZ().WithLaneSize(zm.GetLaneSizeInBits());
+    Dup(scratch, imm);
+
+    SingleEmissionCheckScope guard(this);
+    sub(zd, scratch, zm);
+  }
+}
+
+void MacroAssembler::Sub(const ZRegister& zd,
+                         const PRegisterM& pg,
+                         const ZRegister& zn,
+                         const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  NoncommutativeArithmeticHelper(zd,
+                                 pg,
+                                 zn,
+                                 zm,
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::sub),
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::subr));
+}
+
+void MacroAssembler::Udiv(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          const ZRegister& zn,
+                          const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  NoncommutativeArithmeticHelper(zd,
+                                 pg,
+                                 zn,
+                                 zm,
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::udiv),
+                                 static_cast<SVEArithPredicatedFn>(
+                                     &Assembler::udivr));
+}
+
+void MacroAssembler::SVELoadBroadcastImmHelper(const ZRegister& zt,
+                                               const PRegisterZ& pg,
+                                               const SVEMemOperand& addr,
+                                               SVELoadBroadcastFn fn,
+                                               int divisor) {
+  VIXL_ASSERT(addr.IsScalarPlusImmediate());
+  int64_t imm = addr.GetImmediateOffset();
+  if ((imm % divisor == 0) && IsUint6(imm / divisor)) {
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zt, pg, addr);
+  } else {
+    UseScratchRegisterScope temps(this);
+    Register scratch = temps.AcquireX();
+    CalculateSVEAddress(scratch, addr, zt);
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zt, pg, SVEMemOperand(scratch));
+  }
+}
+
+void MacroAssembler::SVELoadStoreScalarImmHelper(const CPURegister& rt,
+                                                 const SVEMemOperand& addr,
+                                                 SVELoadStoreFn fn) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  VIXL_ASSERT(rt.IsZRegister() || rt.IsPRegister());
+
+  if (addr.IsPlainScalar() ||
+      (addr.IsScalarPlusImmediate() && IsInt9(addr.GetImmediateOffset()) &&
+       addr.IsMulVl())) {
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(rt, addr);
+    return;
+  }
+
+  if (addr.IsEquivalentToScalar()) {
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(rt, SVEMemOperand(addr.GetScalarBase()));
+    return;
+  }
+
+  UseScratchRegisterScope temps(this);
+  Register scratch = temps.AcquireX();
+  CalculateSVEAddress(scratch, addr, rt);
+  SingleEmissionCheckScope guard(this);
+  (this->*fn)(rt, SVEMemOperand(scratch));
+}
+
+template <typename Tg, typename Tf>
+void MacroAssembler::SVELoadStoreScalarImmHelper(
+    const ZRegister& zt,
+    const Tg& pg,
+    const SVEMemOperand& addr,
+    Tf fn,
+    int imm_bits,
+    int shift_amount,
+    SVEOffsetModifier supported_modifier,
+    int vl_divisor_log2) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  int imm_divisor = 1 << shift_amount;
+
+  if (addr.IsPlainScalar() ||
+      (addr.IsScalarPlusImmediate() &&
+       IsIntN(imm_bits, addr.GetImmediateOffset() / imm_divisor) &&
+       ((addr.GetImmediateOffset() % imm_divisor) == 0) &&
+       (addr.GetOffsetModifier() == supported_modifier))) {
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zt, pg, addr);
+    return;
+  }
+
+  if (addr.IsEquivalentToScalar()) {
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zt, pg, SVEMemOperand(addr.GetScalarBase()));
+    return;
+  }
+
+  if (addr.IsMulVl() && (supported_modifier != SVE_MUL_VL) &&
+      (vl_divisor_log2 == -1)) {
+    // We don't handle [x0, #imm, MUL VL] if the in-memory access size is not VL
+    // dependent.
+    VIXL_UNIMPLEMENTED();
+  }
+
+  UseScratchRegisterScope temps(this);
+  Register scratch = temps.AcquireX();
+  CalculateSVEAddress(scratch, addr, vl_divisor_log2);
+  SingleEmissionCheckScope guard(this);
+  (this->*fn)(zt, pg, SVEMemOperand(scratch));
+}
+
+template <typename Tg, typename Tf>
+void MacroAssembler::SVELoadStore1Helper(int msize_in_bytes_log2,
+                                         const ZRegister& zt,
+                                         const Tg& pg,
+                                         const SVEMemOperand& addr,
+                                         Tf fn) {
+  if (addr.IsPlainScalar() ||
+      (addr.IsScalarPlusScalar() && !addr.GetScalarOffset().IsZero() &&
+       addr.IsEquivalentToLSL(msize_in_bytes_log2)) ||
+      (addr.IsScalarPlusImmediate() && IsInt4(addr.GetImmediateOffset()) &&
+       addr.IsMulVl())) {
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zt, pg, addr);
+    return;
+  }
+
+  if (addr.IsEquivalentToScalar()) {
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zt, pg, SVEMemOperand(addr.GetScalarBase()));
+    return;
+  }
+
+  if (addr.IsVectorPlusImmediate()) {
+    uint64_t offset = addr.GetImmediateOffset();
+    if (IsMultiple(offset, (1 << msize_in_bytes_log2)) &&
+        IsUint5(offset >> msize_in_bytes_log2)) {
+      SingleEmissionCheckScope guard(this);
+      (this->*fn)(zt, pg, addr);
+      return;
+    }
+  }
+
+  if (addr.IsScalarPlusVector()) {
+    VIXL_ASSERT(addr.IsScatterGather());
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zt, pg, addr);
+    return;
+  }
+
+  UseScratchRegisterScope temps(this);
+  if (addr.IsScatterGather()) {
+    // In scatter-gather modes, zt and zn/zm have the same lane size. However,
+    // for 32-bit accesses, the result of each lane's address calculation still
+    // requires 64 bits; we can't naively use `Adr` for the address calculation
+    // because it would truncate each address to 32 bits.
+
+    if (addr.IsVectorPlusImmediate()) {
+      // Synthesise the immediate in an X register, then use a
+      // scalar-plus-vector access with the original vector.
+      Register scratch = temps.AcquireX();
+      Mov(scratch, addr.GetImmediateOffset());
+      SingleEmissionCheckScope guard(this);
+      SVEOffsetModifier om =
+          zt.IsLaneSizeS() ? SVE_UXTW : NO_SVE_OFFSET_MODIFIER;
+      (this->*fn)(zt, pg, SVEMemOperand(scratch, addr.GetVectorBase(), om));
+      return;
+    }
+
+    VIXL_UNIMPLEMENTED();
+  } else {
+    Register scratch = temps.AcquireX();
+    // TODO: If we have an immediate offset that is a multiple of
+    // msize_in_bytes, we can use Rdvl/Rdpl and a scalar-plus-scalar form to
+    // save an instruction.
+    int vl_divisor_log2 = zt.GetLaneSizeInBytesLog2() - msize_in_bytes_log2;
+    CalculateSVEAddress(scratch, addr, vl_divisor_log2);
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zt, pg, SVEMemOperand(scratch));
+  }
+}
+
+template <typename Tf>
+void MacroAssembler::SVELoadFFHelper(int msize_in_bytes_log2,
+                                     const ZRegister& zt,
+                                     const PRegisterZ& pg,
+                                     const SVEMemOperand& addr,
+                                     Tf fn) {
+  if (addr.IsScatterGather()) {
+    // Scatter-gather first-fault loads share encodings with normal loads.
+    SVELoadStore1Helper(msize_in_bytes_log2, zt, pg, addr, fn);
+    return;
+  }
+
+  // Contiguous first-faulting loads have no scalar-plus-immediate form at all,
+  // so we don't do immediate synthesis.
+
+  // We cannot currently distinguish "[x0]" from "[x0, #0]", and this
+  // is not "scalar-plus-scalar", so we have to permit `IsPlainScalar()` here.
+  if (addr.IsPlainScalar() || (addr.IsScalarPlusScalar() &&
+                               addr.IsEquivalentToLSL(msize_in_bytes_log2))) {
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zt, pg, addr);
+    return;
+  }
+
+  VIXL_UNIMPLEMENTED();
+}
+
+void MacroAssembler::Ld1b(const ZRegister& zt,
+                          const PRegisterZ& pg,
+                          const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStore1Helper(kBRegSizeInBytesLog2,
+                      zt,
+                      pg,
+                      addr,
+                      static_cast<SVELoad1Fn>(&Assembler::ld1b));
+}
+
+void MacroAssembler::Ld1h(const ZRegister& zt,
+                          const PRegisterZ& pg,
+                          const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStore1Helper(kHRegSizeInBytesLog2,
+                      zt,
+                      pg,
+                      addr,
+                      static_cast<SVELoad1Fn>(&Assembler::ld1h));
+}
+
+void MacroAssembler::Ld1w(const ZRegister& zt,
+                          const PRegisterZ& pg,
+                          const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStore1Helper(kWRegSizeInBytesLog2,
+                      zt,
+                      pg,
+                      addr,
+                      static_cast<SVELoad1Fn>(&Assembler::ld1w));
+}
+
+void MacroAssembler::Ld1d(const ZRegister& zt,
+                          const PRegisterZ& pg,
+                          const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStore1Helper(kDRegSizeInBytesLog2,
+                      zt,
+                      pg,
+                      addr,
+                      static_cast<SVELoad1Fn>(&Assembler::ld1d));
+}
+
+void MacroAssembler::Ld1sb(const ZRegister& zt,
+                           const PRegisterZ& pg,
+                           const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStore1Helper(kBRegSizeInBytesLog2,
+                      zt,
+                      pg,
+                      addr,
+                      static_cast<SVELoad1Fn>(&Assembler::ld1sb));
+}
+
+void MacroAssembler::Ld1sh(const ZRegister& zt,
+                           const PRegisterZ& pg,
+                           const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStore1Helper(kHRegSizeInBytesLog2,
+                      zt,
+                      pg,
+                      addr,
+                      static_cast<SVELoad1Fn>(&Assembler::ld1sh));
+}
+
+void MacroAssembler::Ld1sw(const ZRegister& zt,
+                           const PRegisterZ& pg,
+                           const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStore1Helper(kSRegSizeInBytesLog2,
+                      zt,
+                      pg,
+                      addr,
+                      static_cast<SVELoad1Fn>(&Assembler::ld1sw));
+}
+
+void MacroAssembler::St1b(const ZRegister& zt,
+                          const PRegister& pg,
+                          const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStore1Helper(kBRegSizeInBytesLog2,
+                      zt,
+                      pg,
+                      addr,
+                      static_cast<SVEStore1Fn>(&Assembler::st1b));
+}
+
+void MacroAssembler::St1h(const ZRegister& zt,
+                          const PRegister& pg,
+                          const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStore1Helper(kHRegSizeInBytesLog2,
+                      zt,
+                      pg,
+                      addr,
+                      static_cast<SVEStore1Fn>(&Assembler::st1h));
+}
+
+void MacroAssembler::St1w(const ZRegister& zt,
+                          const PRegister& pg,
+                          const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStore1Helper(kSRegSizeInBytesLog2,
+                      zt,
+                      pg,
+                      addr,
+                      static_cast<SVEStore1Fn>(&Assembler::st1w));
+}
+
+void MacroAssembler::St1d(const ZRegister& zt,
+                          const PRegister& pg,
+                          const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStore1Helper(kDRegSizeInBytesLog2,
+                      zt,
+                      pg,
+                      addr,
+                      static_cast<SVEStore1Fn>(&Assembler::st1d));
+}
+
+void MacroAssembler::Ldff1b(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadFFHelper(kBRegSizeInBytesLog2,
+                  zt,
+                  pg,
+                  addr,
+                  static_cast<SVELoad1Fn>(&Assembler::ldff1b));
+}
+
+void MacroAssembler::Ldff1h(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadFFHelper(kHRegSizeInBytesLog2,
+                  zt,
+                  pg,
+                  addr,
+                  static_cast<SVELoad1Fn>(&Assembler::ldff1h));
+}
+
+void MacroAssembler::Ldff1w(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadFFHelper(kSRegSizeInBytesLog2,
+                  zt,
+                  pg,
+                  addr,
+                  static_cast<SVELoad1Fn>(&Assembler::ldff1w));
+}
+
+void MacroAssembler::Ldff1d(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadFFHelper(kDRegSizeInBytesLog2,
+                  zt,
+                  pg,
+                  addr,
+                  static_cast<SVELoad1Fn>(&Assembler::ldff1d));
+}
+
+void MacroAssembler::Ldff1sb(const ZRegister& zt,
+                             const PRegisterZ& pg,
+                             const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadFFHelper(kBRegSizeInBytesLog2,
+                  zt,
+                  pg,
+                  addr,
+                  static_cast<SVELoad1Fn>(&Assembler::ldff1sb));
+}
+
+void MacroAssembler::Ldff1sh(const ZRegister& zt,
+                             const PRegisterZ& pg,
+                             const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadFFHelper(kHRegSizeInBytesLog2,
+                  zt,
+                  pg,
+                  addr,
+                  static_cast<SVELoad1Fn>(&Assembler::ldff1sh));
+}
+
+void MacroAssembler::Ldff1sw(const ZRegister& zt,
+                             const PRegisterZ& pg,
+                             const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadFFHelper(kSRegSizeInBytesLog2,
+                  zt,
+                  pg,
+                  addr,
+                  static_cast<SVELoad1Fn>(&Assembler::ldff1sw));
+}
+
+void MacroAssembler::Ld1rqb(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ld1rqb,
+                              4,
+                              4,
+                              NO_SVE_OFFSET_MODIFIER,
+                              -1);
+}
+
+void MacroAssembler::Ld1rqd(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ld1rqd,
+                              4,
+                              4,
+                              NO_SVE_OFFSET_MODIFIER,
+                              -1);
+}
+
+void MacroAssembler::Ld1rqh(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ld1rqh,
+                              4,
+                              4,
+                              NO_SVE_OFFSET_MODIFIER,
+                              -1);
+}
+
+void MacroAssembler::Ld1rqw(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ld1rqw,
+                              4,
+                              4,
+                              NO_SVE_OFFSET_MODIFIER,
+                              -1);
+}
+
+void MacroAssembler::Ldnt1b(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ldnt1b,
+                              4,
+                              0,
+                              SVE_MUL_VL);
+}
+
+void MacroAssembler::Ldnt1d(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ldnt1d,
+                              4,
+                              0,
+                              SVE_MUL_VL);
+}
+
+void MacroAssembler::Ldnt1h(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ldnt1h,
+                              4,
+                              0,
+                              SVE_MUL_VL);
+}
+
+void MacroAssembler::Ldnt1w(const ZRegister& zt,
+                            const PRegisterZ& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::ldnt1w,
+                              4,
+                              0,
+                              SVE_MUL_VL);
+}
+
+void MacroAssembler::Stnt1b(const ZRegister& zt,
+                            const PRegister& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::stnt1b,
+                              4,
+                              0,
+                              SVE_MUL_VL);
+}
+void MacroAssembler::Stnt1d(const ZRegister& zt,
+                            const PRegister& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::stnt1d,
+                              4,
+                              0,
+                              SVE_MUL_VL);
+}
+void MacroAssembler::Stnt1h(const ZRegister& zt,
+                            const PRegister& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::stnt1h,
+                              4,
+                              0,
+                              SVE_MUL_VL);
+}
+void MacroAssembler::Stnt1w(const ZRegister& zt,
+                            const PRegister& pg,
+                            const SVEMemOperand& addr) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVELoadStoreScalarImmHelper(zt,
+                              pg,
+                              addr,
+                              &MacroAssembler::stnt1w,
+                              4,
+                              0,
+                              SVE_MUL_VL);
+}
+
+void MacroAssembler::SVESdotUdotIndexHelper(IntArithIndexFn fn,
+                                            const ZRegister& zd,
+                                            const ZRegister& za,
+                                            const ZRegister& zn,
+                                            const ZRegister& zm,
+                                            int index) {
+  if (zd.Aliases(za)) {
+    // zda = zda + (zn . zm)
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zd, zn, zm, index);
+
+  } else if (zd.Aliases(zn) || zd.Aliases(zm)) {
+    // zdn = za + (zdn . zm[index])
+    // zdm = za + (zn . zdm[index])
+    // zdnm = za + (zdnm . zdnm[index])
+    UseScratchRegisterScope temps(this);
+    ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zd);
+    {
+      MovprfxHelperScope guard(this, scratch, za);
+      (this->*fn)(scratch, zn, zm, index);
+    }
+
+    Mov(zd, scratch);
+  } else {
+    // zd = za + (zn . zm)
+    MovprfxHelperScope guard(this, zd, za);
+    (this->*fn)(zd, zn, zm, index);
+  }
+}
+
+void MacroAssembler::SVESdotUdotHelper(IntArithFn fn,
+                                       const ZRegister& zd,
+                                       const ZRegister& za,
+                                       const ZRegister& zn,
+                                       const ZRegister& zm) {
+  if (zd.Aliases(za)) {
+    // zda = zda + (zn . zm)
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zd, zn, zm);
+
+  } else if (zd.Aliases(zn) || zd.Aliases(zm)) {
+    // zdn = za + (zdn . zm)
+    // zdm = za + (zn . zdm)
+    // zdnm = za + (zdnm . zdnm)
+    UseScratchRegisterScope temps(this);
+    ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zd);
+    {
+      MovprfxHelperScope guard(this, scratch, za);
+      (this->*fn)(scratch, zn, zm);
+    }
+
+    Mov(zd, scratch);
+  } else {
+    // zd = za + (zn . zm)
+    MovprfxHelperScope guard(this, zd, za);
+    (this->*fn)(zd, zn, zm);
+  }
+}
+
+void MacroAssembler::Fscale(const ZRegister& zd,
+                            const PRegisterM& pg,
+                            const ZRegister& zn,
+                            const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  if (zd.Aliases(zm) && !zd.Aliases(zn)) {
+    UseScratchRegisterScope temps(this);
+    ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zm);
+    Mov(scratch, zm);
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fscale(zd, pg, zd, scratch);
+  } else {
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fscale(zd, pg, zd, zm);
+  }
+}
+
+void MacroAssembler::Sdot(const ZRegister& zd,
+                          const ZRegister& za,
+                          const ZRegister& zn,
+                          const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVESdotUdotHelper(&Assembler::sdot, zd, za, zn, zm);
+}
+
+void MacroAssembler::Sdot(const ZRegister& zd,
+                          const ZRegister& za,
+                          const ZRegister& zn,
+                          const ZRegister& zm,
+                          int index) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVESdotUdotIndexHelper(&Assembler::sdot, zd, za, zn, zm, index);
+}
+
+void MacroAssembler::Udot(const ZRegister& zd,
+                          const ZRegister& za,
+                          const ZRegister& zn,
+                          const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVESdotUdotHelper(&Assembler::udot, zd, za, zn, zm);
+}
+
+void MacroAssembler::Udot(const ZRegister& zd,
+                          const ZRegister& za,
+                          const ZRegister& zn,
+                          const ZRegister& zm,
+                          int index) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  SVESdotUdotIndexHelper(&Assembler::udot, zd, za, zn, zm, index);
+}
+
+void MacroAssembler::FPMulAddHelper(const ZRegister& zd,
+                                    const PRegisterM& pg,
+                                    const ZRegister& za,
+                                    const ZRegister& zn,
+                                    const ZRegister& zm,
+                                    SVEMulAddPredicatedZdaFn fn_zda,
+                                    SVEMulAddPredicatedZdnFn fn_zdn,
+                                    FPMacroNaNPropagationOption nan_option) {
+  ResolveFPNaNPropagationOption(&nan_option);
+
+  if (zd.Aliases(za)) {
+    // zda = (-)zda + ((-)zn * zm) for fmla, fmls, fnmla and fnmls.
+    SingleEmissionCheckScope guard(this);
+    (this->*fn_zda)(zd, pg, zn, zm);
+  } else if (zd.Aliases(zn)) {
+    // zdn = (-)za + ((-)zdn * zm) for fmad, fmsb, fnmad and fnmsb.
+    SingleEmissionCheckScope guard(this);
+    (this->*fn_zdn)(zd, pg, zm, za);
+  } else if (zd.Aliases(zm)) {
+    switch (nan_option) {
+      case FastNaNPropagation: {
+        // We treat multiplication as commutative in the fast mode, so we can
+        // swap zn and zm.
+        // zdm = (-)za + ((-)zdm * zn) for fmad, fmsb, fnmad and fnmsb.
+        SingleEmissionCheckScope guard(this);
+        (this->*fn_zdn)(zd, pg, zn, za);
+        return;
+      }
+      case StrictNaNPropagation: {
+        UseScratchRegisterScope temps(this);
+        // Use a scratch register to keep the argument order exactly as
+        // specified.
+        ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zn);
+        {
+          MovprfxHelperScope guard(this, scratch, pg, za);
+          // scratch = (-)za + ((-)zn * zm)
+          (this->*fn_zda)(scratch, pg, zn, zm);
+        }
+        Mov(zd, scratch);
+        return;
+      }
+      case NoFPMacroNaNPropagationSelected:
+        VIXL_UNREACHABLE();
+        return;
+    }
+  } else {
+    // zd = (-)za + ((-)zn * zm) for fmla, fmls, fnmla and fnmls.
+    MovprfxHelperScope guard(this, zd, pg, za);
+    (this->*fn_zda)(zd, pg, zn, zm);
+  }
+}
+
+void MacroAssembler::FPMulAddIndexHelper(SVEMulAddIndexFn fn,
+                                         const ZRegister& zd,
+                                         const ZRegister& za,
+                                         const ZRegister& zn,
+                                         const ZRegister& zm,
+                                         int index) {
+  if (zd.Aliases(za)) {
+    // zda = zda + (zn * zm[i])
+    SingleEmissionCheckScope guard(this);
+    (this->*fn)(zd, zn, zm, index);
+
+  } else if (zd.Aliases(zn) || zd.Aliases(zm)) {
+    // zdn = za + (zdn * zm[i])
+    // zdm = za + (zn * zdm[i])
+    // zdnm = za + (zdnm * zdnm[i])
+    UseScratchRegisterScope temps(this);
+    ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zd);
+    {
+      MovprfxHelperScope guard(this, scratch, za);
+      (this->*fn)(scratch, zn, zm, index);
+    }
+    Mov(zd, scratch);
+  } else {
+    // zd = za + (zn * zm[i])
+    MovprfxHelperScope guard(this, zd, za);
+    (this->*fn)(zd, zn, zm, index);
+  }
+}
+
+void MacroAssembler::Fmla(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          const ZRegister& za,
+                          const ZRegister& zn,
+                          const ZRegister& zm,
+                          FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPMulAddHelper(zd,
+                 pg,
+                 za,
+                 zn,
+                 zm,
+                 &Assembler::fmla,
+                 &Assembler::fmad,
+                 nan_option);
+}
+
+void MacroAssembler::Fmla(const ZRegister& zd,
+                          const ZRegister& za,
+                          const ZRegister& zn,
+                          const ZRegister& zm,
+                          int index) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPMulAddIndexHelper(&Assembler::fmla, zd, za, zn, zm, index);
+}
+
+void MacroAssembler::Fmls(const ZRegister& zd,
+                          const PRegisterM& pg,
+                          const ZRegister& za,
+                          const ZRegister& zn,
+                          const ZRegister& zm,
+                          FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPMulAddHelper(zd,
+                 pg,
+                 za,
+                 zn,
+                 zm,
+                 &Assembler::fmls,
+                 &Assembler::fmsb,
+                 nan_option);
+}
+
+void MacroAssembler::Fmls(const ZRegister& zd,
+                          const ZRegister& za,
+                          const ZRegister& zn,
+                          const ZRegister& zm,
+                          int index) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPMulAddIndexHelper(&Assembler::fmls, zd, za, zn, zm, index);
+}
+
+void MacroAssembler::Fnmla(const ZRegister& zd,
+                           const PRegisterM& pg,
+                           const ZRegister& za,
+                           const ZRegister& zn,
+                           const ZRegister& zm,
+                           FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPMulAddHelper(zd,
+                 pg,
+                 za,
+                 zn,
+                 zm,
+                 &Assembler::fnmla,
+                 &Assembler::fnmad,
+                 nan_option);
+}
+
+void MacroAssembler::Fnmls(const ZRegister& zd,
+                           const PRegisterM& pg,
+                           const ZRegister& za,
+                           const ZRegister& zn,
+                           const ZRegister& zm,
+                           FPMacroNaNPropagationOption nan_option) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  FPMulAddHelper(zd,
+                 pg,
+                 za,
+                 zn,
+                 zm,
+                 &Assembler::fnmls,
+                 &Assembler::fnmsb,
+                 nan_option);
+}
+
+void MacroAssembler::Ftmad(const ZRegister& zd,
+                           const ZRegister& zn,
+                           const ZRegister& zm,
+                           int imm3) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  if (zd.Aliases(zm) && !zd.Aliases(zn)) {
+    UseScratchRegisterScope temps(this);
+    ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zm);
+    Mov(scratch, zm);
+    MovprfxHelperScope guard(this, zd, zn);
+    ftmad(zd, zd, scratch, imm3);
+  } else {
+    MovprfxHelperScope guard(this, zd, zn);
+    ftmad(zd, zd, zm, imm3);
+  }
+}
+
+void MacroAssembler::Fcadd(const ZRegister& zd,
+                           const PRegisterM& pg,
+                           const ZRegister& zn,
+                           const ZRegister& zm,
+                           int rot) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  if (zd.Aliases(zm) && !zd.Aliases(zn)) {
+    UseScratchRegisterScope temps(this);
+    ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zd);
+    {
+      MovprfxHelperScope guard(this, scratch, pg, zn);
+      fcadd(scratch, pg, scratch, zm, rot);
+    }
+    Mov(zd, scratch);
+  } else {
+    MovprfxHelperScope guard(this, zd, pg, zn);
+    fcadd(zd, pg, zd, zm, rot);
+  }
+}
+
+void MacroAssembler::Ext(const ZRegister& zd,
+                         const ZRegister& zn,
+                         const ZRegister& zm,
+                         unsigned offset) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  if (zd.Aliases(zm) && !zd.Aliases(zn)) {
+    // zd = ext(zn, zd, offset)
+    UseScratchRegisterScope temps(this);
+    ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zd);
+    {
+      MovprfxHelperScope guard(this, scratch, zn);
+      ext(scratch, scratch, zm, offset);
+    }
+    Mov(zd, scratch);
+  } else {
+    // zd = ext(zn, zm, offset)
+    // zd = ext(zd, zd, offset)
+    MovprfxHelperScope guard(this, zd, zn);
+    ext(zd, zd, zm, offset);
+  }
+}
+
+void MacroAssembler::Splice(const ZRegister& zd,
+                            const PRegister& pg,
+                            const ZRegister& zn,
+                            const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  if (zd.Aliases(zm) && !zd.Aliases(zn)) {
+    UseScratchRegisterScope temps(this);
+    ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zd);
+    {
+      MovprfxHelperScope guard(this, scratch, zn);
+      splice(scratch, pg, scratch, zm);
+    }
+    Mov(zd, scratch);
+  } else {
+    MovprfxHelperScope guard(this, zd, zn);
+    splice(zd, pg, zd, zm);
+  }
+}
+
+void MacroAssembler::Clasta(const ZRegister& zd,
+                            const PRegister& pg,
+                            const ZRegister& zn,
+                            const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  if (zd.Aliases(zm) && !zd.Aliases(zn)) {
+    UseScratchRegisterScope temps(this);
+    ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zd);
+    {
+      MovprfxHelperScope guard(this, scratch, zn);
+      clasta(scratch, pg, scratch, zm);
+    }
+    Mov(zd, scratch);
+  } else {
+    MovprfxHelperScope guard(this, zd, zn);
+    clasta(zd, pg, zd, zm);
+  }
+}
+
+void MacroAssembler::Clastb(const ZRegister& zd,
+                            const PRegister& pg,
+                            const ZRegister& zn,
+                            const ZRegister& zm) {
+  VIXL_ASSERT(allow_macro_instructions_);
+  if (zd.Aliases(zm) && !zd.Aliases(zn)) {
+    UseScratchRegisterScope temps(this);
+    ZRegister scratch = temps.AcquireZ().WithSameLaneSizeAs(zd);
+    {
+      MovprfxHelperScope guard(this, scratch, zn);
+      clastb(scratch, pg, scratch, zm);
+    }
+    Mov(zd, scratch);
+  } else {
+    MovprfxHelperScope guard(this, zd, zn);
+    clastb(zd, pg, zd, zm);
+  }
+}
+
+}  // namespace aarch64
+}  // namespace vixl
diff --git a/src/aarch64/operands-aarch64.cc b/src/aarch64/operands-aarch64.cc
index 2036461..008179e 100644
--- a/src/aarch64/operands-aarch64.cc
+++ b/src/aarch64/operands-aarch64.cc
@@ -30,32 +30,32 @@
 namespace aarch64 {
 
 // CPURegList utilities.
-CPURegister CPURegList::PopLowestIndex() {
-  if (IsEmpty()) {
-    return NoCPUReg;
-  }
-  int index = CountTrailingZeros(list_);
-  VIXL_ASSERT((1 << index) & list_);
+CPURegister CPURegList::PopLowestIndex(RegList mask) {
+  RegList list = list_ & mask;
+  if (list == 0) return NoCPUReg;
+  int index = CountTrailingZeros(list);
+  VIXL_ASSERT(((1 << index) & list) != 0);
   Remove(index);
   return CPURegister(index, size_, type_);
 }
 
 
-CPURegister CPURegList::PopHighestIndex() {
-  VIXL_ASSERT(IsValid());
-  if (IsEmpty()) {
-    return NoCPUReg;
-  }
-  int index = CountLeadingZeros(list_);
+CPURegister CPURegList::PopHighestIndex(RegList mask) {
+  RegList list = list_ & mask;
+  if (list == 0) return NoCPUReg;
+  int index = CountLeadingZeros(list);
   index = kRegListSizeInBits - 1 - index;
-  VIXL_ASSERT((1 << index) & list_);
+  VIXL_ASSERT(((1 << index) & list) != 0);
   Remove(index);
   return CPURegister(index, size_, type_);
 }
 
 
 bool CPURegList::IsValid() const {
-  if ((type_ == CPURegister::kRegister) || (type_ == CPURegister::kVRegister)) {
+  if (type_ == CPURegister::kNoRegister) {
+    // We can't use IsEmpty here because that asserts IsValid().
+    return list_ == 0;
+  } else {
     bool is_valid = true;
     // Try to create a CPURegister for each element in the list.
     for (int i = 0; i < kRegListSizeInBits; i++) {
@@ -64,11 +64,6 @@
       }
     }
     return is_valid;
-  } else if (type_ == CPURegister::kNoRegister) {
-    // We can't use IsEmpty here because that asserts IsValid().
-    return list_ == 0;
-  } else {
-    return false;
   }
 }
 
@@ -149,145 +144,6 @@
 const CPURegList kCallerSaved = CPURegList::GetCallerSaved();
 const CPURegList kCallerSavedV = CPURegList::GetCallerSavedV();
 
-
-// Registers.
-#define WREG(n) w##n,
-const Register Register::wregisters[] = {AARCH64_REGISTER_CODE_LIST(WREG)};
-#undef WREG
-
-#define XREG(n) x##n,
-const Register Register::xregisters[] = {AARCH64_REGISTER_CODE_LIST(XREG)};
-#undef XREG
-
-#define BREG(n) b##n,
-const VRegister VRegister::bregisters[] = {AARCH64_REGISTER_CODE_LIST(BREG)};
-#undef BREG
-
-#define HREG(n) h##n,
-const VRegister VRegister::hregisters[] = {AARCH64_REGISTER_CODE_LIST(HREG)};
-#undef HREG
-
-#define SREG(n) s##n,
-const VRegister VRegister::sregisters[] = {AARCH64_REGISTER_CODE_LIST(SREG)};
-#undef SREG
-
-#define DREG(n) d##n,
-const VRegister VRegister::dregisters[] = {AARCH64_REGISTER_CODE_LIST(DREG)};
-#undef DREG
-
-#define QREG(n) q##n,
-const VRegister VRegister::qregisters[] = {AARCH64_REGISTER_CODE_LIST(QREG)};
-#undef QREG
-
-#define VREG(n) v##n,
-const VRegister VRegister::vregisters[] = {AARCH64_REGISTER_CODE_LIST(VREG)};
-#undef VREG
-
-
-const Register& Register::GetWRegFromCode(unsigned code) {
-  if (code == kSPRegInternalCode) {
-    return wsp;
-  } else {
-    VIXL_ASSERT(code < kNumberOfRegisters);
-    return wregisters[code];
-  }
-}
-
-
-const Register& Register::GetXRegFromCode(unsigned code) {
-  if (code == kSPRegInternalCode) {
-    return sp;
-  } else {
-    VIXL_ASSERT(code < kNumberOfRegisters);
-    return xregisters[code];
-  }
-}
-
-
-const VRegister& VRegister::GetBRegFromCode(unsigned code) {
-  VIXL_ASSERT(code < kNumberOfVRegisters);
-  return bregisters[code];
-}
-
-
-const VRegister& VRegister::GetHRegFromCode(unsigned code) {
-  VIXL_ASSERT(code < kNumberOfVRegisters);
-  return hregisters[code];
-}
-
-
-const VRegister& VRegister::GetSRegFromCode(unsigned code) {
-  VIXL_ASSERT(code < kNumberOfVRegisters);
-  return sregisters[code];
-}
-
-
-const VRegister& VRegister::GetDRegFromCode(unsigned code) {
-  VIXL_ASSERT(code < kNumberOfVRegisters);
-  return dregisters[code];
-}
-
-
-const VRegister& VRegister::GetQRegFromCode(unsigned code) {
-  VIXL_ASSERT(code < kNumberOfVRegisters);
-  return qregisters[code];
-}
-
-
-const VRegister& VRegister::GetVRegFromCode(unsigned code) {
-  VIXL_ASSERT(code < kNumberOfVRegisters);
-  return vregisters[code];
-}
-
-
-const Register& CPURegister::W() const {
-  VIXL_ASSERT(IsValidRegister());
-  return Register::GetWRegFromCode(code_);
-}
-
-
-const Register& CPURegister::X() const {
-  VIXL_ASSERT(IsValidRegister());
-  return Register::GetXRegFromCode(code_);
-}
-
-
-const VRegister& CPURegister::B() const {
-  VIXL_ASSERT(IsValidVRegister());
-  return VRegister::GetBRegFromCode(code_);
-}
-
-
-const VRegister& CPURegister::H() const {
-  VIXL_ASSERT(IsValidVRegister());
-  return VRegister::GetHRegFromCode(code_);
-}
-
-
-const VRegister& CPURegister::S() const {
-  VIXL_ASSERT(IsValidVRegister());
-  return VRegister::GetSRegFromCode(code_);
-}
-
-
-const VRegister& CPURegister::D() const {
-  VIXL_ASSERT(IsValidVRegister());
-  return VRegister::GetDRegFromCode(code_);
-}
-
-
-const VRegister& CPURegister::Q() const {
-  VIXL_ASSERT(IsValidVRegister());
-  return VRegister::GetQRegFromCode(code_);
-}
-
-
-const VRegister& CPURegister::V() const {
-  VIXL_ASSERT(IsValidVRegister());
-  return VRegister::GetVRegFromCode(code_);
-}
-
-
 // Operand.
 Operand::Operand(int64_t immediate)
     : immediate_(immediate),
@@ -296,6 +152,12 @@
       extend_(NO_EXTEND),
       shift_amount_(0) {}
 
+Operand::Operand(IntegerOperand immediate)
+    : immediate_(immediate.AsIntN(64)),
+      reg_(NoReg),
+      shift_(NO_SHIFT),
+      extend_(NO_EXTEND),
+      shift_amount_(0) {}
 
 Operand::Operand(Register reg, Shift shift, unsigned shift_amount)
     : reg_(reg),
@@ -471,6 +333,24 @@
 }
 
 
+bool MemOperand::IsPlainRegister() const {
+  return IsImmediateOffset() && (GetOffset() == 0);
+}
+
+
+bool MemOperand::IsEquivalentToPlainRegister() const {
+  if (regoffset_.Is(NoReg)) {
+    // Immediate offset, pre-index or post-index.
+    return GetOffset() == 0;
+  } else if (GetRegisterOffset().IsZero()) {
+    // Zero register offset, pre-index or post-index.
+    // We can ignore shift and extend options because they all result in zero.
+    return true;
+  }
+  return false;
+}
+
+
 bool MemOperand::IsImmediateOffset() const {
   return (addrmode_ == Offset) && regoffset_.Is(NoReg);
 }
@@ -493,6 +373,62 @@
 }
 
 
+bool SVEMemOperand::IsValid() const {
+#ifdef VIXL_DEBUG
+  {
+    // It should not be possible for an SVEMemOperand to match multiple types.
+    int count = 0;
+    if (IsScalarPlusImmediate()) count++;
+    if (IsScalarPlusScalar()) count++;
+    if (IsScalarPlusVector()) count++;
+    if (IsVectorPlusImmediate()) count++;
+    if (IsVectorPlusVector()) count++;
+    VIXL_ASSERT(count <= 1);
+  }
+#endif
+
+  // We can't have a register _and_ an immediate offset.
+  if ((offset_ != 0) && (!regoffset_.IsNone())) return false;
+
+  if (shift_amount_ != 0) {
+    // Only shift and extend modifiers can take a shift amount.
+    switch (mod_) {
+      case NO_SVE_OFFSET_MODIFIER:
+      case SVE_MUL_VL:
+        return false;
+      case SVE_LSL:
+      case SVE_UXTW:
+      case SVE_SXTW:
+        // Fall through.
+        break;
+    }
+  }
+
+  return IsScalarPlusImmediate() || IsScalarPlusScalar() ||
+         IsScalarPlusVector() || IsVectorPlusImmediate() ||
+         IsVectorPlusVector();
+}
+
+
+bool SVEMemOperand::IsEquivalentToScalar() const {
+  if (IsScalarPlusImmediate()) {
+    return GetImmediateOffset() == 0;
+  }
+  if (IsScalarPlusScalar()) {
+    // We can ignore the shift because it will still result in zero.
+    return GetScalarOffset().IsZero();
+  }
+  // Forms involving vectors are never equivalent to a single scalar.
+  return false;
+}
+
+bool SVEMemOperand::IsPlainRegister() const {
+  if (IsScalarPlusImmediate()) {
+    return GetImmediateOffset() == 0;
+  }
+  return false;
+}
+
 GenericOperand::GenericOperand(const CPURegister& reg)
     : cpu_register_(reg), mem_op_size_(0) {
   if (reg.IsQ()) {
diff --git a/src/aarch64/operands-aarch64.h b/src/aarch64/operands-aarch64.h
index bfc6b70..ad03a9e 100644
--- a/src/aarch64/operands-aarch64.h
+++ b/src/aarch64/operands-aarch64.h
@@ -27,525 +27,15 @@
 #ifndef VIXL_AARCH64_OPERANDS_AARCH64_H_
 #define VIXL_AARCH64_OPERANDS_AARCH64_H_
 
+#include <sstream>
+#include <string>
+
 #include "instructions-aarch64.h"
+#include "registers-aarch64.h"
 
 namespace vixl {
 namespace aarch64 {
 
-typedef uint64_t RegList;
-static const int kRegListSizeInBits = sizeof(RegList) * 8;
-
-
-// Registers.
-
-// Some CPURegister methods can return Register or VRegister types, so we need
-// to declare them in advance.
-class Register;
-class VRegister;
-
-class CPURegister {
- public:
-  enum RegisterType {
-    // The kInvalid value is used to detect uninitialized static instances,
-    // which are always zero-initialized before any constructors are called.
-    kInvalid = 0,
-    kRegister,
-    kVRegister,
-    kNoRegister
-  };
-
-  CPURegister() : code_(0), size_(0), type_(kNoRegister) {
-    VIXL_ASSERT(!IsValid());
-    VIXL_ASSERT(IsNone());
-  }
-
-  CPURegister(unsigned code, unsigned size, RegisterType type)
-      : code_(code), size_(size), type_(type) {
-    VIXL_ASSERT(IsValidOrNone());
-  }
-
-  unsigned GetCode() const {
-    VIXL_ASSERT(IsValid());
-    return code_;
-  }
-  VIXL_DEPRECATED("GetCode", unsigned code() const) { return GetCode(); }
-
-  RegisterType GetType() const {
-    VIXL_ASSERT(IsValidOrNone());
-    return type_;
-  }
-  VIXL_DEPRECATED("GetType", RegisterType type() const) { return GetType(); }
-
-  RegList GetBit() const {
-    VIXL_ASSERT(code_ < (sizeof(RegList) * 8));
-    return IsValid() ? (static_cast<RegList>(1) << code_) : 0;
-  }
-  VIXL_DEPRECATED("GetBit", RegList Bit() const) { return GetBit(); }
-
-  int GetSizeInBytes() const {
-    VIXL_ASSERT(IsValid());
-    VIXL_ASSERT(size_ % 8 == 0);
-    return size_ / 8;
-  }
-  VIXL_DEPRECATED("GetSizeInBytes", int SizeInBytes() const) {
-    return GetSizeInBytes();
-  }
-
-  int GetSizeInBits() const {
-    VIXL_ASSERT(IsValid());
-    return size_;
-  }
-  VIXL_DEPRECATED("GetSizeInBits", unsigned size() const) {
-    return GetSizeInBits();
-  }
-  VIXL_DEPRECATED("GetSizeInBits", int SizeInBits() const) {
-    return GetSizeInBits();
-  }
-
-  bool Is8Bits() const {
-    VIXL_ASSERT(IsValid());
-    return size_ == 8;
-  }
-
-  bool Is16Bits() const {
-    VIXL_ASSERT(IsValid());
-    return size_ == 16;
-  }
-
-  bool Is32Bits() const {
-    VIXL_ASSERT(IsValid());
-    return size_ == 32;
-  }
-
-  bool Is64Bits() const {
-    VIXL_ASSERT(IsValid());
-    return size_ == 64;
-  }
-
-  bool Is128Bits() const {
-    VIXL_ASSERT(IsValid());
-    return size_ == 128;
-  }
-
-  bool IsValid() const {
-    if (IsValidRegister() || IsValidVRegister()) {
-      VIXL_ASSERT(!IsNone());
-      return true;
-    } else {
-      // This assert is hit when the register has not been properly initialized.
-      // One cause for this can be an initialisation order fiasco. See
-      // https://isocpp.org/wiki/faq/ctors#static-init-order for some details.
-      VIXL_ASSERT(IsNone());
-      return false;
-    }
-  }
-
-  bool IsValidRegister() const {
-    return IsRegister() && ((size_ == kWRegSize) || (size_ == kXRegSize)) &&
-           ((code_ < kNumberOfRegisters) || (code_ == kSPRegInternalCode));
-  }
-
-  bool IsValidVRegister() const {
-    return IsVRegister() && ((size_ == kBRegSize) || (size_ == kHRegSize) ||
-                             (size_ == kSRegSize) || (size_ == kDRegSize) ||
-                             (size_ == kQRegSize)) &&
-           (code_ < kNumberOfVRegisters);
-  }
-
-  bool IsValidFPRegister() const {
-    return IsValidVRegister() && IsFPRegister();
-  }
-
-  bool IsNone() const {
-    // kNoRegister types should always have size 0 and code 0.
-    VIXL_ASSERT((type_ != kNoRegister) || (code_ == 0));
-    VIXL_ASSERT((type_ != kNoRegister) || (size_ == 0));
-
-    return type_ == kNoRegister;
-  }
-
-  bool Aliases(const CPURegister& other) const {
-    VIXL_ASSERT(IsValidOrNone() && other.IsValidOrNone());
-    return (code_ == other.code_) && (type_ == other.type_);
-  }
-
-  bool Is(const CPURegister& other) const {
-    VIXL_ASSERT(IsValidOrNone() && other.IsValidOrNone());
-    return Aliases(other) && (size_ == other.size_);
-  }
-
-  bool IsZero() const {
-    VIXL_ASSERT(IsValid());
-    return IsRegister() && (code_ == kZeroRegCode);
-  }
-
-  bool IsSP() const {
-    VIXL_ASSERT(IsValid());
-    return IsRegister() && (code_ == kSPRegInternalCode);
-  }
-
-  bool IsRegister() const { return type_ == kRegister; }
-
-  bool IsVRegister() const { return type_ == kVRegister; }
-
-  // CPURegister does not track lanes like VRegister does, so we have to assume
-  // that we have scalar types here.
-  // TODO: Encode lane information in CPURegister so that we can be consistent.
-  bool IsFPRegister() const { return IsH() || IsS() || IsD(); }
-
-  bool IsW() const { return IsValidRegister() && Is32Bits(); }
-  bool IsX() const { return IsValidRegister() && Is64Bits(); }
-
-  // These assertions ensure that the size and type of the register are as
-  // described. They do not consider the number of lanes that make up a vector.
-  // So, for example, Is8B() implies IsD(), and Is1D() implies IsD, but IsD()
-  // does not imply Is1D() or Is8B().
-  // Check the number of lanes, ie. the format of the vector, using methods such
-  // as Is8B(), Is1D(), etc. in the VRegister class.
-  bool IsV() const { return IsVRegister(); }
-  bool IsB() const { return IsV() && Is8Bits(); }
-  bool IsH() const { return IsV() && Is16Bits(); }
-  bool IsS() const { return IsV() && Is32Bits(); }
-  bool IsD() const { return IsV() && Is64Bits(); }
-  bool IsQ() const { return IsV() && Is128Bits(); }
-
-  // Semantic type for sdot and udot instructions.
-  bool IsS4B() const { return IsS(); }
-  const VRegister& S4B() const { return S(); }
-
-  const Register& W() const;
-  const Register& X() const;
-  const VRegister& V() const;
-  const VRegister& B() const;
-  const VRegister& H() const;
-  const VRegister& S() const;
-  const VRegister& D() const;
-  const VRegister& Q() const;
-
-  bool IsSameType(const CPURegister& other) const {
-    return type_ == other.type_;
-  }
-
-  bool IsSameSizeAndType(const CPURegister& other) const {
-    return (size_ == other.size_) && IsSameType(other);
-  }
-
- protected:
-  unsigned code_;
-  int size_;
-  RegisterType type_;
-
- private:
-  bool IsValidOrNone() const { return IsValid() || IsNone(); }
-};
-
-
-class Register : public CPURegister {
- public:
-  Register() : CPURegister() {}
-  explicit Register(const CPURegister& other)
-      : CPURegister(other.GetCode(), other.GetSizeInBits(), other.GetType()) {
-    VIXL_ASSERT(IsValidRegister());
-  }
-  Register(unsigned code, unsigned size) : CPURegister(code, size, kRegister) {}
-
-  bool IsValid() const {
-    VIXL_ASSERT(IsRegister() || IsNone());
-    return IsValidRegister();
-  }
-
-  static const Register& GetWRegFromCode(unsigned code);
-  VIXL_DEPRECATED("GetWRegFromCode",
-                  static const Register& WRegFromCode(unsigned code)) {
-    return GetWRegFromCode(code);
-  }
-
-  static const Register& GetXRegFromCode(unsigned code);
-  VIXL_DEPRECATED("GetXRegFromCode",
-                  static const Register& XRegFromCode(unsigned code)) {
-    return GetXRegFromCode(code);
-  }
-
- private:
-  static const Register wregisters[];
-  static const Register xregisters[];
-};
-
-
-namespace internal {
-
-template <int size_in_bits>
-class FixedSizeRegister : public Register {
- public:
-  FixedSizeRegister() : Register() {}
-  explicit FixedSizeRegister(unsigned code) : Register(code, size_in_bits) {
-    VIXL_ASSERT(IsValidRegister());
-  }
-  explicit FixedSizeRegister(const Register& other)
-      : Register(other.GetCode(), size_in_bits) {
-    VIXL_ASSERT(other.GetSizeInBits() == size_in_bits);
-    VIXL_ASSERT(IsValidRegister());
-  }
-  explicit FixedSizeRegister(const CPURegister& other)
-      : Register(other.GetCode(), other.GetSizeInBits()) {
-    VIXL_ASSERT(other.GetType() == kRegister);
-    VIXL_ASSERT(other.GetSizeInBits() == size_in_bits);
-    VIXL_ASSERT(IsValidRegister());
-  }
-
-  bool IsValid() const {
-    return Register::IsValid() && (GetSizeInBits() == size_in_bits);
-  }
-};
-
-}  // namespace internal
-
-typedef internal::FixedSizeRegister<kXRegSize> XRegister;
-typedef internal::FixedSizeRegister<kWRegSize> WRegister;
-
-
-class VRegister : public CPURegister {
- public:
-  VRegister() : CPURegister(), lanes_(1) {}
-  explicit VRegister(const CPURegister& other)
-      : CPURegister(other.GetCode(), other.GetSizeInBits(), other.GetType()),
-        lanes_(1) {
-    VIXL_ASSERT(IsValidVRegister());
-    VIXL_ASSERT(IsPowerOf2(lanes_) && (lanes_ <= 16));
-  }
-  VRegister(unsigned code, unsigned size, unsigned lanes = 1)
-      : CPURegister(code, size, kVRegister), lanes_(lanes) {
-    VIXL_ASSERT(IsPowerOf2(lanes_) && (lanes_ <= 16));
-  }
-  VRegister(unsigned code, VectorFormat format)
-      : CPURegister(code, RegisterSizeInBitsFromFormat(format), kVRegister),
-        lanes_(IsVectorFormat(format) ? LaneCountFromFormat(format) : 1) {
-    VIXL_ASSERT(IsPowerOf2(lanes_) && (lanes_ <= 16));
-  }
-
-  bool IsValid() const {
-    VIXL_ASSERT(IsVRegister() || IsNone());
-    return IsValidVRegister();
-  }
-
-  static const VRegister& GetBRegFromCode(unsigned code);
-  VIXL_DEPRECATED("GetBRegFromCode",
-                  static const VRegister& BRegFromCode(unsigned code)) {
-    return GetBRegFromCode(code);
-  }
-
-  static const VRegister& GetHRegFromCode(unsigned code);
-  VIXL_DEPRECATED("GetHRegFromCode",
-                  static const VRegister& HRegFromCode(unsigned code)) {
-    return GetHRegFromCode(code);
-  }
-
-  static const VRegister& GetSRegFromCode(unsigned code);
-  VIXL_DEPRECATED("GetSRegFromCode",
-                  static const VRegister& SRegFromCode(unsigned code)) {
-    return GetSRegFromCode(code);
-  }
-
-  static const VRegister& GetDRegFromCode(unsigned code);
-  VIXL_DEPRECATED("GetDRegFromCode",
-                  static const VRegister& DRegFromCode(unsigned code)) {
-    return GetDRegFromCode(code);
-  }
-
-  static const VRegister& GetQRegFromCode(unsigned code);
-  VIXL_DEPRECATED("GetQRegFromCode",
-                  static const VRegister& QRegFromCode(unsigned code)) {
-    return GetQRegFromCode(code);
-  }
-
-  static const VRegister& GetVRegFromCode(unsigned code);
-  VIXL_DEPRECATED("GetVRegFromCode",
-                  static const VRegister& VRegFromCode(unsigned code)) {
-    return GetVRegFromCode(code);
-  }
-
-  VRegister V8B() const { return VRegister(code_, kDRegSize, 8); }
-  VRegister V16B() const { return VRegister(code_, kQRegSize, 16); }
-  VRegister V2H() const { return VRegister(code_, kSRegSize, 2); }
-  VRegister V4H() const { return VRegister(code_, kDRegSize, 4); }
-  VRegister V8H() const { return VRegister(code_, kQRegSize, 8); }
-  VRegister V2S() const { return VRegister(code_, kDRegSize, 2); }
-  VRegister V4S() const { return VRegister(code_, kQRegSize, 4); }
-  VRegister V2D() const { return VRegister(code_, kQRegSize, 2); }
-  VRegister V1D() const { return VRegister(code_, kDRegSize, 1); }
-
-  bool Is8B() const { return (Is64Bits() && (lanes_ == 8)); }
-  bool Is16B() const { return (Is128Bits() && (lanes_ == 16)); }
-  bool Is2H() const { return (Is32Bits() && (lanes_ == 2)); }
-  bool Is4H() const { return (Is64Bits() && (lanes_ == 4)); }
-  bool Is8H() const { return (Is128Bits() && (lanes_ == 8)); }
-  bool Is1S() const { return (Is32Bits() && (lanes_ == 1)); }
-  bool Is2S() const { return (Is64Bits() && (lanes_ == 2)); }
-  bool Is4S() const { return (Is128Bits() && (lanes_ == 4)); }
-  bool Is1D() const { return (Is64Bits() && (lanes_ == 1)); }
-  bool Is2D() const { return (Is128Bits() && (lanes_ == 2)); }
-
-  // For consistency, we assert the number of lanes of these scalar registers,
-  // even though there are no vectors of equivalent total size with which they
-  // could alias.
-  bool Is1B() const {
-    VIXL_ASSERT(!(Is8Bits() && IsVector()));
-    return Is8Bits();
-  }
-  bool Is1H() const {
-    VIXL_ASSERT(!(Is16Bits() && IsVector()));
-    return Is16Bits();
-  }
-
-  // Semantic type for sdot and udot instructions.
-  bool Is1S4B() const { return Is1S(); }
-
-
-  bool IsLaneSizeB() const { return GetLaneSizeInBits() == kBRegSize; }
-  bool IsLaneSizeH() const { return GetLaneSizeInBits() == kHRegSize; }
-  bool IsLaneSizeS() const { return GetLaneSizeInBits() == kSRegSize; }
-  bool IsLaneSizeD() const { return GetLaneSizeInBits() == kDRegSize; }
-
-  int GetLanes() const { return lanes_; }
-  VIXL_DEPRECATED("GetLanes", int lanes() const) { return GetLanes(); }
-
-  bool IsFPRegister() const { return Is1H() || Is1S() || Is1D(); }
-  bool IsValidFPRegister() const {
-    return IsValidVRegister() && IsFPRegister();
-  }
-
-  bool IsScalar() const { return lanes_ == 1; }
-
-  bool IsVector() const { return lanes_ > 1; }
-
-  bool IsSameFormat(const VRegister& other) const {
-    return (size_ == other.size_) && (lanes_ == other.lanes_);
-  }
-
-  unsigned GetLaneSizeInBytes() const { return GetSizeInBytes() / lanes_; }
-  VIXL_DEPRECATED("GetLaneSizeInBytes", unsigned LaneSizeInBytes() const) {
-    return GetLaneSizeInBytes();
-  }
-
-  unsigned GetLaneSizeInBits() const { return GetLaneSizeInBytes() * 8; }
-  VIXL_DEPRECATED("GetLaneSizeInBits", unsigned LaneSizeInBits() const) {
-    return GetLaneSizeInBits();
-  }
-
- private:
-  static const VRegister bregisters[];
-  static const VRegister hregisters[];
-  static const VRegister sregisters[];
-  static const VRegister dregisters[];
-  static const VRegister qregisters[];
-  static const VRegister vregisters[];
-  int lanes_;
-};
-
-
-// No*Reg is used to indicate an unused argument, or an error case. Note that
-// these all compare equal (using the Is() method). The Register and VRegister
-// variants are provided for convenience.
-const Register NoReg;
-const VRegister NoVReg;
-const CPURegister NoCPUReg;
-
-
-#define DEFINE_REGISTERS(N) \
-  const WRegister w##N(N);  \
-  const XRegister x##N(N);
-AARCH64_REGISTER_CODE_LIST(DEFINE_REGISTERS)
-#undef DEFINE_REGISTERS
-const WRegister wsp(kSPRegInternalCode);
-const XRegister sp(kSPRegInternalCode);
-
-
-#define DEFINE_VREGISTERS(N)          \
-  const VRegister b##N(N, kBRegSize); \
-  const VRegister h##N(N, kHRegSize); \
-  const VRegister s##N(N, kSRegSize); \
-  const VRegister d##N(N, kDRegSize); \
-  const VRegister q##N(N, kQRegSize); \
-  const VRegister v##N(N, kQRegSize);
-AARCH64_REGISTER_CODE_LIST(DEFINE_VREGISTERS)
-#undef DEFINE_VREGISTERS
-
-
-// Register aliases.
-const XRegister ip0 = x16;
-const XRegister ip1 = x17;
-const XRegister lr = x30;
-const XRegister xzr = x31;
-const WRegister wzr = w31;
-
-
-// AreAliased returns true if any of the named registers overlap. Arguments
-// set to NoReg are ignored. The system stack pointer may be specified.
-bool AreAliased(const CPURegister& reg1,
-                const CPURegister& reg2,
-                const CPURegister& reg3 = NoReg,
-                const CPURegister& reg4 = NoReg,
-                const CPURegister& reg5 = NoReg,
-                const CPURegister& reg6 = NoReg,
-                const CPURegister& reg7 = NoReg,
-                const CPURegister& reg8 = NoReg);
-
-
-// AreSameSizeAndType returns true if all of the specified registers have the
-// same size, and are of the same type. The system stack pointer may be
-// specified. Arguments set to NoReg are ignored, as are any subsequent
-// arguments. At least one argument (reg1) must be valid (not NoCPUReg).
-bool AreSameSizeAndType(const CPURegister& reg1,
-                        const CPURegister& reg2,
-                        const CPURegister& reg3 = NoCPUReg,
-                        const CPURegister& reg4 = NoCPUReg,
-                        const CPURegister& reg5 = NoCPUReg,
-                        const CPURegister& reg6 = NoCPUReg,
-                        const CPURegister& reg7 = NoCPUReg,
-                        const CPURegister& reg8 = NoCPUReg);
-
-// AreEven returns true if all of the specified registers have even register
-// indices. Arguments set to NoReg are ignored, as are any subsequent
-// arguments. At least one argument (reg1) must be valid (not NoCPUReg).
-bool AreEven(const CPURegister& reg1,
-             const CPURegister& reg2,
-             const CPURegister& reg3 = NoReg,
-             const CPURegister& reg4 = NoReg,
-             const CPURegister& reg5 = NoReg,
-             const CPURegister& reg6 = NoReg,
-             const CPURegister& reg7 = NoReg,
-             const CPURegister& reg8 = NoReg);
-
-
-// AreConsecutive returns true if all of the specified registers are
-// consecutive in the register file. Arguments set to NoReg are ignored, as are
-// any subsequent arguments. At least one argument (reg1) must be valid
-// (not NoCPUReg).
-bool AreConsecutive(const CPURegister& reg1,
-                    const CPURegister& reg2,
-                    const CPURegister& reg3 = NoCPUReg,
-                    const CPURegister& reg4 = NoCPUReg);
-
-
-// AreSameFormat returns true if all of the specified VRegisters have the same
-// vector format. Arguments set to NoReg are ignored, as are any subsequent
-// arguments. At least one argument (reg1) must be valid (not NoVReg).
-bool AreSameFormat(const VRegister& reg1,
-                   const VRegister& reg2,
-                   const VRegister& reg3 = NoVReg,
-                   const VRegister& reg4 = NoVReg);
-
-
-// AreConsecutive returns true if all of the specified VRegisters are
-// consecutive in the register file. Arguments set to NoReg are ignored, as are
-// any subsequent arguments. At least one argument (reg1) must be valid
-// (not NoVReg).
-bool AreConsecutive(const VRegister& reg1,
-                    const VRegister& reg2,
-                    const VRegister& reg3 = NoVReg,
-                    const VRegister& reg4 = NoVReg);
-
-
 // Lists of registers.
 class CPURegList {
  public:
@@ -580,6 +70,28 @@
     VIXL_ASSERT(IsValid());
   }
 
+  // Construct an empty CPURegList with the specified size and type. If `size`
+  // is CPURegister::kUnknownSize and the register type requires a size, a valid
+  // but unspecified default will be picked.
+  static CPURegList Empty(CPURegister::RegisterType type,
+                          unsigned size = CPURegister::kUnknownSize) {
+    return CPURegList(type, GetDefaultSizeFor(type, size), 0);
+  }
+
+  // Construct a CPURegList with all possible registers with the specified size
+  // and type. If `size` is CPURegister::kUnknownSize and the register type
+  // requires a size, a valid but unspecified default will be picked.
+  static CPURegList All(CPURegister::RegisterType type,
+                        unsigned size = CPURegister::kUnknownSize) {
+    unsigned number_of_registers = (CPURegister::GetMaxCodeFor(type) + 1);
+    RegList list = (static_cast<RegList>(1) << number_of_registers) - 1;
+    if (type == CPURegister::kRegister) {
+      // GetMaxCodeFor(kRegister) ignores SP, so explicitly include it.
+      list |= (static_cast<RegList>(1) << kSPRegInternalCode);
+    }
+    return CPURegList(type, GetDefaultSizeFor(type, size), list);
+  }
+
   CPURegister::RegisterType GetType() const {
     VIXL_ASSERT(IsValid());
     return type_;
@@ -588,6 +100,10 @@
     return GetType();
   }
 
+  CPURegister::RegisterBank GetBank() const {
+    return CPURegister::GetBankFor(GetType());
+  }
+
   // Combine another CPURegList into this one. Registers that already exist in
   // this list are left unchanged. The type and size of the registers in the
   // 'other' list must match those in this list.
@@ -684,8 +200,11 @@
   // preparing registers for an AAPCS64 function call, for example.
   void RemoveCalleeSaved();
 
-  CPURegister PopLowestIndex();
-  CPURegister PopHighestIndex();
+  // Find the register in this list that appears in `mask` with the lowest or
+  // highest code, remove it from the list and return it as a CPURegister. If
+  // the list is empty, leave it unchanged and return NoCPUReg.
+  CPURegister PopLowestIndex(RegList mask = ~static_cast<RegList>(0));
+  CPURegister PopHighestIndex(RegList mask = ~static_cast<RegList>(0));
 
   // AAPCS64 callee-saved registers.
   static CPURegList GetCalleeSaved(unsigned size = kXRegSize);
@@ -704,7 +223,7 @@
 
   bool IncludesAliasOf(const CPURegister& other) const {
     VIXL_ASSERT(IsValid());
-    return (type_ == other.GetType()) && IncludesAliasOf(other.GetCode());
+    return (GetBank() == other.GetBank()) && IncludesAliasOf(other.GetCode());
   }
 
   bool IncludesAliasOf(int code) const {
@@ -744,6 +263,21 @@
   }
 
  private:
+  // If `size` is CPURegister::kUnknownSize and the type requires a known size,
+  // then return an arbitrary-but-valid size.
+  //
+  // Otherwise, the size is checked for validity and returned unchanged.
+  static unsigned GetDefaultSizeFor(CPURegister::RegisterType type,
+                                    unsigned size) {
+    if (size == CPURegister::kUnknownSize) {
+      if (type == CPURegister::kRegister) size = kXRegSize;
+      if (type == CPURegister::kVRegister) size = kQRegSize;
+      // All other types require kUnknownSize.
+    }
+    VIXL_ASSERT(CPURegister(0, size, type).IsValid());
+    return size;
+  }
+
   RegList list_;
   int size_;
   CPURegister::RegisterType type_;
@@ -761,6 +295,7 @@
 extern const CPURegList kCallerSaved;
 extern const CPURegList kCallerSavedV;
 
+class IntegerOperand;
 
 // Operand.
 class Operand {
@@ -769,7 +304,9 @@
   // where <immediate> is int64_t.
   // This is allowed to be an implicit constructor because Operand is
   // a wrapper class that doesn't normally perform any type conversion.
-  Operand(int64_t immediate = 0);  // NOLINT(runtime/explicit)
+  Operand(int64_t immediate);  // NOLINT(runtime/explicit)
+
+  Operand(IntegerOperand immediate);  // NOLINT(runtime/explicit)
 
   // rm, {<shift> #<shift_amount>}
   // where <shift> is one of {LSL, LSR, ASR, ROR}.
@@ -883,6 +420,16 @@
     return shift_amount_;
   }
 
+  // True for MemOperands which represent something like [x0].
+  // Currently, this will also return true for [x0, #0], because MemOperand has
+  // no way to distinguish the two.
+  bool IsPlainRegister() const;
+
+  // True for MemOperands which represent something like [x0], or for compound
+  // MemOperands which are functionally equivalent, such as [x0, #0], [x0, xzr]
+  // or [x0, wzr, UXTW #3].
+  bool IsEquivalentToPlainRegister() const;
+
   // True for immediate-offset (but not indexed) MemOperands.
   bool IsImmediateOffset() const;
   // True for register-offset (but not indexed) MemOperands.
@@ -918,6 +465,448 @@
   unsigned shift_amount_;
 };
 
+// SVE supports memory operands which don't make sense to the core ISA, such as
+// scatter-gather forms, in which either the base or offset registers are
+// vectors. This class exists to avoid complicating core-ISA code with
+// SVE-specific behaviour.
+//
+// Note that SVE does not support any pre- or post-index modes.
+class SVEMemOperand {
+ public:
+  // "vector-plus-immediate", like [z0.s, #21]
+  explicit SVEMemOperand(ZRegister base, uint64_t offset = 0)
+      : base_(base),
+        regoffset_(NoReg),
+        offset_(RawbitsToInt64(offset)),
+        mod_(NO_SVE_OFFSET_MODIFIER),
+        shift_amount_(0) {
+    VIXL_ASSERT(IsVectorPlusImmediate());
+    VIXL_ASSERT(IsValid());
+  }
+
+  // "scalar-plus-immediate", like [x0], [x0, #42] or [x0, #42, MUL_VL]
+  // The only supported modifiers are NO_SVE_OFFSET_MODIFIER or SVE_MUL_VL.
+  //
+  // Note that VIXL cannot currently distinguish between `SVEMemOperand(x0)` and
+  // `SVEMemOperand(x0, 0)`. This is only significant in scalar-plus-scalar
+  // instructions where xm defaults to xzr. However, users should not rely on
+  // `SVEMemOperand(x0, 0)` being accepted in such cases.
+  explicit SVEMemOperand(Register base,
+                         uint64_t offset = 0,
+                         SVEOffsetModifier mod = NO_SVE_OFFSET_MODIFIER)
+      : base_(base),
+        regoffset_(NoReg),
+        offset_(RawbitsToInt64(offset)),
+        mod_(mod),
+        shift_amount_(0) {
+    VIXL_ASSERT(IsScalarPlusImmediate());
+    VIXL_ASSERT(IsValid());
+  }
+
+  // "scalar-plus-scalar", like [x0, x1]
+  // "scalar-plus-vector", like [x0, z1.d]
+  SVEMemOperand(Register base, CPURegister offset)
+      : base_(base),
+        regoffset_(offset),
+        offset_(0),
+        mod_(NO_SVE_OFFSET_MODIFIER),
+        shift_amount_(0) {
+    VIXL_ASSERT(IsScalarPlusScalar() || IsScalarPlusVector());
+    if (offset.IsZero()) VIXL_ASSERT(IsEquivalentToScalar());
+    VIXL_ASSERT(IsValid());
+  }
+
+  // "scalar-plus-vector", like [x0, z1.d, UXTW]
+  // The type of `mod` can be any `SVEOffsetModifier` (other than LSL), or a
+  // corresponding `Extend` value.
+  template <typename M>
+  SVEMemOperand(Register base, ZRegister offset, M mod)
+      : base_(base),
+        regoffset_(offset),
+        offset_(0),
+        mod_(GetSVEOffsetModifierFor(mod)),
+        shift_amount_(0) {
+    VIXL_ASSERT(mod_ != SVE_LSL);  // LSL requires an explicit shift amount.
+    VIXL_ASSERT(IsScalarPlusVector());
+    VIXL_ASSERT(IsValid());
+  }
+
+  // "scalar-plus-scalar", like [x0, x1, LSL #1]
+  // "scalar-plus-vector", like [x0, z1.d, LSL #2]
+  // The type of `mod` can be any `SVEOffsetModifier`, or a corresponding
+  // `Shift` or `Extend` value.
+  template <typename M>
+  SVEMemOperand(Register base, CPURegister offset, M mod, unsigned shift_amount)
+      : base_(base),
+        regoffset_(offset),
+        offset_(0),
+        mod_(GetSVEOffsetModifierFor(mod)),
+        shift_amount_(shift_amount) {
+    VIXL_ASSERT(IsValid());
+  }
+
+  // "vector-plus-vector", like [z0.d, z1.d, UXTW]
+  template <typename M = SVEOffsetModifier>
+  SVEMemOperand(ZRegister base,
+                ZRegister offset,
+                M mod = NO_SVE_OFFSET_MODIFIER,
+                unsigned shift_amount = 0)
+      : base_(base),
+        regoffset_(offset),
+        offset_(0),
+        mod_(GetSVEOffsetModifierFor(mod)),
+        shift_amount_(shift_amount) {
+    VIXL_ASSERT(IsValid());
+    VIXL_ASSERT(IsVectorPlusVector());
+  }
+
+  // True for SVEMemOperands which represent something like [x0].
+  // This will also return true for [x0, #0], because there is no way
+  // to distinguish the two.
+  bool IsPlainScalar() const {
+    return IsScalarPlusImmediate() && (offset_ == 0);
+  }
+
+  // True for SVEMemOperands which represent something like [x0], or for
+  // compound SVEMemOperands which are functionally equivalent, such as
+  // [x0, #0], [x0, xzr] or [x0, wzr, UXTW #3].
+  bool IsEquivalentToScalar() const;
+
+  // True for SVEMemOperands like [x0], [x0, #0], false for [x0, xzr] and
+  // similar.
+  bool IsPlainRegister() const;
+
+  bool IsScalarPlusImmediate() const {
+    return base_.IsX() && regoffset_.IsNone() &&
+           ((mod_ == NO_SVE_OFFSET_MODIFIER) || IsMulVl());
+  }
+
+  bool IsScalarPlusScalar() const {
+    // SVE offers no extend modes for scalar-plus-scalar, so both registers must
+    // be X registers.
+    return base_.IsX() && regoffset_.IsX() &&
+           ((mod_ == NO_SVE_OFFSET_MODIFIER) || (mod_ == SVE_LSL));
+  }
+
+  bool IsScalarPlusVector() const {
+    // The modifier can be LSL or an an extend mode (UXTW or SXTW) here. Unlike
+    // in the core ISA, these extend modes do not imply an S-sized lane, so the
+    // modifier is independent from the lane size. The architecture describes
+    // [US]XTW with a D-sized lane as an "unpacked" offset.
+    return base_.IsX() && regoffset_.IsZRegister() &&
+           (regoffset_.IsLaneSizeS() || regoffset_.IsLaneSizeD()) && !IsMulVl();
+  }
+
+  bool IsVectorPlusImmediate() const {
+    return base_.IsZRegister() &&
+           (base_.IsLaneSizeS() || base_.IsLaneSizeD()) &&
+           regoffset_.IsNone() && (mod_ == NO_SVE_OFFSET_MODIFIER);
+  }
+
+  bool IsVectorPlusVector() const {
+    return base_.IsZRegister() && regoffset_.IsZRegister() && (offset_ == 0) &&
+           AreSameFormat(base_, regoffset_) &&
+           (base_.IsLaneSizeS() || base_.IsLaneSizeD());
+  }
+
+  bool IsContiguous() const { return !IsScatterGather(); }
+  bool IsScatterGather() const {
+    return base_.IsZRegister() || regoffset_.IsZRegister();
+  }
+
+  // TODO: If necessary, add helpers like `HasScalarBase()`.
+
+  Register GetScalarBase() const {
+    VIXL_ASSERT(base_.IsX());
+    return Register(base_);
+  }
+
+  ZRegister GetVectorBase() const {
+    VIXL_ASSERT(base_.IsZRegister());
+    VIXL_ASSERT(base_.HasLaneSize());
+    return ZRegister(base_);
+  }
+
+  Register GetScalarOffset() const {
+    VIXL_ASSERT(regoffset_.IsRegister());
+    return Register(regoffset_);
+  }
+
+  ZRegister GetVectorOffset() const {
+    VIXL_ASSERT(regoffset_.IsZRegister());
+    VIXL_ASSERT(regoffset_.HasLaneSize());
+    return ZRegister(regoffset_);
+  }
+
+  int64_t GetImmediateOffset() const {
+    VIXL_ASSERT(regoffset_.IsNone());
+    return offset_;
+  }
+
+  SVEOffsetModifier GetOffsetModifier() const { return mod_; }
+  unsigned GetShiftAmount() const { return shift_amount_; }
+
+  bool IsEquivalentToLSL(unsigned amount) const {
+    if (shift_amount_ != amount) return false;
+    if (amount == 0) {
+      // No-shift is equivalent to "LSL #0".
+      return ((mod_ == SVE_LSL) || (mod_ == NO_SVE_OFFSET_MODIFIER));
+    }
+    return mod_ == SVE_LSL;
+  }
+
+  bool IsMulVl() const { return mod_ == SVE_MUL_VL; }
+
+  bool IsValid() const;
+
+ private:
+  // Allow standard `Shift` and `Extend` arguments to be used.
+  SVEOffsetModifier GetSVEOffsetModifierFor(Shift shift) {
+    if (shift == LSL) return SVE_LSL;
+    if (shift == NO_SHIFT) return NO_SVE_OFFSET_MODIFIER;
+    // SVE does not accept any other shift.
+    VIXL_UNIMPLEMENTED();
+    return NO_SVE_OFFSET_MODIFIER;
+  }
+
+  SVEOffsetModifier GetSVEOffsetModifierFor(Extend extend = NO_EXTEND) {
+    if (extend == UXTW) return SVE_UXTW;
+    if (extend == SXTW) return SVE_SXTW;
+    if (extend == NO_EXTEND) return NO_SVE_OFFSET_MODIFIER;
+    // SVE does not accept any other extend mode.
+    VIXL_UNIMPLEMENTED();
+    return NO_SVE_OFFSET_MODIFIER;
+  }
+
+  SVEOffsetModifier GetSVEOffsetModifierFor(SVEOffsetModifier mod) {
+    return mod;
+  }
+
+  CPURegister base_;
+  CPURegister regoffset_;
+  int64_t offset_;
+  SVEOffsetModifier mod_;
+  unsigned shift_amount_;
+};
+
+// Represent a signed or unsigned integer operand.
+//
+// This is designed to make instructions which naturally accept a _signed_
+// immediate easier to implement and use, when we also want users to be able to
+// specify raw-bits values (such as with hexadecimal constants). The advantage
+// of this class over a simple uint64_t (with implicit C++ sign-extension) is
+// that this class can strictly check the range of allowed values. With a simple
+// uint64_t, it is impossible to distinguish -1 from UINT64_MAX.
+//
+// For example, these instructions are equivalent:
+//
+//     __ Insr(z0.VnB(), -1);
+//     __ Insr(z0.VnB(), 0xff);
+//
+// ... as are these:
+//
+//     __ Insr(z0.VnD(), -1);
+//     __ Insr(z0.VnD(), 0xffffffffffffffff);
+//
+// ... but this is invalid:
+//
+//     __ Insr(z0.VnB(), 0xffffffffffffffff);  // Too big for B-sized lanes.
+class IntegerOperand {
+ public:
+#define VIXL_INT_TYPES(V) \
+  V(char) V(short) V(int) V(long) V(long long)  // NOLINT(runtime/int)
+#define VIXL_DECL_INT_OVERLOADS(T)                                        \
+  /* These are allowed to be implicit constructors because this is a */   \
+  /* wrapper class that doesn't normally perform any type conversion. */  \
+  IntegerOperand(signed T immediate) /* NOLINT(runtime/explicit) */       \
+      : raw_bits_(immediate),        /* Allow implicit sign-extension. */ \
+        is_negative_(immediate < 0) {}                                    \
+  IntegerOperand(unsigned T immediate) /* NOLINT(runtime/explicit) */     \
+      : raw_bits_(immediate), is_negative_(false) {}
+  VIXL_INT_TYPES(VIXL_DECL_INT_OVERLOADS)
+#undef VIXL_DECL_INT_OVERLOADS
+#undef VIXL_INT_TYPES
+
+  // TODO: `Operand` can currently only hold an int64_t, so some large, unsigned
+  // values will be misrepresented here.
+  explicit IntegerOperand(const Operand& operand)
+      : raw_bits_(operand.GetEquivalentImmediate()),
+        is_negative_(operand.GetEquivalentImmediate() < 0) {}
+
+  bool IsIntN(unsigned n) const {
+    return is_negative_ ? vixl::IsIntN(n, RawbitsToInt64(raw_bits_))
+                        : vixl::IsIntN(n, raw_bits_);
+  }
+  bool IsUintN(unsigned n) const {
+    return !is_negative_ && vixl::IsUintN(n, raw_bits_);
+  }
+
+  bool IsUint8() const { return IsUintN(8); }
+  bool IsUint16() const { return IsUintN(16); }
+  bool IsUint32() const { return IsUintN(32); }
+  bool IsUint64() const { return IsUintN(64); }
+
+  bool IsInt8() const { return IsIntN(8); }
+  bool IsInt16() const { return IsIntN(16); }
+  bool IsInt32() const { return IsIntN(32); }
+  bool IsInt64() const { return IsIntN(64); }
+
+  bool FitsInBits(unsigned n) const {
+    return is_negative_ ? IsIntN(n) : IsUintN(n);
+  }
+  bool FitsInLane(const CPURegister& zd) const {
+    return FitsInBits(zd.GetLaneSizeInBits());
+  }
+  bool FitsInSignedLane(const CPURegister& zd) const {
+    return IsIntN(zd.GetLaneSizeInBits());
+  }
+  bool FitsInUnsignedLane(const CPURegister& zd) const {
+    return IsUintN(zd.GetLaneSizeInBits());
+  }
+
+  // Cast a value in the range [INT<n>_MIN, UINT<n>_MAX] to an unsigned integer
+  // in the range [0, UINT<n>_MAX] (using two's complement mapping).
+  uint64_t AsUintN(unsigned n) const {
+    VIXL_ASSERT(FitsInBits(n));
+    return raw_bits_ & GetUintMask(n);
+  }
+
+  uint8_t AsUint8() const { return static_cast<uint8_t>(AsUintN(8)); }
+  uint16_t AsUint16() const { return static_cast<uint16_t>(AsUintN(16)); }
+  uint32_t AsUint32() const { return static_cast<uint32_t>(AsUintN(32)); }
+  uint64_t AsUint64() const { return AsUintN(64); }
+
+  // Cast a value in the range [INT<n>_MIN, UINT<n>_MAX] to a signed integer in
+  // the range [INT<n>_MIN, INT<n>_MAX] (using two's complement mapping).
+  int64_t AsIntN(unsigned n) const {
+    VIXL_ASSERT(FitsInBits(n));
+    return ExtractSignedBitfield64(n - 1, 0, raw_bits_);
+  }
+
+  int8_t AsInt8() const { return static_cast<int8_t>(AsIntN(8)); }
+  int16_t AsInt16() const { return static_cast<int16_t>(AsIntN(16)); }
+  int32_t AsInt32() const { return static_cast<int32_t>(AsIntN(32)); }
+  int64_t AsInt64() const { return AsIntN(64); }
+
+  // Several instructions encode a signed int<N>_t, which is then (optionally)
+  // left-shifted and sign-extended to a Z register lane with a size which may
+  // be larger than N. This helper tries to find an int<N>_t such that the
+  // IntegerOperand's arithmetic value is reproduced in each lane.
+  //
+  // This is the mechanism that allows `Insr(z0.VnB(), 0xff)` to be treated as
+  // `Insr(z0.VnB(), -1)`.
+  template <unsigned N, unsigned kShift, typename T>
+  bool TryEncodeAsShiftedIntNForLane(const CPURegister& zd, T* imm) const {
+    VIXL_STATIC_ASSERT(std::numeric_limits<T>::digits > N);
+    VIXL_ASSERT(FitsInLane(zd));
+    if ((raw_bits_ & GetUintMask(kShift)) != 0) return false;
+
+    // Reverse the specified left-shift.
+    IntegerOperand unshifted(*this);
+    unshifted.ArithmeticShiftRight(kShift);
+
+    if (unshifted.IsIntN(N)) {
+      // This is trivial, since sign-extension produces the same arithmetic
+      // value irrespective of the destination size.
+      *imm = static_cast<T>(unshifted.AsIntN(N));
+      return true;
+    }
+
+    // Otherwise, we might be able to use the sign-extension to produce the
+    // desired bit pattern. We can only do this for values in the range
+    // [INT<N>_MAX + 1, UINT<N>_MAX], where the highest set bit is the sign bit.
+    //
+    // The lane size has to be adjusted to compensate for `kShift`, since the
+    // high bits will be dropped when the encoded value is left-shifted.
+    if (unshifted.IsUintN(zd.GetLaneSizeInBits() - kShift)) {
+      int64_t encoded = unshifted.AsIntN(zd.GetLaneSizeInBits() - kShift);
+      if (vixl::IsIntN(N, encoded)) {
+        *imm = static_cast<T>(encoded);
+        return true;
+      }
+    }
+    return false;
+  }
+
+  // As above, but `kShift` is written to the `*shift` parameter on success, so
+  // that it is easy to chain calls like this:
+  //
+  //     if (imm.TryEncodeAsShiftedIntNForLane<8, 0>(zd, &imm8, &shift) ||
+  //         imm.TryEncodeAsShiftedIntNForLane<8, 8>(zd, &imm8, &shift)) {
+  //       insn(zd, imm8, shift)
+  //     }
+  template <unsigned N, unsigned kShift, typename T, typename S>
+  bool TryEncodeAsShiftedIntNForLane(const CPURegister& zd,
+                                     T* imm,
+                                     S* shift) const {
+    if (TryEncodeAsShiftedIntNForLane<N, kShift>(zd, imm)) {
+      *shift = kShift;
+      return true;
+    }
+    return false;
+  }
+
+  // As above, but assume that `kShift` is 0.
+  template <unsigned N, typename T>
+  bool TryEncodeAsIntNForLane(const CPURegister& zd, T* imm) const {
+    return TryEncodeAsShiftedIntNForLane<N, 0>(zd, imm);
+  }
+
+  // As above, but for unsigned fields. This is usuaully a simple operation, but
+  // is provided for symmetry.
+  template <unsigned N, unsigned kShift, typename T>
+  bool TryEncodeAsShiftedUintNForLane(const CPURegister& zd, T* imm) const {
+    VIXL_STATIC_ASSERT(std::numeric_limits<T>::digits > N);
+    VIXL_ASSERT(FitsInLane(zd));
+
+    // TODO: Should we convert -1 to 0xff here?
+    if (is_negative_) return false;
+    USE(zd);
+
+    if ((raw_bits_ & GetUintMask(kShift)) != 0) return false;
+
+    if (vixl::IsUintN(N, raw_bits_ >> kShift)) {
+      *imm = static_cast<T>(raw_bits_ >> kShift);
+      return true;
+    }
+    return false;
+  }
+
+  template <unsigned N, unsigned kShift, typename T, typename S>
+  bool TryEncodeAsShiftedUintNForLane(const CPURegister& zd,
+                                      T* imm,
+                                      S* shift) const {
+    if (TryEncodeAsShiftedUintNForLane<N, kShift>(zd, imm)) {
+      *shift = kShift;
+      return true;
+    }
+    return false;
+  }
+
+  bool IsZero() const { return raw_bits_ == 0; }
+  bool IsNegative() const { return is_negative_; }
+  bool IsPositiveOrZero() const { return !is_negative_; }
+
+  uint64_t GetMagnitude() const {
+    return is_negative_ ? -raw_bits_ : raw_bits_;
+  }
+
+ private:
+  // Shift the arithmetic value right, with sign extension if is_negative_.
+  void ArithmeticShiftRight(int shift) {
+    VIXL_ASSERT((shift >= 0) && (shift < 64));
+    if (shift == 0) return;
+    if (is_negative_) {
+      raw_bits_ = ExtractSignedBitfield64(63, shift, raw_bits_);
+    } else {
+      raw_bits_ >>= shift;
+    }
+  }
+
+  uint64_t raw_bits_;
+  bool is_negative_;
+};
+
 // This an abstraction that can represent a register or memory location. The
 // `MacroAssembler` provides helpers to move data between generic operands.
 class GenericOperand {
diff --git a/src/aarch64/registers-aarch64.cc b/src/aarch64/registers-aarch64.cc
new file mode 100644
index 0000000..735f43c
--- /dev/null
+++ b/src/aarch64/registers-aarch64.cc
@@ -0,0 +1,321 @@
+// Copyright 2019, VIXL authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//   * Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//   * Neither the name of ARM Limited nor the names of its contributors may be
+//     used to endorse or promote products derived from this software without
+//     specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+#include <string>
+
+#include "registers-aarch64.h"
+
+namespace vixl {
+namespace aarch64 {
+
+std::string CPURegister::GetArchitecturalName() const {
+  std::ostringstream name;
+  if (IsZRegister()) {
+    name << 'z' << GetCode();
+    if (HasLaneSize()) {
+      name << '.' << GetLaneSizeSymbol();
+    }
+  } else if (IsPRegister()) {
+    name << 'p' << GetCode();
+    if (HasLaneSize()) {
+      name << '.' << GetLaneSizeSymbol();
+    }
+    switch (qualifiers_) {
+      case kNoQualifiers:
+        break;
+      case kMerging:
+        name << "/m";
+        break;
+      case kZeroing:
+        name << "/z";
+        break;
+    }
+  } else {
+    VIXL_UNIMPLEMENTED();
+  }
+  return name.str();
+}
+
+unsigned CPURegister::GetMaxCodeFor(CPURegister::RegisterBank bank) {
+  switch (bank) {
+    case kNoRegisterBank:
+      return 0;
+    case kRRegisterBank:
+      return Register::GetMaxCode();
+    case kVRegisterBank:
+#ifdef VIXL_HAS_CONSTEXPR
+      VIXL_STATIC_ASSERT(VRegister::GetMaxCode() == ZRegister::GetMaxCode());
+#else
+      VIXL_ASSERT(VRegister::GetMaxCode() == ZRegister::GetMaxCode());
+#endif
+      return VRegister::GetMaxCode();
+    case kPRegisterBank:
+      return PRegister::GetMaxCode();
+  }
+  VIXL_UNREACHABLE();
+  return 0;
+}
+
+bool CPURegister::IsValidRegister() const {
+  return ((code_ < kNumberOfRegisters) || (code_ == kSPRegInternalCode)) &&
+         (bank_ == kRRegisterBank) &&
+         ((size_ == kEncodedWRegSize) || (size_ == kEncodedXRegSize)) &&
+         (qualifiers_ == kNoQualifiers) && (lane_size_ == size_);
+}
+
+bool CPURegister::IsValidVRegister() const {
+  VIXL_STATIC_ASSERT(kEncodedBRegSize < kEncodedQRegSize);
+  return (code_ < kNumberOfVRegisters) && (bank_ == kVRegisterBank) &&
+         ((size_ >= kEncodedBRegSize) && (size_ <= kEncodedQRegSize)) &&
+         (qualifiers_ == kNoQualifiers) &&
+         (lane_size_ != kEncodedUnknownSize) && (lane_size_ <= size_);
+}
+
+bool CPURegister::IsValidFPRegister() const {
+  return IsValidVRegister() && IsFPRegister();
+}
+
+bool CPURegister::IsValidZRegister() const {
+  VIXL_STATIC_ASSERT(kEncodedBRegSize < kEncodedQRegSize);
+  // Z registers are valid with or without a lane size, so we don't need to
+  // check lane_size_.
+  return (code_ < kNumberOfZRegisters) && (bank_ == kVRegisterBank) &&
+         (size_ == kEncodedUnknownSize) && (qualifiers_ == kNoQualifiers);
+}
+
+bool CPURegister::IsValidPRegister() const {
+  VIXL_STATIC_ASSERT(kEncodedBRegSize < kEncodedQRegSize);
+  // P registers are valid with or without a lane size, so we don't need to
+  // check lane_size_.
+  return (code_ < kNumberOfPRegisters) && (bank_ == kPRegisterBank) &&
+         (size_ == kEncodedUnknownSize) &&
+         ((qualifiers_ == kNoQualifiers) || (qualifiers_ == kMerging) ||
+          (qualifiers_ == kZeroing));
+}
+
+bool CPURegister::IsValid() const {
+  return IsValidRegister() || IsValidVRegister() || IsValidZRegister() ||
+         IsValidPRegister();
+}
+
+// Most coersions simply invoke the necessary constructor.
+#define VIXL_CPUREG_COERCION_LIST(U) \
+  U(Register, W, R)                  \
+  U(Register, X, R)                  \
+  U(VRegister, B, V)                 \
+  U(VRegister, H, V)                 \
+  U(VRegister, S, V)                 \
+  U(VRegister, D, V)                 \
+  U(VRegister, Q, V)                 \
+  U(VRegister, V, V)                 \
+  U(ZRegister, Z, V)                 \
+  U(PRegister, P, P)
+#define VIXL_DEFINE_CPUREG_COERCION(RET_TYPE, CTOR_TYPE, BANK) \
+  RET_TYPE CPURegister::CTOR_TYPE() const {                    \
+    VIXL_ASSERT(GetBank() == k##BANK##RegisterBank);           \
+    return CTOR_TYPE##Register(GetCode());                     \
+  }
+VIXL_CPUREG_COERCION_LIST(VIXL_DEFINE_CPUREG_COERCION)
+#undef VIXL_CPUREG_COERCION_LIST
+#undef VIXL_DEFINE_CPUREG_COERCION
+
+// NEON lane-format coersions always return VRegisters.
+#define VIXL_CPUREG_NEON_COERCION_LIST(V) \
+  V(8, B)                                 \
+  V(16, B)                                \
+  V(2, H)                                 \
+  V(4, H)                                 \
+  V(8, H)                                 \
+  V(2, S)                                 \
+  V(4, S)                                 \
+  V(1, D)                                 \
+  V(2, D)
+#define VIXL_DEFINE_CPUREG_NEON_COERCION(LANES, LANE_TYPE)             \
+  VRegister VRegister::V##LANES##LANE_TYPE() const {                   \
+    VIXL_ASSERT(IsVRegister());                                        \
+    return VRegister(GetCode(), LANES * k##LANE_TYPE##RegSize, LANES); \
+  }
+VIXL_CPUREG_NEON_COERCION_LIST(VIXL_DEFINE_CPUREG_NEON_COERCION)
+#undef VIXL_CPUREG_NEON_COERCION_LIST
+#undef VIXL_DEFINE_CPUREG_NEON_COERCION
+
+// Semantic type coersion for sdot and udot.
+// TODO: Use the qualifiers_ field to distinguish this from ::S().
+VRegister VRegister::S4B() const {
+  VIXL_ASSERT(IsVRegister());
+  return SRegister(GetCode());
+}
+
+bool AreAliased(const CPURegister& reg1,
+                const CPURegister& reg2,
+                const CPURegister& reg3,
+                const CPURegister& reg4,
+                const CPURegister& reg5,
+                const CPURegister& reg6,
+                const CPURegister& reg7,
+                const CPURegister& reg8) {
+  int number_of_valid_regs = 0;
+  int number_of_valid_vregs = 0;
+  int number_of_valid_pregs = 0;
+
+  RegList unique_regs = 0;
+  RegList unique_vregs = 0;
+  RegList unique_pregs = 0;
+
+  const CPURegister regs[] = {reg1, reg2, reg3, reg4, reg5, reg6, reg7, reg8};
+
+  for (size_t i = 0; i < ArrayLength(regs); i++) {
+    switch (regs[i].GetBank()) {
+      case CPURegister::kRRegisterBank:
+        number_of_valid_regs++;
+        unique_regs |= regs[i].GetBit();
+        break;
+      case CPURegister::kVRegisterBank:
+        number_of_valid_vregs++;
+        unique_vregs |= regs[i].GetBit();
+        break;
+      case CPURegister::kPRegisterBank:
+        number_of_valid_pregs++;
+        unique_pregs |= regs[i].GetBit();
+        break;
+      case CPURegister::kNoRegisterBank:
+        VIXL_ASSERT(regs[i].IsNone());
+        break;
+    }
+  }
+
+  int number_of_unique_regs = CountSetBits(unique_regs);
+  int number_of_unique_vregs = CountSetBits(unique_vregs);
+  int number_of_unique_pregs = CountSetBits(unique_pregs);
+
+  VIXL_ASSERT(number_of_valid_regs >= number_of_unique_regs);
+  VIXL_ASSERT(number_of_valid_vregs >= number_of_unique_vregs);
+  VIXL_ASSERT(number_of_valid_pregs >= number_of_unique_pregs);
+
+  return (number_of_valid_regs != number_of_unique_regs) ||
+         (number_of_valid_vregs != number_of_unique_vregs) ||
+         (number_of_valid_pregs != number_of_unique_pregs);
+}
+
+bool AreSameSizeAndType(const CPURegister& reg1,
+                        const CPURegister& reg2,
+                        const CPURegister& reg3,
+                        const CPURegister& reg4,
+                        const CPURegister& reg5,
+                        const CPURegister& reg6,
+                        const CPURegister& reg7,
+                        const CPURegister& reg8) {
+  VIXL_ASSERT(reg1.IsValid());
+  bool match = true;
+  match &= !reg2.IsValid() || reg2.IsSameSizeAndType(reg1);
+  match &= !reg3.IsValid() || reg3.IsSameSizeAndType(reg1);
+  match &= !reg4.IsValid() || reg4.IsSameSizeAndType(reg1);
+  match &= !reg5.IsValid() || reg5.IsSameSizeAndType(reg1);
+  match &= !reg6.IsValid() || reg6.IsSameSizeAndType(reg1);
+  match &= !reg7.IsValid() || reg7.IsSameSizeAndType(reg1);
+  match &= !reg8.IsValid() || reg8.IsSameSizeAndType(reg1);
+  return match;
+}
+
+bool AreEven(const CPURegister& reg1,
+             const CPURegister& reg2,
+             const CPURegister& reg3,
+             const CPURegister& reg4,
+             const CPURegister& reg5,
+             const CPURegister& reg6,
+             const CPURegister& reg7,
+             const CPURegister& reg8) {
+  VIXL_ASSERT(reg1.IsValid());
+  bool even = (reg1.GetCode() % 2) == 0;
+  even &= !reg2.IsValid() || ((reg2.GetCode() % 2) == 0);
+  even &= !reg3.IsValid() || ((reg3.GetCode() % 2) == 0);
+  even &= !reg4.IsValid() || ((reg4.GetCode() % 2) == 0);
+  even &= !reg5.IsValid() || ((reg5.GetCode() % 2) == 0);
+  even &= !reg6.IsValid() || ((reg6.GetCode() % 2) == 0);
+  even &= !reg7.IsValid() || ((reg7.GetCode() % 2) == 0);
+  even &= !reg8.IsValid() || ((reg8.GetCode() % 2) == 0);
+  return even;
+}
+
+bool AreConsecutive(const CPURegister& reg1,
+                    const CPURegister& reg2,
+                    const CPURegister& reg3,
+                    const CPURegister& reg4) {
+  VIXL_ASSERT(reg1.IsValid());
+
+  if (!reg2.IsValid()) {
+    return true;
+  } else if (reg2.GetCode() !=
+             ((reg1.GetCode() + 1) % (reg1.GetMaxCode() + 1))) {
+    return false;
+  }
+
+  if (!reg3.IsValid()) {
+    return true;
+  } else if (reg3.GetCode() !=
+             ((reg2.GetCode() + 1) % (reg1.GetMaxCode() + 1))) {
+    return false;
+  }
+
+  if (!reg4.IsValid()) {
+    return true;
+  } else if (reg4.GetCode() !=
+             ((reg3.GetCode() + 1) % (reg1.GetMaxCode() + 1))) {
+    return false;
+  }
+
+  return true;
+}
+
+bool AreSameFormat(const CPURegister& reg1,
+                   const CPURegister& reg2,
+                   const CPURegister& reg3,
+                   const CPURegister& reg4) {
+  VIXL_ASSERT(reg1.IsValid());
+  bool match = true;
+  match &= !reg2.IsValid() || reg2.IsSameFormat(reg1);
+  match &= !reg3.IsValid() || reg3.IsSameFormat(reg1);
+  match &= !reg4.IsValid() || reg4.IsSameFormat(reg1);
+  return match;
+}
+
+bool AreSameLaneSize(const CPURegister& reg1,
+                     const CPURegister& reg2,
+                     const CPURegister& reg3,
+                     const CPURegister& reg4) {
+  VIXL_ASSERT(reg1.IsValid());
+  bool match = true;
+  match &=
+      !reg2.IsValid() || (reg2.GetLaneSizeInBits() == reg1.GetLaneSizeInBits());
+  match &=
+      !reg3.IsValid() || (reg3.GetLaneSizeInBits() == reg1.GetLaneSizeInBits());
+  match &=
+      !reg4.IsValid() || (reg4.GetLaneSizeInBits() == reg1.GetLaneSizeInBits());
+  return match;
+}
+}
+}  // namespace vixl::aarch64
diff --git a/src/aarch64/registers-aarch64.h b/src/aarch64/registers-aarch64.h
new file mode 100644
index 0000000..911974a
--- /dev/null
+++ b/src/aarch64/registers-aarch64.h
@@ -0,0 +1,900 @@
+// Copyright 2019, VIXL authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//   * Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//   * Neither the name of ARM Limited nor the names of its contributors may be
+//     used to endorse or promote products derived from this software without
+//     specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef VIXL_AARCH64_REGISTERS_AARCH64_H_
+#define VIXL_AARCH64_REGISTERS_AARCH64_H_
+
+#include <string>
+
+#include "instructions-aarch64.h"
+
+namespace vixl {
+namespace aarch64 {
+
+// An integer type capable of representing a homogeneous, non-overlapping set of
+// registers as a bitmask of their codes.
+typedef uint64_t RegList;
+static const int kRegListSizeInBits = sizeof(RegList) * 8;
+
+class Register;
+class WRegister;
+class XRegister;
+
+class VRegister;
+class BRegister;
+class HRegister;
+class SRegister;
+class DRegister;
+class QRegister;
+
+class ZRegister;
+
+class PRegister;
+class PRegisterWithLaneSize;
+class PRegisterM;
+class PRegisterZ;
+
+// A container for any single register supported by the processor. Selected
+// qualifications are also supported. Basic registers can be constructed
+// directly as CPURegister objects. Other variants should be constructed as one
+// of the derived classes.
+//
+// CPURegister aims to support any getter that would also be available to more
+// specialised register types. However, using the equivalent functions on the
+// specialised register types can avoid run-time checks, and should therefore be
+// preferred where run-time polymorphism isn't required.
+//
+// Type-specific modifers are typically implemented only on the derived classes.
+//
+// The encoding is such that CPURegister objects are cheap to pass by value.
+class CPURegister {
+ public:
+  enum RegisterBank : uint8_t {
+    kNoRegisterBank = 0,
+    kRRegisterBank,
+    kVRegisterBank,
+    kPRegisterBank
+  };
+  enum RegisterType {
+    kNoRegister,
+    kRegister,
+    kVRegister,
+    kZRegister,
+    kPRegister
+  };
+
+  static const unsigned kUnknownSize = 0;
+
+  VIXL_CONSTEXPR CPURegister()
+      : code_(0),
+        bank_(kNoRegisterBank),
+        size_(kEncodedUnknownSize),
+        qualifiers_(kNoQualifiers),
+        lane_size_(kEncodedUnknownSize) {}
+
+  CPURegister(int code, int size_in_bits, RegisterType type)
+      : code_(code),
+        bank_(GetBankFor(type)),
+        size_(EncodeSizeInBits(size_in_bits)),
+        qualifiers_(kNoQualifiers),
+        lane_size_(EncodeSizeInBits(size_in_bits)) {
+    VIXL_ASSERT(IsValid());
+  }
+
+  // Basic accessors.
+
+  // TODO: Make this return 'int'.
+  unsigned GetCode() const { return code_; }
+
+  RegisterBank GetBank() const { return bank_; }
+
+  // For scalar registers, the lane size matches the register size, and is
+  // always known.
+  bool HasSize() const { return size_ != kEncodedUnknownSize; }
+  bool HasLaneSize() const { return lane_size_ != kEncodedUnknownSize; }
+
+  RegList GetBit() const {
+    if (IsNone()) return 0;
+    VIXL_ASSERT(code_ < kRegListSizeInBits);
+    return static_cast<RegList>(1) << code_;
+  }
+
+  // Return the architectural name for this register.
+  // TODO: This is temporary. Ultimately, we should move the
+  // Simulator::*RegNameForCode helpers out of the simulator, and provide an
+  // independent way to obtain the name of a register.
+  std::string GetArchitecturalName() const;
+
+  // Return the highest valid register code for this type, to allow generic
+  // loops to be written. This excludes kSPRegInternalCode, since it is not
+  // contiguous, and sp usually requires special handling anyway.
+  unsigned GetMaxCode() const { return GetMaxCodeFor(GetBank()); }
+
+  // Registers without a known size report kUnknownSize.
+  int GetSizeInBits() const { return DecodeSizeInBits(size_); }
+  int GetSizeInBytes() const { return DecodeSizeInBytes(size_); }
+  // TODO: Make these return 'int'.
+  unsigned GetLaneSizeInBits() const { return DecodeSizeInBits(lane_size_); }
+  unsigned GetLaneSizeInBytes() const { return DecodeSizeInBytes(lane_size_); }
+  unsigned GetLaneSizeInBytesLog2() const {
+    VIXL_ASSERT(HasLaneSize());
+    return DecodeSizeInBytesLog2(lane_size_);
+  }
+
+  int GetLanes() const {
+    if (HasSize() && HasLaneSize()) {
+      // Take advantage of the size encoding to calculate this efficiently.
+      VIXL_STATIC_ASSERT(kEncodedHRegSize == (kEncodedBRegSize + 1));
+      VIXL_STATIC_ASSERT(kEncodedSRegSize == (kEncodedHRegSize + 1));
+      VIXL_STATIC_ASSERT(kEncodedDRegSize == (kEncodedSRegSize + 1));
+      VIXL_STATIC_ASSERT(kEncodedQRegSize == (kEncodedDRegSize + 1));
+      int log2_delta = static_cast<int>(size_) - static_cast<int>(lane_size_);
+      VIXL_ASSERT(log2_delta >= 0);
+      return 1 << log2_delta;
+    }
+    return kUnknownSize;
+  }
+
+  bool Is8Bits() const { return size_ == kEncodedBRegSize; }
+  bool Is16Bits() const { return size_ == kEncodedHRegSize; }
+  bool Is32Bits() const { return size_ == kEncodedSRegSize; }
+  bool Is64Bits() const { return size_ == kEncodedDRegSize; }
+  bool Is128Bits() const { return size_ == kEncodedQRegSize; }
+
+  bool IsLaneSizeB() const { return lane_size_ == kEncodedBRegSize; }
+  bool IsLaneSizeH() const { return lane_size_ == kEncodedHRegSize; }
+  bool IsLaneSizeS() const { return lane_size_ == kEncodedSRegSize; }
+  bool IsLaneSizeD() const { return lane_size_ == kEncodedDRegSize; }
+  bool IsLaneSizeQ() const { return lane_size_ == kEncodedQRegSize; }
+
+  // If Is<Foo>Register(), then it is valid to convert the CPURegister to some
+  // <Foo>Register<Bar> type.
+  //
+  //  If...                              ... then it is safe to construct ...
+  //      r.IsRegister()                       -> Register(r)
+  //      r.IsVRegister()                      -> VRegister(r)
+  //      r.IsZRegister()                      -> ZRegister(r)
+  //      r.IsPRegister()                      -> PRegister(r)
+  //
+  //      r.IsPRegister() && HasLaneSize()     -> PRegisterWithLaneSize(r)
+  //      r.IsPRegister() && IsMerging()       -> PRegisterM(r)
+  //      r.IsPRegister() && IsZeroing()       -> PRegisterZ(r)
+  bool IsRegister() const { return GetType() == kRegister; }
+  bool IsVRegister() const { return GetType() == kVRegister; }
+  bool IsZRegister() const { return GetType() == kZRegister; }
+  bool IsPRegister() const { return GetType() == kPRegister; }
+
+  bool IsNone() const { return GetType() == kNoRegister; }
+
+  // `GetType() == kNoRegister` implies IsNone(), and vice-versa.
+  // `GetType() == k<Foo>Register` implies Is<Foo>Register(), and vice-versa.
+  RegisterType GetType() const {
+    switch (bank_) {
+      case kNoRegisterBank:
+        return kNoRegister;
+      case kRRegisterBank:
+        return kRegister;
+      case kVRegisterBank:
+        return HasSize() ? kVRegister : kZRegister;
+      case kPRegisterBank:
+        return kPRegister;
+    }
+    VIXL_UNREACHABLE();
+    return kNoRegister;
+  }
+
+  // IsFPRegister() is true for scalar FP types (and therefore implies
+  // IsVRegister()). There is no corresponding FPRegister type.
+  bool IsFPRegister() const { return Is1H() || Is1S() || Is1D(); }
+
+  // TODO: These are stricter forms of the helpers above. We should make the
+  // basic helpers strict, and remove these.
+  bool IsValidRegister() const;
+  bool IsValidVRegister() const;
+  bool IsValidFPRegister() const;
+  bool IsValidZRegister() const;
+  bool IsValidPRegister() const;
+
+  bool IsValid() const;
+  bool IsValidOrNone() const { return IsNone() || IsValid(); }
+
+  bool IsVector() const { return HasLaneSize() && (size_ != lane_size_); }
+  bool IsScalar() const { return HasLaneSize() && (size_ == lane_size_); }
+
+  bool IsSameType(const CPURegister& other) const {
+    return GetType() == other.GetType();
+  }
+
+  bool IsSameBank(const CPURegister& other) const {
+    return GetBank() == other.GetBank();
+  }
+
+  // Two registers with unknown size are considered to have the same size if
+  // they also have the same type. For example, all Z registers have the same
+  // size, even though we don't know what that is.
+  bool IsSameSizeAndType(const CPURegister& other) const {
+    return IsSameType(other) && (size_ == other.size_);
+  }
+
+  bool IsSameFormat(const CPURegister& other) const {
+    return IsSameSizeAndType(other) && (lane_size_ == other.lane_size_);
+  }
+
+  // Note that NoReg aliases itself, so that 'Is' implies 'Aliases'.
+  bool Aliases(const CPURegister& other) const {
+    return IsSameBank(other) && (code_ == other.code_);
+  }
+
+  bool Is(const CPURegister& other) const {
+    if (IsRegister() || IsVRegister()) {
+      // For core (W, X) and FP/NEON registers, we only consider the code, size
+      // and type. This is legacy behaviour.
+      // TODO: We should probably check every field for all registers.
+      return Aliases(other) && (size_ == other.size_);
+    } else {
+      // For Z and P registers, we require all fields to match exactly.
+      VIXL_ASSERT(IsNone() || IsZRegister() || IsPRegister());
+      return (code_ == other.code_) && (bank_ == other.bank_) &&
+             (size_ == other.size_) && (qualifiers_ == other.qualifiers_) &&
+             (lane_size_ == other.lane_size_);
+    }
+  }
+
+  // Conversions to specific register types. The result is a register that
+  // aliases the original CPURegister. That is, the original register bank
+  // (`GetBank()`) is checked and the code (`GetCode()`) preserved, but all
+  // other properties are ignored.
+  //
+  // Typical usage:
+  //
+  //     if (reg.GetBank() == kVRegisterBank) {
+  //       DRegister d = reg.D();
+  //       ...
+  //     }
+  //
+  // These could all return types with compile-time guarantees (like XRegister),
+  // but this breaks backwards-compatibility quite severely, particularly with
+  // code like `cond ? reg.W() : reg.X()`, which would have indeterminate type.
+
+  // Core registers, like "w0".
+  Register W() const;
+  Register X() const;
+  // FP/NEON registers, like "b0".
+  VRegister B() const;
+  VRegister H() const;
+  VRegister S() const;
+  VRegister D() const;
+  VRegister Q() const;
+  VRegister V() const;
+  // SVE registers, like "z0".
+  ZRegister Z() const;
+  PRegister P() const;
+
+  // Utilities for kRegister types.
+
+  bool IsZero() const { return IsRegister() && (code_ == kZeroRegCode); }
+  bool IsSP() const { return IsRegister() && (code_ == kSPRegInternalCode); }
+  bool IsW() const { return IsRegister() && Is32Bits(); }
+  bool IsX() const { return IsRegister() && Is64Bits(); }
+
+  // Utilities for FP/NEON kVRegister types.
+
+  // These helpers ensure that the size and type of the register are as
+  // described. They do not consider the number of lanes that make up a vector.
+  // So, for example, Is8B() implies IsD(), and Is1D() implies IsD, but IsD()
+  // does not imply Is1D() or Is8B().
+  // Check the number of lanes, ie. the format of the vector, using methods such
+  // as Is8B(), Is1D(), etc.
+  bool IsB() const { return IsVRegister() && Is8Bits(); }
+  bool IsH() const { return IsVRegister() && Is16Bits(); }
+  bool IsS() const { return IsVRegister() && Is32Bits(); }
+  bool IsD() const { return IsVRegister() && Is64Bits(); }
+  bool IsQ() const { return IsVRegister() && Is128Bits(); }
+
+  // As above, but also check that the register has exactly one lane. For
+  // example, reg.Is1D() implies DRegister(reg).IsValid(), but reg.IsD() does
+  // not.
+  bool Is1B() const { return IsB() && IsScalar(); }
+  bool Is1H() const { return IsH() && IsScalar(); }
+  bool Is1S() const { return IsS() && IsScalar(); }
+  bool Is1D() const { return IsD() && IsScalar(); }
+  bool Is1Q() const { return IsQ() && IsScalar(); }
+
+  // Check the specific NEON format.
+  bool Is8B() const { return IsD() && IsLaneSizeB(); }
+  bool Is16B() const { return IsQ() && IsLaneSizeB(); }
+  bool Is2H() const { return IsS() && IsLaneSizeH(); }
+  bool Is4H() const { return IsD() && IsLaneSizeH(); }
+  bool Is8H() const { return IsQ() && IsLaneSizeH(); }
+  bool Is2S() const { return IsD() && IsLaneSizeS(); }
+  bool Is4S() const { return IsQ() && IsLaneSizeS(); }
+  bool Is2D() const { return IsQ() && IsLaneSizeD(); }
+
+  // A semantic alias for sdot and udot (indexed and by element) instructions.
+  // The current CPURegister implementation cannot not tell this from Is1S(),
+  // but it might do later.
+  // TODO: Do this with the qualifiers_ field.
+  bool Is1S4B() const { return Is1S(); }
+
+  // Utilities for SVE registers.
+
+  bool IsUnqualified() const { return qualifiers_ == kNoQualifiers; }
+  bool IsMerging() const { return IsPRegister() && (qualifiers_ == kMerging); }
+  bool IsZeroing() const { return IsPRegister() && (qualifiers_ == kZeroing); }
+
+  // SVE types have unknown sizes, but within known bounds.
+
+  int GetMaxSizeInBytes() const {
+    switch (GetType()) {
+      case kZRegister:
+        return kZRegMaxSizeInBytes;
+      case kPRegister:
+        return kPRegMaxSizeInBytes;
+      default:
+        VIXL_ASSERT(HasSize());
+        return GetSizeInBits();
+    }
+  }
+
+  int GetMinSizeInBytes() const {
+    switch (GetType()) {
+      case kZRegister:
+        return kZRegMinSizeInBytes;
+      case kPRegister:
+        return kPRegMinSizeInBytes;
+      default:
+        VIXL_ASSERT(HasSize());
+        return GetSizeInBits();
+    }
+  }
+
+  int GetMaxSizeInBits() const { return GetMaxSizeInBytes() * kBitsPerByte; }
+  int GetMinSizeInBits() const { return GetMinSizeInBytes() * kBitsPerByte; }
+
+  static RegisterBank GetBankFor(RegisterType type) {
+    switch (type) {
+      case kNoRegister:
+        return kNoRegisterBank;
+      case kRegister:
+        return kRRegisterBank;
+      case kVRegister:
+      case kZRegister:
+        return kVRegisterBank;
+      case kPRegister:
+        return kPRegisterBank;
+    }
+    VIXL_UNREACHABLE();
+    return kNoRegisterBank;
+  }
+
+  static unsigned GetMaxCodeFor(CPURegister::RegisterType type) {
+    return GetMaxCodeFor(GetBankFor(type));
+  }
+
+ protected:
+  enum EncodedSize : uint8_t {
+    // Ensure that kUnknownSize (and therefore kNoRegister) is encoded as zero.
+    kEncodedUnknownSize = 0,
+
+    // The implementation assumes that the remaining sizes are encoded as
+    // `log2(size) + c`, so the following names must remain in sequence.
+    kEncodedBRegSize,
+    kEncodedHRegSize,
+    kEncodedSRegSize,
+    kEncodedDRegSize,
+    kEncodedQRegSize,
+
+    kEncodedWRegSize = kEncodedSRegSize,
+    kEncodedXRegSize = kEncodedDRegSize
+  };
+  VIXL_STATIC_ASSERT(kSRegSize == kWRegSize);
+  VIXL_STATIC_ASSERT(kDRegSize == kXRegSize);
+
+  char GetLaneSizeSymbol() const {
+    switch (lane_size_) {
+      case kEncodedBRegSize:
+        return 'B';
+      case kEncodedHRegSize:
+        return 'H';
+      case kEncodedSRegSize:
+        return 'S';
+      case kEncodedDRegSize:
+        return 'D';
+      case kEncodedQRegSize:
+        return 'Q';
+      case kEncodedUnknownSize:
+        break;
+    }
+    VIXL_UNREACHABLE();
+    return '?';
+  }
+
+  static EncodedSize EncodeSizeInBits(int size_in_bits) {
+    switch (size_in_bits) {
+      case kUnknownSize:
+        return kEncodedUnknownSize;
+      case kBRegSize:
+        return kEncodedBRegSize;
+      case kHRegSize:
+        return kEncodedHRegSize;
+      case kSRegSize:
+        return kEncodedSRegSize;
+      case kDRegSize:
+        return kEncodedDRegSize;
+      case kQRegSize:
+        return kEncodedQRegSize;
+    }
+    VIXL_UNREACHABLE();
+    return kEncodedUnknownSize;
+  }
+
+  static int DecodeSizeInBytesLog2(EncodedSize encoded_size) {
+    switch (encoded_size) {
+      case kEncodedUnknownSize:
+        // Log2 of B-sized lane in bytes is 0, so we can't just return 0 here.
+        VIXL_UNREACHABLE();
+        return -1;
+      case kEncodedBRegSize:
+        return kBRegSizeInBytesLog2;
+      case kEncodedHRegSize:
+        return kHRegSizeInBytesLog2;
+      case kEncodedSRegSize:
+        return kSRegSizeInBytesLog2;
+      case kEncodedDRegSize:
+        return kDRegSizeInBytesLog2;
+      case kEncodedQRegSize:
+        return kQRegSizeInBytesLog2;
+    }
+    VIXL_UNREACHABLE();
+    return kUnknownSize;
+  }
+
+  static int DecodeSizeInBytes(EncodedSize encoded_size) {
+    if (encoded_size == kEncodedUnknownSize) {
+      return kUnknownSize;
+    }
+    return 1 << DecodeSizeInBytesLog2(encoded_size);
+  }
+
+  static int DecodeSizeInBits(EncodedSize encoded_size) {
+    VIXL_STATIC_ASSERT(kUnknownSize == 0);
+    return DecodeSizeInBytes(encoded_size) * kBitsPerByte;
+  }
+
+  static unsigned GetMaxCodeFor(CPURegister::RegisterBank bank);
+
+  enum Qualifiers : uint8_t {
+    kNoQualifiers = 0,
+    // Used by P registers.
+    kMerging,
+    kZeroing
+  };
+
+  // An unchecked constructor, for use by derived classes.
+  CPURegister(int code,
+              EncodedSize size,
+              RegisterBank bank,
+              EncodedSize lane_size,
+              Qualifiers qualifiers = kNoQualifiers)
+      : code_(code),
+        bank_(bank),
+        size_(size),
+        qualifiers_(qualifiers),
+        lane_size_(lane_size) {}
+
+  // TODO: Check that access to these fields is reasonably efficient.
+  uint8_t code_;
+  RegisterBank bank_;
+  EncodedSize size_;
+  Qualifiers qualifiers_;
+  EncodedSize lane_size_;
+};
+// Ensure that CPURegisters can fit in a single (64-bit) register. This is a
+// proxy for being "cheap to pass by value", which is hard to check directly.
+VIXL_STATIC_ASSERT(sizeof(CPURegister) <= sizeof(uint64_t));
+
+// TODO: Add constexpr constructors.
+#define VIXL_DECLARE_REGISTER_COMMON(NAME, REGISTER_TYPE, PARENT_TYPE) \
+  VIXL_CONSTEXPR NAME() : PARENT_TYPE() {}                             \
+                                                                       \
+  explicit NAME(CPURegister other) : PARENT_TYPE(other) {              \
+    VIXL_ASSERT(IsValid());                                            \
+  }                                                                    \
+                                                                       \
+  VIXL_CONSTEXPR static unsigned GetMaxCode() {                        \
+    return kNumberOf##REGISTER_TYPE##s - 1;                            \
+  }
+
+// Any W or X register, including the zero register and the stack pointer.
+class Register : public CPURegister {
+ public:
+  VIXL_DECLARE_REGISTER_COMMON(Register, Register, CPURegister)
+
+  Register(int code, int size_in_bits)
+      : CPURegister(code, size_in_bits, kRegister) {
+    VIXL_ASSERT(IsValidRegister());
+  }
+
+  bool IsValid() const { return IsValidRegister(); }
+};
+
+// Any FP or NEON V register, including vector (V.<T>) and scalar forms
+// (B, H, S, D, Q).
+class VRegister : public CPURegister {
+ public:
+  VIXL_DECLARE_REGISTER_COMMON(VRegister, VRegister, CPURegister)
+
+  // For historical reasons, VRegister(0) returns v0.1Q (or equivalently, q0).
+  explicit VRegister(int code, int size_in_bits = kQRegSize, int lanes = 1)
+      : CPURegister(code,
+                    EncodeSizeInBits(size_in_bits),
+                    kVRegisterBank,
+                    EncodeLaneSizeInBits(size_in_bits, lanes)) {
+    VIXL_ASSERT(IsValidVRegister());
+  }
+
+  VRegister(int code, VectorFormat format)
+      : CPURegister(code,
+                    EncodeSizeInBits(RegisterSizeInBitsFromFormat(format)),
+                    kVRegisterBank,
+                    EncodeSizeInBits(LaneSizeInBitsFromFormat(format)),
+                    kNoQualifiers) {
+    VIXL_ASSERT(IsValid());
+  }
+
+  VRegister V8B() const;
+  VRegister V16B() const;
+  VRegister V2H() const;
+  VRegister V4H() const;
+  VRegister V8H() const;
+  VRegister V2S() const;
+  VRegister V4S() const;
+  VRegister V1D() const;
+  VRegister V2D() const;
+  VRegister S4B() const;
+
+  bool IsValid() const { return IsValidVRegister(); }
+
+ protected:
+  static EncodedSize EncodeLaneSizeInBits(int size_in_bits, int lanes) {
+    VIXL_ASSERT(lanes >= 1);
+    VIXL_ASSERT((size_in_bits % lanes) == 0);
+    return EncodeSizeInBits(size_in_bits / lanes);
+  }
+};
+
+// Any SVE Z register, with or without a lane size specifier.
+class ZRegister : public CPURegister {
+ public:
+  VIXL_DECLARE_REGISTER_COMMON(ZRegister, ZRegister, CPURegister)
+
+  explicit ZRegister(int code, int lane_size_in_bits = kUnknownSize)
+      : CPURegister(code,
+                    kEncodedUnknownSize,
+                    kVRegisterBank,
+                    EncodeSizeInBits(lane_size_in_bits)) {
+    VIXL_ASSERT(IsValid());
+  }
+
+  ZRegister(int code, VectorFormat format)
+      : CPURegister(code,
+                    kEncodedUnknownSize,
+                    kVRegisterBank,
+                    EncodeSizeInBits(LaneSizeInBitsFromFormat(format)),
+                    kNoQualifiers) {
+    VIXL_ASSERT(IsValid());
+  }
+
+  // Return a Z register with a known lane size (like "z0.B").
+  ZRegister VnB() const { return ZRegister(GetCode(), kBRegSize); }
+  ZRegister VnH() const { return ZRegister(GetCode(), kHRegSize); }
+  ZRegister VnS() const { return ZRegister(GetCode(), kSRegSize); }
+  ZRegister VnD() const { return ZRegister(GetCode(), kDRegSize); }
+  ZRegister VnQ() const { return ZRegister(GetCode(), kQRegSize); }
+
+  template <typename T>
+  ZRegister WithLaneSize(T format) const {
+    return ZRegister(GetCode(), format);
+  }
+
+  ZRegister WithSameLaneSizeAs(const CPURegister& other) const {
+    VIXL_ASSERT(other.HasLaneSize());
+    return this->WithLaneSize(other.GetLaneSizeInBits());
+  }
+
+  bool IsValid() const { return IsValidZRegister(); }
+};
+
+// Any SVE P register, with or without a qualifier or lane size specifier.
+class PRegister : public CPURegister {
+ public:
+  VIXL_DECLARE_REGISTER_COMMON(PRegister, PRegister, CPURegister)
+
+  explicit PRegister(int code) : CPURegister(code, kUnknownSize, kPRegister) {
+    VIXL_ASSERT(IsValid());
+  }
+
+  bool IsValid() const {
+    return IsValidPRegister() && !HasLaneSize() && IsUnqualified();
+  }
+
+  // Return a P register with a known lane size (like "p0.B").
+  PRegisterWithLaneSize VnB() const;
+  PRegisterWithLaneSize VnH() const;
+  PRegisterWithLaneSize VnS() const;
+  PRegisterWithLaneSize VnD() const;
+
+  template <typename T>
+  PRegisterWithLaneSize WithLaneSize(T format) const;
+
+  PRegisterWithLaneSize WithSameLaneSizeAs(const CPURegister& other) const;
+
+  // SVE predicates are specified (in normal assembly) with a "/z" (zeroing) or
+  // "/m" (merging) suffix. These methods are VIXL's equivalents.
+  PRegisterZ Zeroing() const;
+  PRegisterM Merging() const;
+
+ protected:
+  // Unchecked constructors, for use by derived classes.
+  PRegister(int code, EncodedSize encoded_lane_size)
+      : CPURegister(code,
+                    kEncodedUnknownSize,
+                    kPRegisterBank,
+                    encoded_lane_size,
+                    kNoQualifiers) {}
+
+  PRegister(int code, Qualifiers qualifiers)
+      : CPURegister(code,
+                    kEncodedUnknownSize,
+                    kPRegisterBank,
+                    kEncodedUnknownSize,
+                    qualifiers) {}
+};
+
+// Any SVE P register with a known lane size (like "p0.B").
+class PRegisterWithLaneSize : public PRegister {
+ public:
+  VIXL_DECLARE_REGISTER_COMMON(PRegisterWithLaneSize, PRegister, PRegister)
+
+  PRegisterWithLaneSize(int code, int lane_size_in_bits)
+      : PRegister(code, EncodeSizeInBits(lane_size_in_bits)) {
+    VIXL_ASSERT(IsValid());
+  }
+
+  PRegisterWithLaneSize(int code, VectorFormat format)
+      : PRegister(code, EncodeSizeInBits(LaneSizeInBitsFromFormat(format))) {
+    VIXL_ASSERT(IsValid());
+  }
+
+  bool IsValid() const {
+    return IsValidPRegister() && HasLaneSize() && IsUnqualified();
+  }
+
+  // Overload lane size accessors so we can assert `HasLaneSize()`. This allows
+  // tools such as clang-tidy to prove that the result of GetLaneSize* is
+  // non-zero.
+
+  // TODO: Make these return 'int'.
+  unsigned GetLaneSizeInBits() const {
+    VIXL_ASSERT(HasLaneSize());
+    return PRegister::GetLaneSizeInBits();
+  }
+
+  unsigned GetLaneSizeInBytes() const {
+    VIXL_ASSERT(HasLaneSize());
+    return PRegister::GetLaneSizeInBytes();
+  }
+};
+
+// Any SVE P register with the zeroing qualifier (like "p0/z").
+class PRegisterZ : public PRegister {
+ public:
+  VIXL_DECLARE_REGISTER_COMMON(PRegisterZ, PRegister, PRegister)
+
+  explicit PRegisterZ(int code) : PRegister(code, kZeroing) {
+    VIXL_ASSERT(IsValid());
+  }
+
+  bool IsValid() const {
+    return IsValidPRegister() && !HasLaneSize() && IsZeroing();
+  }
+};
+
+// Any SVE P register with the merging qualifier (like "p0/m").
+class PRegisterM : public PRegister {
+ public:
+  VIXL_DECLARE_REGISTER_COMMON(PRegisterM, PRegister, PRegister)
+
+  explicit PRegisterM(int code) : PRegister(code, kMerging) {
+    VIXL_ASSERT(IsValid());
+  }
+
+  bool IsValid() const {
+    return IsValidPRegister() && !HasLaneSize() && IsMerging();
+  }
+};
+
+inline PRegisterWithLaneSize PRegister::VnB() const {
+  return PRegisterWithLaneSize(GetCode(), kBRegSize);
+}
+inline PRegisterWithLaneSize PRegister::VnH() const {
+  return PRegisterWithLaneSize(GetCode(), kHRegSize);
+}
+inline PRegisterWithLaneSize PRegister::VnS() const {
+  return PRegisterWithLaneSize(GetCode(), kSRegSize);
+}
+inline PRegisterWithLaneSize PRegister::VnD() const {
+  return PRegisterWithLaneSize(GetCode(), kDRegSize);
+}
+
+template <typename T>
+inline PRegisterWithLaneSize PRegister::WithLaneSize(T format) const {
+  return PRegisterWithLaneSize(GetCode(), format);
+}
+
+inline PRegisterWithLaneSize PRegister::WithSameLaneSizeAs(
+    const CPURegister& other) const {
+  VIXL_ASSERT(other.HasLaneSize());
+  return this->WithLaneSize(other.GetLaneSizeInBits());
+}
+
+inline PRegisterZ PRegister::Zeroing() const { return PRegisterZ(GetCode()); }
+inline PRegisterM PRegister::Merging() const { return PRegisterM(GetCode()); }
+
+#define VIXL_REGISTER_WITH_SIZE_LIST(V) \
+  V(WRegister, kWRegSize, Register)     \
+  V(XRegister, kXRegSize, Register)     \
+  V(QRegister, kQRegSize, VRegister)    \
+  V(DRegister, kDRegSize, VRegister)    \
+  V(SRegister, kSRegSize, VRegister)    \
+  V(HRegister, kHRegSize, VRegister)    \
+  V(BRegister, kBRegSize, VRegister)
+
+#define VIXL_DEFINE_REGISTER_WITH_SIZE(NAME, SIZE, PARENT)           \
+  class NAME : public PARENT {                                       \
+   public:                                                           \
+    VIXL_CONSTEXPR NAME() : PARENT() {}                              \
+    explicit NAME(int code) : PARENT(code, SIZE) {}                  \
+                                                                     \
+    explicit NAME(PARENT other) : PARENT(other) {                    \
+      VIXL_ASSERT(GetSizeInBits() == SIZE);                          \
+    }                                                                \
+                                                                     \
+    PARENT As##PARENT() const { return *this; }                      \
+                                                                     \
+    VIXL_CONSTEXPR int GetSizeInBits() const { return SIZE; }        \
+                                                                     \
+    bool IsValid() const {                                           \
+      return PARENT::IsValid() && (PARENT::GetSizeInBits() == SIZE); \
+    }                                                                \
+  };
+
+VIXL_REGISTER_WITH_SIZE_LIST(VIXL_DEFINE_REGISTER_WITH_SIZE)
+
+// No*Reg is used to provide default values for unused arguments, error cases
+// and so on. Note that these (and the default constructors) all compare equal
+// (using the Is() method).
+const Register NoReg;
+const VRegister NoVReg;
+const CPURegister NoCPUReg;
+const ZRegister NoZReg;
+
+// TODO: Ideally, these would use specialised register types (like XRegister and
+// so on). However, doing so throws up template overloading problems elsewhere.
+#define VIXL_DEFINE_REGISTERS(N)       \
+  const Register w##N = WRegister(N);  \
+  const Register x##N = XRegister(N);  \
+  const VRegister b##N = BRegister(N); \
+  const VRegister h##N = HRegister(N); \
+  const VRegister s##N = SRegister(N); \
+  const VRegister d##N = DRegister(N); \
+  const VRegister q##N = QRegister(N); \
+  const VRegister v##N(N);             \
+  const ZRegister z##N(N);
+AARCH64_REGISTER_CODE_LIST(VIXL_DEFINE_REGISTERS)
+#undef VIXL_DEFINE_REGISTERS
+
+#define VIXL_DEFINE_P_REGISTERS(N) const PRegister p##N(N);
+AARCH64_P_REGISTER_CODE_LIST(VIXL_DEFINE_P_REGISTERS)
+#undef VIXL_DEFINE_P_REGISTERS
+
+// VIXL represents 'sp' with a unique code, to tell it apart from 'xzr'.
+const Register wsp = WRegister(kSPRegInternalCode);
+const Register sp = XRegister(kSPRegInternalCode);
+
+// Standard aliases.
+const Register ip0 = x16;
+const Register ip1 = x17;
+const Register lr = x30;
+const Register xzr = x31;
+const Register wzr = w31;
+
+// AreAliased returns true if any of the named registers overlap. Arguments
+// set to NoReg are ignored. The system stack pointer may be specified.
+bool AreAliased(const CPURegister& reg1,
+                const CPURegister& reg2,
+                const CPURegister& reg3 = NoReg,
+                const CPURegister& reg4 = NoReg,
+                const CPURegister& reg5 = NoReg,
+                const CPURegister& reg6 = NoReg,
+                const CPURegister& reg7 = NoReg,
+                const CPURegister& reg8 = NoReg);
+
+// AreSameSizeAndType returns true if all of the specified registers have the
+// same size, and are of the same type. The system stack pointer may be
+// specified. Arguments set to NoReg are ignored, as are any subsequent
+// arguments. At least one argument (reg1) must be valid (not NoCPUReg).
+bool AreSameSizeAndType(const CPURegister& reg1,
+                        const CPURegister& reg2,
+                        const CPURegister& reg3 = NoCPUReg,
+                        const CPURegister& reg4 = NoCPUReg,
+                        const CPURegister& reg5 = NoCPUReg,
+                        const CPURegister& reg6 = NoCPUReg,
+                        const CPURegister& reg7 = NoCPUReg,
+                        const CPURegister& reg8 = NoCPUReg);
+
+// AreEven returns true if all of the specified registers have even register
+// indices. Arguments set to NoReg are ignored, as are any subsequent
+// arguments. At least one argument (reg1) must be valid (not NoCPUReg).
+bool AreEven(const CPURegister& reg1,
+             const CPURegister& reg2,
+             const CPURegister& reg3 = NoReg,
+             const CPURegister& reg4 = NoReg,
+             const CPURegister& reg5 = NoReg,
+             const CPURegister& reg6 = NoReg,
+             const CPURegister& reg7 = NoReg,
+             const CPURegister& reg8 = NoReg);
+
+// AreConsecutive returns true if all of the specified registers are
+// consecutive in the register file. Arguments set to NoReg are ignored, as are
+// any subsequent arguments. At least one argument (reg1) must be valid
+// (not NoCPUReg).
+bool AreConsecutive(const CPURegister& reg1,
+                    const CPURegister& reg2,
+                    const CPURegister& reg3 = NoCPUReg,
+                    const CPURegister& reg4 = NoCPUReg);
+
+// AreSameFormat returns true if all of the specified registers have the same
+// vector format. Arguments set to NoReg are ignored, as are any subsequent
+// arguments. At least one argument (reg1) must be valid (not NoVReg).
+bool AreSameFormat(const CPURegister& reg1,
+                   const CPURegister& reg2,
+                   const CPURegister& reg3 = NoCPUReg,
+                   const CPURegister& reg4 = NoCPUReg);
+
+// AreSameLaneSize returns true if all of the specified registers have the same
+// element lane size, B, H, S or D. It doesn't compare the type of registers.
+// Arguments set to NoReg are ignored, as are any subsequent arguments.
+// At least one argument (reg1) must be valid (not NoVReg).
+// TODO: Remove this, and replace its uses with AreSameFormat.
+bool AreSameLaneSize(const CPURegister& reg1,
+                     const CPURegister& reg2,
+                     const CPURegister& reg3 = NoCPUReg,
+                     const CPURegister& reg4 = NoCPUReg);
+}
+}  // namespace vixl::aarch64
+
+#endif  // VIXL_AARCH64_REGISTERS_AARCH64_H_
diff --git a/src/aarch64/simulator-aarch64.cc b/src/aarch64/simulator-aarch64.cc
index 855a297..cae59b2 100644
--- a/src/aarch64/simulator-aarch64.cc
+++ b/src/aarch64/simulator-aarch64.cc
@@ -26,6 +26,9 @@
 
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
 
+#include <errno.h>
+#include <unistd.h>
+
 #include <cmath>
 #include <cstring>
 #include <limits>
@@ -64,13 +67,16 @@
 }
 
 
-Simulator::Simulator(Decoder* decoder, FILE* stream)
-    : cpu_features_auditor_(decoder, CPUFeatures::All()) {
+Simulator::Simulator(Decoder* decoder, FILE* stream, SimStack::Allocated stack)
+    : memory_(std::move(stack)),
+      movprfx_(NULL),
+      cpu_features_auditor_(decoder, CPUFeatures::All()) {
   // Ensure that shift operations act as the simulator expects.
   VIXL_ASSERT((static_cast<int32_t>(-1) >> 1) == -1);
   VIXL_ASSERT((static_cast<uint32_t>(-1) >> 1) == 0x7fffffff);
 
-  instruction_stats_ = false;
+  // Set up a placeholder pipe for CanReadMemory.
+  VIXL_CHECK(pipe(placeholder_pipe_fd_) == 0);
 
   // Set up the decoder.
   decoder_ = decoder;
@@ -91,22 +97,12 @@
   SetColouredTrace(false);
   trace_parameters_ = LOG_NONE;
 
+  // We have to configure the SVE vector register length before calling
+  // ResetState().
+  SetVectorLengthInBits(kZRegMinSize);
+
   ResetState();
 
-  // Allocate and set up the simulator stack.
-  stack_ = new byte[stack_size_];
-  stack_limit_ = stack_ + stack_protection_size_;
-  // Configure the starting stack pointer.
-  //  - Find the top of the stack.
-  byte* tos = stack_ + stack_size_;
-  //  - There's a protection region at both ends of the stack.
-  tos -= stack_protection_size_;
-  //  - The stack pointer must be 16-byte aligned.
-  tos = AlignDown(tos, 16);
-  WriteSp(tos);
-
-  instrumentation_ = NULL;
-
   // Print a warning about exclusive-access instructions, but only the first
   // time they are encountered. This warning can be silenced using
   // SilenceExclusiveAccessWarning().
@@ -116,52 +112,112 @@
 
   // Initialize the common state of RNDR and RNDRRS.
   uint16_t seed[3] = {11, 22, 33};
-  VIXL_STATIC_ASSERT(sizeof(seed) == sizeof(rndr_state_));
-  memcpy(rndr_state_, seed, sizeof(rndr_state_));
+  VIXL_STATIC_ASSERT(sizeof(seed) == sizeof(rand_state_));
+  memcpy(rand_state_, seed, sizeof(rand_state_));
+
+  // Initialize all bits of pseudo predicate register to true.
+  LogicPRegister ones(pregister_all_true_);
+  ones.SetAllBits();
 }
 
-
-void Simulator::ResetState() {
+void Simulator::ResetSystemRegisters() {
   // Reset the system registers.
   nzcv_ = SimSystemRegister::DefaultValueFor(NZCV);
   fpcr_ = SimSystemRegister::DefaultValueFor(FPCR);
+  ResetFFR();
+}
 
-  // Reset registers to 0.
-  pc_ = NULL;
-  pc_modified_ = false;
+void Simulator::ResetRegisters() {
   for (unsigned i = 0; i < kNumberOfRegisters; i++) {
     WriteXRegister(i, 0xbadbeef);
   }
-  // Set FP registers to a value that is a NaN in both 32-bit and 64-bit FP.
-  uint64_t nan_bits[] = {
-      UINT64_C(0x7ff00cab7f8ba9e1), UINT64_C(0x7ff0dead7f8beef1),
-  };
-  VIXL_ASSERT(IsSignallingNaN(RawbitsToDouble(nan_bits[0] & kDRegMask)));
-  VIXL_ASSERT(IsSignallingNaN(RawbitsToFloat(nan_bits[0] & kSRegMask)));
-
-  qreg_t q_bits;
-  VIXL_ASSERT(sizeof(q_bits) == sizeof(nan_bits));
-  memcpy(&q_bits, nan_bits, sizeof(nan_bits));
-
-  for (unsigned i = 0; i < kNumberOfVRegisters; i++) {
-    WriteQRegister(i, q_bits);
-  }
   // Returning to address 0 exits the Simulator.
   WriteLr(kEndOfSimAddress);
+}
 
+void Simulator::ResetVRegisters() {
+  // Set SVE/FP registers to a value that is a NaN in both 32-bit and 64-bit FP.
+  VIXL_ASSERT((GetVectorLengthInBytes() % kDRegSizeInBytes) == 0);
+  int lane_count = GetVectorLengthInBytes() / kDRegSizeInBytes;
+  for (unsigned i = 0; i < kNumberOfZRegisters; i++) {
+    VIXL_ASSERT(vregisters_[i].GetSizeInBytes() == GetVectorLengthInBytes());
+    vregisters_[i].NotifyAccessAsZ();
+    for (int lane = 0; lane < lane_count; lane++) {
+      // Encode the register number and (D-sized) lane into each NaN, to
+      // make them easier to trace.
+      uint64_t nan_bits = 0x7ff0f0007f80f000 | (0x0000000100000000 * i) |
+                          (0x0000000000000001 * lane);
+      VIXL_ASSERT(IsSignallingNaN(RawbitsToDouble(nan_bits & kDRegMask)));
+      VIXL_ASSERT(IsSignallingNaN(RawbitsToFloat(nan_bits & kSRegMask)));
+      vregisters_[i].Insert(lane, nan_bits);
+    }
+  }
+}
+
+void Simulator::ResetPRegisters() {
+  VIXL_ASSERT((GetPredicateLengthInBytes() % kHRegSizeInBytes) == 0);
+  int lane_count = GetPredicateLengthInBytes() / kHRegSizeInBytes;
+  // Ensure the register configuration fits in this bit encoding.
+  VIXL_STATIC_ASSERT(kNumberOfPRegisters <= UINT8_MAX);
+  VIXL_ASSERT(lane_count <= UINT8_MAX);
+  for (unsigned i = 0; i < kNumberOfPRegisters; i++) {
+    VIXL_ASSERT(pregisters_[i].GetSizeInBytes() == GetPredicateLengthInBytes());
+    for (int lane = 0; lane < lane_count; lane++) {
+      // Encode the register number and (H-sized) lane into each lane slot.
+      uint16_t bits = (0x0100 * lane) | i;
+      pregisters_[i].Insert(lane, bits);
+    }
+  }
+}
+
+void Simulator::ResetFFR() {
+  VIXL_ASSERT((GetPredicateLengthInBytes() % kHRegSizeInBytes) == 0);
+  int default_active_lanes = GetPredicateLengthInBytes() / kHRegSizeInBytes;
+  ffr_register_.Write(static_cast<uint16_t>(GetUintMask(default_active_lanes)));
+}
+
+void Simulator::ResetState() {
+  ResetSystemRegisters();
+  ResetRegisters();
+  ResetVRegisters();
+  ResetPRegisters();
+
+  WriteSp(memory_.GetStack().GetBase());
+
+  pc_ = NULL;
+  pc_modified_ = false;
+
+  // BTI state.
   btype_ = DefaultBType;
   next_btype_ = DefaultBType;
 }
 
+void Simulator::SetVectorLengthInBits(unsigned vector_length) {
+  VIXL_ASSERT((vector_length >= kZRegMinSize) &&
+              (vector_length <= kZRegMaxSize));
+  VIXL_ASSERT((vector_length % kZRegMinSize) == 0);
+  vector_length_ = vector_length;
+
+  for (unsigned i = 0; i < kNumberOfZRegisters; i++) {
+    vregisters_[i].SetSizeInBytes(GetVectorLengthInBytes());
+  }
+  for (unsigned i = 0; i < kNumberOfPRegisters; i++) {
+    pregisters_[i].SetSizeInBytes(GetPredicateLengthInBytes());
+  }
+
+  ffr_register_.SetSizeInBytes(GetPredicateLengthInBytes());
+
+  ResetVRegisters();
+  ResetPRegisters();
+  ResetFFR();
+}
 
 Simulator::~Simulator() {
-  delete[] stack_;
   // The decoder may outlive the simulator.
   decoder_->RemoveVisitor(print_disasm_);
   delete print_disasm_;
-
-  decoder_->RemoveVisitor(instrumentation_);
-  delete instrumentation_;
+  close(placeholder_pipe_fd_[0]);
+  close(placeholder_pipe_fd_[1]);
 }
 
 
@@ -182,6 +238,7 @@
 }
 
 
+// clang-format off
 const char* Simulator::xreg_names[] = {"x0",  "x1",  "x2",  "x3",  "x4",  "x5",
                                        "x6",  "x7",  "x8",  "x9",  "x10", "x11",
                                        "x12", "x13", "x14", "x15", "x16", "x17",
@@ -196,6 +253,13 @@
                                        "w24", "w25", "w26", "w27", "w28", "w29",
                                        "w30", "wzr", "wsp"};
 
+const char* Simulator::breg_names[] = {"b0",  "b1",  "b2",  "b3",  "b4",  "b5",
+                                       "b6",  "b7",  "b8",  "b9",  "b10", "b11",
+                                       "b12", "b13", "b14", "b15", "b16", "b17",
+                                       "b18", "b19", "b20", "b21", "b22", "b23",
+                                       "b24", "b25", "b26", "b27", "b28", "b29",
+                                       "b30", "b31"};
+
 const char* Simulator::hreg_names[] = {"h0",  "h1",  "h2",  "h3",  "h4",  "h5",
                                        "h6",  "h7",  "h8",  "h9",  "h10", "h11",
                                        "h12", "h13", "h14", "h15", "h16", "h17",
@@ -224,27 +288,47 @@
                                        "v24", "v25", "v26", "v27", "v28", "v29",
                                        "v30", "v31"};
 
+const char* Simulator::zreg_names[] = {"z0",  "z1",  "z2",  "z3",  "z4",  "z5",
+                                       "z6",  "z7",  "z8",  "z9",  "z10", "z11",
+                                       "z12", "z13", "z14", "z15", "z16", "z17",
+                                       "z18", "z19", "z20", "z21", "z22", "z23",
+                                       "z24", "z25", "z26", "z27", "z28", "z29",
+                                       "z30", "z31"};
+
+const char* Simulator::preg_names[] = {"p0",  "p1",  "p2",  "p3",  "p4",  "p5",
+                                       "p6",  "p7",  "p8",  "p9",  "p10", "p11",
+                                       "p12", "p13", "p14", "p15"};
+// clang-format on
+
 
 const char* Simulator::WRegNameForCode(unsigned code, Reg31Mode mode) {
-  VIXL_ASSERT(code < kNumberOfRegisters);
   // If the code represents the stack pointer, index the name after zr.
-  if ((code == kZeroRegCode) && (mode == Reg31IsStackPointer)) {
+  if ((code == kSPRegInternalCode) ||
+      ((code == kZeroRegCode) && (mode == Reg31IsStackPointer))) {
     code = kZeroRegCode + 1;
   }
+  VIXL_ASSERT(code < ArrayLength(wreg_names));
   return wreg_names[code];
 }
 
 
 const char* Simulator::XRegNameForCode(unsigned code, Reg31Mode mode) {
-  VIXL_ASSERT(code < kNumberOfRegisters);
   // If the code represents the stack pointer, index the name after zr.
-  if ((code == kZeroRegCode) && (mode == Reg31IsStackPointer)) {
+  if ((code == kSPRegInternalCode) ||
+      ((code == kZeroRegCode) && (mode == Reg31IsStackPointer))) {
     code = kZeroRegCode + 1;
   }
+  VIXL_ASSERT(code < ArrayLength(xreg_names));
   return xreg_names[code];
 }
 
 
+const char* Simulator::BRegNameForCode(unsigned code) {
+  VIXL_ASSERT(code < kNumberOfVRegisters);
+  return breg_names[code];
+}
+
+
 const char* Simulator::HRegNameForCode(unsigned code) {
   VIXL_ASSERT(code < kNumberOfVRegisters);
   return hreg_names[code];
@@ -269,6 +353,39 @@
 }
 
 
+const char* Simulator::ZRegNameForCode(unsigned code) {
+  VIXL_ASSERT(code < kNumberOfZRegisters);
+  return zreg_names[code];
+}
+
+
+const char* Simulator::PRegNameForCode(unsigned code) {
+  VIXL_ASSERT(code < kNumberOfPRegisters);
+  return preg_names[code];
+}
+
+SimVRegister Simulator::ExpandToSimVRegister(const SimPRegister& pg) {
+  SimVRegister ones, result;
+  dup_immediate(kFormatVnB, ones, 0xff);
+  mov_zeroing(kFormatVnB, result, pg, ones);
+  return result;
+}
+
+void Simulator::ExtractFromSimVRegister(VectorFormat vform,
+                                        SimPRegister& pd,
+                                        SimVRegister vreg) {
+  SimVRegister zero;
+  dup_immediate(kFormatVnB, zero, 0);
+  SVEIntCompareVectorsHelper(ne,
+                             vform,
+                             pd,
+                             GetPTrue(),
+                             vreg,
+                             zero,
+                             false,
+                             LeaveFlags);
+}
+
 #define COLOUR(colour_code) "\033[0;" colour_code "m"
 #define COLOUR_BOLD(colour_code) "\033[1;" colour_code "m"
 #define COLOUR_HIGHLIGHT "\033[43m"
@@ -291,6 +408,8 @@
   clr_reg_value = value ? COLOUR(CYAN) : "";
   clr_vreg_name = value ? COLOUR_BOLD(MAGENTA) : "";
   clr_vreg_value = value ? COLOUR(MAGENTA) : "";
+  clr_preg_name = value ? COLOUR_BOLD(GREEN) : "";
+  clr_preg_value = value ? COLOUR(GREEN) : "";
   clr_memory_address = value ? COLOUR_BOLD(BLUE) : "";
   clr_warning = value ? COLOUR_BOLD(YELLOW) : "";
   clr_warning_message = value ? COLOUR(YELLOW) : "";
@@ -322,22 +441,6 @@
 }
 
 
-void Simulator::SetInstructionStats(bool value) {
-  if (value != instruction_stats_) {
-    if (value) {
-      if (instrumentation_ == NULL) {
-        // Set the sample period to 10, as the VIXL examples and tests are
-        // short.
-        instrumentation_ = new Instrument("vixl_stats.csv", 10);
-      }
-      decoder_->AppendVisitor(instrumentation_);
-    } else if (instrumentation_ != NULL) {
-      decoder_->RemoveVisitor(instrumentation_);
-    }
-    instruction_stats_ = value;
-  }
-}
-
 // Helpers ---------------------------------------------------------------------
 uint64_t Simulator::AddWithCarry(unsigned reg_size,
                                  bool set_flags,
@@ -379,44 +482,50 @@
 
 
 int64_t Simulator::ShiftOperand(unsigned reg_size,
-                                int64_t value,
+                                uint64_t uvalue,
                                 Shift shift_type,
                                 unsigned amount) const {
-  VIXL_ASSERT((reg_size == kWRegSize) || (reg_size == kXRegSize));
-  if (amount == 0) {
-    return value;
-  }
-  uint64_t uvalue = static_cast<uint64_t>(value);
-  uint64_t mask = kWRegMask;
-  bool is_negative = (uvalue & kWSignMask) != 0;
-  if (reg_size == kXRegSize) {
-    mask = kXRegMask;
-    is_negative = (uvalue & kXSignMask) != 0;
-  }
-
-  switch (shift_type) {
-    case LSL:
-      uvalue <<= amount;
-      break;
-    case LSR:
-      uvalue >>= amount;
-      break;
-    case ASR:
-      uvalue >>= amount;
-      if (is_negative) {
-        // Simulate sign-extension to 64 bits.
-        uvalue |= ~UINT64_C(0) << (reg_size - amount);
+  VIXL_ASSERT((reg_size == kBRegSize) || (reg_size == kHRegSize) ||
+              (reg_size == kSRegSize) || (reg_size == kDRegSize));
+  if (amount > 0) {
+    uint64_t mask = GetUintMask(reg_size);
+    bool is_negative = (uvalue & GetSignMask(reg_size)) != 0;
+    // The behavior is undefined in c++ if the shift amount greater than or
+    // equal to the register lane size. Work out the shifted result based on
+    // architectural behavior before performing the c++ type shfit operations.
+    switch (shift_type) {
+      case LSL:
+        if (amount >= reg_size) {
+          return UINT64_C(0);
+        }
+        uvalue <<= amount;
+        break;
+      case LSR:
+        if (amount >= reg_size) {
+          return UINT64_C(0);
+        }
+        uvalue >>= amount;
+        break;
+      case ASR:
+        if (amount >= reg_size) {
+          return is_negative ? ~UINT64_C(0) : UINT64_C(0);
+        }
+        uvalue >>= amount;
+        if (is_negative) {
+          // Simulate sign-extension to 64 bits.
+          uvalue |= ~UINT64_C(0) << (reg_size - amount);
+        }
+        break;
+      case ROR: {
+        uvalue = RotateRight(uvalue, amount, reg_size);
+        break;
       }
-      break;
-    case ROR: {
-      uvalue = RotateRight(uvalue, amount, reg_size);
-      break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        return 0;
     }
-    default:
-      VIXL_UNIMPLEMENTED();
-      return 0;
+    uvalue &= mask;
   }
-  uvalue &= mask;
 
   int64_t result;
   memcpy(&result, &uvalue, sizeof(result));
@@ -592,6 +701,15 @@
       return kPrintReg1S;
     case kFormatD:
       return kPrintReg1D;
+
+    case kFormatVnB:
+      return kPrintRegVnB;
+    case kFormatVnH:
+      return kPrintRegVnH;
+    case kFormatVnS:
+      return kPrintRegVnS;
+    case kFormatVnD:
+      return kPrintRegVnD;
   }
 }
 
@@ -623,301 +741,445 @@
   }
 }
 
+void Simulator::PrintRegisters() {
+  for (unsigned i = 0; i < kNumberOfRegisters; i++) {
+    if (i == kSpRegCode) i = kSPRegInternalCode;
+    PrintRegister(i);
+  }
+}
+
+void Simulator::PrintVRegisters() {
+  for (unsigned i = 0; i < kNumberOfVRegisters; i++) {
+    PrintVRegister(i);
+  }
+}
+
+void Simulator::PrintZRegisters() {
+  for (unsigned i = 0; i < kNumberOfZRegisters; i++) {
+    PrintZRegister(i);
+  }
+}
 
 void Simulator::PrintWrittenRegisters() {
   for (unsigned i = 0; i < kNumberOfRegisters; i++) {
-    if (registers_[i].WrittenSinceLastLog()) PrintRegister(i);
+    if (registers_[i].WrittenSinceLastLog()) {
+      if (i == kSpRegCode) i = kSPRegInternalCode;
+      PrintRegister(i);
+    }
   }
 }
 
-
 void Simulator::PrintWrittenVRegisters() {
+  bool has_sve = GetCPUFeatures()->Has(CPUFeatures::kSVE);
   for (unsigned i = 0; i < kNumberOfVRegisters; i++) {
-    // At this point there is no type information, so print as a raw 1Q.
-    if (vregisters_[i].WrittenSinceLastLog()) PrintVRegister(i, kPrintReg1Q);
+    if (vregisters_[i].WrittenSinceLastLog()) {
+      // Z registers are initialised in the constructor before the user can
+      // configure the CPU features, so we must also check for SVE here.
+      if (vregisters_[i].AccessedAsZSinceLastLog() && has_sve) {
+        PrintZRegister(i);
+      } else {
+        PrintVRegister(i);
+      }
+    }
   }
 }
 
+void Simulator::PrintWrittenPRegisters() {
+  // P registers are initialised in the constructor before the user can
+  // configure the CPU features, so we must check for SVE here.
+  if (!GetCPUFeatures()->Has(CPUFeatures::kSVE)) return;
+  for (unsigned i = 0; i < kNumberOfPRegisters; i++) {
+    if (pregisters_[i].WrittenSinceLastLog()) {
+      PrintPRegister(i);
+    }
+  }
+  if (ReadFFR().WrittenSinceLastLog()) PrintFFR();
+}
 
 void Simulator::PrintSystemRegisters() {
   PrintSystemRegister(NZCV);
   PrintSystemRegister(FPCR);
 }
 
-
-void Simulator::PrintRegisters() {
-  for (unsigned i = 0; i < kNumberOfRegisters; i++) {
-    PrintRegister(i);
-  }
-}
-
-
-void Simulator::PrintVRegisters() {
-  for (unsigned i = 0; i < kNumberOfVRegisters; i++) {
-    // At this point there is no type information, so print as a raw 1Q.
-    PrintVRegister(i, kPrintReg1Q);
-  }
-}
-
-
-// Print a register's name and raw value.
-//
-// Only the least-significant `size_in_bytes` bytes of the register are printed,
-// but the value is aligned as if the whole register had been printed.
-//
-// For typical register updates, size_in_bytes should be set to kXRegSizeInBytes
-// -- the default -- so that the whole register is printed. Other values of
-// size_in_bytes are intended for use when the register hasn't actually been
-// updated (such as in PrintWrite).
-//
-// No newline is printed. This allows the caller to print more details (such as
-// a memory access annotation).
-void Simulator::PrintRegisterRawHelper(unsigned code,
-                                       Reg31Mode r31mode,
-                                       int size_in_bytes) {
-  // The template for all supported sizes.
-  //   "# x{code}: 0xffeeddccbbaa9988"
-  //   "# w{code}:         0xbbaa9988"
-  //   "# w{code}<15:0>:       0x9988"
-  //   "# w{code}<7:0>:          0x88"
-  unsigned padding_chars = (kXRegSizeInBytes - size_in_bytes) * 2;
-
-  const char* name = "";
-  const char* suffix = "";
-  switch (size_in_bytes) {
-    case kXRegSizeInBytes:
-      name = XRegNameForCode(code, r31mode);
-      break;
-    case kWRegSizeInBytes:
-      name = WRegNameForCode(code, r31mode);
-      break;
-    case 2:
-      name = WRegNameForCode(code, r31mode);
-      suffix = "<15:0>";
-      padding_chars -= strlen(suffix);
-      break;
-    case 1:
-      name = WRegNameForCode(code, r31mode);
-      suffix = "<7:0>";
-      padding_chars -= strlen(suffix);
-      break;
-    default:
-      VIXL_UNREACHABLE();
-  }
-  fprintf(stream_, "# %s%5s%s: ", clr_reg_name, name, suffix);
-
-  // Print leading padding spaces.
-  VIXL_ASSERT(padding_chars < (kXRegSizeInBytes * 2));
-  for (unsigned i = 0; i < padding_chars; i++) {
-    putc(' ', stream_);
-  }
-
-  // Print the specified bits in hexadecimal format.
-  uint64_t bits = ReadRegister<uint64_t>(code, r31mode);
-  bits &= kXRegMask >> ((kXRegSizeInBytes - size_in_bytes) * 8);
-  VIXL_STATIC_ASSERT(sizeof(bits) == kXRegSizeInBytes);
-
-  int chars = size_in_bytes * 2;
-  fprintf(stream_,
-          "%s0x%0*" PRIx64 "%s",
-          clr_reg_value,
-          chars,
-          bits,
-          clr_normal);
-}
-
-
-void Simulator::PrintRegister(unsigned code, Reg31Mode r31mode) {
-  registers_[code].NotifyRegisterLogged();
-
-  // Don't print writes into xzr.
-  if ((code == kZeroRegCode) && (r31mode == Reg31IsZeroRegister)) {
-    return;
-  }
-
-  // The template for all x and w registers:
-  //   "# x{code}: 0x{value}"
-  //   "# w{code}: 0x{value}"
-
-  PrintRegisterRawHelper(code, r31mode);
-  fprintf(stream_, "\n");
-}
-
-
-// Print a register's name and raw value.
-//
-// The `bytes` and `lsb` arguments can be used to limit the bytes that are
-// printed. These arguments are intended for use in cases where register hasn't
-// actually been updated (such as in PrintVWrite).
-//
-// No newline is printed. This allows the caller to print more details (such as
-// a floating-point interpretation or a memory access annotation).
-void Simulator::PrintVRegisterRawHelper(unsigned code, int bytes, int lsb) {
-  // The template for vector types:
-  //   "# v{code}: 0xffeeddccbbaa99887766554433221100".
-  // An example with bytes=4 and lsb=8:
-  //   "# v{code}:         0xbbaa9988                ".
-  fprintf(stream_,
-          "# %s%5s: %s",
-          clr_vreg_name,
-          VRegNameForCode(code),
-          clr_vreg_value);
-
-  int msb = lsb + bytes - 1;
-  int byte = kQRegSizeInBytes - 1;
-
-  // Print leading padding spaces. (Two spaces per byte.)
-  while (byte > msb) {
+void Simulator::PrintRegisterValue(const uint8_t* value,
+                                   int value_size,
+                                   PrintRegisterFormat format) {
+  int print_width = GetPrintRegSizeInBytes(format);
+  VIXL_ASSERT(print_width <= value_size);
+  for (int i = value_size - 1; i >= print_width; i--) {
+    // Pad with spaces so that values align vertically.
     fprintf(stream_, "  ");
-    byte--;
+    // If we aren't explicitly printing a partial value, ensure that the
+    // unprinted bits are zero.
+    VIXL_ASSERT(((format & kPrintRegPartial) != 0) || (value[i] == 0));
   }
-
-  // Print the specified part of the value, byte by byte.
-  qreg_t rawbits = ReadQRegister(code);
   fprintf(stream_, "0x");
-  while (byte >= lsb) {
-    fprintf(stream_, "%02x", rawbits.val[byte]);
-    byte--;
+  for (int i = print_width - 1; i >= 0; i--) {
+    fprintf(stream_, "%02x", value[i]);
   }
-
-  // Print trailing padding spaces.
-  while (byte >= 0) {
-    fprintf(stream_, "  ");
-    byte--;
-  }
-  fprintf(stream_, "%s", clr_normal);
 }
 
-
-// Print each of the specified lanes of a register as a float or double value.
-//
-// The `lane_count` and `lslane` arguments can be used to limit the lanes that
-// are printed. These arguments are intended for use in cases where register
-// hasn't actually been updated (such as in PrintVWrite).
-//
-// No newline is printed. This allows the caller to print more details (such as
-// a memory access annotation).
-void Simulator::PrintVRegisterFPHelper(unsigned code,
-                                       unsigned lane_size_in_bytes,
-                                       int lane_count,
-                                       int rightmost_lane) {
-  VIXL_ASSERT((lane_size_in_bytes == kHRegSizeInBytes) ||
-              (lane_size_in_bytes == kSRegSizeInBytes) ||
-              (lane_size_in_bytes == kDRegSizeInBytes));
-
-  unsigned msb = ((lane_count + rightmost_lane) * lane_size_in_bytes);
-  VIXL_ASSERT(msb <= kQRegSizeInBytes);
-
-  // For scalar types ((lane_count == 1) && (rightmost_lane == 0)), a register
-  // name is used:
-  //   " (h{code}: {value})"
-  //   " (s{code}: {value})"
-  //   " (d{code}: {value})"
-  // For vector types, "..." is used to represent one or more omitted lanes.
-  //   " (..., {value}, {value}, ...)"
-  if (lane_size_in_bytes == kHRegSizeInBytes) {
-    // TODO: Trace tests will fail until we regenerate them.
-    return;
-  }
-  if ((lane_count == 1) && (rightmost_lane == 0)) {
-    const char* name;
-    switch (lane_size_in_bytes) {
-      case kHRegSizeInBytes:
-        name = HRegNameForCode(code);
-        break;
-      case kSRegSizeInBytes:
-        name = SRegNameForCode(code);
-        break;
-      case kDRegSizeInBytes:
-        name = DRegNameForCode(code);
-        break;
-      default:
-        name = NULL;
-        VIXL_UNREACHABLE();
+void Simulator::PrintRegisterValueFPAnnotations(const uint8_t* value,
+                                                uint16_t lane_mask,
+                                                PrintRegisterFormat format) {
+  VIXL_ASSERT((format & kPrintRegAsFP) != 0);
+  int lane_size = GetPrintRegLaneSizeInBytes(format);
+  fprintf(stream_, " (");
+  bool last_inactive = false;
+  const char* sep = "";
+  for (int i = GetPrintRegLaneCount(format) - 1; i >= 0; i--, sep = ", ") {
+    bool access = (lane_mask & (1 << (i * lane_size))) != 0;
+    if (access) {
+      // Read the lane as a double, so we can format all FP types in the same
+      // way. We squash NaNs, and a double can exactly represent any other value
+      // that the smaller types can represent, so this is lossless.
+      double element;
+      switch (lane_size) {
+        case kHRegSizeInBytes: {
+          Float16 element_fp16;
+          VIXL_STATIC_ASSERT(sizeof(element_fp16) == kHRegSizeInBytes);
+          memcpy(&element_fp16, &value[i * lane_size], sizeof(element_fp16));
+          element = FPToDouble(element_fp16, kUseDefaultNaN);
+          break;
+        }
+        case kSRegSizeInBytes: {
+          float element_fp32;
+          memcpy(&element_fp32, &value[i * lane_size], sizeof(element_fp32));
+          element = static_cast<double>(element_fp32);
+          break;
+        }
+        case kDRegSizeInBytes: {
+          memcpy(&element, &value[i * lane_size], sizeof(element));
+          break;
+        }
+        default:
+          VIXL_UNREACHABLE();
+          fprintf(stream_, "{UnknownFPValue}");
+          continue;
+      }
+      if (IsNaN(element)) {
+        // The fprintf behaviour for NaNs is implementation-defined. Always
+        // print "nan", so that traces are consistent.
+        fprintf(stream_, "%s%snan%s", sep, clr_vreg_value, clr_normal);
+      } else {
+        fprintf(stream_,
+                "%s%s%#.4g%s",
+                sep,
+                clr_vreg_value,
+                element,
+                clr_normal);
+      }
+      last_inactive = false;
+    } else if (!last_inactive) {
+      // Replace each contiguous sequence of inactive lanes with "...".
+      fprintf(stream_, "%s...", sep);
+      last_inactive = true;
     }
-    fprintf(stream_, " (%s%s: ", clr_vreg_name, name);
-  } else {
-    if (msb < (kQRegSizeInBytes - 1)) {
-      fprintf(stream_, " (..., ");
-    } else {
-      fprintf(stream_, " (");
-    }
-  }
-
-  // Print the list of values.
-  const char* separator = "";
-  int leftmost_lane = rightmost_lane + lane_count - 1;
-  for (int lane = leftmost_lane; lane >= rightmost_lane; lane--) {
-    double value;
-    switch (lane_size_in_bytes) {
-      case kHRegSizeInBytes:
-        value = ReadVRegister(code).GetLane<uint16_t>(lane);
-        break;
-      case kSRegSizeInBytes:
-        value = ReadVRegister(code).GetLane<float>(lane);
-        break;
-      case kDRegSizeInBytes:
-        value = ReadVRegister(code).GetLane<double>(lane);
-        break;
-      default:
-        value = 0.0;
-        VIXL_UNREACHABLE();
-    }
-    if (IsNaN(value)) {
-      // The output for NaNs is implementation defined. Always print `nan`, so
-      // that traces are coherent across different implementations.
-      fprintf(stream_, "%s%snan%s", separator, clr_vreg_value, clr_normal);
-    } else {
-      fprintf(stream_,
-              "%s%s%#g%s",
-              separator,
-              clr_vreg_value,
-              value,
-              clr_normal);
-    }
-    separator = ", ";
-  }
-
-  if (rightmost_lane > 0) {
-    fprintf(stream_, ", ...");
   }
   fprintf(stream_, ")");
 }
 
+void Simulator::PrintRegister(int code,
+                              PrintRegisterFormat format,
+                              const char* suffix) {
+  VIXL_ASSERT((static_cast<unsigned>(code) < kNumberOfRegisters) ||
+              (static_cast<unsigned>(code) == kSPRegInternalCode));
+  VIXL_ASSERT((format & kPrintRegAsVectorMask) == kPrintRegAsScalar);
+  VIXL_ASSERT((format & kPrintRegAsFP) == 0);
 
-void Simulator::PrintVRegister(unsigned code, PrintRegisterFormat format) {
-  vregisters_[code].NotifyRegisterLogged();
-
-  int lane_size_log2 = format & kPrintRegLaneSizeMask;
-
-  int reg_size_log2;
-  if (format & kPrintRegAsQVector) {
-    reg_size_log2 = kQRegSizeInBytesLog2;
-  } else if (format & kPrintRegAsDVector) {
-    reg_size_log2 = kDRegSizeInBytesLog2;
+  SimRegister* reg;
+  SimRegister zero;
+  if (code == kZeroRegCode) {
+    reg = &zero;
   } else {
-    // Scalar types.
-    reg_size_log2 = lane_size_log2;
+    // registers_[31] holds the SP.
+    VIXL_STATIC_ASSERT((kSPRegInternalCode % kNumberOfRegisters) == 31);
+    reg = &registers_[code % kNumberOfRegisters];
   }
 
-  int lane_count = 1 << (reg_size_log2 - lane_size_log2);
-  int lane_size = 1 << lane_size_log2;
+  // We trace register writes as whole register values, implying that any
+  // unprinted bits are all zero:
+  //   "#       x{code}: 0x{-----value----}"
+  //   "#       w{code}:         0x{-value}"
+  // Stores trace partial register values, implying nothing about the unprinted
+  // bits:
+  //   "# x{code}<63:0>: 0x{-----value----}"
+  //   "# x{code}<31:0>:         0x{-value}"
+  //   "# x{code}<15:0>:             0x{--}"
+  //   "#  x{code}<7:0>:               0x{}"
 
-  // The template for vector types:
-  //   "# v{code}: 0x{rawbits} (..., {value}, ...)".
-  // The template for scalar types:
-  //   "# v{code}: 0x{rawbits} ({reg}:{value})".
-  // The values in parentheses after the bit representations are floating-point
-  // interpretations. They are displayed only if the kPrintVRegAsFP bit is set.
-
-  PrintVRegisterRawHelper(code);
-  if (format & kPrintRegAsFP) {
-    PrintVRegisterFPHelper(code, lane_size, lane_count);
+  bool is_partial = (format & kPrintRegPartial) != 0;
+  unsigned print_reg_size = GetPrintRegSizeInBits(format);
+  std::stringstream name;
+  if (is_partial) {
+    name << XRegNameForCode(code) << GetPartialRegSuffix(format);
+  } else {
+    // Notify the register that it has been logged, but only if we're printing
+    // all of it.
+    reg->NotifyRegisterLogged();
+    switch (print_reg_size) {
+      case kWRegSize:
+        name << WRegNameForCode(code);
+        break;
+      case kXRegSize:
+        name << XRegNameForCode(code);
+        break;
+      default:
+        VIXL_UNREACHABLE();
+        return;
+    }
   }
 
-  fprintf(stream_, "\n");
+  fprintf(stream_,
+          "# %s%*s: %s",
+          clr_reg_name,
+          kPrintRegisterNameFieldWidth,
+          name.str().c_str(),
+          clr_reg_value);
+  PrintRegisterValue(*reg, format);
+  fprintf(stream_, "%s%s", clr_normal, suffix);
 }
 
+void Simulator::PrintVRegister(int code,
+                               PrintRegisterFormat format,
+                               const char* suffix) {
+  VIXL_ASSERT(static_cast<unsigned>(code) < kNumberOfVRegisters);
+  VIXL_ASSERT(((format & kPrintRegAsVectorMask) == kPrintRegAsScalar) ||
+              ((format & kPrintRegAsVectorMask) == kPrintRegAsDVector) ||
+              ((format & kPrintRegAsVectorMask) == kPrintRegAsQVector));
+
+  // We trace register writes as whole register values, implying that any
+  // unprinted bits are all zero:
+  //   "#        v{code}: 0x{-------------value------------}"
+  //   "#        d{code}:                 0x{-----value----}"
+  //   "#        s{code}:                         0x{-value}"
+  //   "#        h{code}:                             0x{--}"
+  //   "#        b{code}:                               0x{}"
+  // Stores trace partial register values, implying nothing about the unprinted
+  // bits:
+  //   "# v{code}<127:0>: 0x{-------------value------------}"
+  //   "#  v{code}<63:0>:                 0x{-----value----}"
+  //   "#  v{code}<31:0>:                         0x{-value}"
+  //   "#  v{code}<15:0>:                             0x{--}"
+  //   "#   v{code}<7:0>:                               0x{}"
+
+  bool is_partial = ((format & kPrintRegPartial) != 0);
+  std::stringstream name;
+  unsigned print_reg_size = GetPrintRegSizeInBits(format);
+  if (is_partial) {
+    name << VRegNameForCode(code) << GetPartialRegSuffix(format);
+  } else {
+    // Notify the register that it has been logged, but only if we're printing
+    // all of it.
+    vregisters_[code].NotifyRegisterLogged();
+    switch (print_reg_size) {
+      case kBRegSize:
+        name << BRegNameForCode(code);
+        break;
+      case kHRegSize:
+        name << HRegNameForCode(code);
+        break;
+      case kSRegSize:
+        name << SRegNameForCode(code);
+        break;
+      case kDRegSize:
+        name << DRegNameForCode(code);
+        break;
+      case kQRegSize:
+        name << VRegNameForCode(code);
+        break;
+      default:
+        VIXL_UNREACHABLE();
+        return;
+    }
+  }
+
+  fprintf(stream_,
+          "# %s%*s: %s",
+          clr_vreg_name,
+          kPrintRegisterNameFieldWidth,
+          name.str().c_str(),
+          clr_vreg_value);
+  PrintRegisterValue(vregisters_[code], format);
+  fprintf(stream_, "%s", clr_normal);
+  if ((format & kPrintRegAsFP) != 0) {
+    PrintRegisterValueFPAnnotations(vregisters_[code], format);
+  }
+  fprintf(stream_, "%s", suffix);
+}
+
+void Simulator::PrintVRegistersForStructuredAccess(int rt_code,
+                                                   int reg_count,
+                                                   uint16_t focus_mask,
+                                                   PrintRegisterFormat format) {
+  bool print_fp = (format & kPrintRegAsFP) != 0;
+  // Suppress FP formatting, so we can specify the lanes we're interested in.
+  PrintRegisterFormat format_no_fp =
+      static_cast<PrintRegisterFormat>(format & ~kPrintRegAsFP);
+
+  for (int r = 0; r < reg_count; r++) {
+    int code = (rt_code + r) % kNumberOfVRegisters;
+    PrintVRegister(code, format_no_fp, "");
+    if (print_fp) {
+      PrintRegisterValueFPAnnotations(vregisters_[code], focus_mask, format);
+    }
+    fprintf(stream_, "\n");
+  }
+}
+
+void Simulator::PrintZRegistersForStructuredAccess(int rt_code,
+                                                   int q_index,
+                                                   int reg_count,
+                                                   uint16_t focus_mask,
+                                                   PrintRegisterFormat format) {
+  bool print_fp = (format & kPrintRegAsFP) != 0;
+  // Suppress FP formatting, so we can specify the lanes we're interested in.
+  PrintRegisterFormat format_no_fp =
+      static_cast<PrintRegisterFormat>(format & ~kPrintRegAsFP);
+
+  PrintRegisterFormat format_q = GetPrintRegAsQChunkOfSVE(format);
+
+  const unsigned size = kQRegSizeInBytes;
+  unsigned byte_index = q_index * size;
+  const uint8_t* value = vregisters_[rt_code].GetBytes() + byte_index;
+  VIXL_ASSERT((byte_index + size) <= vregisters_[rt_code].GetSizeInBytes());
+
+  for (int r = 0; r < reg_count; r++) {
+    int code = (rt_code + r) % kNumberOfZRegisters;
+    PrintPartialZRegister(code, q_index, format_no_fp, "");
+    if (print_fp) {
+      PrintRegisterValueFPAnnotations(value, focus_mask, format_q);
+    }
+    fprintf(stream_, "\n");
+  }
+}
+
+void Simulator::PrintZRegister(int code, PrintRegisterFormat format) {
+  // We're going to print the register in parts, so force a partial format.
+  format = GetPrintRegPartial(format);
+  VIXL_ASSERT((format & kPrintRegAsVectorMask) == kPrintRegAsSVEVector);
+  int vl = GetVectorLengthInBits();
+  VIXL_ASSERT((vl % kQRegSize) == 0);
+  for (unsigned i = 0; i < (vl / kQRegSize); i++) {
+    PrintPartialZRegister(code, i, format);
+  }
+  vregisters_[code].NotifyRegisterLogged();
+}
+
+void Simulator::PrintPRegister(int code, PrintRegisterFormat format) {
+  // We're going to print the register in parts, so force a partial format.
+  format = GetPrintRegPartial(format);
+  VIXL_ASSERT((format & kPrintRegAsVectorMask) == kPrintRegAsSVEVector);
+  int vl = GetVectorLengthInBits();
+  VIXL_ASSERT((vl % kQRegSize) == 0);
+  for (unsigned i = 0; i < (vl / kQRegSize); i++) {
+    PrintPartialPRegister(code, i, format);
+  }
+  pregisters_[code].NotifyRegisterLogged();
+}
+
+void Simulator::PrintFFR(PrintRegisterFormat format) {
+  // We're going to print the register in parts, so force a partial format.
+  format = GetPrintRegPartial(format);
+  VIXL_ASSERT((format & kPrintRegAsVectorMask) == kPrintRegAsSVEVector);
+  int vl = GetVectorLengthInBits();
+  VIXL_ASSERT((vl % kQRegSize) == 0);
+  SimPRegister& ffr = ReadFFR();
+  for (unsigned i = 0; i < (vl / kQRegSize); i++) {
+    PrintPartialPRegister("FFR", ffr, i, format);
+  }
+  ffr.NotifyRegisterLogged();
+}
+
+void Simulator::PrintPartialZRegister(int code,
+                                      int q_index,
+                                      PrintRegisterFormat format,
+                                      const char* suffix) {
+  VIXL_ASSERT(static_cast<unsigned>(code) < kNumberOfZRegisters);
+  VIXL_ASSERT((format & kPrintRegAsVectorMask) == kPrintRegAsSVEVector);
+  VIXL_ASSERT((format & kPrintRegPartial) != 0);
+  VIXL_ASSERT((q_index * kQRegSize) < GetVectorLengthInBits());
+
+  // We _only_ trace partial Z register values in Q-sized chunks, because
+  // they're often too large to reasonably fit on a single line. Each line
+  // implies nothing about the unprinted bits.
+  //   "# z{code}<127:0>: 0x{-------------value------------}"
+
+  format = GetPrintRegAsQChunkOfSVE(format);
+
+  const unsigned size = kQRegSizeInBytes;
+  unsigned byte_index = q_index * size;
+  const uint8_t* value = vregisters_[code].GetBytes() + byte_index;
+  VIXL_ASSERT((byte_index + size) <= vregisters_[code].GetSizeInBytes());
+
+  int lsb = q_index * kQRegSize;
+  int msb = lsb + kQRegSize - 1;
+  std::stringstream name;
+  name << ZRegNameForCode(code) << '<' << msb << ':' << lsb << '>';
+
+  fprintf(stream_,
+          "# %s%*s: %s",
+          clr_vreg_name,
+          kPrintRegisterNameFieldWidth,
+          name.str().c_str(),
+          clr_vreg_value);
+  PrintRegisterValue(value, size, format);
+  fprintf(stream_, "%s", clr_normal);
+  if ((format & kPrintRegAsFP) != 0) {
+    PrintRegisterValueFPAnnotations(value, GetPrintRegLaneMask(format), format);
+  }
+  fprintf(stream_, "%s", suffix);
+}
+
+void Simulator::PrintPartialPRegister(const char* name,
+                                      const SimPRegister& reg,
+                                      int q_index,
+                                      PrintRegisterFormat format,
+                                      const char* suffix) {
+  VIXL_ASSERT((format & kPrintRegAsVectorMask) == kPrintRegAsSVEVector);
+  VIXL_ASSERT((format & kPrintRegPartial) != 0);
+  VIXL_ASSERT((q_index * kQRegSize) < GetVectorLengthInBits());
+
+  // We don't currently use the format for anything here.
+  USE(format);
+
+  // We _only_ trace partial P register values, because they're often too large
+  // to reasonably fit on a single line. Each line implies nothing about the
+  // unprinted bits.
+  //
+  // We print values in binary, with spaces between each bit, in order for the
+  // bits to align with the Z register bytes that they predicate.
+  //   "# {name}<15:0>: 0b{-------------value------------}"
+
+  int print_size_in_bits = kQRegSize / kZRegBitsPerPRegBit;
+  int lsb = q_index * print_size_in_bits;
+  int msb = lsb + print_size_in_bits - 1;
+  std::stringstream prefix;
+  prefix << name << '<' << msb << ':' << lsb << '>';
+
+  fprintf(stream_,
+          "# %s%*s: %s0b",
+          clr_preg_name,
+          kPrintRegisterNameFieldWidth,
+          prefix.str().c_str(),
+          clr_preg_value);
+  for (int i = msb; i >= lsb; i--) {
+    fprintf(stream_, " %c", reg.GetBit(i) ? '1' : '0');
+  }
+  fprintf(stream_, "%s%s", clr_normal, suffix);
+}
+
+void Simulator::PrintPartialPRegister(int code,
+                                      int q_index,
+                                      PrintRegisterFormat format,
+                                      const char* suffix) {
+  VIXL_ASSERT(static_cast<unsigned>(code) < kNumberOfPRegisters);
+  PrintPartialPRegister(PRegNameForCode(code),
+                        pregisters_[code],
+                        q_index,
+                        format,
+                        suffix);
+}
 
 void Simulator::PrintSystemRegister(SystemRegister id) {
   switch (id) {
@@ -954,90 +1216,347 @@
   }
 }
 
-
-void Simulator::PrintRead(uintptr_t address,
-                          unsigned reg_code,
-                          PrintRegisterFormat format) {
-  registers_[reg_code].NotifyRegisterLogged();
-
-  USE(format);
-
-  // The template is "# {reg}: 0x{value} <- {address}".
-  PrintRegisterRawHelper(reg_code, Reg31IsZeroRegister);
-  fprintf(stream_,
-          " <- %s0x%016" PRIxPTR "%s\n",
-          clr_memory_address,
-          address,
-          clr_normal);
-}
-
-
-void Simulator::PrintVRead(uintptr_t address,
-                           unsigned reg_code,
-                           PrintRegisterFormat format,
-                           unsigned lane) {
-  vregisters_[reg_code].NotifyRegisterLogged();
-
-  // The template is "# v{code}: 0x{rawbits} <- address".
-  PrintVRegisterRawHelper(reg_code);
-  if (format & kPrintRegAsFP) {
-    PrintVRegisterFPHelper(reg_code,
-                           GetPrintRegLaneSizeInBytes(format),
-                           GetPrintRegLaneCount(format),
-                           lane);
+uint16_t Simulator::PrintPartialAccess(uint16_t access_mask,
+                                       uint16_t future_access_mask,
+                                       int struct_element_count,
+                                       int lane_size_in_bytes,
+                                       const char* op,
+                                       uintptr_t address,
+                                       int reg_size_in_bytes) {
+  // We want to assume that we'll access at least one lane.
+  VIXL_ASSERT(access_mask != 0);
+  VIXL_ASSERT((reg_size_in_bytes == kXRegSizeInBytes) ||
+              (reg_size_in_bytes == kQRegSizeInBytes));
+  bool started_annotation = false;
+  // Indent to match the register field, the fixed formatting, and the value
+  // prefix ("0x"): "# {name}: 0x"
+  fprintf(stream_, "# %*s    ", kPrintRegisterNameFieldWidth, "");
+  // First, annotate the lanes (byte by byte).
+  for (int lane = reg_size_in_bytes - 1; lane >= 0; lane--) {
+    bool access = (access_mask & (1 << lane)) != 0;
+    bool future = (future_access_mask & (1 << lane)) != 0;
+    if (started_annotation) {
+      // If we've started an annotation, draw a horizontal line in addition to
+      // any other symbols.
+      if (access) {
+        fprintf(stream_, "─╨");
+      } else if (future) {
+        fprintf(stream_, "─║");
+      } else {
+        fprintf(stream_, "──");
+      }
+    } else {
+      if (access) {
+        started_annotation = true;
+        fprintf(stream_, " ╙");
+      } else if (future) {
+        fprintf(stream_, " ║");
+      } else {
+        fprintf(stream_, "  ");
+      }
+    }
+  }
+  VIXL_ASSERT(started_annotation);
+  fprintf(stream_, "─ 0x");
+  int lane_size_in_nibbles = lane_size_in_bytes * 2;
+  // Print the most-significant struct element first.
+  const char* sep = "";
+  for (int i = struct_element_count - 1; i >= 0; i--) {
+    int offset = lane_size_in_bytes * i;
+    uint64_t nibble = MemReadUint(lane_size_in_bytes, address + offset);
+    fprintf(stream_, "%s%0*" PRIx64, sep, lane_size_in_nibbles, nibble);
+    sep = "'";
   }
   fprintf(stream_,
-          " <- %s0x%016" PRIxPTR "%s\n",
+          " %s %s0x%016" PRIxPTR "%s\n",
+          op,
           clr_memory_address,
           address,
           clr_normal);
+  return future_access_mask & ~access_mask;
 }
 
-
-void Simulator::PrintWrite(uintptr_t address,
-                           unsigned reg_code,
-                           PrintRegisterFormat format) {
-  VIXL_ASSERT(GetPrintRegLaneCount(format) == 1);
-
-  // The template is "# v{code}: 0x{value} -> {address}". To keep the trace tidy
-  // and readable, the value is aligned with the values in the register trace.
-  PrintRegisterRawHelper(reg_code,
-                         Reg31IsZeroRegister,
-                         GetPrintRegSizeInBytes(format));
-  fprintf(stream_,
-          " -> %s0x%016" PRIxPTR "%s\n",
-          clr_memory_address,
-          address,
-          clr_normal);
-}
-
-
-void Simulator::PrintVWrite(uintptr_t address,
-                            unsigned reg_code,
+void Simulator::PrintAccess(int code,
                             PrintRegisterFormat format,
-                            unsigned lane) {
-  // The templates:
-  //   "# v{code}: 0x{rawbits} -> {address}"
-  //   "# v{code}: 0x{rawbits} (..., {value}, ...) -> {address}".
-  //   "# v{code}: 0x{rawbits} ({reg}:{value}) -> {address}"
-  // Because this trace doesn't represent a change to the source register's
-  // value, only the relevant part of the value is printed. To keep the trace
-  // tidy and readable, the raw value is aligned with the other values in the
-  // register trace.
-  int lane_count = GetPrintRegLaneCount(format);
-  int lane_size = GetPrintRegLaneSizeInBytes(format);
-  int reg_size = GetPrintRegSizeInBytes(format);
-  PrintVRegisterRawHelper(reg_code, reg_size, lane_size * lane);
-  if (format & kPrintRegAsFP) {
-    PrintVRegisterFPHelper(reg_code, lane_size, lane_count, lane);
+                            const char* op,
+                            uintptr_t address) {
+  VIXL_ASSERT(GetPrintRegLaneCount(format) == 1);
+  VIXL_ASSERT((strcmp(op, "->") == 0) || (strcmp(op, "<-") == 0));
+  if ((format & kPrintRegPartial) == 0) {
+    registers_[code].NotifyRegisterLogged();
   }
+  // Scalar-format accesses use a simple format:
+  //   "# {reg}: 0x{value} -> {address}"
+
+  // Suppress the newline, so the access annotation goes on the same line.
+  PrintRegister(code, format, "");
   fprintf(stream_,
-          " -> %s0x%016" PRIxPTR "%s\n",
+          " %s %s0x%016" PRIxPTR "%s\n",
+          op,
           clr_memory_address,
           address,
           clr_normal);
 }
 
+void Simulator::PrintVAccess(int code,
+                             PrintRegisterFormat format,
+                             const char* op,
+                             uintptr_t address) {
+  VIXL_ASSERT((strcmp(op, "->") == 0) || (strcmp(op, "<-") == 0));
+
+  // Scalar-format accesses use a simple format:
+  //   "# v{code}: 0x{value} -> {address}"
+
+  // Suppress the newline, so the access annotation goes on the same line.
+  PrintVRegister(code, format, "");
+  fprintf(stream_,
+          " %s %s0x%016" PRIxPTR "%s\n",
+          op,
+          clr_memory_address,
+          address,
+          clr_normal);
+}
+
+void Simulator::PrintVStructAccess(int rt_code,
+                                   int reg_count,
+                                   PrintRegisterFormat format,
+                                   const char* op,
+                                   uintptr_t address) {
+  VIXL_ASSERT((strcmp(op, "->") == 0) || (strcmp(op, "<-") == 0));
+
+  // For example:
+  //   "# v{code}: 0x{value}"
+  //   "#     ...: 0x{value}"
+  //   "#              ║   ╙─ {struct_value} -> {lowest_address}"
+  //   "#              ╙───── {struct_value} -> {highest_address}"
+
+  uint16_t lane_mask = GetPrintRegLaneMask(format);
+  PrintVRegistersForStructuredAccess(rt_code, reg_count, lane_mask, format);
+
+  int reg_size_in_bytes = GetPrintRegSizeInBytes(format);
+  int lane_size_in_bytes = GetPrintRegLaneSizeInBytes(format);
+  for (int i = 0; i < reg_size_in_bytes; i += lane_size_in_bytes) {
+    uint16_t access_mask = 1 << i;
+    VIXL_ASSERT((lane_mask & access_mask) != 0);
+    lane_mask = PrintPartialAccess(access_mask,
+                                   lane_mask,
+                                   reg_count,
+                                   lane_size_in_bytes,
+                                   op,
+                                   address + (i * reg_count));
+  }
+}
+
+void Simulator::PrintVSingleStructAccess(int rt_code,
+                                         int reg_count,
+                                         int lane,
+                                         PrintRegisterFormat format,
+                                         const char* op,
+                                         uintptr_t address) {
+  VIXL_ASSERT((strcmp(op, "->") == 0) || (strcmp(op, "<-") == 0));
+
+  // For example:
+  //   "# v{code}: 0x{value}"
+  //   "#     ...: 0x{value}"
+  //   "#              ╙───── {struct_value} -> {address}"
+
+  int lane_size_in_bytes = GetPrintRegLaneSizeInBytes(format);
+  uint16_t lane_mask = 1 << (lane * lane_size_in_bytes);
+  PrintVRegistersForStructuredAccess(rt_code, reg_count, lane_mask, format);
+  PrintPartialAccess(lane_mask, 0, reg_count, lane_size_in_bytes, op, address);
+}
+
+void Simulator::PrintVReplicatingStructAccess(int rt_code,
+                                              int reg_count,
+                                              PrintRegisterFormat format,
+                                              const char* op,
+                                              uintptr_t address) {
+  VIXL_ASSERT((strcmp(op, "->") == 0) || (strcmp(op, "<-") == 0));
+
+  // For example:
+  //   "# v{code}: 0x{value}"
+  //   "#     ...: 0x{value}"
+  //   "#            ╙─╨─╨─╨─ {struct_value} -> {address}"
+
+  int lane_size_in_bytes = GetPrintRegLaneSizeInBytes(format);
+  uint16_t lane_mask = GetPrintRegLaneMask(format);
+  PrintVRegistersForStructuredAccess(rt_code, reg_count, lane_mask, format);
+  PrintPartialAccess(lane_mask, 0, reg_count, lane_size_in_bytes, op, address);
+}
+
+void Simulator::PrintZAccess(int rt_code, const char* op, uintptr_t address) {
+  VIXL_ASSERT((strcmp(op, "->") == 0) || (strcmp(op, "<-") == 0));
+
+  // Scalar-format accesses are split into separate chunks, each of which uses a
+  // simple format:
+  //   "#   z{code}<127:0>: 0x{value} -> {address}"
+  //   "# z{code}<255:128>: 0x{value} -> {address + 16}"
+  //   "# z{code}<383:256>: 0x{value} -> {address + 32}"
+  // etc
+
+  int vl = GetVectorLengthInBits();
+  VIXL_ASSERT((vl % kQRegSize) == 0);
+  for (unsigned q_index = 0; q_index < (vl / kQRegSize); q_index++) {
+    // Suppress the newline, so the access annotation goes on the same line.
+    PrintPartialZRegister(rt_code, q_index, kPrintRegVnQPartial, "");
+    fprintf(stream_,
+            " %s %s0x%016" PRIxPTR "%s\n",
+            op,
+            clr_memory_address,
+            address,
+            clr_normal);
+    address += kQRegSizeInBytes;
+  }
+}
+
+void Simulator::PrintZStructAccess(int rt_code,
+                                   int reg_count,
+                                   const LogicPRegister& pg,
+                                   PrintRegisterFormat format,
+                                   int msize_in_bytes,
+                                   const char* op,
+                                   const LogicSVEAddressVector& addr) {
+  VIXL_ASSERT((strcmp(op, "->") == 0) || (strcmp(op, "<-") == 0));
+
+  // For example:
+  //   "# z{code}<255:128>: 0x{value}"
+  //   "#     ...<255:128>: 0x{value}"
+  //   "#                       ║   ╙─ {struct_value} -> {first_address}"
+  //   "#                       ╙───── {struct_value} -> {last_address}"
+
+  // We're going to print the register in parts, so force a partial format.
+  bool skip_inactive_chunks = (format & kPrintRegPartial) != 0;
+  format = GetPrintRegPartial(format);
+
+  int esize_in_bytes = GetPrintRegLaneSizeInBytes(format);
+  int vl = GetVectorLengthInBits();
+  VIXL_ASSERT((vl % kQRegSize) == 0);
+  int lanes_per_q = kQRegSizeInBytes / esize_in_bytes;
+  for (unsigned q_index = 0; q_index < (vl / kQRegSize); q_index++) {
+    uint16_t pred =
+        pg.GetActiveMask<uint16_t>(q_index) & GetPrintRegLaneMask(format);
+    if ((pred == 0) && skip_inactive_chunks) continue;
+
+    PrintZRegistersForStructuredAccess(rt_code,
+                                       q_index,
+                                       reg_count,
+                                       pred,
+                                       format);
+    if (pred == 0) {
+      // This register chunk has no active lanes. The loop below would print
+      // nothing, so leave a blank line to keep structures grouped together.
+      fprintf(stream_, "#\n");
+      continue;
+    }
+    for (int i = 0; i < lanes_per_q; i++) {
+      uint16_t access = 1 << (i * esize_in_bytes);
+      int lane = (q_index * lanes_per_q) + i;
+      // Skip inactive lanes.
+      if ((pred & access) == 0) continue;
+      pred = PrintPartialAccess(access,
+                                pred,
+                                reg_count,
+                                msize_in_bytes,
+                                op,
+                                addr.GetStructAddress(lane));
+    }
+  }
+
+  // We print the whole register, even for stores.
+  for (int i = 0; i < reg_count; i++) {
+    vregisters_[(rt_code + i) % kNumberOfZRegisters].NotifyRegisterLogged();
+  }
+}
+
+void Simulator::PrintPAccess(int code, const char* op, uintptr_t address) {
+  VIXL_ASSERT((strcmp(op, "->") == 0) || (strcmp(op, "<-") == 0));
+
+  // Scalar-format accesses are split into separate chunks, each of which uses a
+  // simple format:
+  //   "#  p{code}<15:0>: 0b{value} -> {address}"
+  //   "# p{code}<31:16>: 0b{value} -> {address + 2}"
+  //   "# p{code}<47:32>: 0b{value} -> {address + 4}"
+  // etc
+
+  int vl = GetVectorLengthInBits();
+  VIXL_ASSERT((vl % kQRegSize) == 0);
+  for (unsigned q_index = 0; q_index < (vl / kQRegSize); q_index++) {
+    // Suppress the newline, so the access annotation goes on the same line.
+    PrintPartialPRegister(code, q_index, kPrintRegVnQPartial, "");
+    fprintf(stream_,
+            " %s %s0x%016" PRIxPTR "%s\n",
+            op,
+            clr_memory_address,
+            address,
+            clr_normal);
+    address += kQRegSizeInBytes;
+  }
+}
+
+void Simulator::PrintRead(int rt_code,
+                          PrintRegisterFormat format,
+                          uintptr_t address) {
+  VIXL_ASSERT(GetPrintRegLaneCount(format) == 1);
+  registers_[rt_code].NotifyRegisterLogged();
+  PrintAccess(rt_code, format, "<-", address);
+}
+
+void Simulator::PrintExtendingRead(int rt_code,
+                                   PrintRegisterFormat format,
+                                   int access_size_in_bytes,
+                                   uintptr_t address) {
+  int reg_size_in_bytes = GetPrintRegSizeInBytes(format);
+  if (access_size_in_bytes == reg_size_in_bytes) {
+    // There is no extension here, so print a simple load.
+    PrintRead(rt_code, format, address);
+    return;
+  }
+  VIXL_ASSERT(access_size_in_bytes < reg_size_in_bytes);
+
+  // For sign- and zero-extension, make it clear that the resulting register
+  // value is different from what is loaded from memory.
+  VIXL_ASSERT(GetPrintRegLaneCount(format) == 1);
+  registers_[rt_code].NotifyRegisterLogged();
+  PrintRegister(rt_code, format);
+  PrintPartialAccess(1,
+                     0,
+                     1,
+                     access_size_in_bytes,
+                     "<-",
+                     address,
+                     kXRegSizeInBytes);
+}
+
+void Simulator::PrintVRead(int rt_code,
+                           PrintRegisterFormat format,
+                           uintptr_t address) {
+  VIXL_ASSERT(GetPrintRegLaneCount(format) == 1);
+  vregisters_[rt_code].NotifyRegisterLogged();
+  PrintVAccess(rt_code, format, "<-", address);
+}
+
+void Simulator::PrintWrite(int rt_code,
+                           PrintRegisterFormat format,
+                           uintptr_t address) {
+  // Because this trace doesn't represent a change to the source register's
+  // value, only print the relevant part of the value.
+  format = GetPrintRegPartial(format);
+  VIXL_ASSERT(GetPrintRegLaneCount(format) == 1);
+  registers_[rt_code].NotifyRegisterLogged();
+  PrintAccess(rt_code, format, "->", address);
+}
+
+void Simulator::PrintVWrite(int rt_code,
+                            PrintRegisterFormat format,
+                            uintptr_t address) {
+  // Because this trace doesn't represent a change to the source register's
+  // value, only print the relevant part of the value.
+  format = GetPrintRegPartial(format);
+  // It only makes sense to write scalar values here. Vectors are handled by
+  // PrintVStructAccess.
+  VIXL_ASSERT(GetPrintRegLaneCount(format) == 1);
+  PrintVAccess(rt_code, format, "->", address);
+}
 
 void Simulator::PrintTakenBranch(const Instruction* target) {
   fprintf(stream_,
@@ -1047,7 +1566,6 @@
           reinterpret_cast<uint64_t>(target));
 }
 
-
 // Visitors---------------------------------------------------------------------
 
 
@@ -1289,7 +1807,7 @@
 
 void Simulator::VisitAddSubImmediate(const Instruction* instr) {
   int64_t op2 = instr->GetImmAddSub()
-                << ((instr->GetShiftAddSub() == 1) ? 12 : 0);
+                << ((instr->GetImmAddSubShift() == 1) ? 12 : 0);
   AddSubHelper(instr, op2);
 }
 
@@ -1367,7 +1885,11 @@
 
 
 void Simulator::VisitLogicalImmediate(const Instruction* instr) {
-  LogicalHelper(instr, instr->GetImmLogical());
+  if (instr->GetImmLogical() == 0) {
+    VIXL_UNIMPLEMENTED();
+  } else {
+    LogicalHelper(instr, instr->GetImmLogical());
+  }
 }
 
 
@@ -1484,12 +2006,12 @@
     VIXL_ALIGNMENT_EXCEPTION();
   }
 
-  WriteRegister<T1>(rt, static_cast<T1>(Memory::Read<T2>(address)));
+  WriteRegister<T1>(rt, static_cast<T1>(MemRead<T2>(address)));
 
   // Approximate load-acquire by issuing a full barrier after the load.
   __sync_synchronize();
 
-  LogRead(address, rt, GetPrintRegisterFormat(element_size));
+  LogRead(rt, GetPrintRegisterFormat(element_size), address);
 }
 
 
@@ -1514,9 +2036,9 @@
   // Approximate store-release by issuing a full barrier after the load.
   __sync_synchronize();
 
-  Memory::Write<T>(address, ReadRegister<T>(rt));
+  MemWrite<T>(address, ReadRegister<T>(rt));
 
-  LogWrite(address, rt, GetPrintRegisterFormat(element_size));
+  LogWrite(rt, GetPrintRegisterFormat(element_size), address);
 }
 
 
@@ -1601,9 +2123,9 @@
   // Verify that the calculated address is available to the host.
   VIXL_ASSERT(address == addr_ptr);
 
-  WriteXRegister(dst, Memory::Read<uint64_t>(addr_ptr), NoRegLog);
+  WriteXRegister(dst, MemRead<uint64_t>(addr_ptr), NoRegLog);
   unsigned access_size = 1 << 3;
-  LogRead(addr_ptr, dst, GetPrintRegisterFormatForSize(access_size));
+  LogRead(dst, GetPrintRegisterFormatForSize(access_size), addr_ptr);
 }
 
 
@@ -1624,77 +2146,98 @@
   unsigned srcdst = instr->GetRt();
   uintptr_t address = AddressModeHelper(instr->GetRn(), offset, addrmode);
 
+  bool rt_is_vreg = false;
+  int extend_to_size = 0;
   LoadStoreOp op = static_cast<LoadStoreOp>(instr->Mask(LoadStoreMask));
   switch (op) {
     case LDRB_w:
-      WriteWRegister(srcdst, Memory::Read<uint8_t>(address), NoRegLog);
+      WriteWRegister(srcdst, MemRead<uint8_t>(address), NoRegLog);
+      extend_to_size = kWRegSizeInBytes;
       break;
     case LDRH_w:
-      WriteWRegister(srcdst, Memory::Read<uint16_t>(address), NoRegLog);
+      WriteWRegister(srcdst, MemRead<uint16_t>(address), NoRegLog);
+      extend_to_size = kWRegSizeInBytes;
       break;
     case LDR_w:
-      WriteWRegister(srcdst, Memory::Read<uint32_t>(address), NoRegLog);
+      WriteWRegister(srcdst, MemRead<uint32_t>(address), NoRegLog);
+      extend_to_size = kWRegSizeInBytes;
       break;
     case LDR_x:
-      WriteXRegister(srcdst, Memory::Read<uint64_t>(address), NoRegLog);
+      WriteXRegister(srcdst, MemRead<uint64_t>(address), NoRegLog);
+      extend_to_size = kXRegSizeInBytes;
       break;
     case LDRSB_w:
-      WriteWRegister(srcdst, Memory::Read<int8_t>(address), NoRegLog);
+      WriteWRegister(srcdst, MemRead<int8_t>(address), NoRegLog);
+      extend_to_size = kWRegSizeInBytes;
       break;
     case LDRSH_w:
-      WriteWRegister(srcdst, Memory::Read<int16_t>(address), NoRegLog);
+      WriteWRegister(srcdst, MemRead<int16_t>(address), NoRegLog);
+      extend_to_size = kWRegSizeInBytes;
       break;
     case LDRSB_x:
-      WriteXRegister(srcdst, Memory::Read<int8_t>(address), NoRegLog);
+      WriteXRegister(srcdst, MemRead<int8_t>(address), NoRegLog);
+      extend_to_size = kXRegSizeInBytes;
       break;
     case LDRSH_x:
-      WriteXRegister(srcdst, Memory::Read<int16_t>(address), NoRegLog);
+      WriteXRegister(srcdst, MemRead<int16_t>(address), NoRegLog);
+      extend_to_size = kXRegSizeInBytes;
       break;
     case LDRSW_x:
-      WriteXRegister(srcdst, Memory::Read<int32_t>(address), NoRegLog);
+      WriteXRegister(srcdst, MemRead<int32_t>(address), NoRegLog);
+      extend_to_size = kXRegSizeInBytes;
       break;
     case LDR_b:
-      WriteBRegister(srcdst, Memory::Read<uint8_t>(address), NoRegLog);
+      WriteBRegister(srcdst, MemRead<uint8_t>(address), NoRegLog);
+      rt_is_vreg = true;
       break;
     case LDR_h:
-      WriteHRegister(srcdst, Memory::Read<uint16_t>(address), NoRegLog);
+      WriteHRegister(srcdst, MemRead<uint16_t>(address), NoRegLog);
+      rt_is_vreg = true;
       break;
     case LDR_s:
-      WriteSRegister(srcdst, Memory::Read<float>(address), NoRegLog);
+      WriteSRegister(srcdst, MemRead<float>(address), NoRegLog);
+      rt_is_vreg = true;
       break;
     case LDR_d:
-      WriteDRegister(srcdst, Memory::Read<double>(address), NoRegLog);
+      WriteDRegister(srcdst, MemRead<double>(address), NoRegLog);
+      rt_is_vreg = true;
       break;
     case LDR_q:
-      WriteQRegister(srcdst, Memory::Read<qreg_t>(address), NoRegLog);
+      WriteQRegister(srcdst, MemRead<qreg_t>(address), NoRegLog);
+      rt_is_vreg = true;
       break;
 
     case STRB_w:
-      Memory::Write<uint8_t>(address, ReadWRegister(srcdst));
+      MemWrite<uint8_t>(address, ReadWRegister(srcdst));
       break;
     case STRH_w:
-      Memory::Write<uint16_t>(address, ReadWRegister(srcdst));
+      MemWrite<uint16_t>(address, ReadWRegister(srcdst));
       break;
     case STR_w:
-      Memory::Write<uint32_t>(address, ReadWRegister(srcdst));
+      MemWrite<uint32_t>(address, ReadWRegister(srcdst));
       break;
     case STR_x:
-      Memory::Write<uint64_t>(address, ReadXRegister(srcdst));
+      MemWrite<uint64_t>(address, ReadXRegister(srcdst));
       break;
     case STR_b:
-      Memory::Write<uint8_t>(address, ReadBRegister(srcdst));
+      MemWrite<uint8_t>(address, ReadBRegister(srcdst));
+      rt_is_vreg = true;
       break;
     case STR_h:
-      Memory::Write<uint16_t>(address, ReadHRegisterBits(srcdst));
+      MemWrite<uint16_t>(address, ReadHRegisterBits(srcdst));
+      rt_is_vreg = true;
       break;
     case STR_s:
-      Memory::Write<float>(address, ReadSRegister(srcdst));
+      MemWrite<float>(address, ReadSRegister(srcdst));
+      rt_is_vreg = true;
       break;
     case STR_d:
-      Memory::Write<double>(address, ReadDRegister(srcdst));
+      MemWrite<double>(address, ReadDRegister(srcdst));
+      rt_is_vreg = true;
       break;
     case STR_q:
-      Memory::Write<qreg_t>(address, ReadQRegister(srcdst));
+      MemWrite<qreg_t>(address, ReadQRegister(srcdst));
+      rt_is_vreg = true;
       break;
 
     // Ignore prfm hint instructions.
@@ -1705,22 +2248,25 @@
       VIXL_UNIMPLEMENTED();
   }
 
+  // Print a detailed trace (including the memory address).
+  bool extend = (extend_to_size != 0);
   unsigned access_size = 1 << instr->GetSizeLS();
+  unsigned result_size = extend ? extend_to_size : access_size;
+  PrintRegisterFormat print_format =
+      rt_is_vreg ? GetPrintRegisterFormatForSizeTryFP(result_size)
+                 : GetPrintRegisterFormatForSize(result_size);
+
   if (instr->IsLoad()) {
-    if ((op == LDR_s) || (op == LDR_d)) {
-      LogVRead(address, srcdst, GetPrintRegisterFormatForSizeFP(access_size));
-    } else if ((op == LDR_b) || (op == LDR_h) || (op == LDR_q)) {
-      LogVRead(address, srcdst, GetPrintRegisterFormatForSize(access_size));
+    if (rt_is_vreg) {
+      LogVRead(srcdst, print_format, address);
     } else {
-      LogRead(address, srcdst, GetPrintRegisterFormatForSize(access_size));
+      LogExtendingRead(srcdst, print_format, access_size, address);
     }
   } else if (instr->IsStore()) {
-    if ((op == STR_s) || (op == STR_d)) {
-      LogVWrite(address, srcdst, GetPrintRegisterFormatForSizeFP(access_size));
-    } else if ((op == STR_b) || (op == STR_h) || (op == STR_q)) {
-      LogVWrite(address, srcdst, GetPrintRegisterFormatForSize(access_size));
+    if (rt_is_vreg) {
+      LogVWrite(srcdst, print_format, address);
     } else {
-      LogWrite(address, srcdst, GetPrintRegisterFormatForSize(access_size));
+      LogWrite(srcdst, GetPrintRegisterFormatForSize(result_size), address);
     }
   } else {
     VIXL_ASSERT(op == PRFM);
@@ -1765,91 +2311,101 @@
   // 'rt' and 'rt2' can only be aliased for stores.
   VIXL_ASSERT(((op & LoadStorePairLBit) == 0) || (rt != rt2));
 
+  bool rt_is_vreg = false;
+  bool sign_extend = false;
   switch (op) {
     // Use NoRegLog to suppress the register trace (LOG_REGS, LOG_FP_REGS). We
     // will print a more detailed log.
     case LDP_w: {
-      WriteWRegister(rt, Memory::Read<uint32_t>(address), NoRegLog);
-      WriteWRegister(rt2, Memory::Read<uint32_t>(address2), NoRegLog);
+      WriteWRegister(rt, MemRead<uint32_t>(address), NoRegLog);
+      WriteWRegister(rt2, MemRead<uint32_t>(address2), NoRegLog);
       break;
     }
     case LDP_s: {
-      WriteSRegister(rt, Memory::Read<float>(address), NoRegLog);
-      WriteSRegister(rt2, Memory::Read<float>(address2), NoRegLog);
+      WriteSRegister(rt, MemRead<float>(address), NoRegLog);
+      WriteSRegister(rt2, MemRead<float>(address2), NoRegLog);
+      rt_is_vreg = true;
       break;
     }
     case LDP_x: {
-      WriteXRegister(rt, Memory::Read<uint64_t>(address), NoRegLog);
-      WriteXRegister(rt2, Memory::Read<uint64_t>(address2), NoRegLog);
+      WriteXRegister(rt, MemRead<uint64_t>(address), NoRegLog);
+      WriteXRegister(rt2, MemRead<uint64_t>(address2), NoRegLog);
       break;
     }
     case LDP_d: {
-      WriteDRegister(rt, Memory::Read<double>(address), NoRegLog);
-      WriteDRegister(rt2, Memory::Read<double>(address2), NoRegLog);
+      WriteDRegister(rt, MemRead<double>(address), NoRegLog);
+      WriteDRegister(rt2, MemRead<double>(address2), NoRegLog);
+      rt_is_vreg = true;
       break;
     }
     case LDP_q: {
-      WriteQRegister(rt, Memory::Read<qreg_t>(address), NoRegLog);
-      WriteQRegister(rt2, Memory::Read<qreg_t>(address2), NoRegLog);
+      WriteQRegister(rt, MemRead<qreg_t>(address), NoRegLog);
+      WriteQRegister(rt2, MemRead<qreg_t>(address2), NoRegLog);
+      rt_is_vreg = true;
       break;
     }
     case LDPSW_x: {
-      WriteXRegister(rt, Memory::Read<int32_t>(address), NoRegLog);
-      WriteXRegister(rt2, Memory::Read<int32_t>(address2), NoRegLog);
+      WriteXRegister(rt, MemRead<int32_t>(address), NoRegLog);
+      WriteXRegister(rt2, MemRead<int32_t>(address2), NoRegLog);
+      sign_extend = true;
       break;
     }
     case STP_w: {
-      Memory::Write<uint32_t>(address, ReadWRegister(rt));
-      Memory::Write<uint32_t>(address2, ReadWRegister(rt2));
+      MemWrite<uint32_t>(address, ReadWRegister(rt));
+      MemWrite<uint32_t>(address2, ReadWRegister(rt2));
       break;
     }
     case STP_s: {
-      Memory::Write<float>(address, ReadSRegister(rt));
-      Memory::Write<float>(address2, ReadSRegister(rt2));
+      MemWrite<float>(address, ReadSRegister(rt));
+      MemWrite<float>(address2, ReadSRegister(rt2));
+      rt_is_vreg = true;
       break;
     }
     case STP_x: {
-      Memory::Write<uint64_t>(address, ReadXRegister(rt));
-      Memory::Write<uint64_t>(address2, ReadXRegister(rt2));
+      MemWrite<uint64_t>(address, ReadXRegister(rt));
+      MemWrite<uint64_t>(address2, ReadXRegister(rt2));
       break;
     }
     case STP_d: {
-      Memory::Write<double>(address, ReadDRegister(rt));
-      Memory::Write<double>(address2, ReadDRegister(rt2));
+      MemWrite<double>(address, ReadDRegister(rt));
+      MemWrite<double>(address2, ReadDRegister(rt2));
+      rt_is_vreg = true;
       break;
     }
     case STP_q: {
-      Memory::Write<qreg_t>(address, ReadQRegister(rt));
-      Memory::Write<qreg_t>(address2, ReadQRegister(rt2));
+      MemWrite<qreg_t>(address, ReadQRegister(rt));
+      MemWrite<qreg_t>(address2, ReadQRegister(rt2));
+      rt_is_vreg = true;
       break;
     }
     default:
       VIXL_UNREACHABLE();
   }
 
-  // Print a detailed trace (including the memory address) instead of the basic
-  // register:value trace generated by set_*reg().
+  // Print a detailed trace (including the memory address).
+  unsigned result_size = sign_extend ? kXRegSizeInBytes : element_size;
+  PrintRegisterFormat print_format =
+      rt_is_vreg ? GetPrintRegisterFormatForSizeTryFP(result_size)
+                 : GetPrintRegisterFormatForSize(result_size);
+
   if (instr->IsLoad()) {
-    if ((op == LDP_s) || (op == LDP_d)) {
-      LogVRead(address, rt, GetPrintRegisterFormatForSizeFP(element_size));
-      LogVRead(address2, rt2, GetPrintRegisterFormatForSizeFP(element_size));
-    } else if (op == LDP_q) {
-      LogVRead(address, rt, GetPrintRegisterFormatForSize(element_size));
-      LogVRead(address2, rt2, GetPrintRegisterFormatForSize(element_size));
+    if (rt_is_vreg) {
+      LogVRead(rt, print_format, address);
+      LogVRead(rt2, print_format, address2);
+    } else if (sign_extend) {
+      LogExtendingRead(rt, print_format, element_size, address);
+      LogExtendingRead(rt2, print_format, element_size, address2);
     } else {
-      LogRead(address, rt, GetPrintRegisterFormatForSize(element_size));
-      LogRead(address2, rt2, GetPrintRegisterFormatForSize(element_size));
+      LogRead(rt, print_format, address);
+      LogRead(rt2, print_format, address2);
     }
   } else {
-    if ((op == STP_s) || (op == STP_d)) {
-      LogVWrite(address, rt, GetPrintRegisterFormatForSizeFP(element_size));
-      LogVWrite(address2, rt2, GetPrintRegisterFormatForSizeFP(element_size));
-    } else if (op == STP_q) {
-      LogVWrite(address, rt, GetPrintRegisterFormatForSize(element_size));
-      LogVWrite(address2, rt2, GetPrintRegisterFormatForSize(element_size));
+    if (rt_is_vreg) {
+      LogVWrite(rt, print_format, address);
+      LogVWrite(rt2, print_format, address2);
     } else {
-      LogWrite(address, rt, GetPrintRegisterFormatForSize(element_size));
-      LogWrite(address2, rt2, GetPrintRegisterFormatForSize(element_size));
+      LogWrite(rt, print_format, address);
+      LogWrite(rt2, print_format, address2);
     }
   }
 
@@ -1878,7 +2434,7 @@
   // associated with that location, even if the compare subsequently fails.
   local_monitor_.Clear();
 
-  T data = Memory::Read<T>(address);
+  T data = MemRead<T>(address);
   if (is_acquire) {
     // Approximate load-acquire by issuing a full barrier after the load.
     __sync_synchronize();
@@ -1889,11 +2445,11 @@
       // Approximate store-release by issuing a full barrier before the store.
       __sync_synchronize();
     }
-    Memory::Write<T>(address, newvalue);
-    LogWrite(address, rt, GetPrintRegisterFormatForSize(element_size));
+    MemWrite<T>(address, newvalue);
+    LogWrite(rt, GetPrintRegisterFormatForSize(element_size), address);
   }
-  WriteRegister<T>(rs, data);
-  LogRead(address, rs, GetPrintRegisterFormatForSize(element_size));
+  WriteRegister<T>(rs, data, NoRegLog);
+  LogRead(rs, GetPrintRegisterFormatForSize(element_size), address);
 }
 
 
@@ -1904,7 +2460,7 @@
   unsigned rt = instr->GetRt();
   unsigned rn = instr->GetRn();
 
-  VIXL_ASSERT((rs % 2 == 0) && (rs % 2 == 0));
+  VIXL_ASSERT((rs % 2 == 0) && (rt % 2 == 0));
 
   unsigned element_size = sizeof(T);
   uint64_t address = ReadRegister<uint64_t>(rn, Reg31IsStackPointer);
@@ -1925,8 +2481,8 @@
   // associated with that location, even if the compare subsequently fails.
   local_monitor_.Clear();
 
-  T data_high = Memory::Read<T>(address);
-  T data_low = Memory::Read<T>(address2);
+  T data_low = MemRead<T>(address);
+  T data_high = MemRead<T>(address2);
 
   if (is_acquire) {
     // Approximate load-acquire by issuing a full barrier after the load.
@@ -1941,22 +2497,82 @@
       __sync_synchronize();
     }
 
-    Memory::Write<T>(address, newvalue_high);
-    Memory::Write<T>(address2, newvalue_low);
+    MemWrite<T>(address, newvalue_low);
+    MemWrite<T>(address2, newvalue_high);
   }
 
-  WriteRegister<T>(rs + 1, data_high);
-  WriteRegister<T>(rs, data_low);
+  WriteRegister<T>(rs + 1, data_high, NoRegLog);
+  WriteRegister<T>(rs, data_low, NoRegLog);
 
-  LogRead(address, rs + 1, GetPrintRegisterFormatForSize(element_size));
-  LogRead(address2, rs, GetPrintRegisterFormatForSize(element_size));
+  PrintRegisterFormat format = GetPrintRegisterFormatForSize(element_size);
+  LogRead(rs, format, address);
+  LogRead(rs + 1, format, address2);
 
   if (same) {
-    LogWrite(address, rt + 1, GetPrintRegisterFormatForSize(element_size));
-    LogWrite(address2, rt, GetPrintRegisterFormatForSize(element_size));
+    LogWrite(rt, format, address);
+    LogWrite(rt + 1, format, address2);
   }
 }
 
+bool Simulator::CanReadMemory(uintptr_t address, size_t size) {
+  // To simulate fault-tolerant loads, we need to know what host addresses we
+  // can access without generating a real fault. One way to do that is to
+  // attempt to `write()` the memory to a placeholder pipe[1]. This is more
+  // portable and less intrusive than using (global) signal handlers.
+  //
+  // [1]: https://stackoverflow.com/questions/7134590
+
+  size_t written = 0;
+  bool can_read = true;
+  // `write` will normally return after one invocation, but it is allowed to
+  // handle only part of the operation, so wrap it in a loop.
+  while (can_read && (written < size)) {
+    ssize_t result = write(placeholder_pipe_fd_[1],
+                           reinterpret_cast<void*>(address + written),
+                           size - written);
+    if (result > 0) {
+      written += result;
+    } else {
+      switch (result) {
+        case -EPERM:
+        case -EFAULT:
+          // The address range is not accessible.
+          // `write` is supposed to return -EFAULT in this case, but in practice
+          // it seems to return -EPERM, so we accept that too.
+          can_read = false;
+          break;
+        case -EINTR:
+          // The call was interrupted by a signal. Just try again.
+          break;
+        default:
+          // Any other error is fatal.
+          VIXL_ABORT();
+      }
+    }
+  }
+  // Drain the read side of the pipe. If we don't do this, we'll leak memory as
+  // the placeholder data is buffered. As before, we expect to drain the whole
+  // write in one invocation, but cannot guarantee that, so we wrap it in a
+  // loop. This function is primarily intended to implement SVE fault-tolerant
+  // loads, so the maximum Z register size is a good default buffer size.
+  char buffer[kZRegMaxSizeInBytes];
+  while (written > 0) {
+    ssize_t result = read(placeholder_pipe_fd_[0],
+                          reinterpret_cast<void*>(buffer),
+                          sizeof(buffer));
+    // `read` blocks, and returns 0 only at EOF. We should not hit EOF until
+    // we've read everything that was written, so treat 0 as an error.
+    if (result > 0) {
+      VIXL_ASSERT(static_cast<size_t>(result) <= written);
+      written -= result;
+    } else {
+      // For -EINTR, just try again. We can't handle any other error.
+      VIXL_CHECK(result == -EINTR);
+    }
+  }
+
+  return can_read;
+}
 
 void Simulator::PrintExclusiveAccessWarning() {
   if (print_exclusive_access_warning_) {
@@ -1971,7 +2587,6 @@
   }
 }
 
-
 void Simulator::VisitLoadStoreExclusive(const Instruction* instr) {
   LoadStoreExclusive op =
       static_cast<LoadStoreExclusive>(instr->Mask(LoadStoreExclusiveMask));
@@ -2045,44 +2660,51 @@
 
         // Use NoRegLog to suppress the register trace (LOG_REGS, LOG_FP_REGS).
         // We will print a more detailed log.
+        unsigned reg_size = 0;
         switch (op) {
           case LDXRB_w:
           case LDAXRB_w:
           case LDARB_w:
           case LDLARB:
-            WriteWRegister(rt, Memory::Read<uint8_t>(address), NoRegLog);
+            WriteWRegister(rt, MemRead<uint8_t>(address), NoRegLog);
+            reg_size = kWRegSizeInBytes;
             break;
           case LDXRH_w:
           case LDAXRH_w:
           case LDARH_w:
           case LDLARH:
-            WriteWRegister(rt, Memory::Read<uint16_t>(address), NoRegLog);
+            WriteWRegister(rt, MemRead<uint16_t>(address), NoRegLog);
+            reg_size = kWRegSizeInBytes;
             break;
           case LDXR_w:
           case LDAXR_w:
           case LDAR_w:
           case LDLAR_w:
-            WriteWRegister(rt, Memory::Read<uint32_t>(address), NoRegLog);
+            WriteWRegister(rt, MemRead<uint32_t>(address), NoRegLog);
+            reg_size = kWRegSizeInBytes;
             break;
           case LDXR_x:
           case LDAXR_x:
           case LDAR_x:
           case LDLAR_x:
-            WriteXRegister(rt, Memory::Read<uint64_t>(address), NoRegLog);
+            WriteXRegister(rt, MemRead<uint64_t>(address), NoRegLog);
+            reg_size = kXRegSizeInBytes;
             break;
           case LDXP_w:
           case LDAXP_w:
-            WriteWRegister(rt, Memory::Read<uint32_t>(address), NoRegLog);
+            WriteWRegister(rt, MemRead<uint32_t>(address), NoRegLog);
             WriteWRegister(rt2,
-                           Memory::Read<uint32_t>(address + element_size),
+                           MemRead<uint32_t>(address + element_size),
                            NoRegLog);
+            reg_size = kWRegSizeInBytes;
             break;
           case LDXP_x:
           case LDAXP_x:
-            WriteXRegister(rt, Memory::Read<uint64_t>(address), NoRegLog);
+            WriteXRegister(rt, MemRead<uint64_t>(address), NoRegLog);
             WriteXRegister(rt2,
-                           Memory::Read<uint64_t>(address + element_size),
+                           MemRead<uint64_t>(address + element_size),
                            NoRegLog);
+            reg_size = kXRegSizeInBytes;
             break;
           default:
             VIXL_UNREACHABLE();
@@ -2093,11 +2715,10 @@
           __sync_synchronize();
         }
 
-        LogRead(address, rt, GetPrintRegisterFormatForSize(element_size));
+        PrintRegisterFormat format = GetPrintRegisterFormatForSize(reg_size);
+        LogExtendingRead(rt, format, element_size, address);
         if (is_pair) {
-          LogRead(address + element_size,
-                  rt2,
-                  GetPrintRegisterFormatForSize(element_size));
+          LogExtendingRead(rt2, format, element_size, address + element_size);
         }
       } else {
         if (is_acquire_release) {
@@ -2125,47 +2746,45 @@
             case STLXRB_w:
             case STLRB_w:
             case STLLRB:
-              Memory::Write<uint8_t>(address, ReadWRegister(rt));
+              MemWrite<uint8_t>(address, ReadWRegister(rt));
               break;
             case STXRH_w:
             case STLXRH_w:
             case STLRH_w:
             case STLLRH:
-              Memory::Write<uint16_t>(address, ReadWRegister(rt));
+              MemWrite<uint16_t>(address, ReadWRegister(rt));
               break;
             case STXR_w:
             case STLXR_w:
             case STLR_w:
             case STLLR_w:
-              Memory::Write<uint32_t>(address, ReadWRegister(rt));
+              MemWrite<uint32_t>(address, ReadWRegister(rt));
               break;
             case STXR_x:
             case STLXR_x:
             case STLR_x:
             case STLLR_x:
-              Memory::Write<uint64_t>(address, ReadXRegister(rt));
+              MemWrite<uint64_t>(address, ReadXRegister(rt));
               break;
             case STXP_w:
             case STLXP_w:
-              Memory::Write<uint32_t>(address, ReadWRegister(rt));
-              Memory::Write<uint32_t>(address + element_size,
-                                      ReadWRegister(rt2));
+              MemWrite<uint32_t>(address, ReadWRegister(rt));
+              MemWrite<uint32_t>(address + element_size, ReadWRegister(rt2));
               break;
             case STXP_x:
             case STLXP_x:
-              Memory::Write<uint64_t>(address, ReadXRegister(rt));
-              Memory::Write<uint64_t>(address + element_size,
-                                      ReadXRegister(rt2));
+              MemWrite<uint64_t>(address, ReadXRegister(rt));
+              MemWrite<uint64_t>(address + element_size, ReadXRegister(rt2));
               break;
             default:
               VIXL_UNREACHABLE();
           }
 
-          LogWrite(address, rt, GetPrintRegisterFormatForSize(element_size));
+          PrintRegisterFormat format =
+              GetPrintRegisterFormatForSize(element_size);
+          LogWrite(rt, format, address);
           if (is_pair) {
-            LogWrite(address + element_size,
-                     rt2,
-                     GetPrintRegisterFormatForSize(element_size));
+            LogWrite(rt2, format, address + element_size);
           }
         }
       }
@@ -2188,7 +2807,7 @@
 
   T value = ReadRegister<T>(rs);
 
-  T data = Memory::Read<T>(address);
+  T data = MemRead<T>(address);
 
   if (is_acquire) {
     // Approximate load-acquire by issuing a full barrier after the load.
@@ -2229,11 +2848,12 @@
     __sync_synchronize();
   }
 
-  Memory::Write<T>(address, result);
+  MemWrite<T>(address, result);
   WriteRegister<T>(rt, data, NoRegLog);
 
-  LogRead(address, rt, GetPrintRegisterFormatForSize(element_size));
-  LogWrite(address, rs, GetPrintRegisterFormatForSize(element_size));
+  PrintRegisterFormat format = GetPrintRegisterFormatForSize(element_size);
+  LogRead(rt, format, address);
+  LogWrite(rs, format, address);
 }
 
 template <typename T>
@@ -2250,7 +2870,7 @@
 
   CheckIsValidUnalignedAtomicAccess(rn, address, element_size);
 
-  T data = Memory::Read<T>(address);
+  T data = MemRead<T>(address);
   if (is_acquire) {
     // Approximate load-acquire by issuing a full barrier after the load.
     __sync_synchronize();
@@ -2260,12 +2880,13 @@
     // Approximate store-release by issuing a full barrier before the store.
     __sync_synchronize();
   }
-  Memory::Write<T>(address, ReadRegister<T>(rs));
+  MemWrite<T>(address, ReadRegister<T>(rs));
 
   WriteRegister<T>(rt, data);
 
-  LogRead(address, rt, GetPrintRegisterFormat(element_size));
-  LogWrite(address, rs, GetPrintRegisterFormat(element_size));
+  PrintRegisterFormat format = GetPrintRegisterFormatForSize(element_size);
+  LogRead(rt, format, address);
+  LogWrite(rs, format, address);
 }
 
 template <typename T>
@@ -2278,12 +2899,12 @@
 
   CheckIsValidUnalignedAtomicAccess(rn, address, element_size);
 
-  WriteRegister<T>(rt, Memory::Read<T>(address));
+  WriteRegister<T>(rt, MemRead<T>(address));
 
   // Approximate load-acquire by issuing a full barrier after the load.
   __sync_synchronize();
 
-  LogRead(address, rt, GetPrintRegisterFormat(element_size));
+  LogRead(rt, GetPrintRegisterFormatForSize(element_size), address);
 }
 
 #define ATOMIC_MEMORY_SIMPLE_UINT_LIST(V) \
@@ -2399,28 +3020,28 @@
     // Use NoRegLog to suppress the register trace (LOG_REGS, LOG_VREGS), then
     // print a more detailed log.
     case LDR_w_lit:
-      WriteWRegister(rt, Memory::Read<uint32_t>(address), NoRegLog);
-      LogRead(address, rt, kPrintWReg);
+      WriteWRegister(rt, MemRead<uint32_t>(address), NoRegLog);
+      LogRead(rt, kPrintWReg, address);
       break;
     case LDR_x_lit:
-      WriteXRegister(rt, Memory::Read<uint64_t>(address), NoRegLog);
-      LogRead(address, rt, kPrintXReg);
+      WriteXRegister(rt, MemRead<uint64_t>(address), NoRegLog);
+      LogRead(rt, kPrintXReg, address);
       break;
     case LDR_s_lit:
-      WriteSRegister(rt, Memory::Read<float>(address), NoRegLog);
-      LogVRead(address, rt, kPrintSReg);
+      WriteSRegister(rt, MemRead<float>(address), NoRegLog);
+      LogVRead(rt, kPrintSRegFP, address);
       break;
     case LDR_d_lit:
-      WriteDRegister(rt, Memory::Read<double>(address), NoRegLog);
-      LogVRead(address, rt, kPrintDReg);
+      WriteDRegister(rt, MemRead<double>(address), NoRegLog);
+      LogVRead(rt, kPrintDRegFP, address);
       break;
     case LDR_q_lit:
-      WriteQRegister(rt, Memory::Read<qreg_t>(address), NoRegLog);
-      LogVRead(address, rt, kPrintReg1Q);
+      WriteQRegister(rt, MemRead<qreg_t>(address), NoRegLog);
+      LogVRead(rt, kPrintReg1Q, address);
       break;
     case LDRSW_x_lit:
-      WriteXRegister(rt, Memory::Read<int32_t>(address), NoRegLog);
-      LogRead(address, rt, kPrintWReg);
+      WriteXRegister(rt, MemRead<int32_t>(address), NoRegLog);
+      LogExtendingRead(rt, kPrintXReg, kWRegSizeInBytes, address);
       break;
 
     // Ignore prfm hint instructions.
@@ -2795,40 +3416,6 @@
 }
 
 
-// The algorithm used is adapted from the one described in section 8.2 of
-//   Hacker's Delight, by Henry S. Warren, Jr.
-template <typename T>
-static int64_t MultiplyHigh(T u, T v) {
-  uint64_t u0, v0, w0, u1, v1, w1, w2, t;
-  uint64_t sign_mask = UINT64_C(0x8000000000000000);
-  uint64_t sign_ext = 0;
-  if (std::numeric_limits<T>::is_signed) {
-    sign_ext = UINT64_C(0xffffffff00000000);
-  }
-
-  VIXL_ASSERT(sizeof(u) == sizeof(uint64_t));
-  VIXL_ASSERT(sizeof(u) == sizeof(u0));
-
-  u0 = u & 0xffffffff;
-  u1 = u >> 32 | (((u & sign_mask) != 0) ? sign_ext : 0);
-  v0 = v & 0xffffffff;
-  v1 = v >> 32 | (((v & sign_mask) != 0) ? sign_ext : 0);
-
-  w0 = u0 * v0;
-  t = u1 * v0 + (w0 >> 32);
-
-  w1 = t & 0xffffffff;
-  w2 = t >> 32 | (((t & sign_mask) != 0) ? sign_ext : 0);
-  w1 = u0 * v1 + w1;
-  w1 = w1 >> 32 | (((w1 & sign_mask) != 0) ? sign_ext : 0);
-
-  uint64_t value = u1 * v1 + w2 + w1;
-  int64_t result;
-  memcpy(&result, &value, sizeof(result));
-  return result;
-}
-
-
 void Simulator::VisitDataProcessing3Source(const Instruction* instr) {
   unsigned reg_size = instr->GetSixtyFourBits() ? kXRegSize : kWRegSize;
 
@@ -2864,12 +3451,13 @@
       result = ReadXRegister(instr->GetRa()) - (rn_u32 * rm_u32);
       break;
     case UMULH_x:
-      result = MultiplyHigh(ReadRegister<uint64_t>(instr->GetRn()),
-                            ReadRegister<uint64_t>(instr->GetRm()));
+      result =
+          internal::MultiplyHigh<64>(ReadRegister<uint64_t>(instr->GetRn()),
+                                     ReadRegister<uint64_t>(instr->GetRm()));
       break;
     case SMULH_x:
-      result = MultiplyHigh(ReadXRegister(instr->GetRn()),
-                            ReadXRegister(instr->GetRm()));
+      result = internal::MultiplyHigh<64>(ReadXRegister(instr->GetRn()),
+                                          ReadXRegister(instr->GetRm()));
       break;
     default:
       VIXL_UNIMPLEMENTED();
@@ -2936,9 +3524,10 @@
   unsigned reg_size = (instr->GetSixtyFourBits() == 1) ? kXRegSize : kWRegSize;
   uint64_t low_res =
       static_cast<uint64_t>(ReadRegister(reg_size, instr->GetRm())) >> lsb;
-  uint64_t high_res =
-      (lsb == 0) ? 0 : ReadRegister<uint64_t>(reg_size, instr->GetRn())
-                           << (reg_size - lsb);
+  uint64_t high_res = (lsb == 0)
+                          ? 0
+                          : ReadRegister<uint64_t>(reg_size, instr->GetRn())
+                                << (reg_size - lsb);
   WriteRegister(reg_size, instr->GetRd(), low_res | high_res);
 }
 
@@ -3837,9 +4426,9 @@
     case CVAP:
     case CVADP:
     case CIVAC: {
-      // Perform a dummy memory access to ensure that we have read access
+      // Perform a placeholder memory access to ensure that we have read access
       // to the specified address.
-      volatile uint8_t y = Memory::Read<uint8_t>(val);
+      volatile uint8_t y = MemRead<uint8_t>(val);
       USE(y);
       // TODO: Implement "case ZVA:".
       break;
@@ -3948,8 +4537,8 @@
             break;
           case RNDR:
           case RNDRRS: {
-            uint64_t high = jrand48(rndr_state_);
-            uint64_t low = jrand48(rndr_state_);
+            uint64_t high = jrand48(rand_state_);
+            uint64_t low = jrand48(rand_state_);
             uint64_t rand_num = (high << 32) | (low & 0xffffffff);
             WriteXRegister(instr->GetRt(), rand_num);
             // Simulate successful random number generation.
@@ -4530,10 +5119,10 @@
         fminnm(vf, rd, rn, rm);
         break;
       case NEON_FMLA:
-        fmla(vf, rd, rn, rm);
+        fmla(vf, rd, rd, rn, rm);
         break;
       case NEON_FMLS:
-        fmls(vf, rd, rn, rm);
+        fmls(vf, rd, rd, rn, rm);
         break;
       case NEON_FMULX:
         fmulx(vf, rd, rn, rm);
@@ -4624,10 +5213,10 @@
         cmptst(vf, rd, rn, rm);
         break;
       case NEON_MLS:
-        mls(vf, rd, rn, rm);
+        mls(vf, rd, rd, rn, rm);
         break;
       case NEON_MLA:
-        mla(vf, rd, rn, rm);
+        mla(vf, rd, rd, rn, rm);
         break;
       case NEON_MUL:
         mul(vf, rd, rn, rm);
@@ -4754,13 +5343,11 @@
     B(vf, rd, rn, rm); \
     break;
     SIM_FUNC(FMAXNM, fmaxnm);
-    SIM_FUNC(FMLA, fmla);
     SIM_FUNC(FADD, fadd);
     SIM_FUNC(FMULX, fmulx);
     SIM_FUNC(FMAX, fmax);
     SIM_FUNC(FRECPS, frecps);
     SIM_FUNC(FMINNM, fminnm);
-    SIM_FUNC(FMLS, fmls);
     SIM_FUNC(FSUB, fsub);
     SIM_FUNC(FMIN, fmin);
     SIM_FUNC(FRSQRTS, frsqrts);
@@ -4773,6 +5360,12 @@
     SIM_FUNC(FABD, fabd);
     SIM_FUNC(FMINP, fminp);
 #undef SIM_FUNC
+    case NEON_FMLA_H:
+      fmla(vf, rd, rd, rn, rm);
+      break;
+    case NEON_FMLS_H:
+      fmls(vf, rd, rd, rn, rm);
+      break;
     case NEON_FCMEQ_H:
       fcmp(vf, rd, rn, rm, eq);
       break;
@@ -4803,7 +5396,7 @@
   VectorFormat vf = nfd.GetVectorFormat();
   if (instr->Mask(NEON3SameExtraFCMLAMask) == NEON_FCMLA) {
     rot = instr->GetImmRotFcmlaVec();
-    fcmla(vf, rd, rn, rm, rot);
+    fcmla(vf, rd, rn, rm, rd, rot);
   } else if (instr->Mask(NEON3SameExtraFCADDMask) == NEON_FCADD) {
     rot = instr->GetImmRotFcadd();
     fcadd(vf, rd, rn, rm, rot);
@@ -5347,7 +5940,8 @@
     reg[i] = (instr->GetRt() + i) % kNumberOfVRegisters;
     addr[i] = addr_base + (i * reg_size);
   }
-  int count = 1;
+  int struct_parts = 1;
+  int reg_count = 1;
   bool log_read = true;
 
   // Bit 23 determines whether this is an offset or post-index addressing mode.
@@ -5363,17 +5957,17 @@
     case NEON_LD1_4v:
     case NEON_LD1_4v_post:
       ld1(vf, ReadVRegister(reg[3]), addr[3]);
-      count++;
+      reg_count++;
       VIXL_FALLTHROUGH();
     case NEON_LD1_3v:
     case NEON_LD1_3v_post:
       ld1(vf, ReadVRegister(reg[2]), addr[2]);
-      count++;
+      reg_count++;
       VIXL_FALLTHROUGH();
     case NEON_LD1_2v:
     case NEON_LD1_2v_post:
       ld1(vf, ReadVRegister(reg[1]), addr[1]);
-      count++;
+      reg_count++;
       VIXL_FALLTHROUGH();
     case NEON_LD1_1v:
     case NEON_LD1_1v_post:
@@ -5382,17 +5976,17 @@
     case NEON_ST1_4v:
     case NEON_ST1_4v_post:
       st1(vf, ReadVRegister(reg[3]), addr[3]);
-      count++;
+      reg_count++;
       VIXL_FALLTHROUGH();
     case NEON_ST1_3v:
     case NEON_ST1_3v_post:
       st1(vf, ReadVRegister(reg[2]), addr[2]);
-      count++;
+      reg_count++;
       VIXL_FALLTHROUGH();
     case NEON_ST1_2v:
     case NEON_ST1_2v_post:
       st1(vf, ReadVRegister(reg[1]), addr[1]);
-      count++;
+      reg_count++;
       VIXL_FALLTHROUGH();
     case NEON_ST1_1v:
     case NEON_ST1_1v_post:
@@ -5402,12 +5996,14 @@
     case NEON_LD2_post:
     case NEON_LD2:
       ld2(vf, ReadVRegister(reg[0]), ReadVRegister(reg[1]), addr[0]);
-      count = 2;
+      struct_parts = 2;
+      reg_count = 2;
       break;
     case NEON_ST2:
     case NEON_ST2_post:
       st2(vf, ReadVRegister(reg[0]), ReadVRegister(reg[1]), addr[0]);
-      count = 2;
+      struct_parts = 2;
+      reg_count = 2;
       log_read = false;
       break;
     case NEON_LD3_post:
@@ -5417,7 +6013,8 @@
           ReadVRegister(reg[1]),
           ReadVRegister(reg[2]),
           addr[0]);
-      count = 3;
+      struct_parts = 3;
+      reg_count = 3;
       break;
     case NEON_ST3:
     case NEON_ST3_post:
@@ -5426,7 +6023,8 @@
           ReadVRegister(reg[1]),
           ReadVRegister(reg[2]),
           addr[0]);
-      count = 3;
+      struct_parts = 3;
+      reg_count = 3;
       log_read = false;
       break;
     case NEON_ST4:
@@ -5437,7 +6035,8 @@
           ReadVRegister(reg[2]),
           ReadVRegister(reg[3]),
           addr[0]);
-      count = 4;
+      struct_parts = 4;
+      reg_count = 4;
       log_read = false;
       break;
     case NEON_LD4_post:
@@ -5448,22 +6047,31 @@
           ReadVRegister(reg[2]),
           ReadVRegister(reg[3]),
           addr[0]);
-      count = 4;
+      struct_parts = 4;
+      reg_count = 4;
       break;
     default:
       VIXL_UNIMPLEMENTED();
   }
 
-  // Explicitly log the register update whilst we have type information.
-  for (int i = 0; i < count; i++) {
-    // For de-interleaving loads, only print the base address.
-    int lane_size = LaneSizeInBytesFromFormat(vf);
-    PrintRegisterFormat format = GetPrintRegisterFormatTryFP(
-        GetPrintRegisterFormatForSize(reg_size, lane_size));
+  bool do_trace = log_read ? ShouldTraceVRegs() : ShouldTraceWrites();
+  if (do_trace) {
+    PrintRegisterFormat print_format =
+        GetPrintRegisterFormatTryFP(GetPrintRegisterFormat(vf));
+    const char* op;
     if (log_read) {
-      LogVRead(addr_base, reg[i], format);
+      op = "<-";
     } else {
-      LogVWrite(addr_base, reg[i], format);
+      op = "->";
+      // Stores don't represent a change to the source register's value, so only
+      // print the relevant part of the value.
+      print_format = GetPrintRegPartial(print_format);
+    }
+
+    VIXL_ASSERT((struct_parts == reg_count) || (struct_parts == 1));
+    for (int s = reg_count - struct_parts; s >= 0; s -= struct_parts) {
+      uintptr_t address = addr_base + (s * RegisterSizeInBytesFromFormat(vf));
+      PrintVStructAccess(reg[s], struct_parts, print_format, op, address);
     }
   }
 
@@ -5471,7 +6079,7 @@
     int rm = instr->GetRm();
     // The immediate post index addressing mode is indicated by rm = 31.
     // The immediate is implied by the number of vector registers used.
-    addr_base += (rm == 31) ? RegisterSizeInBytesFromFormat(vf) * count
+    addr_base += (rm == 31) ? (RegisterSizeInBytesFromFormat(vf) * reg_count)
                             : ReadXRegister(rm);
     WriteXRegister(instr->GetRn(), addr_base);
   } else {
@@ -5507,6 +6115,8 @@
   // and PostIndex addressing.
   bool do_load = false;
 
+  bool replicating = false;
+
   NEONFormatDecoder nfd(instr, NEONFormatDecoder::LoadStoreFormatMap());
   VectorFormat vf_t = nfd.GetVectorFormat();
 
@@ -5581,99 +6191,67 @@
     }
 
     case NEON_LD1R:
-    case NEON_LD1R_post: {
-      vf = vf_t;
-      ld1r(vf, ReadVRegister(rt), addr);
-      do_load = true;
-      break;
-    }
-
+    case NEON_LD1R_post:
     case NEON_LD2R:
-    case NEON_LD2R_post: {
-      vf = vf_t;
-      int rt2 = (rt + 1) % kNumberOfVRegisters;
-      ld2r(vf, ReadVRegister(rt), ReadVRegister(rt2), addr);
-      do_load = true;
-      break;
-    }
-
+    case NEON_LD2R_post:
     case NEON_LD3R:
-    case NEON_LD3R_post: {
-      vf = vf_t;
-      int rt2 = (rt + 1) % kNumberOfVRegisters;
-      int rt3 = (rt2 + 1) % kNumberOfVRegisters;
-      ld3r(vf, ReadVRegister(rt), ReadVRegister(rt2), ReadVRegister(rt3), addr);
-      do_load = true;
-      break;
-    }
-
+    case NEON_LD3R_post:
     case NEON_LD4R:
-    case NEON_LD4R_post: {
+    case NEON_LD4R_post:
       vf = vf_t;
-      int rt2 = (rt + 1) % kNumberOfVRegisters;
-      int rt3 = (rt2 + 1) % kNumberOfVRegisters;
-      int rt4 = (rt3 + 1) % kNumberOfVRegisters;
-      ld4r(vf,
-           ReadVRegister(rt),
-           ReadVRegister(rt2),
-           ReadVRegister(rt3),
-           ReadVRegister(rt4),
-           addr);
       do_load = true;
+      replicating = true;
       break;
-    }
+
     default:
       VIXL_UNIMPLEMENTED();
   }
 
-  PrintRegisterFormat print_format =
-      GetPrintRegisterFormatTryFP(GetPrintRegisterFormat(vf));
-  // Make sure that the print_format only includes a single lane.
-  print_format =
-      static_cast<PrintRegisterFormat>(print_format & ~kPrintRegAsVectorMask);
-
-  int esize = LaneSizeInBytesFromFormat(vf);
   int index_shift = LaneSizeInBytesLog2FromFormat(vf);
   int lane = instr->GetNEONLSIndex(index_shift);
-  int scale = 0;
+  int reg_count = 0;
   int rt2 = (rt + 1) % kNumberOfVRegisters;
   int rt3 = (rt2 + 1) % kNumberOfVRegisters;
   int rt4 = (rt3 + 1) % kNumberOfVRegisters;
   switch (instr->Mask(NEONLoadStoreSingleLenMask)) {
     case NEONLoadStoreSingle1:
-      scale = 1;
-      if (do_load) {
+      reg_count = 1;
+      if (replicating) {
+        VIXL_ASSERT(do_load);
+        ld1r(vf, ReadVRegister(rt), addr);
+      } else if (do_load) {
         ld1(vf, ReadVRegister(rt), lane, addr);
-        LogVRead(addr, rt, print_format, lane);
       } else {
         st1(vf, ReadVRegister(rt), lane, addr);
-        LogVWrite(addr, rt, print_format, lane);
       }
       break;
     case NEONLoadStoreSingle2:
-      scale = 2;
-      if (do_load) {
+      reg_count = 2;
+      if (replicating) {
+        VIXL_ASSERT(do_load);
+        ld2r(vf, ReadVRegister(rt), ReadVRegister(rt2), addr);
+      } else if (do_load) {
         ld2(vf, ReadVRegister(rt), ReadVRegister(rt2), lane, addr);
-        LogVRead(addr, rt, print_format, lane);
-        LogVRead(addr + esize, rt2, print_format, lane);
       } else {
         st2(vf, ReadVRegister(rt), ReadVRegister(rt2), lane, addr);
-        LogVWrite(addr, rt, print_format, lane);
-        LogVWrite(addr + esize, rt2, print_format, lane);
       }
       break;
     case NEONLoadStoreSingle3:
-      scale = 3;
-      if (do_load) {
+      reg_count = 3;
+      if (replicating) {
+        VIXL_ASSERT(do_load);
+        ld3r(vf,
+             ReadVRegister(rt),
+             ReadVRegister(rt2),
+             ReadVRegister(rt3),
+             addr);
+      } else if (do_load) {
         ld3(vf,
             ReadVRegister(rt),
             ReadVRegister(rt2),
             ReadVRegister(rt3),
             lane,
             addr);
-        LogVRead(addr, rt, print_format, lane);
-        LogVRead(addr + esize, rt2, print_format, lane);
-        LogVRead(addr + (2 * esize), rt3, print_format, lane);
       } else {
         st3(vf,
             ReadVRegister(rt),
@@ -5681,14 +6259,19 @@
             ReadVRegister(rt3),
             lane,
             addr);
-        LogVWrite(addr, rt, print_format, lane);
-        LogVWrite(addr + esize, rt2, print_format, lane);
-        LogVWrite(addr + (2 * esize), rt3, print_format, lane);
       }
       break;
     case NEONLoadStoreSingle4:
-      scale = 4;
-      if (do_load) {
+      reg_count = 4;
+      if (replicating) {
+        VIXL_ASSERT(do_load);
+        ld4r(vf,
+             ReadVRegister(rt),
+             ReadVRegister(rt2),
+             ReadVRegister(rt3),
+             ReadVRegister(rt4),
+             addr);
+      } else if (do_load) {
         ld4(vf,
             ReadVRegister(rt),
             ReadVRegister(rt2),
@@ -5696,10 +6279,6 @@
             ReadVRegister(rt4),
             lane,
             addr);
-        LogVRead(addr, rt, print_format, lane);
-        LogVRead(addr + esize, rt2, print_format, lane);
-        LogVRead(addr + (2 * esize), rt3, print_format, lane);
-        LogVRead(addr + (3 * esize), rt4, print_format, lane);
       } else {
         st4(vf,
             ReadVRegister(rt),
@@ -5708,22 +6287,38 @@
             ReadVRegister(rt4),
             lane,
             addr);
-        LogVWrite(addr, rt, print_format, lane);
-        LogVWrite(addr + esize, rt2, print_format, lane);
-        LogVWrite(addr + (2 * esize), rt3, print_format, lane);
-        LogVWrite(addr + (3 * esize), rt4, print_format, lane);
       }
       break;
     default:
       VIXL_UNIMPLEMENTED();
   }
 
+  // Trace registers and/or memory writes.
+  PrintRegisterFormat print_format =
+      GetPrintRegisterFormatTryFP(GetPrintRegisterFormat(vf));
+  if (do_load) {
+    if (ShouldTraceVRegs()) {
+      if (replicating) {
+        PrintVReplicatingStructAccess(rt, reg_count, print_format, "<-", addr);
+      } else {
+        PrintVSingleStructAccess(rt, reg_count, lane, print_format, "<-", addr);
+      }
+    }
+  } else {
+    if (ShouldTraceWrites()) {
+      // Stores don't represent a change to the source register's value, so only
+      // print the relevant part of the value.
+      print_format = GetPrintRegPartial(print_format);
+      PrintVSingleStructAccess(rt, reg_count, lane, print_format, "->", addr);
+    }
+  }
+
   if (addr_mode == PostIndex) {
     int rm = instr->GetRm();
     int lane_size = LaneSizeInBytesFromFormat(vf);
     WriteXRegister(instr->GetRn(),
-                   addr +
-                       ((rm == 31) ? (scale * lane_size) : ReadXRegister(rm)));
+                   addr + ((rm == 31) ? (reg_count * lane_size)
+                                      : ReadXRegister(rm)));
   }
 }
 
@@ -6421,10 +7016,10 @@
   NEONFormatDecoder nfd(instr, &map);
   VectorFormat vf = nfd.GetVectorFormat();
 
-  int highestSetBit = HighestSetBitPosition(instr->GetImmNEONImmh());
-  int immhimmb = instr->GetImmNEONImmhImmb();
-  int right_shift = (16 << highestSetBit) - immhimmb;
-  int left_shift = immhimmb - (8 << highestSetBit);
+  int highest_set_bit = HighestSetBitPosition(instr->GetImmNEONImmh());
+  int immh_immb = instr->GetImmNEONImmhImmb();
+  int right_shift = (16 << highest_set_bit) - immh_immb;
+  int left_shift = immh_immb - (8 << highest_set_bit);
   switch (instr->Mask(NEONScalarShiftImmediateMask)) {
     case NEON_SHL_scalar:
       shl(vf, rd, rn, left_shift);
@@ -6529,10 +7124,10 @@
        {NF_UNDEF, NF_8H, NF_4S, NF_4S, NF_2D, NF_2D, NF_2D, NF_2D}};
   VectorFormat vf_l = nfd.GetVectorFormat(&map_l);
 
-  int highestSetBit = HighestSetBitPosition(instr->GetImmNEONImmh());
-  int immhimmb = instr->GetImmNEONImmhImmb();
-  int right_shift = (16 << highestSetBit) - immhimmb;
-  int left_shift = immhimmb - (8 << highestSetBit);
+  int highest_set_bit = HighestSetBitPosition(instr->GetImmNEONImmh());
+  int immh_immb = instr->GetImmNEONImmhImmb();
+  int right_shift = (16 << highest_set_bit) - immh_immb;
+  int left_shift = immh_immb - (8 << highest_set_bit);
 
   switch (instr->Mask(NEONShiftImmediateMask)) {
     case NEON_SHL:
@@ -6741,6 +7336,4356 @@
   }
 }
 
+void Simulator::VisitSVEAddressGeneration(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister& zm = ReadVRegister(instr->GetRm());
+  SimVRegister temp;
+
+  VectorFormat vform = kFormatVnD;
+  mov(vform, temp, zm);
+
+  switch (instr->Mask(SVEAddressGenerationMask)) {
+    case ADR_z_az_d_s32_scaled:
+      sxt(vform, temp, temp, kSRegSize);
+      break;
+    case ADR_z_az_d_u32_scaled:
+      uxt(vform, temp, temp, kSRegSize);
+      break;
+    case ADR_z_az_s_same_scaled:
+      vform = kFormatVnS;
+      break;
+    case ADR_z_az_d_same_scaled:
+      // Nothing to do.
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  int shift_amount = instr->ExtractBits(11, 10);
+  shl(vform, temp, temp, shift_amount);
+  add(vform, zd, zn, temp);
+}
+
+void Simulator::VisitSVEBitwiseLogicalWithImm_Unpredicated(
+    const Instruction* instr) {
+  Instr op = instr->Mask(SVEBitwiseLogicalWithImm_UnpredicatedMask);
+  switch (op) {
+    case AND_z_zi:
+    case EOR_z_zi:
+    case ORR_z_zi: {
+      int lane_size = instr->GetSVEBitwiseImmLaneSizeInBytesLog2();
+      uint64_t imm = instr->GetSVEImmLogical();
+      // Valid immediate is a non-zero bits
+      VIXL_ASSERT(imm != 0);
+      SVEBitwiseImmHelper(static_cast<SVEBitwiseLogicalWithImm_UnpredicatedOp>(
+                              op),
+                          SVEFormatFromLaneSizeInBytesLog2(lane_size),
+                          ReadVRegister(instr->GetRd()),
+                          imm);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEBroadcastBitmaskImm(const Instruction* instr) {
+  switch (instr->Mask(SVEBroadcastBitmaskImmMask)) {
+    case DUPM_z_i: {
+      /* DUPM uses the same lane size and immediate encoding as bitwise logical
+       * immediate instructions. */
+      int lane_size = instr->GetSVEBitwiseImmLaneSizeInBytesLog2();
+      uint64_t imm = instr->GetSVEImmLogical();
+      VectorFormat vform = SVEFormatFromLaneSizeInBytesLog2(lane_size);
+      dup_immediate(vform, ReadVRegister(instr->GetRd()), imm);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEBitwiseLogicalUnpredicated(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister& zm = ReadVRegister(instr->GetRm());
+  Instr op = instr->Mask(SVEBitwiseLogicalUnpredicatedMask);
+
+  LogicalOp logical_op;
+  switch (op) {
+    case AND_z_zz:
+      logical_op = AND;
+      break;
+    case BIC_z_zz:
+      logical_op = BIC;
+      break;
+    case EOR_z_zz:
+      logical_op = EOR;
+      break;
+    case ORR_z_zz:
+      logical_op = ORR;
+      break;
+    default:
+      logical_op = LogicalOpMask;
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  // Lane size of registers is irrelevant to the bitwise operations, so perform
+  // the operation on D-sized lanes.
+  SVEBitwiseLogicalUnpredicatedHelper(logical_op, kFormatVnD, zd, zn, zm);
+}
+
+void Simulator::VisitSVEBitwiseShiftByImm_Predicated(const Instruction* instr) {
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  SimVRegister scratch;
+  SimVRegister result;
+
+  bool for_division = false;
+  Shift shift_op = NO_SHIFT;
+  switch (instr->Mask(SVEBitwiseShiftByImm_PredicatedMask)) {
+    case ASRD_z_p_zi:
+      shift_op = ASR;
+      for_division = true;
+      break;
+    case ASR_z_p_zi:
+      shift_op = ASR;
+      break;
+    case LSL_z_p_zi:
+      shift_op = LSL;
+      break;
+    case LSR_z_p_zi:
+      shift_op = LSR;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  std::pair<int, int> shift_and_lane_size =
+      instr->GetSVEImmShiftAndLaneSizeLog2(/* is_predicated = */ true);
+  unsigned lane_size = shift_and_lane_size.second;
+  VectorFormat vform = SVEFormatFromLaneSizeInBytesLog2(lane_size);
+  int shift_dist = shift_and_lane_size.first;
+
+  if ((shift_op == ASR) && for_division) {
+    asrd(vform, result, zdn, shift_dist);
+  } else {
+    if (shift_op == LSL) {
+      // Shift distance is computed differently for LSL. Convert the result.
+      shift_dist = (8 << lane_size) - shift_dist;
+    }
+    dup_immediate(vform, scratch, shift_dist);
+    SVEBitwiseShiftHelper(shift_op, vform, result, zdn, scratch, false);
+  }
+  mov_merging(vform, zdn, pg, result);
+}
+
+void Simulator::VisitSVEBitwiseShiftByVector_Predicated(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  SimVRegister result;
+  SimVRegister shiftand;  // Vector to be shifted.
+  SimVRegister shiftor;   // Vector shift amount.
+
+  Shift shift_op = ASR;
+  mov(vform, shiftand, zdn);
+  mov(vform, shiftor, zm);
+
+  switch (instr->Mask(SVEBitwiseShiftByVector_PredicatedMask)) {
+    case ASRR_z_p_zz:
+      mov(vform, shiftand, zm);
+      mov(vform, shiftor, zdn);
+      VIXL_FALLTHROUGH();
+    case ASR_z_p_zz:
+      break;
+    case LSLR_z_p_zz:
+      mov(vform, shiftand, zm);
+      mov(vform, shiftor, zdn);
+      VIXL_FALLTHROUGH();
+    case LSL_z_p_zz:
+      shift_op = LSL;
+      break;
+    case LSRR_z_p_zz:
+      mov(vform, shiftand, zm);
+      mov(vform, shiftor, zdn);
+      VIXL_FALLTHROUGH();
+    case LSR_z_p_zz:
+      shift_op = LSR;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  SVEBitwiseShiftHelper(shift_op,
+                        vform,
+                        result,
+                        shiftand,
+                        shiftor,
+                        /* is_wide_elements = */ false);
+  mov_merging(vform, zdn, pg, result);
+}
+
+void Simulator::VisitSVEBitwiseShiftByWideElements_Predicated(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  SimVRegister result;
+  Shift shift_op = ASR;
+
+  switch (instr->Mask(SVEBitwiseShiftByWideElements_PredicatedMask)) {
+    case ASR_z_p_zw:
+      break;
+    case LSL_z_p_zw:
+      shift_op = LSL;
+      break;
+    case LSR_z_p_zw:
+      shift_op = LSR;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  SVEBitwiseShiftHelper(shift_op,
+                        vform,
+                        result,
+                        zdn,
+                        zm,
+                        /* is_wide_elements = */ true);
+  mov_merging(vform, zdn, pg, result);
+}
+
+void Simulator::VisitSVEBitwiseShiftUnpredicated(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+
+  Shift shift_op;
+  switch (instr->Mask(SVEBitwiseShiftUnpredicatedMask)) {
+    case ASR_z_zi:
+    case ASR_z_zw:
+      shift_op = ASR;
+      break;
+    case LSL_z_zi:
+    case LSL_z_zw:
+      shift_op = LSL;
+      break;
+    case LSR_z_zi:
+    case LSR_z_zw:
+      shift_op = LSR;
+      break;
+    default:
+      shift_op = NO_SHIFT;
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  switch (instr->Mask(SVEBitwiseShiftUnpredicatedMask)) {
+    case ASR_z_zi:
+    case LSL_z_zi:
+    case LSR_z_zi: {
+      SimVRegister scratch;
+      std::pair<int, int> shift_and_lane_size =
+          instr->GetSVEImmShiftAndLaneSizeLog2(/* is_predicated = */ false);
+      unsigned lane_size = shift_and_lane_size.second;
+      VIXL_ASSERT(lane_size <= kDRegSizeInBytesLog2);
+      VectorFormat vform = SVEFormatFromLaneSizeInBytesLog2(lane_size);
+      int shift_dist = shift_and_lane_size.first;
+      if (shift_op == LSL) {
+        // Shift distance is computed differently for LSL. Convert the result.
+        shift_dist = (8 << lane_size) - shift_dist;
+      }
+      dup_immediate(vform, scratch, shift_dist);
+      SVEBitwiseShiftHelper(shift_op, vform, zd, zn, scratch, false);
+      break;
+    }
+    case ASR_z_zw:
+    case LSL_z_zw:
+    case LSR_z_zw:
+      SVEBitwiseShiftHelper(shift_op,
+                            instr->GetSVEVectorFormat(),
+                            zd,
+                            zn,
+                            ReadVRegister(instr->GetRm()),
+                            true);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEIncDecRegisterByElementCount(const Instruction* instr) {
+  // Although the instructions have a separate encoding class, the lane size is
+  // encoded in the same way as most other SVE instructions.
+  VectorFormat vform = instr->GetSVEVectorFormat();
+
+  int pattern = instr->GetImmSVEPredicateConstraint();
+  int count = GetPredicateConstraintLaneCount(vform, pattern);
+  int multiplier = instr->ExtractBits(19, 16) + 1;
+
+  switch (instr->Mask(SVEIncDecRegisterByElementCountMask)) {
+    case DECB_r_rs:
+    case DECD_r_rs:
+    case DECH_r_rs:
+    case DECW_r_rs:
+      count = -count;
+      break;
+    case INCB_r_rs:
+    case INCD_r_rs:
+    case INCH_r_rs:
+    case INCW_r_rs:
+      // Nothing to do.
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      return;
+  }
+
+  WriteXRegister(instr->GetRd(),
+                 IncDecN(ReadXRegister(instr->GetRd()),
+                         count * multiplier,
+                         kXRegSize));
+}
+
+void Simulator::VisitSVEIncDecVectorByElementCount(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  if (LaneSizeInBitsFromFormat(vform) == kBRegSize) {
+    VIXL_UNIMPLEMENTED();
+  }
+
+  int pattern = instr->GetImmSVEPredicateConstraint();
+  int count = GetPredicateConstraintLaneCount(vform, pattern);
+  int multiplier = instr->ExtractBits(19, 16) + 1;
+
+  switch (instr->Mask(SVEIncDecVectorByElementCountMask)) {
+    case DECD_z_zs:
+    case DECH_z_zs:
+    case DECW_z_zs:
+      count = -count;
+      break;
+    case INCD_z_zs:
+    case INCH_z_zs:
+    case INCW_z_zs:
+      // Nothing to do.
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister scratch;
+  dup_immediate(vform,
+                scratch,
+                IncDecN(0,
+                        count * multiplier,
+                        LaneSizeInBitsFromFormat(vform)));
+  add(vform, zd, zd, scratch);
+}
+
+void Simulator::VisitSVESaturatingIncDecRegisterByElementCount(
+    const Instruction* instr) {
+  // Although the instructions have a separate encoding class, the lane size is
+  // encoded in the same way as most other SVE instructions.
+  VectorFormat vform = instr->GetSVEVectorFormat();
+
+  int pattern = instr->GetImmSVEPredicateConstraint();
+  int count = GetPredicateConstraintLaneCount(vform, pattern);
+  int multiplier = instr->ExtractBits(19, 16) + 1;
+
+  unsigned width = kXRegSize;
+  bool is_signed = false;
+
+  switch (instr->Mask(SVESaturatingIncDecRegisterByElementCountMask)) {
+    case SQDECB_r_rs_sx:
+    case SQDECD_r_rs_sx:
+    case SQDECH_r_rs_sx:
+    case SQDECW_r_rs_sx:
+      width = kWRegSize;
+      VIXL_FALLTHROUGH();
+    case SQDECB_r_rs_x:
+    case SQDECD_r_rs_x:
+    case SQDECH_r_rs_x:
+    case SQDECW_r_rs_x:
+      is_signed = true;
+      count = -count;
+      break;
+    case SQINCB_r_rs_sx:
+    case SQINCD_r_rs_sx:
+    case SQINCH_r_rs_sx:
+    case SQINCW_r_rs_sx:
+      width = kWRegSize;
+      VIXL_FALLTHROUGH();
+    case SQINCB_r_rs_x:
+    case SQINCD_r_rs_x:
+    case SQINCH_r_rs_x:
+    case SQINCW_r_rs_x:
+      is_signed = true;
+      break;
+    case UQDECB_r_rs_uw:
+    case UQDECD_r_rs_uw:
+    case UQDECH_r_rs_uw:
+    case UQDECW_r_rs_uw:
+      width = kWRegSize;
+      VIXL_FALLTHROUGH();
+    case UQDECB_r_rs_x:
+    case UQDECD_r_rs_x:
+    case UQDECH_r_rs_x:
+    case UQDECW_r_rs_x:
+      count = -count;
+      break;
+    case UQINCB_r_rs_uw:
+    case UQINCD_r_rs_uw:
+    case UQINCH_r_rs_uw:
+    case UQINCW_r_rs_uw:
+      width = kWRegSize;
+      VIXL_FALLTHROUGH();
+    case UQINCB_r_rs_x:
+    case UQINCD_r_rs_x:
+    case UQINCH_r_rs_x:
+    case UQINCW_r_rs_x:
+      // Nothing to do.
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  WriteXRegister(instr->GetRd(),
+                 IncDecN(ReadXRegister(instr->GetRd()),
+                         count * multiplier,
+                         width,
+                         true,
+                         is_signed));
+}
+
+void Simulator::VisitSVESaturatingIncDecVectorByElementCount(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  if (LaneSizeInBitsFromFormat(vform) == kBRegSize) {
+    VIXL_UNIMPLEMENTED();
+  }
+
+  int pattern = instr->GetImmSVEPredicateConstraint();
+  int count = GetPredicateConstraintLaneCount(vform, pattern);
+  int multiplier = instr->ExtractBits(19, 16) + 1;
+
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister scratch;
+  dup_immediate(vform,
+                scratch,
+                IncDecN(0,
+                        count * multiplier,
+                        LaneSizeInBitsFromFormat(vform)));
+
+  switch (instr->Mask(SVESaturatingIncDecVectorByElementCountMask)) {
+    case SQDECD_z_zs:
+    case SQDECH_z_zs:
+    case SQDECW_z_zs:
+      sub(vform, zd, zd, scratch).SignedSaturate(vform);
+      break;
+    case SQINCD_z_zs:
+    case SQINCH_z_zs:
+    case SQINCW_z_zs:
+      add(vform, zd, zd, scratch).SignedSaturate(vform);
+      break;
+    case UQDECD_z_zs:
+    case UQDECH_z_zs:
+    case UQDECW_z_zs:
+      sub(vform, zd, zd, scratch).UnsignedSaturate(vform);
+      break;
+    case UQINCD_z_zs:
+    case UQINCH_z_zs:
+    case UQINCW_z_zs:
+      add(vform, zd, zd, scratch).UnsignedSaturate(vform);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEElementCount(const Instruction* instr) {
+  switch (instr->Mask(SVEElementCountMask)) {
+    case CNTB_r_s:
+    case CNTD_r_s:
+    case CNTH_r_s:
+    case CNTW_r_s:
+      // All handled below.
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  // Although the instructions are separated, the lane size is encoded in the
+  // same way as most other SVE instructions.
+  VectorFormat vform = instr->GetSVEVectorFormat();
+
+  int pattern = instr->GetImmSVEPredicateConstraint();
+  int count = GetPredicateConstraintLaneCount(vform, pattern);
+  int multiplier = instr->ExtractBits(19, 16) + 1;
+  WriteXRegister(instr->GetRd(), count * multiplier);
+}
+
+void Simulator::VisitSVEFPAccumulatingReduction(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& vdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  switch (instr->Mask(SVEFPAccumulatingReductionMask)) {
+    case FADDA_v_p_z:
+      fadda(vform, vdn, pg, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEFPArithmetic_Predicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  SimVRegister result;
+
+  switch (instr->Mask(SVEFPArithmetic_PredicatedMask)) {
+    case FABD_z_p_zz:
+      fabd(vform, result, zdn, zm);
+      break;
+    case FADD_z_p_zz:
+      fadd(vform, result, zdn, zm);
+      break;
+    case FDIVR_z_p_zz:
+      fdiv(vform, result, zm, zdn);
+      break;
+    case FDIV_z_p_zz:
+      fdiv(vform, result, zdn, zm);
+      break;
+    case FMAXNM_z_p_zz:
+      fmaxnm(vform, result, zdn, zm);
+      break;
+    case FMAX_z_p_zz:
+      fmax(vform, result, zdn, zm);
+      break;
+    case FMINNM_z_p_zz:
+      fminnm(vform, result, zdn, zm);
+      break;
+    case FMIN_z_p_zz:
+      fmin(vform, result, zdn, zm);
+      break;
+    case FMULX_z_p_zz:
+      fmulx(vform, result, zdn, zm);
+      break;
+    case FMUL_z_p_zz:
+      fmul(vform, result, zdn, zm);
+      break;
+    case FSCALE_z_p_zz:
+      fscale(vform, result, zdn, zm);
+      break;
+    case FSUBR_z_p_zz:
+      fsub(vform, result, zm, zdn);
+      break;
+    case FSUB_z_p_zz:
+      fsub(vform, result, zdn, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zdn, pg, result);
+}
+
+void Simulator::VisitSVEFPArithmeticWithImm_Predicated(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  if (LaneSizeInBitsFromFormat(vform) == kBRegSize) {
+    VIXL_UNIMPLEMENTED();
+  }
+
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  SimVRegister result;
+
+  int i1 = instr->ExtractBit(5);
+  SimVRegister add_sub_imm, min_max_imm, mul_imm;
+  uint64_t half = FPToRawbitsWithSize(LaneSizeInBitsFromFormat(vform), 0.5);
+  uint64_t one = FPToRawbitsWithSize(LaneSizeInBitsFromFormat(vform), 1.0);
+  uint64_t two = FPToRawbitsWithSize(LaneSizeInBitsFromFormat(vform), 2.0);
+  dup_immediate(vform, add_sub_imm, i1 ? one : half);
+  dup_immediate(vform, min_max_imm, i1 ? one : 0);
+  dup_immediate(vform, mul_imm, i1 ? two : half);
+
+  switch (instr->Mask(SVEFPArithmeticWithImm_PredicatedMask)) {
+    case FADD_z_p_zs:
+      fadd(vform, result, zdn, add_sub_imm);
+      break;
+    case FMAXNM_z_p_zs:
+      fmaxnm(vform, result, zdn, min_max_imm);
+      break;
+    case FMAX_z_p_zs:
+      fmax(vform, result, zdn, min_max_imm);
+      break;
+    case FMINNM_z_p_zs:
+      fminnm(vform, result, zdn, min_max_imm);
+      break;
+    case FMIN_z_p_zs:
+      fmin(vform, result, zdn, min_max_imm);
+      break;
+    case FMUL_z_p_zs:
+      fmul(vform, result, zdn, mul_imm);
+      break;
+    case FSUBR_z_p_zs:
+      fsub(vform, result, add_sub_imm, zdn);
+      break;
+    case FSUB_z_p_zs:
+      fsub(vform, result, zdn, add_sub_imm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zdn, pg, result);
+}
+
+void Simulator::VisitSVEFPTrigMulAddCoefficient(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+
+  switch (instr->Mask(SVEFPTrigMulAddCoefficientMask)) {
+    case FTMAD_z_zzi:
+      ftmad(vform, zd, zd, zm, instr->ExtractBits(18, 16));
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEFPArithmeticUnpredicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister& zm = ReadVRegister(instr->GetRm());
+
+  switch (instr->Mask(SVEFPArithmeticUnpredicatedMask)) {
+    case FADD_z_zz:
+      fadd(vform, zd, zn, zm);
+      break;
+    case FMUL_z_zz:
+      fmul(vform, zd, zn, zm);
+      break;
+    case FRECPS_z_zz:
+      frecps(vform, zd, zn, zm);
+      break;
+    case FRSQRTS_z_zz:
+      frsqrts(vform, zd, zn, zm);
+      break;
+    case FSUB_z_zz:
+      fsub(vform, zd, zn, zm);
+      break;
+    case FTSMUL_z_zz:
+      ftsmul(vform, zd, zn, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEFPCompareVectors(const Instruction* instr) {
+  SimPRegister& pd = ReadPRegister(instr->GetPd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister& zm = ReadVRegister(instr->GetRm());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister result;
+
+  switch (instr->Mask(SVEFPCompareVectorsMask)) {
+    case FACGE_p_p_zz:
+      fabscmp(vform, result, zn, zm, ge);
+      break;
+    case FACGT_p_p_zz:
+      fabscmp(vform, result, zn, zm, gt);
+      break;
+    case FCMEQ_p_p_zz:
+      fcmp(vform, result, zn, zm, eq);
+      break;
+    case FCMGE_p_p_zz:
+      fcmp(vform, result, zn, zm, ge);
+      break;
+    case FCMGT_p_p_zz:
+      fcmp(vform, result, zn, zm, gt);
+      break;
+    case FCMNE_p_p_zz:
+      fcmp(vform, result, zn, zm, ne);
+      break;
+    case FCMUO_p_p_zz:
+      fcmp(vform, result, zn, zm, uo);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  ExtractFromSimVRegister(vform, pd, result);
+  mov_zeroing(pd, pg, pd);
+}
+
+void Simulator::VisitSVEFPCompareWithZero(const Instruction* instr) {
+  SimPRegister& pd = ReadPRegister(instr->GetPd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister result;
+
+  SimVRegister zeros;
+  dup_immediate(kFormatVnD, zeros, 0);
+
+  switch (instr->Mask(SVEFPCompareWithZeroMask)) {
+    case FCMEQ_p_p_z0:
+      fcmp(vform, result, zn, zeros, eq);
+      break;
+    case FCMGE_p_p_z0:
+      fcmp(vform, result, zn, zeros, ge);
+      break;
+    case FCMGT_p_p_z0:
+      fcmp(vform, result, zn, zeros, gt);
+      break;
+    case FCMLE_p_p_z0:
+      fcmp(vform, result, zn, zeros, le);
+      break;
+    case FCMLT_p_p_z0:
+      fcmp(vform, result, zn, zeros, lt);
+      break;
+    case FCMNE_p_p_z0:
+      fcmp(vform, result, zn, zeros, ne);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  ExtractFromSimVRegister(vform, pd, result);
+  mov_zeroing(pd, pg, pd);
+}
+
+void Simulator::VisitSVEFPComplexAddition(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+
+  if (LaneSizeInBitsFromFormat(vform) == kBRegSize) {
+    VIXL_UNIMPLEMENTED();
+  }
+
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  int rot = instr->ExtractBit(16);
+
+  SimVRegister result;
+
+  switch (instr->Mask(SVEFPComplexAdditionMask)) {
+    case FCADD_z_p_zz:
+      fcadd(vform, result, zdn, zm, rot);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zdn, pg, result);
+}
+
+void Simulator::VisitSVEFPComplexMulAdd(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+
+  if (LaneSizeInBitsFromFormat(vform) == kBRegSize) {
+    VIXL_UNIMPLEMENTED();
+  }
+
+  SimVRegister& zda = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister& zm = ReadVRegister(instr->GetRm());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  int rot = instr->ExtractBits(14, 13);
+
+  SimVRegister result;
+
+  switch (instr->Mask(SVEFPComplexMulAddMask)) {
+    case FCMLA_z_p_zzz:
+      fcmla(vform, result, zn, zm, zda, rot);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zda, pg, result);
+}
+
+void Simulator::VisitSVEFPComplexMulAddIndex(const Instruction* instr) {
+  SimVRegister& zda = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  int rot = instr->ExtractBits(11, 10);
+  unsigned zm_code = instr->GetRm();
+  int index = -1;
+  VectorFormat vform, vform_dup;
+
+  switch (instr->Mask(SVEFPComplexMulAddIndexMask)) {
+    case FCMLA_z_zzzi_h:
+      vform = kFormatVnH;
+      vform_dup = kFormatVnS;
+      index = zm_code >> 3;
+      zm_code &= 0x7;
+      break;
+    case FCMLA_z_zzzi_s:
+      vform = kFormatVnS;
+      vform_dup = kFormatVnD;
+      index = zm_code >> 4;
+      zm_code &= 0xf;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  if (index >= 0) {
+    SimVRegister temp;
+    dup_elements_to_segments(vform_dup, temp, ReadVRegister(zm_code), index);
+    fcmla(vform, zda, zn, temp, zda, rot);
+  }
+}
+
+typedef LogicVRegister (Simulator::*FastReduceFn)(VectorFormat vform,
+                                                  LogicVRegister dst,
+                                                  const LogicVRegister& src);
+
+void Simulator::VisitSVEFPFastReduction(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& vd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  int lane_size = LaneSizeInBitsFromFormat(vform);
+
+  uint64_t inactive_value = 0;
+  FastReduceFn fn = nullptr;
+
+  switch (instr->Mask(SVEFPFastReductionMask)) {
+    case FADDV_v_p_z:
+      fn = &Simulator::faddv;
+      break;
+    case FMAXNMV_v_p_z:
+      inactive_value = FPToRawbitsWithSize(lane_size, kFP64DefaultNaN);
+      fn = &Simulator::fmaxnmv;
+      break;
+    case FMAXV_v_p_z:
+      inactive_value = FPToRawbitsWithSize(lane_size, kFP64NegativeInfinity);
+      fn = &Simulator::fmaxv;
+      break;
+    case FMINNMV_v_p_z:
+      inactive_value = FPToRawbitsWithSize(lane_size, kFP64DefaultNaN);
+      fn = &Simulator::fminnmv;
+      break;
+    case FMINV_v_p_z:
+      inactive_value = FPToRawbitsWithSize(lane_size, kFP64PositiveInfinity);
+      fn = &Simulator::fminv;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SimVRegister scratch;
+  dup_immediate(vform, scratch, inactive_value);
+  mov_merging(vform, scratch, pg, zn);
+  if (fn != nullptr) (this->*fn)(vform, vd, scratch);
+}
+
+void Simulator::VisitSVEFPMulIndex(const Instruction* instr) {
+  VectorFormat vform = kFormatUndefined;
+  unsigned zm_code = instr->GetRm() & 0xf;
+  unsigned index = instr->ExtractBits(20, 19);
+
+  switch (instr->Mask(SVEFPMulIndexMask)) {
+    case FMUL_z_zzi_d:
+      vform = kFormatVnD;
+      index >>= 1;  // Only bit 20 is the index for D lanes.
+      break;
+    case FMUL_z_zzi_h_i3h:
+      index += 4;  // Bit 22 (i3h) is the top bit of index.
+      VIXL_FALLTHROUGH();
+    case FMUL_z_zzi_h:
+      vform = kFormatVnH;
+      zm_code &= 7;  // Three bits used for zm.
+      break;
+    case FMUL_z_zzi_s:
+      vform = kFormatVnS;
+      zm_code &= 7;  // Three bits used for zm.
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister temp;
+
+  dup_elements_to_segments(vform, temp, ReadVRegister(zm_code), index);
+  fmul(vform, zd, zn, temp);
+}
+
+void Simulator::VisitSVEFPMulAdd(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  SimVRegister result;
+
+  if (instr->ExtractBit(15) == 0) {
+    // Floating-point multiply-accumulate writing addend.
+    SimVRegister& zm = ReadVRegister(instr->GetRm());
+    SimVRegister& zn = ReadVRegister(instr->GetRn());
+
+    switch (instr->Mask(SVEFPMulAddMask)) {
+      // zda = zda + zn * zm
+      case FMLA_z_p_zzz:
+        fmla(vform, result, zd, zn, zm);
+        break;
+      // zda = -zda + -zn * zm
+      case FNMLA_z_p_zzz:
+        fneg(vform, result, zd);
+        fmls(vform, result, result, zn, zm);
+        break;
+      // zda = zda + -zn * zm
+      case FMLS_z_p_zzz:
+        fmls(vform, result, zd, zn, zm);
+        break;
+      // zda = -zda + zn * zm
+      case FNMLS_z_p_zzz:
+        fneg(vform, result, zd);
+        fmla(vform, result, result, zn, zm);
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  } else {
+    // Floating-point multiply-accumulate writing multiplicand.
+    SimVRegister& za = ReadVRegister(instr->GetRm());
+    SimVRegister& zm = ReadVRegister(instr->GetRn());
+
+    switch (instr->Mask(SVEFPMulAddMask)) {
+      // zdn = za + zdn * zm
+      case FMAD_z_p_zzz:
+        fmla(vform, result, za, zd, zm);
+        break;
+      // zdn = -za + -zdn * zm
+      case FNMAD_z_p_zzz:
+        fneg(vform, result, za);
+        fmls(vform, result, result, zd, zm);
+        break;
+      // zdn = za + -zdn * zm
+      case FMSB_z_p_zzz:
+        fmls(vform, result, za, zd, zm);
+        break;
+      // zdn = -za + zdn * zm
+      case FNMSB_z_p_zzz:
+        fneg(vform, result, za);
+        fmla(vform, result, result, zd, zm);
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  }
+
+  mov_merging(vform, zd, pg, result);
+}
+
+void Simulator::VisitSVEFPMulAddIndex(const Instruction* instr) {
+  VectorFormat vform = kFormatUndefined;
+  unsigned zm_code = 0xffffffff;
+  unsigned index = 0xffffffff;
+
+  switch (instr->Mask(SVEFPMulAddIndexMask)) {
+    case FMLA_z_zzzi_d:
+    case FMLS_z_zzzi_d:
+      vform = kFormatVnD;
+      zm_code = instr->GetRmLow16();
+      // Only bit 20 is the index for D lanes.
+      index = instr->ExtractBit(20);
+      break;
+    case FMLA_z_zzzi_s:
+    case FMLS_z_zzzi_s:
+      vform = kFormatVnS;
+      zm_code = instr->GetRm() & 0x7;  // Three bits used for zm.
+      index = instr->ExtractBits(20, 19);
+      break;
+    case FMLA_z_zzzi_h:
+    case FMLS_z_zzzi_h:
+    case FMLA_z_zzzi_h_i3h:
+    case FMLS_z_zzzi_h_i3h:
+      vform = kFormatVnH;
+      zm_code = instr->GetRm() & 0x7;  // Three bits used for zm.
+      index = (instr->ExtractBit(22) << 2) | instr->ExtractBits(20, 19);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister temp;
+
+  dup_elements_to_segments(vform, temp, ReadVRegister(zm_code), index);
+  if (instr->ExtractBit(10) == 1) {
+    fmls(vform, zd, zd, zn, temp);
+  } else {
+    fmla(vform, zd, zd, zn, temp);
+  }
+}
+
+void Simulator::VisitSVEFPConvertToInt(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  int dst_data_size;
+  int src_data_size;
+
+  switch (instr->Mask(SVEFPConvertToIntMask)) {
+    case FCVTZS_z_p_z_d2w:
+    case FCVTZU_z_p_z_d2w:
+      dst_data_size = kSRegSize;
+      src_data_size = kDRegSize;
+      break;
+    case FCVTZS_z_p_z_d2x:
+    case FCVTZU_z_p_z_d2x:
+      dst_data_size = kDRegSize;
+      src_data_size = kDRegSize;
+      break;
+    case FCVTZS_z_p_z_fp162h:
+    case FCVTZU_z_p_z_fp162h:
+      dst_data_size = kHRegSize;
+      src_data_size = kHRegSize;
+      break;
+    case FCVTZS_z_p_z_fp162w:
+    case FCVTZU_z_p_z_fp162w:
+      dst_data_size = kSRegSize;
+      src_data_size = kHRegSize;
+      break;
+    case FCVTZS_z_p_z_fp162x:
+    case FCVTZU_z_p_z_fp162x:
+      dst_data_size = kDRegSize;
+      src_data_size = kHRegSize;
+      break;
+    case FCVTZS_z_p_z_s2w:
+    case FCVTZU_z_p_z_s2w:
+      dst_data_size = kSRegSize;
+      src_data_size = kSRegSize;
+      break;
+    case FCVTZS_z_p_z_s2x:
+    case FCVTZU_z_p_z_s2x:
+      dst_data_size = kDRegSize;
+      src_data_size = kSRegSize;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      dst_data_size = 0;
+      src_data_size = 0;
+      break;
+  }
+
+  VectorFormat vform =
+      SVEFormatFromLaneSizeInBits(std::max(dst_data_size, src_data_size));
+
+  if (instr->ExtractBit(16) == 0) {
+    fcvts(vform, dst_data_size, src_data_size, zd, pg, zn, FPZero);
+  } else {
+    fcvtu(vform, dst_data_size, src_data_size, zd, pg, zn, FPZero);
+  }
+}
+
+void Simulator::VisitSVEFPConvertPrecision(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  int dst_data_size;
+  int src_data_size;
+
+  switch (instr->Mask(SVEFPConvertPrecisionMask)) {
+    case FCVT_z_p_z_d2h:
+      dst_data_size = kHRegSize;
+      src_data_size = kDRegSize;
+      break;
+    case FCVT_z_p_z_d2s:
+      dst_data_size = kSRegSize;
+      src_data_size = kDRegSize;
+      break;
+    case FCVT_z_p_z_h2d:
+      dst_data_size = kDRegSize;
+      src_data_size = kHRegSize;
+      break;
+    case FCVT_z_p_z_h2s:
+      dst_data_size = kSRegSize;
+      src_data_size = kHRegSize;
+      break;
+    case FCVT_z_p_z_s2d:
+      dst_data_size = kDRegSize;
+      src_data_size = kSRegSize;
+      break;
+    case FCVT_z_p_z_s2h:
+      dst_data_size = kHRegSize;
+      src_data_size = kSRegSize;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      dst_data_size = 0;
+      src_data_size = 0;
+      break;
+  }
+  VectorFormat vform =
+      SVEFormatFromLaneSizeInBits(std::max(dst_data_size, src_data_size));
+
+  fcvt(vform, dst_data_size, src_data_size, zd, pg, zn);
+}
+
+void Simulator::VisitSVEFPUnaryOp(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister result;
+
+  switch (instr->Mask(SVEFPUnaryOpMask)) {
+    case FRECPX_z_p_z:
+      frecpx(vform, result, zn);
+      break;
+    case FSQRT_z_p_z:
+      fsqrt(vform, result, zn);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zd, pg, result);
+}
+
+void Simulator::VisitSVEFPRoundToIntegralValue(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  FPRounding fpcr_rounding = static_cast<FPRounding>(ReadFpcr().GetRMode());
+  bool exact_exception = false;
+
+  switch (instr->Mask(SVEFPRoundToIntegralValueMask)) {
+    case FRINTA_z_p_z:
+      fpcr_rounding = FPTieAway;
+      break;
+    case FRINTI_z_p_z:
+      break;  // Use FPCR rounding mode.
+    case FRINTM_z_p_z:
+      fpcr_rounding = FPNegativeInfinity;
+      break;
+    case FRINTN_z_p_z:
+      fpcr_rounding = FPTieEven;
+      break;
+    case FRINTP_z_p_z:
+      fpcr_rounding = FPPositiveInfinity;
+      break;
+    case FRINTX_z_p_z:
+      exact_exception = true;
+      break;
+    case FRINTZ_z_p_z:
+      fpcr_rounding = FPZero;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SimVRegister result;
+  frint(vform, result, zn, fpcr_rounding, exact_exception, kFrintToInteger);
+  mov_merging(vform, zd, pg, result);
+}
+
+void Simulator::VisitSVEIntConvertToFP(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  FPRounding fpcr_rounding = static_cast<FPRounding>(ReadFpcr().GetRMode());
+  int dst_data_size;
+  int src_data_size;
+
+  switch (instr->Mask(SVEIntConvertToFPMask)) {
+    case SCVTF_z_p_z_h2fp16:
+    case UCVTF_z_p_z_h2fp16:
+      dst_data_size = kHRegSize;
+      src_data_size = kHRegSize;
+      break;
+    case SCVTF_z_p_z_w2d:
+    case UCVTF_z_p_z_w2d:
+      dst_data_size = kDRegSize;
+      src_data_size = kSRegSize;
+      break;
+    case SCVTF_z_p_z_w2fp16:
+    case UCVTF_z_p_z_w2fp16:
+      dst_data_size = kHRegSize;
+      src_data_size = kSRegSize;
+      break;
+    case SCVTF_z_p_z_w2s:
+    case UCVTF_z_p_z_w2s:
+      dst_data_size = kSRegSize;
+      src_data_size = kSRegSize;
+      break;
+    case SCVTF_z_p_z_x2d:
+    case UCVTF_z_p_z_x2d:
+      dst_data_size = kDRegSize;
+      src_data_size = kDRegSize;
+      break;
+    case SCVTF_z_p_z_x2fp16:
+    case UCVTF_z_p_z_x2fp16:
+      dst_data_size = kHRegSize;
+      src_data_size = kDRegSize;
+      break;
+    case SCVTF_z_p_z_x2s:
+    case UCVTF_z_p_z_x2s:
+      dst_data_size = kSRegSize;
+      src_data_size = kDRegSize;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      dst_data_size = 0;
+      src_data_size = 0;
+      break;
+  }
+
+  VectorFormat vform =
+      SVEFormatFromLaneSizeInBits(std::max(dst_data_size, src_data_size));
+
+  if (instr->ExtractBit(16) == 0) {
+    scvtf(vform, dst_data_size, src_data_size, zd, pg, zn, fpcr_rounding);
+  } else {
+    ucvtf(vform, dst_data_size, src_data_size, zd, pg, zn, fpcr_rounding);
+  }
+}
+
+void Simulator::VisitSVEFPUnaryOpUnpredicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  FPRounding fpcr_rounding = static_cast<FPRounding>(ReadFpcr().GetRMode());
+
+  switch (instr->Mask(SVEFPUnaryOpUnpredicatedMask)) {
+    case FRECPE_z_z:
+      frecpe(vform, zd, zn, fpcr_rounding);
+      break;
+    case FRSQRTE_z_z:
+      frsqrte(vform, zd, zn);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEIncDecByPredicateCount(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimPRegister& pg = ReadPRegister(instr->ExtractBits(8, 5));
+
+  int count = CountActiveLanes(vform, pg);
+
+  if (instr->ExtractBit(11) == 0) {
+    SimVRegister& zdn = ReadVRegister(instr->GetRd());
+    switch (instr->Mask(SVEIncDecByPredicateCountMask)) {
+      case DECP_z_p_z:
+        sub_uint(vform, zdn, zdn, count);
+        break;
+      case INCP_z_p_z:
+        add_uint(vform, zdn, zdn, count);
+        break;
+      case SQDECP_z_p_z:
+        sub_uint(vform, zdn, zdn, count).SignedSaturate(vform);
+        break;
+      case SQINCP_z_p_z:
+        add_uint(vform, zdn, zdn, count).SignedSaturate(vform);
+        break;
+      case UQDECP_z_p_z:
+        sub_uint(vform, zdn, zdn, count).UnsignedSaturate(vform);
+        break;
+      case UQINCP_z_p_z:
+        add_uint(vform, zdn, zdn, count).UnsignedSaturate(vform);
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  } else {
+    bool is_saturating = (instr->ExtractBit(18) == 0);
+    bool decrement =
+        is_saturating ? instr->ExtractBit(17) : instr->ExtractBit(16);
+    bool is_signed = (instr->ExtractBit(16) == 0);
+    bool sf = is_saturating ? (instr->ExtractBit(10) != 0) : true;
+    unsigned width = sf ? kXRegSize : kWRegSize;
+
+    switch (instr->Mask(SVEIncDecByPredicateCountMask)) {
+      case DECP_r_p_r:
+      case INCP_r_p_r:
+      case SQDECP_r_p_r_sx:
+      case SQDECP_r_p_r_x:
+      case SQINCP_r_p_r_sx:
+      case SQINCP_r_p_r_x:
+      case UQDECP_r_p_r_uw:
+      case UQDECP_r_p_r_x:
+      case UQINCP_r_p_r_uw:
+      case UQINCP_r_p_r_x:
+        WriteXRegister(instr->GetRd(),
+                       IncDecN(ReadXRegister(instr->GetRd()),
+                               decrement ? -count : count,
+                               width,
+                               is_saturating,
+                               is_signed));
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  }
+}
+
+uint64_t Simulator::IncDecN(uint64_t acc,
+                            int64_t delta,
+                            unsigned n,
+                            bool is_saturating,
+                            bool is_signed) {
+  VIXL_ASSERT(n <= 64);
+  VIXL_ASSERT(IsIntN(n, delta));
+
+  uint64_t sign_mask = UINT64_C(1) << (n - 1);
+  uint64_t mask = GetUintMask(n);
+
+  acc &= mask;  // Ignore initial accumulator high bits.
+  uint64_t result = (acc + delta) & mask;
+
+  bool result_negative = ((result & sign_mask) != 0);
+
+  if (is_saturating) {
+    if (is_signed) {
+      bool acc_negative = ((acc & sign_mask) != 0);
+      bool delta_negative = delta < 0;
+
+      // If the signs of the operands are the same, but different from the
+      // result, there was an overflow.
+      if ((acc_negative == delta_negative) &&
+          (acc_negative != result_negative)) {
+        if (result_negative) {
+          // Saturate to [..., INT<n>_MAX].
+          result_negative = false;
+          result = mask & ~sign_mask;  // E.g. 0x000000007fffffff
+        } else {
+          // Saturate to [INT<n>_MIN, ...].
+          result_negative = true;
+          result = ~mask | sign_mask;  // E.g. 0xffffffff80000000
+        }
+      }
+    } else {
+      if ((delta < 0) && (result > acc)) {
+        // Saturate to [0, ...].
+        result = 0;
+      } else if ((delta > 0) && (result < acc)) {
+        // Saturate to [..., UINT<n>_MAX].
+        result = mask;
+      }
+    }
+  }
+
+  // Sign-extend if necessary.
+  if (result_negative && is_signed) result |= ~mask;
+
+  return result;
+}
+
+void Simulator::VisitSVEIndexGeneration(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  switch (instr->Mask(SVEIndexGenerationMask)) {
+    case INDEX_z_ii:
+    case INDEX_z_ir:
+    case INDEX_z_ri:
+    case INDEX_z_rr: {
+      uint64_t start = instr->ExtractBit(10) ? ReadXRegister(instr->GetRn())
+                                             : instr->ExtractSignedBits(9, 5);
+      uint64_t step = instr->ExtractBit(11) ? ReadXRegister(instr->GetRm())
+                                            : instr->ExtractSignedBits(20, 16);
+      index(vform, zd, start, step);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEIntArithmeticUnpredicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister& zm = ReadVRegister(instr->GetRm());
+  switch (instr->Mask(SVEIntArithmeticUnpredicatedMask)) {
+    case ADD_z_zz:
+      add(vform, zd, zn, zm);
+      break;
+    case SQADD_z_zz:
+      add(vform, zd, zn, zm).SignedSaturate(vform);
+      break;
+    case SQSUB_z_zz:
+      sub(vform, zd, zn, zm).SignedSaturate(vform);
+      break;
+    case SUB_z_zz:
+      sub(vform, zd, zn, zm);
+      break;
+    case UQADD_z_zz:
+      add(vform, zd, zn, zm).UnsignedSaturate(vform);
+      break;
+    case UQSUB_z_zz:
+      sub(vform, zd, zn, zm).UnsignedSaturate(vform);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEIntAddSubtractVectors_Predicated(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  SimVRegister result;
+
+  switch (instr->Mask(SVEIntAddSubtractVectors_PredicatedMask)) {
+    case ADD_z_p_zz:
+      add(vform, result, zdn, zm);
+      break;
+    case SUBR_z_p_zz:
+      sub(vform, result, zm, zdn);
+      break;
+    case SUB_z_p_zz:
+      sub(vform, result, zdn, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zdn, pg, result);
+}
+
+void Simulator::VisitSVEBitwiseLogical_Predicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  SimVRegister result;
+
+  switch (instr->Mask(SVEBitwiseLogical_PredicatedMask)) {
+    case AND_z_p_zz:
+      SVEBitwiseLogicalUnpredicatedHelper(AND, vform, result, zdn, zm);
+      break;
+    case BIC_z_p_zz:
+      SVEBitwiseLogicalUnpredicatedHelper(BIC, vform, result, zdn, zm);
+      break;
+    case EOR_z_p_zz:
+      SVEBitwiseLogicalUnpredicatedHelper(EOR, vform, result, zdn, zm);
+      break;
+    case ORR_z_p_zz:
+      SVEBitwiseLogicalUnpredicatedHelper(ORR, vform, result, zdn, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zdn, pg, result);
+}
+
+void Simulator::VisitSVEIntMulVectors_Predicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  SimVRegister result;
+
+  switch (instr->Mask(SVEIntMulVectors_PredicatedMask)) {
+    case MUL_z_p_zz:
+      mul(vform, result, zdn, zm);
+      break;
+    case SMULH_z_p_zz:
+      smulh(vform, result, zdn, zm);
+      break;
+    case UMULH_z_p_zz:
+      umulh(vform, result, zdn, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zdn, pg, result);
+}
+
+void Simulator::VisitSVEIntMinMaxDifference_Predicated(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  SimVRegister result;
+
+  switch (instr->Mask(SVEIntMinMaxDifference_PredicatedMask)) {
+    case SABD_z_p_zz:
+      absdiff(vform, result, zdn, zm, true);
+      break;
+    case SMAX_z_p_zz:
+      smax(vform, result, zdn, zm);
+      break;
+    case SMIN_z_p_zz:
+      smin(vform, result, zdn, zm);
+      break;
+    case UABD_z_p_zz:
+      absdiff(vform, result, zdn, zm, false);
+      break;
+    case UMAX_z_p_zz:
+      umax(vform, result, zdn, zm);
+      break;
+    case UMIN_z_p_zz:
+      umin(vform, result, zdn, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zdn, pg, result);
+}
+
+void Simulator::VisitSVEIntMulImm_Unpredicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister scratch;
+
+  switch (instr->Mask(SVEIntMulImm_UnpredicatedMask)) {
+    case MUL_z_zi:
+      dup_immediate(vform, scratch, instr->GetImmSVEIntWideSigned());
+      mul(vform, zd, zd, scratch);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEIntDivideVectors_Predicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  SimVRegister result;
+
+  VIXL_ASSERT((vform == kFormatVnS) || (vform == kFormatVnD));
+
+  switch (instr->Mask(SVEIntDivideVectors_PredicatedMask)) {
+    case SDIVR_z_p_zz:
+      sdiv(vform, result, zm, zdn);
+      break;
+    case SDIV_z_p_zz:
+      sdiv(vform, result, zdn, zm);
+      break;
+    case UDIVR_z_p_zz:
+      udiv(vform, result, zm, zdn);
+      break;
+    case UDIV_z_p_zz:
+      udiv(vform, result, zdn, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zdn, pg, result);
+}
+
+void Simulator::VisitSVEIntMinMaxImm_Unpredicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister scratch;
+
+  uint64_t unsigned_imm = instr->GetImmSVEIntWideUnsigned();
+  int64_t signed_imm = instr->GetImmSVEIntWideSigned();
+
+  switch (instr->Mask(SVEIntMinMaxImm_UnpredicatedMask)) {
+    case SMAX_z_zi:
+      dup_immediate(vform, scratch, signed_imm);
+      smax(vform, zd, zd, scratch);
+      break;
+    case SMIN_z_zi:
+      dup_immediate(vform, scratch, signed_imm);
+      smin(vform, zd, zd, scratch);
+      break;
+    case UMAX_z_zi:
+      dup_immediate(vform, scratch, unsigned_imm);
+      umax(vform, zd, zd, scratch);
+      break;
+    case UMIN_z_zi:
+      dup_immediate(vform, scratch, unsigned_imm);
+      umin(vform, zd, zd, scratch);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEIntCompareScalarCountAndLimit(
+    const Instruction* instr) {
+  unsigned rn_code = instr->GetRn();
+  unsigned rm_code = instr->GetRm();
+  SimPRegister& pd = ReadPRegister(instr->GetPd());
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  bool is_64_bit = instr->ExtractBit(12) == 1;
+  int64_t src1 = is_64_bit ? ReadXRegister(rn_code) : ReadWRegister(rn_code);
+  int64_t src2 = is_64_bit ? ReadXRegister(rm_code) : ReadWRegister(rm_code);
+
+  bool last = true;
+  for (int lane = 0; lane < LaneCountFromFormat(vform); lane++) {
+    bool cond = false;
+    switch (instr->Mask(SVEIntCompareScalarCountAndLimitMask)) {
+      case WHILELE_p_p_rr:
+        cond = src1 <= src2;
+        break;
+      case WHILELO_p_p_rr:
+        cond = static_cast<uint64_t>(src1) < static_cast<uint64_t>(src2);
+        break;
+      case WHILELS_p_p_rr:
+        cond = static_cast<uint64_t>(src1) <= static_cast<uint64_t>(src2);
+        break;
+      case WHILELT_p_p_rr:
+        cond = src1 < src2;
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+    last = last && cond;
+    LogicPRegister dst(pd);
+    dst.SetActive(vform, lane, last);
+    src1 += 1;
+  }
+
+  PredTest(vform, GetPTrue(), pd);
+  LogSystemRegister(NZCV);
+}
+
+void Simulator::VisitSVEConditionallyTerminateScalars(
+    const Instruction* instr) {
+  unsigned rn_code = instr->GetRn();
+  unsigned rm_code = instr->GetRm();
+  bool is_64_bit = instr->ExtractBit(22) == 1;
+  uint64_t src1 = is_64_bit ? ReadXRegister(rn_code) : ReadWRegister(rn_code);
+  uint64_t src2 = is_64_bit ? ReadXRegister(rm_code) : ReadWRegister(rm_code);
+  bool term;
+  switch (instr->Mask(SVEConditionallyTerminateScalarsMask)) {
+    case CTERMEQ_rr:
+      term = src1 == src2;
+      break;
+    case CTERMNE_rr:
+      term = src1 != src2;
+      break;
+    default:
+      term = false;
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  ReadNzcv().SetN(term ? 1 : 0);
+  ReadNzcv().SetV(term ? 0 : !ReadC());
+  LogSystemRegister(NZCV);
+}
+
+void Simulator::VisitSVEIntCompareSignedImm(const Instruction* instr) {
+  bool commute_inputs = false;
+  Condition cond;
+  switch (instr->Mask(SVEIntCompareSignedImmMask)) {
+    case CMPEQ_p_p_zi:
+      cond = eq;
+      break;
+    case CMPGE_p_p_zi:
+      cond = ge;
+      break;
+    case CMPGT_p_p_zi:
+      cond = gt;
+      break;
+    case CMPLE_p_p_zi:
+      cond = ge;
+      commute_inputs = true;
+      break;
+    case CMPLT_p_p_zi:
+      cond = gt;
+      commute_inputs = true;
+      break;
+    case CMPNE_p_p_zi:
+      cond = ne;
+      break;
+    default:
+      cond = al;
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister src2;
+  dup_immediate(vform,
+                src2,
+                ExtractSignedBitfield64(4, 0, instr->ExtractBits(20, 16)));
+  SVEIntCompareVectorsHelper(cond,
+                             vform,
+                             ReadPRegister(instr->GetPd()),
+                             ReadPRegister(instr->GetPgLow8()),
+                             commute_inputs ? src2
+                                            : ReadVRegister(instr->GetRn()),
+                             commute_inputs ? ReadVRegister(instr->GetRn())
+                                            : src2);
+}
+
+void Simulator::VisitSVEIntCompareUnsignedImm(const Instruction* instr) {
+  bool commute_inputs = false;
+  Condition cond;
+  switch (instr->Mask(SVEIntCompareUnsignedImmMask)) {
+    case CMPHI_p_p_zi:
+      cond = hi;
+      break;
+    case CMPHS_p_p_zi:
+      cond = hs;
+      break;
+    case CMPLO_p_p_zi:
+      cond = hi;
+      commute_inputs = true;
+      break;
+    case CMPLS_p_p_zi:
+      cond = hs;
+      commute_inputs = true;
+      break;
+    default:
+      cond = al;
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister src2;
+  dup_immediate(vform, src2, instr->ExtractBits(20, 14));
+  SVEIntCompareVectorsHelper(cond,
+                             vform,
+                             ReadPRegister(instr->GetPd()),
+                             ReadPRegister(instr->GetPgLow8()),
+                             commute_inputs ? src2
+                                            : ReadVRegister(instr->GetRn()),
+                             commute_inputs ? ReadVRegister(instr->GetRn())
+                                            : src2);
+}
+
+void Simulator::VisitSVEIntCompareVectors(const Instruction* instr) {
+  Instr op = instr->Mask(SVEIntCompareVectorsMask);
+  bool is_wide_elements = false;
+  switch (op) {
+    case CMPEQ_p_p_zw:
+    case CMPGE_p_p_zw:
+    case CMPGT_p_p_zw:
+    case CMPHI_p_p_zw:
+    case CMPHS_p_p_zw:
+    case CMPLE_p_p_zw:
+    case CMPLO_p_p_zw:
+    case CMPLS_p_p_zw:
+    case CMPLT_p_p_zw:
+    case CMPNE_p_p_zw:
+      is_wide_elements = true;
+      break;
+  }
+
+  Condition cond;
+  switch (op) {
+    case CMPEQ_p_p_zw:
+    case CMPEQ_p_p_zz:
+      cond = eq;
+      break;
+    case CMPGE_p_p_zw:
+    case CMPGE_p_p_zz:
+      cond = ge;
+      break;
+    case CMPGT_p_p_zw:
+    case CMPGT_p_p_zz:
+      cond = gt;
+      break;
+    case CMPHI_p_p_zw:
+    case CMPHI_p_p_zz:
+      cond = hi;
+      break;
+    case CMPHS_p_p_zw:
+    case CMPHS_p_p_zz:
+      cond = hs;
+      break;
+    case CMPNE_p_p_zw:
+    case CMPNE_p_p_zz:
+      cond = ne;
+      break;
+    case CMPLE_p_p_zw:
+      cond = le;
+      break;
+    case CMPLO_p_p_zw:
+      cond = lo;
+      break;
+    case CMPLS_p_p_zw:
+      cond = ls;
+      break;
+    case CMPLT_p_p_zw:
+      cond = lt;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      cond = al;
+      break;
+  }
+
+  SVEIntCompareVectorsHelper(cond,
+                             instr->GetSVEVectorFormat(),
+                             ReadPRegister(instr->GetPd()),
+                             ReadPRegister(instr->GetPgLow8()),
+                             ReadVRegister(instr->GetRn()),
+                             ReadVRegister(instr->GetRm()),
+                             is_wide_elements);
+}
+
+void Simulator::VisitSVEFPExponentialAccelerator(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+
+  VIXL_ASSERT((vform == kFormatVnH) || (vform == kFormatVnS) ||
+              (vform == kFormatVnD));
+
+  switch (instr->Mask(SVEFPExponentialAcceleratorMask)) {
+    case FEXPA_z_z:
+      fexpa(vform, zd, zn);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEFPTrigSelectCoefficient(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister& zm = ReadVRegister(instr->GetRm());
+
+  VIXL_ASSERT((vform == kFormatVnH) || (vform == kFormatVnS) ||
+              (vform == kFormatVnD));
+
+  switch (instr->Mask(SVEFPTrigSelectCoefficientMask)) {
+    case FTSSEL_z_zz:
+      ftssel(vform, zd, zn, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEConstructivePrefix_Unpredicated(
+    const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+
+  switch (instr->Mask(SVEConstructivePrefix_UnpredicatedMask)) {
+    case MOVPRFX_z_z:
+      mov(kFormatVnD, zd, zn);  // The lane size is arbitrary.
+      // Record the movprfx, so the next ExecuteInstruction() can check it.
+      movprfx_ = instr;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEIntMulAddPredicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRm());
+
+  SimVRegister result;
+  switch (instr->Mask(SVEIntMulAddPredicatedMask)) {
+    case MLA_z_p_zzz:
+      mla(vform, result, zd, ReadVRegister(instr->GetRn()), zm);
+      break;
+    case MLS_z_p_zzz:
+      mls(vform, result, zd, ReadVRegister(instr->GetRn()), zm);
+      break;
+    case MAD_z_p_zzz:
+      // 'za' is encoded in 'Rn'.
+      mla(vform, result, ReadVRegister(instr->GetRn()), zd, zm);
+      break;
+    case MSB_z_p_zzz: {
+      // 'za' is encoded in 'Rn'.
+      mls(vform, result, ReadVRegister(instr->GetRn()), zd, zm);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zd, ReadPRegister(instr->GetPgLow8()), result);
+}
+
+void Simulator::VisitSVEIntMulAddUnpredicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zda = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister& zm = ReadVRegister(instr->GetRm());
+
+  switch (instr->Mask(SVEIntMulAddUnpredicatedMask)) {
+    case SDOT_z_zzz:
+      sdot(vform, zda, zn, zm);
+      break;
+    case UDOT_z_zzz:
+      udot(vform, zda, zn, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEMovprfx(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+
+  switch (instr->Mask(SVEMovprfxMask)) {
+    case MOVPRFX_z_p_z:
+      if (instr->ExtractBit(16)) {
+        mov_merging(vform, zd, pg, zn);
+      } else {
+        mov_zeroing(vform, zd, pg, zn);
+      }
+
+      // Record the movprfx, so the next ExecuteInstruction() can check it.
+      movprfx_ = instr;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEIntReduction(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& vd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  if (instr->Mask(SVEIntReductionLogicalFMask) == SVEIntReductionLogicalFixed) {
+    switch (instr->Mask(SVEIntReductionLogicalMask)) {
+      case ANDV_r_p_z:
+        andv(vform, vd, pg, zn);
+        break;
+      case EORV_r_p_z:
+        eorv(vform, vd, pg, zn);
+        break;
+      case ORV_r_p_z:
+        orv(vform, vd, pg, zn);
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  } else {
+    switch (instr->Mask(SVEIntReductionMask)) {
+      case SADDV_r_p_z:
+        saddv(vform, vd, pg, zn);
+        break;
+      case SMAXV_r_p_z:
+        smaxv(vform, vd, pg, zn);
+        break;
+      case SMINV_r_p_z:
+        sminv(vform, vd, pg, zn);
+        break;
+      case UADDV_r_p_z:
+        uaddv(vform, vd, pg, zn);
+        break;
+      case UMAXV_r_p_z:
+        umaxv(vform, vd, pg, zn);
+        break;
+      case UMINV_r_p_z:
+        uminv(vform, vd, pg, zn);
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  }
+}
+
+void Simulator::VisitSVEIntUnaryArithmeticPredicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+
+  SimVRegister result;
+  switch (instr->Mask(SVEIntUnaryArithmeticPredicatedMask)) {
+    case ABS_z_p_z:
+      abs(vform, result, zn);
+      break;
+    case CLS_z_p_z:
+      cls(vform, result, zn);
+      break;
+    case CLZ_z_p_z:
+      clz(vform, result, zn);
+      break;
+    case CNOT_z_p_z:
+      cnot(vform, result, zn);
+      break;
+    case CNT_z_p_z:
+      cnt(vform, result, zn);
+      break;
+    case FABS_z_p_z:
+      fabs_(vform, result, zn);
+      break;
+    case FNEG_z_p_z:
+      fneg(vform, result, zn);
+      break;
+    case NEG_z_p_z:
+      neg(vform, result, zn);
+      break;
+    case NOT_z_p_z:
+      not_(vform, result, zn);
+      break;
+    case SXTB_z_p_z:
+    case SXTH_z_p_z:
+    case SXTW_z_p_z:
+      sxt(vform, result, zn, (kBitsPerByte << instr->ExtractBits(18, 17)));
+      break;
+    case UXTB_z_p_z:
+    case UXTH_z_p_z:
+    case UXTW_z_p_z:
+      uxt(vform, result, zn, (kBitsPerByte << instr->ExtractBits(18, 17)));
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  mov_merging(vform, zd, pg, result);
+}
+
+void Simulator::VisitSVECopyFPImm_Predicated(const Instruction* instr) {
+  // There is only one instruction in this group.
+  VIXL_ASSERT(instr->Mask(SVECopyFPImm_PredicatedMask) == FCPY_z_p_i);
+
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimPRegister& pg = ReadPRegister(instr->ExtractBits(19, 16));
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+
+  SimVRegister result;
+  switch (instr->Mask(SVECopyFPImm_PredicatedMask)) {
+    case FCPY_z_p_i: {
+      int imm8 = instr->ExtractBits(12, 5);
+      uint64_t value = FPToRawbitsWithSize(LaneSizeInBitsFromFormat(vform),
+                                           Instruction::Imm8ToFP64(imm8));
+      dup_immediate(vform, result, value);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  mov_merging(vform, zd, pg, result);
+}
+
+void Simulator::VisitSVEIntAddSubtractImm_Unpredicated(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister scratch;
+
+  uint64_t imm = instr->GetImmSVEIntWideUnsigned();
+  imm <<= instr->ExtractBit(13) * 8;
+
+  switch (instr->Mask(SVEIntAddSubtractImm_UnpredicatedMask)) {
+    case ADD_z_zi:
+      add_uint(vform, zd, zd, imm);
+      break;
+    case SQADD_z_zi:
+      add_uint(vform, zd, zd, imm).SignedSaturate(vform);
+      break;
+    case SQSUB_z_zi:
+      sub_uint(vform, zd, zd, imm).SignedSaturate(vform);
+      break;
+    case SUBR_z_zi:
+      dup_immediate(vform, scratch, imm);
+      sub(vform, zd, scratch, zd);
+      break;
+    case SUB_z_zi:
+      sub_uint(vform, zd, zd, imm);
+      break;
+    case UQADD_z_zi:
+      add_uint(vform, zd, zd, imm).UnsignedSaturate(vform);
+      break;
+    case UQSUB_z_zi:
+      sub_uint(vform, zd, zd, imm).UnsignedSaturate(vform);
+      break;
+    default:
+      break;
+  }
+}
+
+void Simulator::VisitSVEBroadcastIntImm_Unpredicated(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+
+  VectorFormat format = instr->GetSVEVectorFormat();
+  int64_t imm = instr->GetImmSVEIntWideSigned();
+  int shift = instr->ExtractBit(13) * 8;
+  imm *= 1 << shift;
+
+  switch (instr->Mask(SVEBroadcastIntImm_UnpredicatedMask)) {
+    case DUP_z_i:
+      // The encoding of byte-sized lanes with lsl #8 is undefined.
+      if ((format == kFormatVnB) && (shift == 8)) {
+        VIXL_UNIMPLEMENTED();
+      } else {
+        dup_immediate(format, zd, imm);
+      }
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEBroadcastFPImm_Unpredicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+
+  switch (instr->Mask(SVEBroadcastFPImm_UnpredicatedMask)) {
+    case FDUP_z_i:
+      switch (vform) {
+        case kFormatVnH:
+          dup_immediate(vform, zd, Float16ToRawbits(instr->GetSVEImmFP16()));
+          break;
+        case kFormatVnS:
+          dup_immediate(vform, zd, FloatToRawbits(instr->GetSVEImmFP32()));
+          break;
+        case kFormatVnD:
+          dup_immediate(vform, zd, DoubleToRawbits(instr->GetSVEImmFP64()));
+          break;
+        default:
+          VIXL_UNIMPLEMENTED();
+      }
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsets(
+    const Instruction* instr) {
+  switch (instr->Mask(
+      SVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsetsMask)) {
+    case LD1H_z_p_bz_s_x32_scaled:
+    case LD1SH_z_p_bz_s_x32_scaled:
+    case LDFF1H_z_p_bz_s_x32_scaled:
+    case LDFF1SH_z_p_bz_s_x32_scaled:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SVEOffsetModifier mod = (instr->ExtractBit(22) == 1) ? SVE_SXTW : SVE_UXTW;
+  SVEGatherLoadScalarPlusVectorHelper(instr, kFormatVnS, mod);
+}
+
+void Simulator::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets(
+    const Instruction* instr) {
+  switch (instr->Mask(SVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsetsMask)) {
+    case LD1B_z_p_bz_s_x32_unscaled:
+    case LD1H_z_p_bz_s_x32_unscaled:
+    case LD1SB_z_p_bz_s_x32_unscaled:
+    case LD1SH_z_p_bz_s_x32_unscaled:
+    case LD1W_z_p_bz_s_x32_unscaled:
+    case LDFF1B_z_p_bz_s_x32_unscaled:
+    case LDFF1H_z_p_bz_s_x32_unscaled:
+    case LDFF1SB_z_p_bz_s_x32_unscaled:
+    case LDFF1SH_z_p_bz_s_x32_unscaled:
+    case LDFF1W_z_p_bz_s_x32_unscaled:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SVEOffsetModifier mod = (instr->ExtractBit(22) == 1) ? SVE_SXTW : SVE_UXTW;
+  SVEGatherLoadScalarPlusVectorHelper(instr, kFormatVnS, mod);
+}
+
+void Simulator::VisitSVE32BitGatherLoad_VectorPlusImm(
+    const Instruction* instr) {
+  switch (instr->Mask(SVE32BitGatherLoad_VectorPlusImmMask)) {
+    case LD1B_z_p_ai_s:
+      VIXL_UNIMPLEMENTED();
+      break;
+    case LD1H_z_p_ai_s:
+      VIXL_UNIMPLEMENTED();
+      break;
+    case LD1SB_z_p_ai_s:
+      VIXL_UNIMPLEMENTED();
+      break;
+    case LD1SH_z_p_ai_s:
+      VIXL_UNIMPLEMENTED();
+      break;
+    case LD1W_z_p_ai_s:
+      VIXL_UNIMPLEMENTED();
+      break;
+    case LDFF1B_z_p_ai_s:
+      VIXL_UNIMPLEMENTED();
+      break;
+    case LDFF1H_z_p_ai_s:
+      VIXL_UNIMPLEMENTED();
+      break;
+    case LDFF1SB_z_p_ai_s:
+      VIXL_UNIMPLEMENTED();
+      break;
+    case LDFF1SH_z_p_ai_s:
+      VIXL_UNIMPLEMENTED();
+      break;
+    case LDFF1W_z_p_ai_s:
+      VIXL_UNIMPLEMENTED();
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsets(
+    const Instruction* instr) {
+  switch (
+      instr->Mask(SVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsetsMask)) {
+    case LD1W_z_p_bz_s_x32_scaled:
+    case LDFF1W_z_p_bz_s_x32_scaled:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SVEOffsetModifier mod = (instr->ExtractBit(22) == 1) ? SVE_SXTW : SVE_UXTW;
+  SVEGatherLoadScalarPlusVectorHelper(instr, kFormatVnS, mod);
+}
+
+void Simulator::VisitSVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsets(
+    const Instruction* instr) {
+  switch (
+      instr->Mask(SVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsetsMask)) {
+    // Ignore prefetch hint instructions.
+    case PRFB_i_p_bz_s_x32_scaled:
+    case PRFD_i_p_bz_s_x32_scaled:
+    case PRFH_i_p_bz_s_x32_scaled:
+    case PRFW_i_p_bz_s_x32_scaled:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVE32BitGatherPrefetch_VectorPlusImm(
+    const Instruction* instr) {
+  switch (instr->Mask(SVE32BitGatherPrefetch_VectorPlusImmMask)) {
+    // Ignore prefetch hint instructions.
+    case PRFB_i_p_ai_s:
+    case PRFD_i_p_ai_s:
+    case PRFH_i_p_ai_s:
+    case PRFW_i_p_ai_s:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEContiguousPrefetch_ScalarPlusImm(
+    const Instruction* instr) {
+  switch (instr->Mask(SVEContiguousPrefetch_ScalarPlusImmMask)) {
+    // Ignore prefetch hint instructions.
+    case PRFB_i_p_bi_s:
+    case PRFD_i_p_bi_s:
+    case PRFH_i_p_bi_s:
+    case PRFW_i_p_bi_s:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEContiguousPrefetch_ScalarPlusScalar(
+    const Instruction* instr) {
+  switch (instr->Mask(SVEContiguousPrefetch_ScalarPlusScalarMask)) {
+    // Ignore prefetch hint instructions.
+    case PRFB_i_p_br_s:
+    case PRFD_i_p_br_s:
+    case PRFH_i_p_br_s:
+    case PRFW_i_p_br_s:
+      if (instr->GetRm() == kZeroRegCode) {
+        VIXL_UNIMPLEMENTED();
+      }
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVELoadAndBroadcastElement(const Instruction* instr) {
+  bool is_signed;
+  switch (instr->Mask(SVELoadAndBroadcastElementMask)) {
+    case LD1RB_z_p_bi_u8:
+    case LD1RB_z_p_bi_u16:
+    case LD1RB_z_p_bi_u32:
+    case LD1RB_z_p_bi_u64:
+    case LD1RH_z_p_bi_u16:
+    case LD1RH_z_p_bi_u32:
+    case LD1RH_z_p_bi_u64:
+    case LD1RW_z_p_bi_u32:
+    case LD1RW_z_p_bi_u64:
+    case LD1RD_z_p_bi_u64:
+      is_signed = false;
+      break;
+    case LD1RSB_z_p_bi_s16:
+    case LD1RSB_z_p_bi_s32:
+    case LD1RSB_z_p_bi_s64:
+    case LD1RSH_z_p_bi_s32:
+    case LD1RSH_z_p_bi_s64:
+    case LD1RSW_z_p_bi_s64:
+      is_signed = true;
+      break;
+    default:
+      // This encoding group is complete, so no other values should be possible.
+      VIXL_UNREACHABLE();
+      is_signed = false;
+      break;
+  }
+
+  int msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(is_signed);
+  int esize_in_bytes_log2 = instr->GetSVEEsizeFromDtype(is_signed, 13);
+  VIXL_ASSERT(msize_in_bytes_log2 <= esize_in_bytes_log2);
+  VectorFormat vform = SVEFormatFromLaneSizeInBytesLog2(esize_in_bytes_log2);
+  uint64_t offset = instr->ExtractBits(21, 16) << msize_in_bytes_log2;
+  uint64_t base = ReadXRegister(instr->GetRn()) + offset;
+  VectorFormat unpack_vform =
+      SVEFormatFromLaneSizeInBytesLog2(msize_in_bytes_log2);
+  SimVRegister temp;
+  ld1r(vform, unpack_vform, temp, base, is_signed);
+  mov_zeroing(vform,
+              ReadVRegister(instr->GetRt()),
+              ReadPRegister(instr->GetPgLow8()),
+              temp);
+}
+
+void Simulator::VisitSVELoadPredicateRegister(const Instruction* instr) {
+  switch (instr->Mask(SVELoadPredicateRegisterMask)) {
+    case LDR_p_bi: {
+      SimPRegister& pt = ReadPRegister(instr->GetPt());
+      int pl = GetPredicateLengthInBytes();
+      int imm9 = (instr->ExtractBits(21, 16) << 3) | instr->ExtractBits(12, 10);
+      uint64_t multiplier = ExtractSignedBitfield64(8, 0, imm9);
+      uint64_t address = ReadXRegister(instr->GetRn()) + multiplier * pl;
+      for (int i = 0; i < pl; i++) {
+        pt.Insert(i, MemRead<uint8_t>(address + i));
+      }
+      LogPRead(instr->GetPt(), address);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVELoadVectorRegister(const Instruction* instr) {
+  switch (instr->Mask(SVELoadVectorRegisterMask)) {
+    case LDR_z_bi: {
+      SimVRegister& zt = ReadVRegister(instr->GetRt());
+      int vl = GetVectorLengthInBytes();
+      int imm9 = (instr->ExtractBits(21, 16) << 3) | instr->ExtractBits(12, 10);
+      uint64_t multiplier = ExtractSignedBitfield64(8, 0, imm9);
+      uint64_t address = ReadXRegister(instr->GetRn()) + multiplier * vl;
+      for (int i = 0; i < vl; i++) {
+        zt.Insert(i, MemRead<uint8_t>(address + i));
+      }
+      LogZRead(instr->GetRt(), address);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets(
+    const Instruction* instr) {
+  switch (instr->Mask(
+      SVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsetsMask)) {
+    case LD1D_z_p_bz_d_x32_scaled:
+    case LD1H_z_p_bz_d_x32_scaled:
+    case LD1SH_z_p_bz_d_x32_scaled:
+    case LD1SW_z_p_bz_d_x32_scaled:
+    case LD1W_z_p_bz_d_x32_scaled:
+    case LDFF1H_z_p_bz_d_x32_scaled:
+    case LDFF1W_z_p_bz_d_x32_scaled:
+    case LDFF1D_z_p_bz_d_x32_scaled:
+    case LDFF1SH_z_p_bz_d_x32_scaled:
+    case LDFF1SW_z_p_bz_d_x32_scaled:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SVEOffsetModifier mod = (instr->ExtractBit(22) == 1) ? SVE_SXTW : SVE_UXTW;
+  SVEGatherLoadScalarPlusVectorHelper(instr, kFormatVnD, mod);
+}
+
+void Simulator::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets(
+    const Instruction* instr) {
+  switch (instr->Mask(SVE64BitGatherLoad_ScalarPlus64BitScaledOffsetsMask)) {
+    case LD1D_z_p_bz_d_64_scaled:
+    case LD1H_z_p_bz_d_64_scaled:
+    case LD1SH_z_p_bz_d_64_scaled:
+    case LD1SW_z_p_bz_d_64_scaled:
+    case LD1W_z_p_bz_d_64_scaled:
+    case LDFF1H_z_p_bz_d_64_scaled:
+    case LDFF1W_z_p_bz_d_64_scaled:
+    case LDFF1D_z_p_bz_d_64_scaled:
+    case LDFF1SH_z_p_bz_d_64_scaled:
+    case LDFF1SW_z_p_bz_d_64_scaled:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SVEGatherLoadScalarPlusVectorHelper(instr, kFormatVnD, SVE_LSL);
+}
+
+void Simulator::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets(
+    const Instruction* instr) {
+  switch (instr->Mask(SVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsetsMask)) {
+    case LD1B_z_p_bz_d_64_unscaled:
+    case LD1D_z_p_bz_d_64_unscaled:
+    case LD1H_z_p_bz_d_64_unscaled:
+    case LD1SB_z_p_bz_d_64_unscaled:
+    case LD1SH_z_p_bz_d_64_unscaled:
+    case LD1SW_z_p_bz_d_64_unscaled:
+    case LD1W_z_p_bz_d_64_unscaled:
+    case LDFF1B_z_p_bz_d_64_unscaled:
+    case LDFF1D_z_p_bz_d_64_unscaled:
+    case LDFF1H_z_p_bz_d_64_unscaled:
+    case LDFF1SB_z_p_bz_d_64_unscaled:
+    case LDFF1SH_z_p_bz_d_64_unscaled:
+    case LDFF1SW_z_p_bz_d_64_unscaled:
+    case LDFF1W_z_p_bz_d_64_unscaled:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SVEGatherLoadScalarPlusVectorHelper(instr,
+                                      kFormatVnD,
+                                      NO_SVE_OFFSET_MODIFIER);
+}
+
+void Simulator::VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets(
+    const Instruction* instr) {
+  switch (instr->Mask(
+      SVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsetsMask)) {
+    case LD1B_z_p_bz_d_x32_unscaled:
+    case LD1D_z_p_bz_d_x32_unscaled:
+    case LD1H_z_p_bz_d_x32_unscaled:
+    case LD1SB_z_p_bz_d_x32_unscaled:
+    case LD1SH_z_p_bz_d_x32_unscaled:
+    case LD1SW_z_p_bz_d_x32_unscaled:
+    case LD1W_z_p_bz_d_x32_unscaled:
+    case LDFF1B_z_p_bz_d_x32_unscaled:
+    case LDFF1H_z_p_bz_d_x32_unscaled:
+    case LDFF1W_z_p_bz_d_x32_unscaled:
+    case LDFF1D_z_p_bz_d_x32_unscaled:
+    case LDFF1SB_z_p_bz_d_x32_unscaled:
+    case LDFF1SH_z_p_bz_d_x32_unscaled:
+    case LDFF1SW_z_p_bz_d_x32_unscaled:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  SVEOffsetModifier mod = (instr->ExtractBit(22) == 1) ? SVE_SXTW : SVE_UXTW;
+  SVEGatherLoadScalarPlusVectorHelper(instr, kFormatVnD, mod);
+}
+
+void Simulator::VisitSVE64BitGatherLoad_VectorPlusImm(
+    const Instruction* instr) {
+  switch (instr->Mask(SVE64BitGatherLoad_VectorPlusImmMask)) {
+    case LD1B_z_p_ai_d:
+    case LD1D_z_p_ai_d:
+    case LD1H_z_p_ai_d:
+    case LD1SB_z_p_ai_d:
+    case LD1SH_z_p_ai_d:
+    case LD1SW_z_p_ai_d:
+    case LD1W_z_p_ai_d:
+    case LDFF1B_z_p_ai_d:
+    case LDFF1D_z_p_ai_d:
+    case LDFF1H_z_p_ai_d:
+    case LDFF1SB_z_p_ai_d:
+    case LDFF1SH_z_p_ai_d:
+    case LDFF1SW_z_p_ai_d:
+    case LDFF1W_z_p_ai_d:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  bool is_signed = instr->ExtractBit(14) == 0;
+  bool is_ff = instr->ExtractBit(13) == 1;
+  // Note that these instructions don't use the Dtype encoding.
+  int msize_in_bytes_log2 = instr->ExtractBits(24, 23);
+  uint64_t imm = instr->ExtractBits(20, 16) << msize_in_bytes_log2;
+  LogicSVEAddressVector addr(imm, &ReadVRegister(instr->GetRn()), kFormatVnD);
+  addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+  if (is_ff) {
+    VIXL_UNIMPLEMENTED();
+  } else {
+    SVEStructuredLoadHelper(kFormatVnD,
+                            ReadPRegister(instr->GetPgLow8()),
+                            instr->GetRt(),
+                            addr,
+                            is_signed);
+  }
+}
+
+void Simulator::VisitSVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsets(
+    const Instruction* instr) {
+  switch (
+      instr->Mask(SVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsetsMask)) {
+    // Ignore prefetch hint instructions.
+    case PRFB_i_p_bz_d_64_scaled:
+    case PRFD_i_p_bz_d_64_scaled:
+    case PRFH_i_p_bz_d_64_scaled:
+    case PRFW_i_p_bz_d_64_scaled:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::
+    VisitSVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsets(
+        const Instruction* instr) {
+  switch (instr->Mask(
+      SVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsetsMask)) {
+    // Ignore prefetch hint instructions.
+    case PRFB_i_p_bz_d_x32_scaled:
+    case PRFD_i_p_bz_d_x32_scaled:
+    case PRFH_i_p_bz_d_x32_scaled:
+    case PRFW_i_p_bz_d_x32_scaled:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVE64BitGatherPrefetch_VectorPlusImm(
+    const Instruction* instr) {
+  switch (instr->Mask(SVE64BitGatherPrefetch_VectorPlusImmMask)) {
+    // Ignore prefetch hint instructions.
+    case PRFB_i_p_ai_d:
+    case PRFD_i_p_ai_d:
+    case PRFH_i_p_ai_d:
+    case PRFW_i_p_ai_d:
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar(
+    const Instruction* instr) {
+  bool is_signed;
+  switch (instr->Mask(SVEContiguousLoad_ScalarPlusScalarMask)) {
+    case LDFF1B_z_p_br_u8:
+    case LDFF1B_z_p_br_u16:
+    case LDFF1B_z_p_br_u32:
+    case LDFF1B_z_p_br_u64:
+    case LDFF1H_z_p_br_u16:
+    case LDFF1H_z_p_br_u32:
+    case LDFF1H_z_p_br_u64:
+    case LDFF1W_z_p_br_u32:
+    case LDFF1W_z_p_br_u64:
+    case LDFF1D_z_p_br_u64:
+      is_signed = false;
+      break;
+    case LDFF1SB_z_p_br_s16:
+    case LDFF1SB_z_p_br_s32:
+    case LDFF1SB_z_p_br_s64:
+    case LDFF1SH_z_p_br_s32:
+    case LDFF1SH_z_p_br_s64:
+    case LDFF1SW_z_p_br_s64:
+      is_signed = true;
+      break;
+    default:
+      // This encoding group is complete, so no other values should be possible.
+      VIXL_UNREACHABLE();
+      is_signed = false;
+      break;
+  }
+
+  int msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(is_signed);
+  int esize_in_bytes_log2 = instr->GetSVEEsizeFromDtype(is_signed);
+  VIXL_ASSERT(msize_in_bytes_log2 <= esize_in_bytes_log2);
+  VectorFormat vform = SVEFormatFromLaneSizeInBytesLog2(esize_in_bytes_log2);
+  uint64_t offset = ReadXRegister(instr->GetRm());
+  offset <<= msize_in_bytes_log2;
+  LogicSVEAddressVector addr(ReadXRegister(instr->GetRn()) + offset);
+  addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+  SVEFaultTolerantLoadHelper(vform,
+                             ReadPRegister(instr->GetPgLow8()),
+                             instr->GetRt(),
+                             addr,
+                             kSVEFirstFaultLoad,
+                             is_signed);
+}
+
+void Simulator::VisitSVEContiguousNonFaultLoad_ScalarPlusImm(
+    const Instruction* instr) {
+  bool is_signed = false;
+  switch (instr->Mask(SVEContiguousNonFaultLoad_ScalarPlusImmMask)) {
+    case LDNF1B_z_p_bi_u16:
+    case LDNF1B_z_p_bi_u32:
+    case LDNF1B_z_p_bi_u64:
+    case LDNF1B_z_p_bi_u8:
+    case LDNF1D_z_p_bi_u64:
+    case LDNF1H_z_p_bi_u16:
+    case LDNF1H_z_p_bi_u32:
+    case LDNF1H_z_p_bi_u64:
+    case LDNF1W_z_p_bi_u32:
+    case LDNF1W_z_p_bi_u64:
+      break;
+    case LDNF1SB_z_p_bi_s16:
+    case LDNF1SB_z_p_bi_s32:
+    case LDNF1SB_z_p_bi_s64:
+    case LDNF1SH_z_p_bi_s32:
+    case LDNF1SH_z_p_bi_s64:
+    case LDNF1SW_z_p_bi_s64:
+      is_signed = true;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  int msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(is_signed);
+  int esize_in_bytes_log2 = instr->GetSVEEsizeFromDtype(is_signed);
+  VIXL_ASSERT(msize_in_bytes_log2 <= esize_in_bytes_log2);
+  VectorFormat vform = SVEFormatFromLaneSizeInBytesLog2(esize_in_bytes_log2);
+  int vl = GetVectorLengthInBytes();
+  int vl_divisor_log2 = esize_in_bytes_log2 - msize_in_bytes_log2;
+  uint64_t offset =
+      (instr->ExtractSignedBits(19, 16) * vl) / (1 << vl_divisor_log2);
+  LogicSVEAddressVector addr(ReadXRegister(instr->GetRn()) + offset);
+  addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+  SVEFaultTolerantLoadHelper(vform,
+                             ReadPRegister(instr->GetPgLow8()),
+                             instr->GetRt(),
+                             addr,
+                             kSVENonFaultLoad,
+                             is_signed);
+}
+
+void Simulator::VisitSVEContiguousNonTemporalLoad_ScalarPlusImm(
+    const Instruction* instr) {
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  VectorFormat vform = kFormatUndefined;
+
+  switch (instr->Mask(SVEContiguousNonTemporalLoad_ScalarPlusImmMask)) {
+    case LDNT1B_z_p_bi_contiguous:
+      vform = kFormatVnB;
+      break;
+    case LDNT1D_z_p_bi_contiguous:
+      vform = kFormatVnD;
+      break;
+    case LDNT1H_z_p_bi_contiguous:
+      vform = kFormatVnH;
+      break;
+    case LDNT1W_z_p_bi_contiguous:
+      vform = kFormatVnS;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  int msize_in_bytes_log2 = LaneSizeInBytesLog2FromFormat(vform);
+  int vl = GetVectorLengthInBytes();
+  uint64_t offset = instr->ExtractSignedBits(19, 16) * vl;
+  LogicSVEAddressVector addr(ReadXRegister(instr->GetRn()) + offset);
+  addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+  SVEStructuredLoadHelper(vform,
+                          pg,
+                          instr->GetRt(),
+                          addr,
+                          /* is_signed = */ false);
+}
+
+void Simulator::VisitSVEContiguousNonTemporalLoad_ScalarPlusScalar(
+    const Instruction* instr) {
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  VectorFormat vform = kFormatUndefined;
+
+  switch (instr->Mask(SVEContiguousNonTemporalLoad_ScalarPlusScalarMask)) {
+    case LDNT1B_z_p_br_contiguous:
+      vform = kFormatVnB;
+      break;
+    case LDNT1D_z_p_br_contiguous:
+      vform = kFormatVnD;
+      break;
+    case LDNT1H_z_p_br_contiguous:
+      vform = kFormatVnH;
+      break;
+    case LDNT1W_z_p_br_contiguous:
+      vform = kFormatVnS;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  int msize_in_bytes_log2 = LaneSizeInBytesLog2FromFormat(vform);
+  uint64_t offset = ReadXRegister(instr->GetRm()) << msize_in_bytes_log2;
+  LogicSVEAddressVector addr(ReadXRegister(instr->GetRn()) + offset);
+  addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+  SVEStructuredLoadHelper(vform,
+                          pg,
+                          instr->GetRt(),
+                          addr,
+                          /* is_signed = */ false);
+}
+
+void Simulator::VisitSVELoadAndBroadcastQuadword_ScalarPlusImm(
+    const Instruction* instr) {
+  SimVRegister& zt = ReadVRegister(instr->GetRt());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  uint64_t addr = ReadXRegister(instr->GetRn(), Reg31IsStackPointer);
+  uint64_t offset = instr->ExtractSignedBits(19, 16) * 16;
+
+  VectorFormat vform = kFormatUndefined;
+  switch (instr->Mask(SVELoadAndBroadcastQuadword_ScalarPlusImmMask)) {
+    case LD1RQB_z_p_bi_u8:
+      vform = kFormatVnB;
+      break;
+    case LD1RQD_z_p_bi_u64:
+      vform = kFormatVnD;
+      break;
+    case LD1RQH_z_p_bi_u16:
+      vform = kFormatVnH;
+      break;
+    case LD1RQW_z_p_bi_u32:
+      vform = kFormatVnS;
+      break;
+    default:
+      addr = offset = 0;
+      break;
+  }
+  ld1(kFormat16B, zt, addr + offset);
+  mov_zeroing(vform, zt, pg, zt);
+  dup_element(kFormatVnQ, zt, zt, 0);
+}
+
+void Simulator::VisitSVELoadAndBroadcastQuadword_ScalarPlusScalar(
+    const Instruction* instr) {
+  SimVRegister& zt = ReadVRegister(instr->GetRt());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  uint64_t addr = ReadXRegister(instr->GetRn(), Reg31IsStackPointer);
+  uint64_t offset = ReadXRegister(instr->GetRm());
+
+  VectorFormat vform = kFormatUndefined;
+  switch (instr->Mask(SVELoadAndBroadcastQuadword_ScalarPlusScalarMask)) {
+    case LD1RQB_z_p_br_contiguous:
+      vform = kFormatVnB;
+      break;
+    case LD1RQD_z_p_br_contiguous:
+      vform = kFormatVnD;
+      offset <<= 3;
+      break;
+    case LD1RQH_z_p_br_contiguous:
+      vform = kFormatVnH;
+      offset <<= 1;
+      break;
+    case LD1RQW_z_p_br_contiguous:
+      vform = kFormatVnS;
+      offset <<= 2;
+      break;
+    default:
+      addr = offset = 0;
+      break;
+  }
+  ld1(kFormat16B, zt, addr + offset);
+  mov_zeroing(vform, zt, pg, zt);
+  dup_element(kFormatVnQ, zt, zt, 0);
+}
+
+void Simulator::VisitSVELoadMultipleStructures_ScalarPlusImm(
+    const Instruction* instr) {
+  switch (instr->Mask(SVELoadMultipleStructures_ScalarPlusImmMask)) {
+    case LD2B_z_p_bi_contiguous:
+    case LD2D_z_p_bi_contiguous:
+    case LD2H_z_p_bi_contiguous:
+    case LD2W_z_p_bi_contiguous:
+    case LD3B_z_p_bi_contiguous:
+    case LD3D_z_p_bi_contiguous:
+    case LD3H_z_p_bi_contiguous:
+    case LD3W_z_p_bi_contiguous:
+    case LD4B_z_p_bi_contiguous:
+    case LD4D_z_p_bi_contiguous:
+    case LD4H_z_p_bi_contiguous:
+    case LD4W_z_p_bi_contiguous: {
+      int vl = GetVectorLengthInBytes();
+      int msz = instr->ExtractBits(24, 23);
+      int reg_count = instr->ExtractBits(22, 21) + 1;
+      uint64_t offset = instr->ExtractSignedBits(19, 16) * vl * reg_count;
+      LogicSVEAddressVector addr(
+          ReadXRegister(instr->GetRn(), Reg31IsStackPointer) + offset);
+      addr.SetMsizeInBytesLog2(msz);
+      addr.SetRegCount(reg_count);
+      SVEStructuredLoadHelper(SVEFormatFromLaneSizeInBytesLog2(msz),
+                              ReadPRegister(instr->GetPgLow8()),
+                              instr->GetRt(),
+                              addr);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVELoadMultipleStructures_ScalarPlusScalar(
+    const Instruction* instr) {
+  switch (instr->Mask(SVELoadMultipleStructures_ScalarPlusScalarMask)) {
+    case LD2B_z_p_br_contiguous:
+    case LD2D_z_p_br_contiguous:
+    case LD2H_z_p_br_contiguous:
+    case LD2W_z_p_br_contiguous:
+    case LD3B_z_p_br_contiguous:
+    case LD3D_z_p_br_contiguous:
+    case LD3H_z_p_br_contiguous:
+    case LD3W_z_p_br_contiguous:
+    case LD4B_z_p_br_contiguous:
+    case LD4D_z_p_br_contiguous:
+    case LD4H_z_p_br_contiguous:
+    case LD4W_z_p_br_contiguous: {
+      int msz = instr->ExtractBits(24, 23);
+      uint64_t offset = ReadXRegister(instr->GetRm()) * (1 << msz);
+      VectorFormat vform = SVEFormatFromLaneSizeInBytesLog2(msz);
+      LogicSVEAddressVector addr(
+          ReadXRegister(instr->GetRn(), Reg31IsStackPointer) + offset);
+      addr.SetMsizeInBytesLog2(msz);
+      addr.SetRegCount(instr->ExtractBits(22, 21) + 1);
+      SVEStructuredLoadHelper(vform,
+                              ReadPRegister(instr->GetPgLow8()),
+                              instr->GetRt(),
+                              addr,
+                              false);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVE32BitScatterStore_ScalarPlus32BitScaledOffsets(
+    const Instruction* instr) {
+  switch (instr->Mask(SVE32BitScatterStore_ScalarPlus32BitScaledOffsetsMask)) {
+    case ST1H_z_p_bz_s_x32_scaled:
+    case ST1W_z_p_bz_s_x32_scaled: {
+      unsigned msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(false);
+      VIXL_ASSERT(kDRegSizeInBytesLog2 >= msize_in_bytes_log2);
+      int scale = instr->ExtractBit(21) * msize_in_bytes_log2;
+      uint64_t base = ReadXRegister(instr->GetRn());
+      SVEOffsetModifier mod =
+          (instr->ExtractBit(14) == 1) ? SVE_SXTW : SVE_UXTW;
+      LogicSVEAddressVector addr(base,
+                                 &ReadVRegister(instr->GetRm()),
+                                 kFormatVnS,
+                                 mod,
+                                 scale);
+      addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+      SVEStructuredStoreHelper(kFormatVnS,
+                               ReadPRegister(instr->GetPgLow8()),
+                               instr->GetRt(),
+                               addr);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVE32BitScatterStore_ScalarPlus32BitUnscaledOffsets(
+    const Instruction* instr) {
+  switch (
+      instr->Mask(SVE32BitScatterStore_ScalarPlus32BitUnscaledOffsetsMask)) {
+    case ST1B_z_p_bz_s_x32_unscaled:
+    case ST1H_z_p_bz_s_x32_unscaled:
+    case ST1W_z_p_bz_s_x32_unscaled: {
+      unsigned msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(false);
+      VIXL_ASSERT(kDRegSizeInBytesLog2 >= msize_in_bytes_log2);
+      uint64_t base = ReadXRegister(instr->GetRn());
+      SVEOffsetModifier mod =
+          (instr->ExtractBit(14) == 1) ? SVE_SXTW : SVE_UXTW;
+      LogicSVEAddressVector addr(base,
+                                 &ReadVRegister(instr->GetRm()),
+                                 kFormatVnS,
+                                 mod);
+      addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+      SVEStructuredStoreHelper(kFormatVnS,
+                               ReadPRegister(instr->GetPgLow8()),
+                               instr->GetRt(),
+                               addr);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVE32BitScatterStore_VectorPlusImm(
+    const Instruction* instr) {
+  int msz = 0;
+  switch (instr->Mask(SVE32BitScatterStore_VectorPlusImmMask)) {
+    case ST1B_z_p_ai_s:
+      msz = 0;
+      break;
+    case ST1H_z_p_ai_s:
+      msz = 1;
+      break;
+    case ST1W_z_p_ai_s:
+      msz = 2;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  uint64_t imm = instr->ExtractBits(20, 16) << msz;
+  LogicSVEAddressVector addr(imm, &ReadVRegister(instr->GetRn()), kFormatVnS);
+  addr.SetMsizeInBytesLog2(msz);
+  SVEStructuredStoreHelper(kFormatVnS,
+                           ReadPRegister(instr->GetPgLow8()),
+                           instr->GetRt(),
+                           addr);
+}
+
+void Simulator::VisitSVE64BitScatterStore_ScalarPlus64BitScaledOffsets(
+    const Instruction* instr) {
+  switch (instr->Mask(SVE64BitScatterStore_ScalarPlus64BitScaledOffsetsMask)) {
+    case ST1D_z_p_bz_d_64_scaled:
+    case ST1H_z_p_bz_d_64_scaled:
+    case ST1W_z_p_bz_d_64_scaled: {
+      unsigned msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(false);
+      VIXL_ASSERT(kDRegSizeInBytesLog2 >= msize_in_bytes_log2);
+      int scale = instr->ExtractBit(21) * msize_in_bytes_log2;
+      uint64_t base = ReadXRegister(instr->GetRn());
+      LogicSVEAddressVector addr(base,
+                                 &ReadVRegister(instr->GetRm()),
+                                 kFormatVnD,
+                                 SVE_LSL,
+                                 scale);
+      addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+      SVEStructuredStoreHelper(kFormatVnD,
+                               ReadPRegister(instr->GetPgLow8()),
+                               instr->GetRt(),
+                               addr);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVE64BitScatterStore_ScalarPlus64BitUnscaledOffsets(
+    const Instruction* instr) {
+  switch (
+      instr->Mask(SVE64BitScatterStore_ScalarPlus64BitUnscaledOffsetsMask)) {
+    case ST1B_z_p_bz_d_64_unscaled:
+    case ST1D_z_p_bz_d_64_unscaled:
+    case ST1H_z_p_bz_d_64_unscaled:
+    case ST1W_z_p_bz_d_64_unscaled: {
+      unsigned msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(false);
+      VIXL_ASSERT(kDRegSizeInBytesLog2 >= msize_in_bytes_log2);
+      uint64_t base = ReadXRegister(instr->GetRn());
+      LogicSVEAddressVector addr(base,
+                                 &ReadVRegister(instr->GetRm()),
+                                 kFormatVnD,
+                                 NO_SVE_OFFSET_MODIFIER);
+      addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+      SVEStructuredStoreHelper(kFormatVnD,
+                               ReadPRegister(instr->GetPgLow8()),
+                               instr->GetRt(),
+                               addr);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsets(
+    const Instruction* instr) {
+  switch (instr->Mask(
+      SVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsetsMask)) {
+    case ST1D_z_p_bz_d_x32_scaled:
+    case ST1H_z_p_bz_d_x32_scaled:
+    case ST1W_z_p_bz_d_x32_scaled: {
+      unsigned msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(false);
+      VIXL_ASSERT(kDRegSizeInBytesLog2 >= msize_in_bytes_log2);
+      int scale = instr->ExtractBit(21) * msize_in_bytes_log2;
+      uint64_t base = ReadXRegister(instr->GetRn());
+      SVEOffsetModifier mod =
+          (instr->ExtractBit(14) == 1) ? SVE_SXTW : SVE_UXTW;
+      LogicSVEAddressVector addr(base,
+                                 &ReadVRegister(instr->GetRm()),
+                                 kFormatVnD,
+                                 mod,
+                                 scale);
+      addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+      SVEStructuredStoreHelper(kFormatVnD,
+                               ReadPRegister(instr->GetPgLow8()),
+                               instr->GetRt(),
+                               addr);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::
+    VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsets(
+        const Instruction* instr) {
+  switch (instr->Mask(
+      SVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsetsMask)) {
+    case ST1B_z_p_bz_d_x32_unscaled:
+    case ST1D_z_p_bz_d_x32_unscaled:
+    case ST1H_z_p_bz_d_x32_unscaled:
+    case ST1W_z_p_bz_d_x32_unscaled: {
+      unsigned msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(false);
+      VIXL_ASSERT(kDRegSizeInBytesLog2 >= msize_in_bytes_log2);
+      uint64_t base = ReadXRegister(instr->GetRn());
+      SVEOffsetModifier mod =
+          (instr->ExtractBit(14) == 1) ? SVE_SXTW : SVE_UXTW;
+      LogicSVEAddressVector addr(base,
+                                 &ReadVRegister(instr->GetRm()),
+                                 kFormatVnD,
+                                 mod);
+      addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+      SVEStructuredStoreHelper(kFormatVnD,
+                               ReadPRegister(instr->GetPgLow8()),
+                               instr->GetRt(),
+                               addr);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVE64BitScatterStore_VectorPlusImm(
+    const Instruction* instr) {
+  int msz = 0;
+  switch (instr->Mask(SVE64BitScatterStore_VectorPlusImmMask)) {
+    case ST1B_z_p_ai_d:
+      msz = 0;
+      break;
+    case ST1D_z_p_ai_d:
+      msz = 3;
+      break;
+    case ST1H_z_p_ai_d:
+      msz = 1;
+      break;
+    case ST1W_z_p_ai_d:
+      msz = 2;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  uint64_t imm = instr->ExtractBits(20, 16) << msz;
+  LogicSVEAddressVector addr(imm, &ReadVRegister(instr->GetRn()), kFormatVnD);
+  addr.SetMsizeInBytesLog2(msz);
+  SVEStructuredStoreHelper(kFormatVnD,
+                           ReadPRegister(instr->GetPgLow8()),
+                           instr->GetRt(),
+                           addr);
+}
+
+void Simulator::VisitSVEContiguousNonTemporalStore_ScalarPlusImm(
+    const Instruction* instr) {
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  VectorFormat vform = kFormatUndefined;
+
+  switch (instr->Mask(SVEContiguousNonTemporalStore_ScalarPlusImmMask)) {
+    case STNT1B_z_p_bi_contiguous:
+      vform = kFormatVnB;
+      break;
+    case STNT1D_z_p_bi_contiguous:
+      vform = kFormatVnD;
+      break;
+    case STNT1H_z_p_bi_contiguous:
+      vform = kFormatVnH;
+      break;
+    case STNT1W_z_p_bi_contiguous:
+      vform = kFormatVnS;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  int msize_in_bytes_log2 = LaneSizeInBytesLog2FromFormat(vform);
+  int vl = GetVectorLengthInBytes();
+  uint64_t offset = instr->ExtractSignedBits(19, 16) * vl;
+  LogicSVEAddressVector addr(ReadXRegister(instr->GetRn()) + offset);
+  addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+  SVEStructuredStoreHelper(vform, pg, instr->GetRt(), addr);
+}
+
+void Simulator::VisitSVEContiguousNonTemporalStore_ScalarPlusScalar(
+    const Instruction* instr) {
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  VectorFormat vform = kFormatUndefined;
+
+  switch (instr->Mask(SVEContiguousNonTemporalStore_ScalarPlusScalarMask)) {
+    case STNT1B_z_p_br_contiguous:
+      vform = kFormatVnB;
+      break;
+    case STNT1D_z_p_br_contiguous:
+      vform = kFormatVnD;
+      break;
+    case STNT1H_z_p_br_contiguous:
+      vform = kFormatVnH;
+      break;
+    case STNT1W_z_p_br_contiguous:
+      vform = kFormatVnS;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  int msize_in_bytes_log2 = LaneSizeInBytesLog2FromFormat(vform);
+  uint64_t offset = ReadXRegister(instr->GetRm()) << msize_in_bytes_log2;
+  LogicSVEAddressVector addr(ReadXRegister(instr->GetRn()) + offset);
+  addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+  SVEStructuredStoreHelper(vform, pg, instr->GetRt(), addr);
+}
+
+void Simulator::VisitSVEContiguousStore_ScalarPlusImm(
+    const Instruction* instr) {
+  switch (instr->Mask(SVEContiguousStore_ScalarPlusImmMask)) {
+    case ST1B_z_p_bi:
+    case ST1D_z_p_bi:
+    case ST1H_z_p_bi:
+    case ST1W_z_p_bi: {
+      int vl = GetVectorLengthInBytes();
+      int msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(false);
+      int esize_in_bytes_log2 = instr->GetSVEEsizeFromDtype(false);
+      VIXL_ASSERT(esize_in_bytes_log2 >= msize_in_bytes_log2);
+      int vl_divisor_log2 = esize_in_bytes_log2 - msize_in_bytes_log2;
+      uint64_t offset =
+          (instr->ExtractSignedBits(19, 16) * vl) / (1 << vl_divisor_log2);
+      VectorFormat vform =
+          SVEFormatFromLaneSizeInBytesLog2(esize_in_bytes_log2);
+      LogicSVEAddressVector addr(ReadXRegister(instr->GetRn()) + offset);
+      addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+      SVEStructuredStoreHelper(vform,
+                               ReadPRegister(instr->GetPgLow8()),
+                               instr->GetRt(),
+                               addr);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEContiguousStore_ScalarPlusScalar(
+    const Instruction* instr) {
+  switch (instr->Mask(SVEContiguousStore_ScalarPlusScalarMask)) {
+    case ST1B_z_p_br:
+    case ST1D_z_p_br:
+    case ST1H_z_p_br:
+    case ST1W_z_p_br: {
+      uint64_t offset = ReadXRegister(instr->GetRm());
+      offset <<= instr->ExtractBits(24, 23);
+      VectorFormat vform =
+          SVEFormatFromLaneSizeInBytesLog2(instr->ExtractBits(22, 21));
+      LogicSVEAddressVector addr(ReadXRegister(instr->GetRn()) + offset);
+      addr.SetMsizeInBytesLog2(instr->ExtractBits(24, 23));
+      SVEStructuredStoreHelper(vform,
+                               ReadPRegister(instr->GetPgLow8()),
+                               instr->GetRt(),
+                               addr);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVECopySIMDFPScalarRegisterToVector_Predicated(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  SimVRegister z_result;
+
+  switch (instr->Mask(SVECopySIMDFPScalarRegisterToVector_PredicatedMask)) {
+    case CPY_z_p_v:
+      dup_element(vform, z_result, ReadVRegister(instr->GetRn()), 0);
+      mov_merging(vform, ReadVRegister(instr->GetRd()), pg, z_result);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEStoreMultipleStructures_ScalarPlusImm(
+    const Instruction* instr) {
+  switch (instr->Mask(SVEStoreMultipleStructures_ScalarPlusImmMask)) {
+    case ST2B_z_p_bi_contiguous:
+    case ST2D_z_p_bi_contiguous:
+    case ST2H_z_p_bi_contiguous:
+    case ST2W_z_p_bi_contiguous:
+    case ST3B_z_p_bi_contiguous:
+    case ST3D_z_p_bi_contiguous:
+    case ST3H_z_p_bi_contiguous:
+    case ST3W_z_p_bi_contiguous:
+    case ST4B_z_p_bi_contiguous:
+    case ST4D_z_p_bi_contiguous:
+    case ST4H_z_p_bi_contiguous:
+    case ST4W_z_p_bi_contiguous: {
+      int vl = GetVectorLengthInBytes();
+      int msz = instr->ExtractBits(24, 23);
+      int reg_count = instr->ExtractBits(22, 21) + 1;
+      uint64_t offset = instr->ExtractSignedBits(19, 16) * vl * reg_count;
+      LogicSVEAddressVector addr(
+          ReadXRegister(instr->GetRn(), Reg31IsStackPointer) + offset);
+      addr.SetMsizeInBytesLog2(msz);
+      addr.SetRegCount(reg_count);
+      SVEStructuredStoreHelper(SVEFormatFromLaneSizeInBytesLog2(msz),
+                               ReadPRegister(instr->GetPgLow8()),
+                               instr->GetRt(),
+                               addr);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEStoreMultipleStructures_ScalarPlusScalar(
+    const Instruction* instr) {
+  switch (instr->Mask(SVEStoreMultipleStructures_ScalarPlusScalarMask)) {
+    case ST2B_z_p_br_contiguous:
+    case ST2D_z_p_br_contiguous:
+    case ST2H_z_p_br_contiguous:
+    case ST2W_z_p_br_contiguous:
+    case ST3B_z_p_br_contiguous:
+    case ST3D_z_p_br_contiguous:
+    case ST3H_z_p_br_contiguous:
+    case ST3W_z_p_br_contiguous:
+    case ST4B_z_p_br_contiguous:
+    case ST4D_z_p_br_contiguous:
+    case ST4H_z_p_br_contiguous:
+    case ST4W_z_p_br_contiguous: {
+      int msz = instr->ExtractBits(24, 23);
+      uint64_t offset = ReadXRegister(instr->GetRm()) * (1 << msz);
+      VectorFormat vform = SVEFormatFromLaneSizeInBytesLog2(msz);
+      LogicSVEAddressVector addr(
+          ReadXRegister(instr->GetRn(), Reg31IsStackPointer) + offset);
+      addr.SetMsizeInBytesLog2(msz);
+      addr.SetRegCount(instr->ExtractBits(22, 21) + 1);
+      SVEStructuredStoreHelper(vform,
+                               ReadPRegister(instr->GetPgLow8()),
+                               instr->GetRt(),
+                               addr);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEStorePredicateRegister(const Instruction* instr) {
+  switch (instr->Mask(SVEStorePredicateRegisterMask)) {
+    case STR_p_bi: {
+      SimPRegister& pt = ReadPRegister(instr->GetPt());
+      int pl = GetPredicateLengthInBytes();
+      int imm9 = (instr->ExtractBits(21, 16) << 3) | instr->ExtractBits(12, 10);
+      uint64_t multiplier = ExtractSignedBitfield64(8, 0, imm9);
+      uint64_t address = ReadXRegister(instr->GetRn()) + multiplier * pl;
+      for (int i = 0; i < pl; i++) {
+        MemWrite(address + i, pt.GetLane<uint8_t>(i));
+      }
+      LogPWrite(instr->GetPt(), address);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEStoreVectorRegister(const Instruction* instr) {
+  switch (instr->Mask(SVEStoreVectorRegisterMask)) {
+    case STR_z_bi: {
+      SimVRegister& zt = ReadVRegister(instr->GetRt());
+      int vl = GetVectorLengthInBytes();
+      int imm9 = (instr->ExtractBits(21, 16) << 3) | instr->ExtractBits(12, 10);
+      uint64_t multiplier = ExtractSignedBitfield64(8, 0, imm9);
+      uint64_t address = ReadXRegister(instr->GetRn()) + multiplier * vl;
+      for (int i = 0; i < vl; i++) {
+        MemWrite(address + i, zt.GetLane<uint8_t>(i));
+      }
+      LogZWrite(instr->GetRt(), address);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEMulIndex(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zda = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+
+  switch (instr->Mask(SVEMulIndexMask)) {
+    case SDOT_z_zzzi_d:
+      sdot(vform,
+           zda,
+           zn,
+           ReadVRegister(instr->ExtractBits(19, 16)),
+           instr->ExtractBit(20));
+      break;
+    case SDOT_z_zzzi_s:
+      sdot(vform,
+           zda,
+           zn,
+           ReadVRegister(instr->ExtractBits(18, 16)),
+           instr->ExtractBits(20, 19));
+      break;
+    case UDOT_z_zzzi_d:
+      udot(vform,
+           zda,
+           zn,
+           ReadVRegister(instr->ExtractBits(19, 16)),
+           instr->ExtractBit(20));
+      break;
+    case UDOT_z_zzzi_s:
+      udot(vform,
+           zda,
+           zn,
+           ReadVRegister(instr->ExtractBits(18, 16)),
+           instr->ExtractBits(20, 19));
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEPartitionBreakCondition(const Instruction* instr) {
+  SimPRegister& pd = ReadPRegister(instr->GetPd());
+  SimPRegister& pg = ReadPRegister(instr->ExtractBits(13, 10));
+  SimPRegister& pn = ReadPRegister(instr->GetPn());
+  SimPRegister result;
+
+  switch (instr->Mask(SVEPartitionBreakConditionMask)) {
+    case BRKAS_p_p_p_z:
+    case BRKA_p_p_p:
+      brka(result, pg, pn);
+      break;
+    case BRKBS_p_p_p_z:
+    case BRKB_p_p_p:
+      brkb(result, pg, pn);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  if (instr->ExtractBit(4) == 1) {
+    mov_merging(pd, pg, result);
+  } else {
+    mov_zeroing(pd, pg, result);
+  }
+
+  // Set flag if needed.
+  if (instr->ExtractBit(22) == 1) {
+    PredTest(kFormatVnB, pg, pd);
+  }
+}
+
+void Simulator::VisitSVEPropagateBreakToNextPartition(
+    const Instruction* instr) {
+  SimPRegister& pdm = ReadPRegister(instr->GetPd());
+  SimPRegister& pg = ReadPRegister(instr->ExtractBits(13, 10));
+  SimPRegister& pn = ReadPRegister(instr->GetPn());
+
+  switch (instr->Mask(SVEPropagateBreakToNextPartitionMask)) {
+    case BRKNS_p_p_pp:
+    case BRKN_p_p_pp:
+      brkn(pdm, pg, pn);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  // Set flag if needed.
+  if (instr->ExtractBit(22) == 1) {
+    // Note that this ignores `pg`.
+    PredTest(kFormatVnB, GetPTrue(), pdm);
+  }
+}
+
+void Simulator::VisitSVEUnpackPredicateElements(const Instruction* instr) {
+  SimPRegister& pd = ReadPRegister(instr->GetPd());
+  SimPRegister& pn = ReadPRegister(instr->GetPn());
+
+  SimVRegister temp = Simulator::ExpandToSimVRegister(pn);
+  SimVRegister zero;
+  dup_immediate(kFormatVnB, zero, 0);
+
+  switch (instr->Mask(SVEUnpackPredicateElementsMask)) {
+    case PUNPKHI_p_p:
+      zip2(kFormatVnB, temp, temp, zero);
+      break;
+    case PUNPKLO_p_p:
+      zip1(kFormatVnB, temp, temp, zero);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  Simulator::ExtractFromSimVRegister(kFormatVnB, pd, temp);
+}
+
+void Simulator::VisitSVEPermutePredicateElements(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimPRegister& pd = ReadPRegister(instr->GetPd());
+  SimPRegister& pn = ReadPRegister(instr->GetPn());
+  SimPRegister& pm = ReadPRegister(instr->GetPm());
+
+  SimVRegister temp0 = Simulator::ExpandToSimVRegister(pn);
+  SimVRegister temp1 = Simulator::ExpandToSimVRegister(pm);
+
+  switch (instr->Mask(SVEPermutePredicateElementsMask)) {
+    case TRN1_p_pp:
+      trn1(vform, temp0, temp0, temp1);
+      break;
+    case TRN2_p_pp:
+      trn2(vform, temp0, temp0, temp1);
+      break;
+    case UZP1_p_pp:
+      uzp1(vform, temp0, temp0, temp1);
+      break;
+    case UZP2_p_pp:
+      uzp2(vform, temp0, temp0, temp1);
+      break;
+    case ZIP1_p_pp:
+      zip1(vform, temp0, temp0, temp1);
+      break;
+    case ZIP2_p_pp:
+      zip2(vform, temp0, temp0, temp1);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+  Simulator::ExtractFromSimVRegister(kFormatVnB, pd, temp0);
+}
+
+void Simulator::VisitSVEReversePredicateElements(const Instruction* instr) {
+  switch (instr->Mask(SVEReversePredicateElementsMask)) {
+    case REV_p_p: {
+      VectorFormat vform = instr->GetSVEVectorFormat();
+      SimPRegister& pn = ReadPRegister(instr->GetPn());
+      SimPRegister& pd = ReadPRegister(instr->GetPd());
+      SimVRegister temp = Simulator::ExpandToSimVRegister(pn);
+      rev(vform, temp, temp);
+      Simulator::ExtractFromSimVRegister(kFormatVnB, pd, temp);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEPermuteVectorExtract(const Instruction* instr) {
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  // Second source register "Zm" is encoded where "Zn" would usually be.
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+
+  const int imm8h_mask = 0x001F0000;
+  const int imm8l_mask = 0x00001C00;
+  int index = instr->ExtractBits<imm8h_mask | imm8l_mask>();
+  int vl = GetVectorLengthInBytes();
+  index = (index >= vl) ? 0 : index;
+
+  switch (instr->Mask(SVEPermuteVectorExtractMask)) {
+    case EXT_z_zi_des:
+      ext(kFormatVnB, zdn, zdn, zm, index);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEPermuteVectorInterleaving(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister& zm = ReadVRegister(instr->GetRm());
+
+  switch (instr->Mask(SVEPermuteVectorInterleavingMask)) {
+    case TRN1_z_zz:
+      trn1(vform, zd, zn, zm);
+      break;
+    case TRN2_z_zz:
+      trn2(vform, zd, zn, zm);
+      break;
+    case UZP1_z_zz:
+      uzp1(vform, zd, zn, zm);
+      break;
+    case UZP2_z_zz:
+      uzp2(vform, zd, zn, zm);
+      break;
+    case ZIP1_z_zz:
+      zip1(vform, zd, zn, zm);
+      break;
+    case ZIP2_z_zz:
+      zip2(vform, zd, zn, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEConditionallyBroadcastElementToVector(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  int active_offset = -1;
+  switch (instr->Mask(SVEConditionallyBroadcastElementToVectorMask)) {
+    case CLASTA_z_p_zz:
+      active_offset = 1;
+      break;
+    case CLASTB_z_p_zz:
+      active_offset = 0;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  if (active_offset >= 0) {
+    std::pair<bool, uint64_t> value = clast(vform, pg, zm, active_offset);
+    if (value.first) {
+      dup_immediate(vform, zdn, value.second);
+    } else {
+      // Trigger a line of trace for the operation, even though it doesn't
+      // change the register value.
+      mov(vform, zdn, zdn);
+    }
+  }
+}
+
+void Simulator::VisitSVEConditionallyExtractElementToSIMDFPScalar(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& vdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  int active_offset = -1;
+  switch (instr->Mask(SVEConditionallyExtractElementToSIMDFPScalarMask)) {
+    case CLASTA_v_p_z:
+      active_offset = 1;
+      break;
+    case CLASTB_v_p_z:
+      active_offset = 0;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  if (active_offset >= 0) {
+    LogicVRegister dst(vdn);
+    uint64_t src1_value = dst.Uint(vform, 0);
+    std::pair<bool, uint64_t> src2_value = clast(vform, pg, zm, active_offset);
+    dup_immediate(vform, vdn, 0);
+    dst.SetUint(vform, 0, src2_value.first ? src2_value.second : src1_value);
+  }
+}
+
+void Simulator::VisitSVEConditionallyExtractElementToGeneralRegister(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  int active_offset = -1;
+  switch (instr->Mask(SVEConditionallyExtractElementToGeneralRegisterMask)) {
+    case CLASTA_r_p_z:
+      active_offset = 1;
+      break;
+    case CLASTB_r_p_z:
+      active_offset = 0;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  if (active_offset >= 0) {
+    std::pair<bool, uint64_t> value = clast(vform, pg, zm, active_offset);
+    uint64_t masked_src = ReadXRegister(instr->GetRd()) &
+                          GetUintMask(LaneSizeInBitsFromFormat(vform));
+    WriteXRegister(instr->GetRd(), value.first ? value.second : masked_src);
+  }
+}
+
+void Simulator::VisitSVEExtractElementToSIMDFPScalarRegister(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& vdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  int active_offset = -1;
+  switch (instr->Mask(SVEExtractElementToSIMDFPScalarRegisterMask)) {
+    case LASTA_v_p_z:
+      active_offset = 1;
+      break;
+    case LASTB_v_p_z:
+      active_offset = 0;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  if (active_offset >= 0) {
+    LogicVRegister dst(vdn);
+    std::pair<bool, uint64_t> value = clast(vform, pg, zm, active_offset);
+    dup_immediate(vform, vdn, 0);
+    dst.SetUint(vform, 0, value.second);
+  }
+}
+
+void Simulator::VisitSVEExtractElementToGeneralRegister(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  int active_offset = -1;
+  switch (instr->Mask(SVEExtractElementToGeneralRegisterMask)) {
+    case LASTA_r_p_z:
+      active_offset = 1;
+      break;
+    case LASTB_r_p_z:
+      active_offset = 0;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  if (active_offset >= 0) {
+    std::pair<bool, uint64_t> value = clast(vform, pg, zm, active_offset);
+    WriteXRegister(instr->GetRd(), value.second);
+  }
+}
+
+void Simulator::VisitSVECompressActiveElements(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  switch (instr->Mask(SVECompressActiveElementsMask)) {
+    case COMPACT_z_p_z:
+      compact(vform, zd, pg, zn);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVECopyGeneralRegisterToVector_Predicated(
+    const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  SimVRegister z_result;
+
+  switch (instr->Mask(SVECopyGeneralRegisterToVector_PredicatedMask)) {
+    case CPY_z_p_r:
+      dup_immediate(vform,
+                    z_result,
+                    ReadXRegister(instr->GetRn(), Reg31IsStackPointer));
+      mov_merging(vform, ReadVRegister(instr->GetRd()), pg, z_result);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVECopyIntImm_Predicated(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimPRegister& pg = ReadPRegister(instr->ExtractBits(19, 16));
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+
+  SimVRegister result;
+  switch (instr->Mask(SVECopyIntImm_PredicatedMask)) {
+    case CPY_z_p_i: {
+      // Use unsigned arithmetic to avoid undefined behaviour during the shift.
+      uint64_t imm8 = instr->GetImmSVEIntWideSigned();
+      dup_immediate(vform, result, imm8 << (instr->ExtractBit(13) * 8));
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  if (instr->ExtractBit(14) != 0) {
+    mov_merging(vform, zd, pg, result);
+  } else {
+    mov_zeroing(vform, zd, pg, result);
+  }
+}
+
+void Simulator::VisitSVEReverseWithinElements(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+  SimVRegister result;
+
+  // In NEON, the chunk size in which elements are REVersed is in the
+  // instruction mnemonic, and the element size attached to the register.
+  // SVE reverses the semantics; the mapping to logic functions below is to
+  // account for this.
+  VectorFormat chunk_form = instr->GetSVEVectorFormat();
+  VectorFormat element_form = kFormatUndefined;
+
+  switch (instr->Mask(SVEReverseWithinElementsMask)) {
+    case RBIT_z_p_z:
+      rbit(chunk_form, result, zn);
+      break;
+    case REVB_z_z:
+      VIXL_ASSERT((chunk_form == kFormatVnH) || (chunk_form == kFormatVnS) ||
+                  (chunk_form == kFormatVnD));
+      element_form = kFormatVnB;
+      break;
+    case REVH_z_z:
+      VIXL_ASSERT((chunk_form == kFormatVnS) || (chunk_form == kFormatVnD));
+      element_form = kFormatVnH;
+      break;
+    case REVW_z_z:
+      VIXL_ASSERT(chunk_form == kFormatVnD);
+      element_form = kFormatVnS;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  if (instr->Mask(SVEReverseWithinElementsMask) != RBIT_z_p_z) {
+    VIXL_ASSERT(element_form != kFormatUndefined);
+    switch (chunk_form) {
+      case kFormatVnH:
+        rev16(element_form, result, zn);
+        break;
+      case kFormatVnS:
+        rev32(element_form, result, zn);
+        break;
+      case kFormatVnD:
+        rev64(element_form, result, zn);
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+    }
+  }
+
+  mov_merging(chunk_form, zd, pg, result);
+}
+
+void Simulator::VisitSVEVectorSplice_Destructive(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zdn = ReadVRegister(instr->GetRd());
+  SimVRegister& zm = ReadVRegister(instr->GetRn());
+  SimPRegister& pg = ReadPRegister(instr->GetPgLow8());
+
+  switch (instr->Mask(SVEVectorSplice_DestructiveMask)) {
+    case SPLICE_z_p_zz_des:
+      splice(vform, zdn, pg, zdn, zm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEBroadcastGeneralRegister(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  switch (instr->Mask(SVEBroadcastGeneralRegisterMask)) {
+    case DUP_z_r:
+      dup_immediate(instr->GetSVEVectorFormat(),
+                    zd,
+                    ReadXRegister(instr->GetRn(), Reg31IsStackPointer));
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEInsertSIMDFPScalarRegister(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  switch (instr->Mask(SVEInsertSIMDFPScalarRegisterMask)) {
+    case INSR_z_v:
+      insr(vform, zd, ReadDRegisterBits(instr->GetRn()));
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEInsertGeneralRegister(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  switch (instr->Mask(SVEInsertGeneralRegisterMask)) {
+    case INSR_z_r:
+      insr(vform, zd, ReadXRegister(instr->GetRn()));
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEBroadcastIndexElement(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  switch (instr->Mask(SVEBroadcastIndexElementMask)) {
+    case DUP_z_zi: {
+      std::pair<int, int> index_and_lane_size =
+          instr->GetSVEPermuteIndexAndLaneSizeLog2();
+      int index = index_and_lane_size.first;
+      int lane_size_in_bytes_log_2 = index_and_lane_size.second;
+      VectorFormat vform =
+          SVEFormatFromLaneSizeInBytesLog2(lane_size_in_bytes_log_2);
+      if ((index < 0) || (index >= LaneCountFromFormat(vform))) {
+        // Out of bounds, set the destination register to zero.
+        dup_immediate(kFormatVnD, zd, 0);
+      } else {
+        dup_element(vform, zd, ReadVRegister(instr->GetRn()), index);
+      }
+      return;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEReverseVectorElements(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  switch (instr->Mask(SVEReverseVectorElementsMask)) {
+    case REV_z_z:
+      rev(vform, zd, ReadVRegister(instr->GetRn()));
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEUnpackVectorElements(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  switch (instr->Mask(SVEUnpackVectorElementsMask)) {
+    case SUNPKHI_z_z:
+      unpk(vform, zd, ReadVRegister(instr->GetRn()), kHiHalf, kSignedExtend);
+      break;
+    case SUNPKLO_z_z:
+      unpk(vform, zd, ReadVRegister(instr->GetRn()), kLoHalf, kSignedExtend);
+      break;
+    case UUNPKHI_z_z:
+      unpk(vform, zd, ReadVRegister(instr->GetRn()), kHiHalf, kUnsignedExtend);
+      break;
+    case UUNPKLO_z_z:
+      unpk(vform, zd, ReadVRegister(instr->GetRn()), kLoHalf, kUnsignedExtend);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVETableLookup(const Instruction* instr) {
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  switch (instr->Mask(SVETableLookupMask)) {
+    case TBL_z_zz_1:
+      Table(instr->GetSVEVectorFormat(),
+            zd,
+            ReadVRegister(instr->GetRn()),
+            ReadVRegister(instr->GetRm()));
+      return;
+    default:
+      break;
+  }
+}
+
+void Simulator::VisitSVEPredicateCount(const Instruction* instr) {
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimPRegister& pg = ReadPRegister(instr->ExtractBits(13, 10));
+  SimPRegister& pn = ReadPRegister(instr->GetPn());
+
+  switch (instr->Mask(SVEPredicateCountMask)) {
+    case CNTP_r_p_p: {
+      WriteXRegister(instr->GetRd(), CountActiveAndTrueLanes(vform, pg, pn));
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEPredicateLogical(const Instruction* instr) {
+  Instr op = instr->Mask(SVEPredicateLogicalMask);
+  SimPRegister& pd = ReadPRegister(instr->GetPd());
+  SimPRegister& pg = ReadPRegister(instr->ExtractBits(13, 10));
+  SimPRegister& pn = ReadPRegister(instr->GetPn());
+  SimPRegister& pm = ReadPRegister(instr->GetPm());
+  SimPRegister result;
+  switch (op) {
+    case ANDS_p_p_pp_z:
+    case AND_p_p_pp_z:
+    case BICS_p_p_pp_z:
+    case BIC_p_p_pp_z:
+    case EORS_p_p_pp_z:
+    case EOR_p_p_pp_z:
+    case NANDS_p_p_pp_z:
+    case NAND_p_p_pp_z:
+    case NORS_p_p_pp_z:
+    case NOR_p_p_pp_z:
+    case ORNS_p_p_pp_z:
+    case ORN_p_p_pp_z:
+    case ORRS_p_p_pp_z:
+    case ORR_p_p_pp_z:
+      SVEPredicateLogicalHelper(static_cast<SVEPredicateLogicalOp>(op),
+                                result,
+                                pn,
+                                pm);
+      break;
+    case SEL_p_p_pp:
+      sel(pd, pg, pn, pm);
+      return;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  mov_zeroing(pd, pg, result);
+  if (instr->Mask(SVEPredicateLogicalSetFlagsBit) != 0) {
+    PredTest(kFormatVnB, pg, pd);
+  }
+}
+
+void Simulator::VisitSVEPredicateFirstActive(const Instruction* instr) {
+  LogicPRegister pg = ReadPRegister(instr->ExtractBits(8, 5));
+  LogicPRegister pdn = ReadPRegister(instr->GetPd());
+  switch (instr->Mask(SVEPredicateFirstActiveMask)) {
+    case PFIRST_p_p_p:
+      pfirst(pdn, pg, pdn);
+      // TODO: Is this broken when pg == pdn?
+      PredTest(kFormatVnB, pg, pdn);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEPredicateInitialize(const Instruction* instr) {
+  // This group only contains PTRUE{S}, and there are no unallocated encodings.
+  VIXL_STATIC_ASSERT(
+      SVEPredicateInitializeMask ==
+      (SVEPredicateInitializeFMask | SVEPredicateInitializeSetFlagsBit));
+  VIXL_ASSERT((instr->Mask(SVEPredicateInitializeMask) == PTRUE_p_s) ||
+              (instr->Mask(SVEPredicateInitializeMask) == PTRUES_p_s));
+
+  LogicPRegister pdn = ReadPRegister(instr->GetPd());
+  VectorFormat vform = instr->GetSVEVectorFormat();
+
+  ptrue(vform, pdn, instr->GetImmSVEPredicateConstraint());
+  if (instr->ExtractBit(16)) PredTest(vform, pdn, pdn);
+}
+
+void Simulator::VisitSVEPredicateNextActive(const Instruction* instr) {
+  // This group only contains PNEXT, and there are no unallocated encodings.
+  VIXL_STATIC_ASSERT(SVEPredicateNextActiveFMask == SVEPredicateNextActiveMask);
+  VIXL_ASSERT(instr->Mask(SVEPredicateNextActiveMask) == PNEXT_p_p_p);
+
+  LogicPRegister pg = ReadPRegister(instr->ExtractBits(8, 5));
+  LogicPRegister pdn = ReadPRegister(instr->GetPd());
+  VectorFormat vform = instr->GetSVEVectorFormat();
+
+  pnext(vform, pdn, pg, pdn);
+  // TODO: Is this broken when pg == pdn?
+  PredTest(vform, pg, pdn);
+}
+
+void Simulator::VisitSVEPredicateReadFromFFR_Predicated(
+    const Instruction* instr) {
+  LogicPRegister pd(ReadPRegister(instr->GetPd()));
+  LogicPRegister pg(ReadPRegister(instr->GetPn()));
+  FlagsUpdate flags = LeaveFlags;
+  switch (instr->Mask(SVEPredicateReadFromFFR_PredicatedMask)) {
+    case RDFFR_p_p_f:
+      // Do nothing.
+      break;
+    case RDFFRS_p_p_f:
+      flags = SetFlags;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  LogicPRegister ffr(ReadFFR());
+  mov_zeroing(pd, pg, ffr);
+
+  if (flags == SetFlags) {
+    PredTest(kFormatVnB, pg, pd);
+  }
+}
+
+void Simulator::VisitSVEPredicateReadFromFFR_Unpredicated(
+    const Instruction* instr) {
+  LogicPRegister pd(ReadPRegister(instr->GetPd()));
+  LogicPRegister ffr(ReadFFR());
+  switch (instr->Mask(SVEPredicateReadFromFFR_UnpredicatedMask)) {
+    case RDFFR_p_f:
+      mov(pd, ffr);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEPredicateTest(const Instruction* instr) {
+  switch (instr->Mask(SVEPredicateTestMask)) {
+    case PTEST_p_p:
+      PredTest(kFormatVnB,
+               ReadPRegister(instr->ExtractBits(13, 10)),
+               ReadPRegister(instr->GetPn()));
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEPredicateZero(const Instruction* instr) {
+  switch (instr->Mask(SVEPredicateZeroMask)) {
+    case PFALSE_p:
+      pfalse(ReadPRegister(instr->GetPd()));
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEPropagateBreak(const Instruction* instr) {
+  SimPRegister& pd = ReadPRegister(instr->GetPd());
+  SimPRegister& pg = ReadPRegister(instr->ExtractBits(13, 10));
+  SimPRegister& pn = ReadPRegister(instr->GetPn());
+  SimPRegister& pm = ReadPRegister(instr->GetPm());
+
+  bool set_flags = false;
+  switch (instr->Mask(SVEPropagateBreakMask)) {
+    case BRKPAS_p_p_pp:
+      set_flags = true;
+      VIXL_FALLTHROUGH();
+    case BRKPA_p_p_pp:
+      brkpa(pd, pg, pn, pm);
+      break;
+    case BRKPBS_p_p_pp:
+      set_flags = true;
+      VIXL_FALLTHROUGH();
+    case BRKPB_p_p_pp:
+      brkpb(pd, pg, pn, pm);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+
+  if (set_flags) {
+    PredTest(kFormatVnB, pg, pd);
+  }
+}
+
+void Simulator::VisitSVEStackFrameAdjustment(const Instruction* instr) {
+  uint64_t length = 0;
+  switch (instr->Mask(SVEStackFrameAdjustmentMask)) {
+    case ADDPL_r_ri:
+      length = GetPredicateLengthInBytes();
+      break;
+    case ADDVL_r_ri:
+      length = GetVectorLengthInBytes();
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+  }
+  uint64_t base = ReadXRegister(instr->GetRm(), Reg31IsStackPointer);
+  WriteXRegister(instr->GetRd(),
+                 base + (length * instr->GetImmSVEVLScale()),
+                 LogRegWrites,
+                 Reg31IsStackPointer);
+}
+
+void Simulator::VisitSVEStackFrameSize(const Instruction* instr) {
+  int64_t scale = instr->GetImmSVEVLScale();
+
+  switch (instr->Mask(SVEStackFrameSizeMask)) {
+    case RDVL_r_i:
+      WriteXRegister(instr->GetRd(), GetVectorLengthInBytes() * scale);
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+  }
+}
+
+void Simulator::VisitSVEVectorSelect(const Instruction* instr) {
+  // The only instruction in this group is `sel`, and there are no unused
+  // encodings.
+  VIXL_ASSERT(instr->Mask(SVEVectorSelectMask) == SEL_z_p_zz);
+
+  VectorFormat vform = instr->GetSVEVectorFormat();
+  SimVRegister& zd = ReadVRegister(instr->GetRd());
+  SimPRegister& pg = ReadPRegister(instr->ExtractBits(13, 10));
+  SimVRegister& zn = ReadVRegister(instr->GetRn());
+  SimVRegister& zm = ReadVRegister(instr->GetRm());
+
+  sel(vform, zd, pg, zn, zm);
+}
+
+void Simulator::VisitSVEFFRInitialise(const Instruction* instr) {
+  switch (instr->Mask(SVEFFRInitialiseMask)) {
+    case SETFFR_f: {
+      LogicPRegister ffr(ReadFFR());
+      ffr.SetAllBits();
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEFFRWriteFromPredicate(const Instruction* instr) {
+  switch (instr->Mask(SVEFFRWriteFromPredicateMask)) {
+    case WRFFR_f_p: {
+      SimPRegister pn(ReadPRegister(instr->GetPn()));
+      bool last_active = true;
+      for (unsigned i = 0; i < pn.GetSizeInBits(); i++) {
+        bool active = pn.GetBit(i);
+        if (active && !last_active) {
+          // `pn` is non-monotonic. This is UNPREDICTABLE.
+          VIXL_ABORT();
+        }
+        last_active = active;
+      }
+      mov(ReadFFR(), pn);
+      break;
+    }
+    default:
+      VIXL_UNIMPLEMENTED();
+      break;
+  }
+}
+
+void Simulator::VisitSVEContiguousLoad_ScalarPlusImm(const Instruction* instr) {
+  bool is_signed;
+  switch (instr->Mask(SVEContiguousLoad_ScalarPlusImmMask)) {
+    case LD1B_z_p_bi_u8:
+    case LD1B_z_p_bi_u16:
+    case LD1B_z_p_bi_u32:
+    case LD1B_z_p_bi_u64:
+    case LD1H_z_p_bi_u16:
+    case LD1H_z_p_bi_u32:
+    case LD1H_z_p_bi_u64:
+    case LD1W_z_p_bi_u32:
+    case LD1W_z_p_bi_u64:
+    case LD1D_z_p_bi_u64:
+      is_signed = false;
+      break;
+    case LD1SB_z_p_bi_s16:
+    case LD1SB_z_p_bi_s32:
+    case LD1SB_z_p_bi_s64:
+    case LD1SH_z_p_bi_s32:
+    case LD1SH_z_p_bi_s64:
+    case LD1SW_z_p_bi_s64:
+      is_signed = true;
+      break;
+    default:
+      // This encoding group is complete, so no other values should be possible.
+      VIXL_UNREACHABLE();
+      is_signed = false;
+      break;
+  }
+
+  int vl = GetVectorLengthInBytes();
+  int msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(is_signed);
+  int esize_in_bytes_log2 = instr->GetSVEEsizeFromDtype(is_signed);
+  VIXL_ASSERT(esize_in_bytes_log2 >= msize_in_bytes_log2);
+  int vl_divisor_log2 = esize_in_bytes_log2 - msize_in_bytes_log2;
+  uint64_t offset =
+      (instr->ExtractSignedBits(19, 16) * vl) / (1 << vl_divisor_log2);
+  VectorFormat vform = SVEFormatFromLaneSizeInBytesLog2(esize_in_bytes_log2);
+  LogicSVEAddressVector addr(ReadXRegister(instr->GetRn()) + offset);
+  addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+  SVEStructuredLoadHelper(vform,
+                          ReadPRegister(instr->GetPgLow8()),
+                          instr->GetRt(),
+                          addr,
+                          is_signed);
+}
+
+void Simulator::VisitSVEContiguousLoad_ScalarPlusScalar(
+    const Instruction* instr) {
+  bool is_signed;
+  switch (instr->Mask(SVEContiguousLoad_ScalarPlusScalarMask)) {
+    case LD1B_z_p_br_u8:
+    case LD1B_z_p_br_u16:
+    case LD1B_z_p_br_u32:
+    case LD1B_z_p_br_u64:
+    case LD1H_z_p_br_u16:
+    case LD1H_z_p_br_u32:
+    case LD1H_z_p_br_u64:
+    case LD1W_z_p_br_u32:
+    case LD1W_z_p_br_u64:
+    case LD1D_z_p_br_u64:
+      is_signed = false;
+      break;
+    case LD1SB_z_p_br_s16:
+    case LD1SB_z_p_br_s32:
+    case LD1SB_z_p_br_s64:
+    case LD1SH_z_p_br_s32:
+    case LD1SH_z_p_br_s64:
+    case LD1SW_z_p_br_s64:
+      is_signed = true;
+      break;
+    default:
+      // This encoding group is complete, so no other values should be possible.
+      VIXL_UNREACHABLE();
+      is_signed = false;
+      break;
+  }
+
+  int msize_in_bytes_log2 = instr->GetSVEMsizeFromDtype(is_signed);
+  int esize_in_bytes_log2 = instr->GetSVEEsizeFromDtype(is_signed);
+  VIXL_ASSERT(msize_in_bytes_log2 <= esize_in_bytes_log2);
+  VectorFormat vform = SVEFormatFromLaneSizeInBytesLog2(esize_in_bytes_log2);
+  uint64_t offset = ReadXRegister(instr->GetRm());
+  offset <<= msize_in_bytes_log2;
+  LogicSVEAddressVector addr(ReadXRegister(instr->GetRn()) + offset);
+  addr.SetMsizeInBytesLog2(msize_in_bytes_log2);
+  SVEStructuredLoadHelper(vform,
+                          ReadPRegister(instr->GetPgLow8()),
+                          instr->GetRt(),
+                          addr,
+                          is_signed);
+}
 
 void Simulator::DoUnreachable(const Instruction* instr) {
   VIXL_ASSERT((instr->Mask(ExceptionMask) == HLT) &&
@@ -6922,11 +11867,11 @@
   // The appropriate `Simulator::SimulateRuntimeCall()` wrapper and the function
   // to call are passed inlined in the assembly.
   uintptr_t call_wrapper_address =
-      Memory::Read<uintptr_t>(instr + kRuntimeCallWrapperOffset);
+      MemRead<uintptr_t>(instr + kRuntimeCallWrapperOffset);
   uintptr_t function_address =
-      Memory::Read<uintptr_t>(instr + kRuntimeCallFunctionOffset);
+      MemRead<uintptr_t>(instr + kRuntimeCallFunctionOffset);
   RuntimeCallType call_type = static_cast<RuntimeCallType>(
-      Memory::Read<uint32_t>(instr + kRuntimeCallTypeOffset));
+      MemRead<uint32_t>(instr + kRuntimeCallTypeOffset));
   auto runtime_call_wrapper =
       reinterpret_cast<void (*)(Simulator*, uintptr_t)>(call_wrapper_address);
 
@@ -6961,7 +11906,7 @@
   // Read the kNone-terminated list of features.
   CPUFeatures parameters;
   while (true) {
-    ElementType feature = Memory::Read<ElementType>(instr + offset);
+    ElementType feature = MemRead<ElementType>(instr + offset);
     offset += element_size;
     if (feature == static_cast<ElementType>(CPUFeatures::kNone)) break;
     parameters.Combine(static_cast<CPUFeatures::Feature>(feature));
diff --git a/src/aarch64/simulator-aarch64.h b/src/aarch64/simulator-aarch64.h
index 7cb7419..44fb0cd 100644
--- a/src/aarch64/simulator-aarch64.h
+++ b/src/aarch64/simulator-aarch64.h
@@ -27,6 +27,7 @@
 #ifndef VIXL_AARCH64_SIMULATOR_AARCH64_H_
 #define VIXL_AARCH64_SIMULATOR_AARCH64_H_
 
+#include <memory>
 #include <vector>
 
 #include "../globals-vixl.h"
@@ -37,7 +38,6 @@
 #include "cpu-features-auditor-aarch64.h"
 #include "disasm-aarch64.h"
 #include "instructions-aarch64.h"
-#include "instrument-aarch64.h"
 #include "simulator-constants-aarch64.h"
 
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
@@ -55,11 +55,112 @@
 namespace vixl {
 namespace aarch64 {
 
+class SimStack {
+ public:
+  SimStack() {}
+  explicit SimStack(size_t size) : usable_size_(size) {}
+
+  // Guard against accesses above the stack base. This could occur, for example,
+  // if the first simulated function tries to read stack arguments that haven't
+  // been properly initialised in the Simulator's stack.
+  void SetBaseGuardSize(size_t size) { base_guard_size_ = size; }
+
+  // Guard against stack overflows. The size should be large enough to detect
+  // the largest stride made (by `MacroAssembler::Claim()` or equivalent) whilst
+  // initialising stack objects.
+  void SetLimitGuardSize(size_t size) { limit_guard_size_ = size; }
+
+  // The minimum usable size of the stack.
+  // Equal to "stack base" - "stack limit", in AAPCS64 terminology.
+  void SetUsableSize(size_t size) { usable_size_ = size; }
+
+  // Set the minimum alignment for the stack parameters.
+  void AlignToBytesLog2(int align_log2) { align_log2_ = align_log2; }
+
+  class Allocated {
+   public:
+    // Using AAPCS64 terminology, highest addresses at the top:
+    //
+    //  data_.get() + alloc_size ->
+    //                              |
+    //                              | Base guard
+    //                 GetBase() -> |                  |
+    //                                |                |
+    //                                |                | AAPCS64-legal
+    //                                | Usable stack   | values of 'sp'.
+    //                                |                |
+    //                                |                |
+    //                GetLimit() -> |
+    //                              | Limit guard
+    //               data_.get() -> |
+    //
+    // The Simulator detects (and forbids) accesses to either guard region.
+
+    char* GetBase() const { return base_; }
+    char* GetLimit() const { return limit_; }
+
+    template <typename T>
+    bool IsAccessInGuardRegion(const T* base, size_t size) const {
+      VIXL_ASSERT(size > 0);
+      // Inclusive bounds.
+      const char* start = reinterpret_cast<const char*>(base);
+      const char* end = start + size - 1;
+      const char* data_start = data_.get();
+      const char* data_end = data_start + alloc_size_ - 1;
+      bool in_base_guard = (start <= data_end) && (end >= base_);
+      bool in_limit_guard = (start <= limit_) && (end >= data_start);
+      return in_base_guard || in_limit_guard;
+    }
+
+   private:
+    std::unique_ptr<char[]> data_;
+    char* limit_;
+    char* base_;
+    size_t alloc_size_;
+
+    friend class SimStack;
+  };
+
+  // Allocate the stack, locking the parameters.
+  Allocated Allocate() {
+    size_t align_to = 1 << align_log2_;
+    size_t l = AlignUp(limit_guard_size_, align_to);
+    size_t u = AlignUp(usable_size_, align_to);
+    size_t b = AlignUp(base_guard_size_, align_to);
+    size_t size = l + u + b;
+
+    Allocated a;
+    size_t alloc_size = (align_to - 1) + size;
+    a.data_ = std::make_unique<char[]>(alloc_size);
+    void* data = a.data_.get();
+    auto data_aligned =
+        reinterpret_cast<char*>(std::align(align_to, size, data, alloc_size));
+    a.limit_ = data_aligned + l - 1;
+    a.base_ = data_aligned + l + u;
+    a.alloc_size_ = alloc_size;
+    return a;
+  }
+
+ private:
+  size_t base_guard_size_ = 256;
+  size_t limit_guard_size_ = 4 * 1024;
+  size_t usable_size_ = 8 * 1024;
+  size_t align_log2_ = 4;
+
+  static const size_t kDefaultBaseGuardSize = 256;
+  static const size_t kDefaultLimitGuardSize = 4 * 1024;
+  static const size_t kDefaultUsableSize = 8 * 1024;
+};
+
 // Representation of memory, with typed getters and setters for access.
 class Memory {
  public:
+  explicit Memory(SimStack::Allocated stack) : stack_(std::move(stack)) {}
+
+  const SimStack::Allocated& GetStack() { return stack_; }
+
   template <typename T>
-  static T AddressUntag(T address) {
+  T AddressUntag(T address) const {
     // Cast the address using a C-style cast. A reinterpret_cast would be
     // appropriate, but it can't cast one integral type to another.
     uint64_t bits = (uint64_t)address;
@@ -67,39 +168,111 @@
   }
 
   template <typename T, typename A>
-  static T Read(A address) {
+  T Read(A address) const {
     T value;
     address = AddressUntag(address);
-    VIXL_ASSERT((sizeof(value) == 1) || (sizeof(value) == 2) ||
-                (sizeof(value) == 4) || (sizeof(value) == 8) ||
-                (sizeof(value) == 16));
-    memcpy(&value, reinterpret_cast<const char*>(address), sizeof(value));
+    VIXL_STATIC_ASSERT((sizeof(value) == 1) || (sizeof(value) == 2) ||
+                       (sizeof(value) == 4) || (sizeof(value) == 8) ||
+                       (sizeof(value) == 16));
+    auto base = reinterpret_cast<const char*>(address);
+    if (stack_.IsAccessInGuardRegion(base, sizeof(value))) {
+      VIXL_ABORT_WITH_MSG("Attempt to read from stack guard region");
+    }
+    memcpy(&value, base, sizeof(value));
     return value;
   }
 
   template <typename T, typename A>
-  static void Write(A address, T value) {
+  void Write(A address, T value) const {
     address = AddressUntag(address);
-    VIXL_ASSERT((sizeof(value) == 1) || (sizeof(value) == 2) ||
-                (sizeof(value) == 4) || (sizeof(value) == 8) ||
-                (sizeof(value) == 16));
-    memcpy(reinterpret_cast<char*>(address), &value, sizeof(value));
+    VIXL_STATIC_ASSERT((sizeof(value) == 1) || (sizeof(value) == 2) ||
+                       (sizeof(value) == 4) || (sizeof(value) == 8) ||
+                       (sizeof(value) == 16));
+    auto base = reinterpret_cast<char*>(address);
+    if (stack_.IsAccessInGuardRegion(base, sizeof(value))) {
+      VIXL_ABORT_WITH_MSG("Attempt to write to stack guard region");
+    }
+    memcpy(base, &value, sizeof(value));
   }
+
+  template <typename A>
+  uint64_t ReadUint(int size_in_bytes, A address) const {
+    switch (size_in_bytes) {
+      case 1:
+        return Read<uint8_t>(address);
+      case 2:
+        return Read<uint16_t>(address);
+      case 4:
+        return Read<uint32_t>(address);
+      case 8:
+        return Read<uint64_t>(address);
+    }
+    VIXL_UNREACHABLE();
+    return 0;
+  }
+
+  template <typename A>
+  int64_t ReadInt(int size_in_bytes, A address) const {
+    switch (size_in_bytes) {
+      case 1:
+        return Read<int8_t>(address);
+      case 2:
+        return Read<int16_t>(address);
+      case 4:
+        return Read<int32_t>(address);
+      case 8:
+        return Read<int64_t>(address);
+    }
+    VIXL_UNREACHABLE();
+    return 0;
+  }
+
+  template <typename A>
+  void Write(int size_in_bytes, A address, uint64_t value) const {
+    switch (size_in_bytes) {
+      case 1:
+        return Write(address, static_cast<uint8_t>(value));
+      case 2:
+        return Write(address, static_cast<uint16_t>(value));
+      case 4:
+        return Write(address, static_cast<uint32_t>(value));
+      case 8:
+        return Write(address, value);
+    }
+    VIXL_UNREACHABLE();
+  }
+
+ private:
+  SimStack::Allocated stack_;
 };
 
-// Represent a register (r0-r31, v0-v31).
-template <int kSizeInBytes>
+// Represent a register (r0-r31, v0-v31, z0-z31, p0-p15).
+template <unsigned kMaxSizeInBits>
 class SimRegisterBase {
  public:
-  SimRegisterBase() : written_since_last_log_(false) {}
+  static const unsigned kMaxSizeInBytes = kMaxSizeInBits / kBitsPerByte;
+  VIXL_STATIC_ASSERT((kMaxSizeInBytes * kBitsPerByte) == kMaxSizeInBits);
+
+  SimRegisterBase() : size_in_bytes_(kMaxSizeInBytes) { Clear(); }
+
+  unsigned GetSizeInBits() const { return size_in_bytes_ * kBitsPerByte; }
+  unsigned GetSizeInBytes() const { return size_in_bytes_; }
+
+  void SetSizeInBytes(unsigned size_in_bytes) {
+    VIXL_ASSERT(size_in_bytes <= kMaxSizeInBytes);
+    size_in_bytes_ = size_in_bytes;
+  }
+  void SetSizeInBits(unsigned size_in_bits) {
+    VIXL_ASSERT(size_in_bits <= kMaxSizeInBits);
+    VIXL_ASSERT((size_in_bits % kBitsPerByte) == 0);
+    SetSizeInBytes(size_in_bits / kBitsPerByte);
+  }
 
   // Write the specified value. The value is zero-extended if necessary.
   template <typename T>
   void Write(T new_value) {
-    if (sizeof(new_value) < kSizeInBytes) {
-      // All AArch64 registers are zero-extending.
-      memset(value_ + sizeof(new_value), 0, kSizeInBytes - sizeof(new_value));
-    }
+    // All AArch64 registers are zero-extending.
+    if (sizeof(new_value) < GetSizeInBytes()) Clear();
     WriteLane(new_value, 0);
     NotifyRegisterWrite();
   }
@@ -108,6 +281,11 @@
     Write(new_value);
   }
 
+  void Clear() {
+    memset(value_, 0, kMaxSizeInBytes);
+    NotifyRegisterWrite();
+  }
+
   // Insert a typed value into a register, leaving the rest of the register
   // unchanged. The lane parameter indicates where in the register the value
   // should be inserted, in the range [ 0, sizeof(value_) / sizeof(T) ), where
@@ -137,6 +315,17 @@
     return GetLane(lane);
   }
 
+  // Get the value of a specific bit, indexed from the least-significant bit of
+  // lane 0.
+  bool GetBit(int bit) const {
+    int bit_in_byte = bit % (sizeof(value_[0]) * kBitsPerByte);
+    int byte = bit / (sizeof(value_[0]) * kBitsPerByte);
+    return ((value_[byte] >> bit_in_byte) & 1) != 0;
+  }
+
+  // Return a pointer to the raw, underlying byte array.
+  const uint8_t* GetBytes() const { return value_; }
+
   // TODO: Make this return a map of updated bytes, so that we can highlight
   // updated lanes for load-and-insert. (That never happens for scalar code, but
   // NEON has some instructions that can update individual lanes.)
@@ -145,7 +334,9 @@
   void NotifyRegisterLogged() { written_since_last_log_ = false; }
 
  protected:
-  uint8_t value_[kSizeInBytes];
+  uint8_t value_[kMaxSizeInBytes];
+
+  unsigned size_in_bytes_;
 
   // Helpers to aid with register tracing.
   bool written_since_last_log_;
@@ -156,38 +347,152 @@
   template <typename T>
   void ReadLane(T* dst, int lane) const {
     VIXL_ASSERT(lane >= 0);
-    VIXL_ASSERT((sizeof(*dst) + (lane * sizeof(*dst))) <= kSizeInBytes);
+    VIXL_ASSERT((sizeof(*dst) + (lane * sizeof(*dst))) <= GetSizeInBytes());
     memcpy(dst, &value_[lane * sizeof(*dst)], sizeof(*dst));
   }
 
   template <typename T>
   void WriteLane(T src, int lane) {
     VIXL_ASSERT(lane >= 0);
-    VIXL_ASSERT((sizeof(src) + (lane * sizeof(src))) <= kSizeInBytes);
+    VIXL_ASSERT((sizeof(src) + (lane * sizeof(src))) <= GetSizeInBytes());
     memcpy(&value_[lane * sizeof(src)], &src, sizeof(src));
   }
+
+  // The default ReadLane and WriteLane methods assume what we are copying is
+  // "trivially copyable" by using memcpy. We have to provide alternative
+  // implementations for SimFloat16 which cannot be copied this way.
+
+  void ReadLane(vixl::internal::SimFloat16* dst, int lane) const {
+    uint16_t rawbits;
+    ReadLane(&rawbits, lane);
+    *dst = RawbitsToFloat16(rawbits);
+  }
+
+  void WriteLane(vixl::internal::SimFloat16 src, int lane) {
+    WriteLane(Float16ToRawbits(src), lane);
+  }
 };
-typedef SimRegisterBase<kXRegSizeInBytes> SimRegister;   // r0-r31
-typedef SimRegisterBase<kQRegSizeInBytes> SimVRegister;  // v0-v31
 
-// The default ReadLane and WriteLane methods assume what we are copying is
-// "trivially copyable" by using memcpy. We have to provide alternative
-// implementations for SimFloat16 which cannot be copied this way.
+typedef SimRegisterBase<kXRegSize> SimRegister;      // r0-r31
+typedef SimRegisterBase<kPRegMaxSize> SimPRegister;  // p0-p15
+// FFR has the same format as a predicate register.
+typedef SimPRegister SimFFRRegister;
 
-template <>
-template <>
-inline void SimVRegister::ReadLane(vixl::internal::SimFloat16* dst,
-                                   int lane) const {
-  uint16_t rawbits;
-  ReadLane(&rawbits, lane);
-  *dst = RawbitsToFloat16(rawbits);
-}
+// v0-v31 and z0-z31
+class SimVRegister : public SimRegisterBase<kZRegMaxSize> {
+ public:
+  SimVRegister() : SimRegisterBase<kZRegMaxSize>(), accessed_as_z_(false) {}
 
-template <>
-template <>
-inline void SimVRegister::WriteLane(vixl::internal::SimFloat16 src, int lane) {
-  WriteLane(Float16ToRawbits(src), lane);
-}
+  void NotifyAccessAsZ() { accessed_as_z_ = true; }
+
+  void NotifyRegisterLogged() {
+    SimRegisterBase<kZRegMaxSize>::NotifyRegisterLogged();
+    accessed_as_z_ = false;
+  }
+
+  bool AccessedAsZSinceLastLog() const { return accessed_as_z_; }
+
+ private:
+  bool accessed_as_z_;
+};
+
+// Representation of a SVE predicate register.
+class LogicPRegister {
+ public:
+  inline LogicPRegister(
+      SimPRegister& other)  // NOLINT(runtime/references)(runtime/explicit)
+      : register_(other) {}
+
+  // Set a conveniently-sized block to 16 bits as the minimum predicate length
+  // is 16 bits and allow to be increased to multiples of 16 bits.
+  typedef uint16_t ChunkType;
+
+  // Assign a bit into the end positon of the specified lane.
+  // The bit is zero-extended if necessary.
+  void SetActive(VectorFormat vform, int lane_index, bool value) {
+    int psize = LaneSizeInBytesFromFormat(vform);
+    int bit_index = lane_index * psize;
+    int byte_index = bit_index / kBitsPerByte;
+    int bit_offset = bit_index % kBitsPerByte;
+    uint8_t byte = register_.GetLane<uint8_t>(byte_index);
+    register_.Insert(byte_index, ZeroExtend(byte, bit_offset, psize, value));
+  }
+
+  bool IsActive(VectorFormat vform, int lane_index) const {
+    int psize = LaneSizeInBytesFromFormat(vform);
+    int bit_index = lane_index * psize;
+    int byte_index = bit_index / kBitsPerByte;
+    int bit_offset = bit_index % kBitsPerByte;
+    uint8_t byte = register_.GetLane<uint8_t>(byte_index);
+    return ExtractBit(byte, bit_offset);
+  }
+
+  // The accessors for bulk processing.
+  int GetChunkCount() const {
+    VIXL_ASSERT((register_.GetSizeInBytes() % sizeof(ChunkType)) == 0);
+    return register_.GetSizeInBytes() / sizeof(ChunkType);
+  }
+
+  ChunkType GetChunk(int lane) const { return GetActiveMask<ChunkType>(lane); }
+
+  void SetChunk(int lane, ChunkType new_value) {
+    SetActiveMask(lane, new_value);
+  }
+
+  void SetAllBits() {
+    int chunk_size = sizeof(ChunkType) * kBitsPerByte;
+    ChunkType bits = GetUintMask(chunk_size);
+    for (int lane = 0;
+         lane < (static_cast<int>(register_.GetSizeInBits() / chunk_size));
+         lane++) {
+      SetChunk(lane, bits);
+    }
+  }
+
+  template <typename T>
+  T GetActiveMask(int lane) const {
+    return register_.GetLane<T>(lane);
+  }
+
+  template <typename T>
+  void SetActiveMask(int lane, T new_value) {
+    register_.Insert<T>(lane, new_value);
+  }
+
+  void Clear() { register_.Clear(); }
+
+  bool Aliases(const LogicPRegister& other) const {
+    return &register_ == &other.register_;
+  }
+
+ private:
+  // The bit assignment is zero-extended to fill the size of predicate element.
+  uint8_t ZeroExtend(uint8_t byte, int index, int psize, bool value) {
+    VIXL_ASSERT(index >= 0);
+    VIXL_ASSERT(index + psize <= kBitsPerByte);
+    int bits = value ? 1 : 0;
+    switch (psize) {
+      case 1:
+        AssignBit(byte, index, bits);
+        break;
+      case 2:
+        AssignBits(byte, index, 0x03, bits);
+        break;
+      case 4:
+        AssignBits(byte, index, 0x0f, bits);
+        break;
+      case 8:
+        AssignBits(byte, index, 0xff, bits);
+        break;
+      default:
+        VIXL_UNREACHABLE();
+        return 0;
+    }
+    return byte;
+  }
+
+  SimPRegister& register_;
+};
 
 // Representation of a vector register, with typed getters and setters for lanes
 // and additional information to represent lane state.
@@ -205,6 +510,7 @@
   }
 
   int64_t Int(VectorFormat vform, int index) const {
+    if (IsSVEFormat(vform)) register_.NotifyAccessAsZ();
     int64_t element;
     switch (LaneSizeInBitsFromFormat(vform)) {
       case 8:
@@ -227,6 +533,7 @@
   }
 
   uint64_t Uint(VectorFormat vform, int index) const {
+    if (IsSVEFormat(vform)) register_.NotifyAccessAsZ();
     uint64_t element;
     switch (LaneSizeInBitsFromFormat(vform)) {
       case 8:
@@ -260,6 +567,7 @@
   }
 
   void SetInt(VectorFormat vform, int index, int64_t value) const {
+    if (IsSVEFormat(vform)) register_.NotifyAccessAsZ();
     switch (LaneSizeInBitsFromFormat(vform)) {
       case 8:
         register_.Insert(index, static_cast<int8_t>(value));
@@ -287,6 +595,7 @@
   }
 
   void SetUint(VectorFormat vform, int index, uint64_t value) const {
+    if (IsSVEFormat(vform)) register_.NotifyAccessAsZ();
     switch (LaneSizeInBitsFromFormat(vform)) {
       case 8:
         register_.Insert(index, static_cast<uint8_t>(value));
@@ -313,44 +622,6 @@
     }
   }
 
-  void ReadUintFromMem(VectorFormat vform, int index, uint64_t addr) const {
-    switch (LaneSizeInBitsFromFormat(vform)) {
-      case 8:
-        register_.Insert(index, Memory::Read<uint8_t>(addr));
-        break;
-      case 16:
-        register_.Insert(index, Memory::Read<uint16_t>(addr));
-        break;
-      case 32:
-        register_.Insert(index, Memory::Read<uint32_t>(addr));
-        break;
-      case 64:
-        register_.Insert(index, Memory::Read<uint64_t>(addr));
-        break;
-      default:
-        VIXL_UNREACHABLE();
-        return;
-    }
-  }
-
-  void WriteUintToMem(VectorFormat vform, int index, uint64_t addr) const {
-    uint64_t value = Uint(vform, index);
-    switch (LaneSizeInBitsFromFormat(vform)) {
-      case 8:
-        Memory::Write(addr, static_cast<uint8_t>(value));
-        break;
-      case 16:
-        Memory::Write(addr, static_cast<uint16_t>(value));
-        break;
-      case 32:
-        Memory::Write(addr, static_cast<uint32_t>(value));
-        break;
-      case 64:
-        Memory::Write(addr, value);
-        break;
-    }
-  }
-
   template <typename T>
   T Float(int index) const {
     return register_.GetLane<T>(index);
@@ -361,11 +632,20 @@
     register_.Insert(index, value);
   }
 
-  // When setting a result in a register of size less than Q, the top bits of
-  // the Q register must be cleared.
+  template <typename T>
+  void SetFloat(VectorFormat vform, int index, T value) const {
+    if (IsSVEFormat(vform)) register_.NotifyAccessAsZ();
+    register_.Insert(index, value);
+  }
+
+  // When setting a result in a register larger than the result itself, the top
+  // bits of the register must be cleared.
   void ClearForWrite(VectorFormat vform) const {
+    // SVE destinations write whole registers, so we have nothing to clear.
+    if (IsSVEFormat(vform)) return;
+
     unsigned size = RegisterSizeInBytesFromFormat(vform);
-    for (unsigned i = size; i < kQRegSizeInBytes; i++) {
+    for (unsigned i = size; i < register_.GetSizeInBytes(); i++) {
       SetUint(kFormat16B, i, 0);
     }
   }
@@ -470,26 +750,142 @@
     for (int i = 0; i < LaneCountFromFormat(vform); i++) {
       int64_t val = Int(vform, i);
       SetRounding(i, (val & 1) == 1);
-      val >>= 1;
-      if (GetSignedSaturation(i) != kNotSaturated) {
+      val = ExtractSignedBitfield64(63, 1, val);  // >>= 1
+      if (GetSignedSaturation(i) == kNotSaturated) {
+        SetInt(vform, i, val);
+      } else {
         // If the operation causes signed saturation, the sign bit must be
         // inverted.
-        val ^= (MaxUintFromFormat(vform) >> 1) + 1;
+        uint64_t uval = static_cast<uint64_t>(val);
+        SetUint(vform, i, uval ^ ((MaxUintFromFormat(vform) >> 1) + 1));
       }
-      SetInt(vform, i, val);
     }
     return *this;
   }
 
+  int LaneCountFromFormat(VectorFormat vform) const {
+    if (IsSVEFormat(vform)) {
+      return register_.GetSizeInBits() / LaneSizeInBitsFromFormat(vform);
+    } else {
+      return vixl::aarch64::LaneCountFromFormat(vform);
+    }
+  }
+
  private:
   SimVRegister& register_;
 
   // Allocate one saturation state entry per lane; largest register is type Q,
   // and lanes can be a minimum of one byte wide.
-  Saturation saturated_[kQRegSizeInBytes];
+  Saturation saturated_[kZRegMaxSizeInBytes];
 
   // Allocate one rounding state entry per lane.
-  bool round_[kQRegSizeInBytes];
+  bool round_[kZRegMaxSizeInBytes];
+};
+
+// Represent an SVE addressing mode and abstract per-lane address generation to
+// make iteration easy.
+//
+// Contiguous accesses are described with a simple base address, the memory
+// occupied by each lane (`SetMsizeInBytesLog2()`) and the number of elements in
+// each struct (`SetRegCount()`).
+//
+// Scatter-gather accesses also require a SimVRegister and information about how
+// to extract lanes from it.
+class LogicSVEAddressVector {
+ public:
+  // scalar-plus-scalar
+  // scalar-plus-immediate
+  explicit LogicSVEAddressVector(uint64_t base)
+      : base_(base),
+        msize_in_bytes_log2_(kUnknownMsizeInBytesLog2),
+        reg_count_(1),
+        vector_(NULL),
+        vector_form_(kFormatUndefined),
+        vector_mod_(NO_SVE_OFFSET_MODIFIER),
+        vector_shift_(0) {}
+
+  // scalar-plus-vector
+  // vector-plus-immediate
+  //    `base` should be the constant used for each element. That is, the value
+  //    of `xn`, or `#<imm>`.
+  //    `vector` should be the SimVRegister with offsets for each element. The
+  //    vector format must be specified; SVE scatter/gather accesses typically
+  //    support both 32-bit and 64-bit addressing.
+  //
+  //    `mod` and `shift` correspond to the modifiers applied to each element in
+  //    scalar-plus-vector forms, such as those used for unpacking and
+  //    sign-extension. They are not used for vector-plus-immediate.
+  LogicSVEAddressVector(uint64_t base,
+                        const SimVRegister* vector,
+                        VectorFormat vform,
+                        SVEOffsetModifier mod = NO_SVE_OFFSET_MODIFIER,
+                        int shift = 0)
+      : base_(base),
+        msize_in_bytes_log2_(kUnknownMsizeInBytesLog2),
+        reg_count_(1),
+        vector_(vector),
+        vector_form_(vform),
+        vector_mod_(mod),
+        vector_shift_(shift) {}
+
+  // Set `msize` -- the memory occupied by each lane -- for address
+  // calculations.
+  void SetMsizeInBytesLog2(int msize_in_bytes_log2) {
+    VIXL_ASSERT(msize_in_bytes_log2 >= static_cast<int>(kBRegSizeInBytesLog2));
+    VIXL_ASSERT(msize_in_bytes_log2 <= static_cast<int>(kDRegSizeInBytesLog2));
+    msize_in_bytes_log2_ = msize_in_bytes_log2;
+  }
+
+  bool HasMsize() const {
+    return msize_in_bytes_log2_ != kUnknownMsizeInBytesLog2;
+  }
+
+  int GetMsizeInBytesLog2() const {
+    VIXL_ASSERT(HasMsize());
+    return msize_in_bytes_log2_;
+  }
+  int GetMsizeInBitsLog2() const {
+    return GetMsizeInBytesLog2() + kBitsPerByteLog2;
+  }
+
+  int GetMsizeInBytes() const { return 1 << GetMsizeInBytesLog2(); }
+  int GetMsizeInBits() const { return 1 << GetMsizeInBitsLog2(); }
+
+  void SetRegCount(int reg_count) {
+    VIXL_ASSERT(reg_count >= 1);  // E.g. ld1/st1
+    VIXL_ASSERT(reg_count <= 4);  // E.g. ld4/st4
+    reg_count_ = reg_count;
+  }
+
+  int GetRegCount() const { return reg_count_; }
+
+  // Full per-element address calculation for structured accesses.
+  //
+  // Note that the register number argument (`reg`) is zero-based.
+  uint64_t GetElementAddress(int lane, int reg) const {
+    VIXL_ASSERT(reg < GetRegCount());
+    // Individual structures are always contiguous in memory, so this
+    // implementation works for both contiguous and scatter-gather addressing.
+    return GetStructAddress(lane) + (reg * GetMsizeInBytes());
+  }
+
+  // Full per-struct address calculation for structured accesses.
+  uint64_t GetStructAddress(int lane) const;
+
+  bool IsContiguous() const { return vector_ == NULL; }
+  bool IsScatterGather() const { return !IsContiguous(); }
+
+ private:
+  uint64_t base_;
+  int msize_in_bytes_log2_;
+  int reg_count_;
+
+  const SimVRegister* vector_;
+  VectorFormat vector_form_;
+  SVEOffsetModifier vector_mod_;
+  int vector_shift_;
+
+  static const int kUnknownMsizeInBytesLog2 = -1;
 };
 
 // The proper way to initialize a simulated system register (such as NZCV) is as
@@ -623,7 +1019,9 @@
 
 class Simulator : public DecoderVisitor {
  public:
-  explicit Simulator(Decoder* decoder, FILE* stream = stdout);
+  explicit Simulator(Decoder* decoder,
+                     FILE* stream = stdout,
+                     SimStack::Allocated stack = SimStack().Allocate());
   ~Simulator();
 
   void ResetState();
@@ -701,7 +1099,7 @@
   void WritePc(const Instruction* new_pc,
                BranchLogMode log_mode = LogBranches) {
     if (log_mode == LogBranches) LogTakenBranch(new_pc);
-    pc_ = Memory::AddressUntag(new_pc);
+    pc_ = memory_.AddressUntag(new_pc);
     pc_modified_ = true;
   }
   VIXL_DEPRECATED("WritePc", void set_pc(const Instruction* new_pc)) {
@@ -733,6 +1131,11 @@
     VIXL_ASSERT(IsWordAligned(pc_));
     pc_modified_ = false;
 
+    if (movprfx_ != NULL) {
+      VIXL_CHECK(pc_->CanTakeSVEMovprfx(movprfx_));
+      movprfx_ = NULL;
+    }
+
     // On guarded pages, if BType is not zero, take an exception on any
     // instruction other than BTI, PACI[AB]SP, HLT or BRK.
     if (PcIsInGuardedPage() && (ReadBType() != DefaultBType)) {
@@ -774,13 +1177,6 @@
 #undef DECLARE
 
 
-#define DECLARE(A)                                                             \
-  VIXL_NO_RETURN_IN_DEBUG_MODE virtual void Visit##A(const Instruction* instr) \
-      VIXL_OVERRIDE;
-  VISITOR_LIST_THAT_DONT_RETURN_IN_DEBUG_MODE(DECLARE)
-#undef DECLARE
-
-
   // Integer register accessors.
 
   // Basic accessor: Read the register as the specified type.
@@ -827,6 +1223,13 @@
     return ReadXRegister(code, r31mode);
   }
 
+  SimPRegister& ReadPRegister(unsigned code) {
+    VIXL_ASSERT(code < kNumberOfPRegisters);
+    return pregisters_[code];
+  }
+
+  SimFFRRegister& ReadFFR() { return ffr_register_; }
+
   // As above, with parameterized size and return type. The value is
   // either zero-extended or truncated to fit, as required.
   template <typename T>
@@ -877,6 +1280,10 @@
 
   // Write 'value' into an integer register. The value is zero-extended. This
   // behaviour matches AArch64 register writes.
+  //
+  // SP may be specified in one of two ways:
+  //  - (code == kSPRegInternalCode) && (r31mode == Reg31IsZeroRegister)
+  //  - (code == 31) && (r31mode == Reg31IsStackPointer)
   template <typename T>
   void WriteRegister(unsigned code,
                      T value,
@@ -896,20 +1303,25 @@
     VIXL_ASSERT((sizeof(T) == kWRegSizeInBytes) ||
                 (sizeof(T) == kXRegSizeInBytes));
     VIXL_ASSERT(
-        code < kNumberOfRegisters ||
+        (code < kNumberOfRegisters) ||
         ((r31mode == Reg31IsZeroRegister) && (code == kSPRegInternalCode)));
 
-    if ((code == 31) && (r31mode == Reg31IsZeroRegister)) {
-      return;
+    if (code == 31) {
+      if (r31mode == Reg31IsZeroRegister) {
+        // Discard writes to the zero register.
+        return;
+      } else {
+        code = kSPRegInternalCode;
+      }
     }
 
-    if ((r31mode == Reg31IsZeroRegister) && (code == kSPRegInternalCode)) {
-      code = 31;
+    // registers_[31] is the stack pointer.
+    VIXL_STATIC_ASSERT((kSPRegInternalCode % kNumberOfRegisters) == 31);
+    registers_[code % kNumberOfRegisters].Write(value);
+
+    if (log_mode == LogRegWrites) {
+      LogRegister(code, GetPrintRegisterFormatForSize(sizeof(T)));
     }
-
-    registers_[code].Write(value);
-
-    if (log_mode == LogRegWrites) LogRegister(code, r31mode);
   }
   template <typename T>
   VIXL_DEPRECATED("WriteRegister",
@@ -1015,6 +1427,11 @@
     uint8_t val[kQRegSizeInBytes];
   };
 
+  // A structure for representing a SVE Z register.
+  struct zreg_t {
+    uint8_t val[kZRegMaxSizeInBytes];
+  };
+
   // Basic accessor: read the register as the specified type.
   template <typename T>
   T ReadVRegister(unsigned code) const {
@@ -1130,7 +1547,8 @@
                        (sizeof(value) == kHRegSizeInBytes) ||
                        (sizeof(value) == kSRegSizeInBytes) ||
                        (sizeof(value) == kDRegSizeInBytes) ||
-                       (sizeof(value) == kQRegSizeInBytes));
+                       (sizeof(value) == kQRegSizeInBytes) ||
+                       (sizeof(value) == kZRegMaxSizeInBytes));
     VIXL_ASSERT(code < kNumberOfVRegisters);
     vregisters_[code].Write(value);
 
@@ -1237,6 +1655,12 @@
     WriteQRegister(code, value, log_mode);
   }
 
+  void WriteZRegister(unsigned code,
+                      zreg_t value,
+                      RegLogMode log_mode = LogRegWrites) {
+    WriteVRegister(code, value, log_mode);
+  }
+
   template <typename T>
   T ReadRegister(Register reg) const {
     return ReadRegister<T>(reg.GetCode(), Reg31IsZeroRegister);
@@ -1281,6 +1705,63 @@
     }
   }
 
+  template <typename T, typename A>
+  T MemRead(A address) const {
+    return memory_.Read<T>(address);
+  }
+
+  template <typename T, typename A>
+  void MemWrite(A address, T value) const {
+    return memory_.Write(address, value);
+  }
+
+  template <typename A>
+  uint64_t MemReadUint(int size_in_bytes, A address) const {
+    return memory_.ReadUint(size_in_bytes, address);
+  }
+
+  template <typename A>
+  int64_t MemReadInt(int size_in_bytes, A address) const {
+    return memory_.ReadInt(size_in_bytes, address);
+  }
+
+  template <typename A>
+  void MemWrite(int size_in_bytes, A address, uint64_t value) const {
+    return memory_.Write(size_in_bytes, address, value);
+  }
+
+  void LoadLane(LogicVRegister dst,
+                VectorFormat vform,
+                int index,
+                uint64_t addr) const {
+    unsigned msize_in_bytes = LaneSizeInBytesFromFormat(vform);
+    LoadUintToLane(dst, vform, msize_in_bytes, index, addr);
+  }
+
+  void LoadUintToLane(LogicVRegister dst,
+                      VectorFormat vform,
+                      unsigned msize_in_bytes,
+                      int index,
+                      uint64_t addr) const {
+    dst.SetUint(vform, index, MemReadUint(msize_in_bytes, addr));
+  }
+
+  void LoadIntToLane(LogicVRegister dst,
+                     VectorFormat vform,
+                     unsigned msize_in_bytes,
+                     int index,
+                     uint64_t addr) const {
+    dst.SetInt(vform, index, MemReadInt(msize_in_bytes, addr));
+  }
+
+  void StoreLane(const LogicVRegister& src,
+                 VectorFormat vform,
+                 int index,
+                 uint64_t addr) const {
+    unsigned msize_in_bytes = LaneSizeInBytesFromFormat(vform);
+    MemWrite(msize_in_bytes, addr, src.Uint(vform, index));
+  }
+
   uint64_t ComputeMemOperandAddress(const MemOperand& mem_op) const;
 
   template <typename T>
@@ -1289,7 +1770,7 @@
       return ReadCPURegister<T>(operand.GetCPURegister());
     } else {
       VIXL_ASSERT(operand.IsMemOperand());
-      return Memory::Read<T>(ComputeMemOperandAddress(operand.GetMemOperand()));
+      return MemRead<T>(ComputeMemOperandAddress(operand.GetMemOperand()));
     }
   }
 
@@ -1310,7 +1791,7 @@
       WriteCPURegister(operand.GetCPURegister(), raw, log_mode);
     } else {
       VIXL_ASSERT(operand.IsMemOperand());
-      Memory::Write(ComputeMemOperandAddress(operand.GetMemOperand()), value);
+      MemWrite(ComputeMemOperandAddress(operand.GetMemOperand()), value);
     }
   }
 
@@ -1357,14 +1838,16 @@
     kPrintRegLaneSizeD = 3 << 0,
     kPrintRegLaneSizeX = kPrintRegLaneSizeD,
     kPrintRegLaneSizeQ = 4 << 0,
+    kPrintRegLaneSizeUnknown = 5 << 0,
 
     kPrintRegLaneSizeOffset = 0,
     kPrintRegLaneSizeMask = 7 << 0,
 
-    // The lane count.
+    // The overall register size.
     kPrintRegAsScalar = 0,
     kPrintRegAsDVector = 1 << 3,
     kPrintRegAsQVector = 2 << 3,
+    kPrintRegAsSVEVector = 3 << 3,
 
     kPrintRegAsVectorMask = 3 << 3,
 
@@ -1372,37 +1855,98 @@
     // S-, H-, and D-sized lanes.)
     kPrintRegAsFP = 1 << 5,
 
-    // Supported combinations.
+    // With this flag, print helpers won't check that the upper bits are zero.
+    // This also forces the register name to be printed with the `reg<msb:0>`
+    // format.
+    //
+    // The flag is supported with any PrintRegisterFormat other than those with
+    // kPrintRegAsSVEVector.
+    kPrintRegPartial = 1 << 6,
 
-    kPrintXReg = kPrintRegLaneSizeX | kPrintRegAsScalar,
-    kPrintWReg = kPrintRegLaneSizeW | kPrintRegAsScalar,
-    kPrintHReg = kPrintRegLaneSizeH | kPrintRegAsScalar | kPrintRegAsFP,
-    kPrintSReg = kPrintRegLaneSizeS | kPrintRegAsScalar | kPrintRegAsFP,
-    kPrintDReg = kPrintRegLaneSizeD | kPrintRegAsScalar | kPrintRegAsFP,
+// Supported combinations.
+// These exist so that they can be referred to by name, but also because C++
+// does not allow enum types to hold values that aren't explicitly
+// enumerated, and we want to be able to combine the above flags.
 
-    kPrintReg1B = kPrintRegLaneSizeB | kPrintRegAsScalar,
-    kPrintReg8B = kPrintRegLaneSizeB | kPrintRegAsDVector,
-    kPrintReg16B = kPrintRegLaneSizeB | kPrintRegAsQVector,
-    kPrintReg1H = kPrintRegLaneSizeH | kPrintRegAsScalar,
-    kPrintReg4H = kPrintRegLaneSizeH | kPrintRegAsDVector,
-    kPrintReg8H = kPrintRegLaneSizeH | kPrintRegAsQVector,
-    kPrintReg1S = kPrintRegLaneSizeS | kPrintRegAsScalar,
-    kPrintReg2S = kPrintRegLaneSizeS | kPrintRegAsDVector,
-    kPrintReg4S = kPrintRegLaneSizeS | kPrintRegAsQVector,
-    kPrintReg1HFP = kPrintRegLaneSizeH | kPrintRegAsScalar | kPrintRegAsFP,
-    kPrintReg4HFP = kPrintRegLaneSizeH | kPrintRegAsDVector | kPrintRegAsFP,
-    kPrintReg8HFP = kPrintRegLaneSizeH | kPrintRegAsQVector | kPrintRegAsFP,
-    kPrintReg1SFP = kPrintRegLaneSizeS | kPrintRegAsScalar | kPrintRegAsFP,
-    kPrintReg2SFP = kPrintRegLaneSizeS | kPrintRegAsDVector | kPrintRegAsFP,
-    kPrintReg4SFP = kPrintRegLaneSizeS | kPrintRegAsQVector | kPrintRegAsFP,
-    kPrintReg1D = kPrintRegLaneSizeD | kPrintRegAsScalar,
-    kPrintReg2D = kPrintRegLaneSizeD | kPrintRegAsQVector,
-    kPrintReg1DFP = kPrintRegLaneSizeD | kPrintRegAsScalar | kPrintRegAsFP,
-    kPrintReg2DFP = kPrintRegLaneSizeD | kPrintRegAsQVector | kPrintRegAsFP,
-    kPrintReg1Q = kPrintRegLaneSizeQ | kPrintRegAsScalar
+// Scalar formats.
+#define VIXL_DECL_PRINT_REG_SCALAR(size)                           \
+  kPrint##size##Reg = kPrintRegLaneSize##size | kPrintRegAsScalar, \
+  kPrint##size##RegPartial = kPrintRegLaneSize##size | kPrintRegPartial
+#define VIXL_DECL_PRINT_REG_SCALAR_FP(size)                  \
+  VIXL_DECL_PRINT_REG_SCALAR(size)                           \
+  , kPrint##size##RegFP = kPrint##size##Reg | kPrintRegAsFP, \
+    kPrint##size##RegPartialFP = kPrint##size##RegPartial | kPrintRegAsFP
+    VIXL_DECL_PRINT_REG_SCALAR(W),
+    VIXL_DECL_PRINT_REG_SCALAR(X),
+    VIXL_DECL_PRINT_REG_SCALAR_FP(H),
+    VIXL_DECL_PRINT_REG_SCALAR_FP(S),
+    VIXL_DECL_PRINT_REG_SCALAR_FP(D),
+    VIXL_DECL_PRINT_REG_SCALAR(Q),
+#undef VIXL_DECL_PRINT_REG_SCALAR
+#undef VIXL_DECL_PRINT_REG_SCALAR_FP
+
+#define VIXL_DECL_PRINT_REG_NEON(count, type, size)                     \
+  kPrintReg##count##type = kPrintRegLaneSize##type | kPrintRegAs##size, \
+  kPrintReg##count##type##Partial = kPrintReg##count##type | kPrintRegPartial
+#define VIXL_DECL_PRINT_REG_NEON_FP(count, type, size)                   \
+  VIXL_DECL_PRINT_REG_NEON(count, type, size)                            \
+  , kPrintReg##count##type##FP = kPrintReg##count##type | kPrintRegAsFP, \
+    kPrintReg##count##type##PartialFP =                                  \
+        kPrintReg##count##type##Partial | kPrintRegAsFP
+    VIXL_DECL_PRINT_REG_NEON(1, B, Scalar),
+    VIXL_DECL_PRINT_REG_NEON(8, B, DVector),
+    VIXL_DECL_PRINT_REG_NEON(16, B, QVector),
+    VIXL_DECL_PRINT_REG_NEON_FP(1, H, Scalar),
+    VIXL_DECL_PRINT_REG_NEON_FP(4, H, DVector),
+    VIXL_DECL_PRINT_REG_NEON_FP(8, H, QVector),
+    VIXL_DECL_PRINT_REG_NEON_FP(1, S, Scalar),
+    VIXL_DECL_PRINT_REG_NEON_FP(2, S, DVector),
+    VIXL_DECL_PRINT_REG_NEON_FP(4, S, QVector),
+    VIXL_DECL_PRINT_REG_NEON_FP(1, D, Scalar),
+    VIXL_DECL_PRINT_REG_NEON_FP(2, D, QVector),
+    VIXL_DECL_PRINT_REG_NEON(1, Q, Scalar),
+#undef VIXL_DECL_PRINT_REG_NEON
+#undef VIXL_DECL_PRINT_REG_NEON_FP
+
+#define VIXL_DECL_PRINT_REG_SVE(type)                                 \
+  kPrintRegVn##type = kPrintRegLaneSize##type | kPrintRegAsSVEVector, \
+  kPrintRegVn##type##Partial = kPrintRegVn##type | kPrintRegPartial
+#define VIXL_DECL_PRINT_REG_SVE_FP(type)                       \
+  VIXL_DECL_PRINT_REG_SVE(type)                                \
+  , kPrintRegVn##type##FP = kPrintRegVn##type | kPrintRegAsFP, \
+    kPrintRegVn##type##PartialFP = kPrintRegVn##type##Partial | kPrintRegAsFP
+    VIXL_DECL_PRINT_REG_SVE(B),
+    VIXL_DECL_PRINT_REG_SVE_FP(H),
+    VIXL_DECL_PRINT_REG_SVE_FP(S),
+    VIXL_DECL_PRINT_REG_SVE_FP(D),
+    VIXL_DECL_PRINT_REG_SVE(Q)
+#undef VIXL_DECL_PRINT_REG_SVE
+#undef VIXL_DECL_PRINT_REG_SVE_FP
   };
 
+  // Return `format` with the kPrintRegPartial flag set.
+  PrintRegisterFormat GetPrintRegPartial(PrintRegisterFormat format) {
+    // Every PrintRegisterFormat has a kPrintRegPartial counterpart, so the
+    // result of this cast will always be well-defined.
+    return static_cast<PrintRegisterFormat>(format | kPrintRegPartial);
+  }
+
+  // For SVE formats, return the format of a Q register part of it.
+  PrintRegisterFormat GetPrintRegAsQChunkOfSVE(PrintRegisterFormat format) {
+    VIXL_ASSERT((format & kPrintRegAsVectorMask) == kPrintRegAsSVEVector);
+    // Keep the FP and lane size fields.
+    int q_format = format & (kPrintRegLaneSizeMask | kPrintRegAsFP);
+    // The resulting format must always be partial, because we're not formatting
+    // the whole Z register.
+    q_format |= (kPrintRegAsQVector | kPrintRegPartial);
+
+    // This cast is always safe because NEON QVector formats support every
+    // combination of FP and lane size that SVE formats do.
+    return static_cast<PrintRegisterFormat>(q_format);
+  }
+
   unsigned GetPrintRegLaneSizeInBytesLog2(PrintRegisterFormat format) {
+    VIXL_ASSERT((format & kPrintRegLaneSizeMask) != kPrintRegLaneSizeUnknown);
     return (format & kPrintRegLaneSizeMask) >> kPrintRegLaneSizeOffset;
   }
 
@@ -1411,17 +1955,51 @@
   }
 
   unsigned GetPrintRegSizeInBytesLog2(PrintRegisterFormat format) {
-    if (format & kPrintRegAsDVector) return kDRegSizeInBytesLog2;
-    if (format & kPrintRegAsQVector) return kQRegSizeInBytesLog2;
-
-    // Scalar types.
-    return GetPrintRegLaneSizeInBytesLog2(format);
+    switch (format & kPrintRegAsVectorMask) {
+      case kPrintRegAsScalar:
+        return GetPrintRegLaneSizeInBytesLog2(format);
+      case kPrintRegAsDVector:
+        return kDRegSizeInBytesLog2;
+      case kPrintRegAsQVector:
+        return kQRegSizeInBytesLog2;
+      default:
+      case kPrintRegAsSVEVector:
+        // We print SVE vectors in Q-sized chunks. These need special handling,
+        // and it's probably an error to call this function in that case.
+        VIXL_UNREACHABLE();
+        return kQRegSizeInBytesLog2;
+    }
   }
 
   unsigned GetPrintRegSizeInBytes(PrintRegisterFormat format) {
     return 1 << GetPrintRegSizeInBytesLog2(format);
   }
 
+  unsigned GetPrintRegSizeInBitsLog2(PrintRegisterFormat format) {
+    return GetPrintRegSizeInBytesLog2(format) + kBitsPerByteLog2;
+  }
+
+  unsigned GetPrintRegSizeInBits(PrintRegisterFormat format) {
+    return 1 << GetPrintRegSizeInBitsLog2(format);
+  }
+
+  const char* GetPartialRegSuffix(PrintRegisterFormat format) {
+    switch (GetPrintRegSizeInBitsLog2(format)) {
+      case kBRegSizeLog2:
+        return "<7:0>";
+      case kHRegSizeLog2:
+        return "<15:0>";
+      case kSRegSizeLog2:
+        return "<31:0>";
+      case kDRegSizeLog2:
+        return "<63:0>";
+      case kQRegSizeLog2:
+        return "<127:0>";
+    }
+    VIXL_UNREACHABLE();
+    return "<UNKNOWN>";
+  }
+
   unsigned GetPrintRegLaneCount(PrintRegisterFormat format) {
     unsigned reg_size_log2 = GetPrintRegSizeInBytesLog2(format);
     unsigned lane_size_log2 = GetPrintRegLaneSizeInBytesLog2(format);
@@ -1429,6 +2007,21 @@
     return 1 << (reg_size_log2 - lane_size_log2);
   }
 
+  uint16_t GetPrintRegLaneMask(PrintRegisterFormat format) {
+    int print_as = format & kPrintRegAsVectorMask;
+    if (print_as == kPrintRegAsScalar) return 1;
+
+    // Vector formats, including SVE formats printed in Q-sized chunks.
+    static const uint16_t masks[] = {0xffff, 0x5555, 0x1111, 0x0101, 0x0001};
+    unsigned size_in_bytes_log2 = GetPrintRegLaneSizeInBytesLog2(format);
+    VIXL_ASSERT(size_in_bytes_log2 < ArrayLength(masks));
+    uint16_t mask = masks[size_in_bytes_log2];
+
+    // Exclude lanes that aren't visible in D vectors.
+    if (print_as == kPrintRegAsDVector) mask &= 0x00ff;
+    return mask;
+  }
+
   PrintRegisterFormat GetPrintRegisterFormatForSize(unsigned reg_size,
                                                     unsigned lane_size);
 
@@ -1459,6 +2052,10 @@
     return format;
   }
 
+  PrintRegisterFormat GetPrintRegisterFormatForSizeTryFP(unsigned size) {
+    return GetPrintRegisterFormatTryFP(GetPrintRegisterFormatForSize(size));
+  }
+
   template <typename T>
   PrintRegisterFormat GetPrintRegisterFormat(T value) {
     return GetPrintRegisterFormatForSize(sizeof(value));
@@ -1485,99 +2082,314 @@
   // Print all registers of the specified types.
   void PrintRegisters();
   void PrintVRegisters();
+  void PrintZRegisters();
   void PrintSystemRegisters();
 
   // As above, but only print the registers that have been updated.
   void PrintWrittenRegisters();
   void PrintWrittenVRegisters();
+  void PrintWrittenPRegisters();
 
   // As above, but respect LOG_REG and LOG_VREG.
   void LogWrittenRegisters() {
-    if (GetTraceParameters() & LOG_REGS) PrintWrittenRegisters();
+    if (ShouldTraceRegs()) PrintWrittenRegisters();
   }
   void LogWrittenVRegisters() {
-    if (GetTraceParameters() & LOG_VREGS) PrintWrittenVRegisters();
+    if (ShouldTraceVRegs()) PrintWrittenVRegisters();
+  }
+  void LogWrittenPRegisters() {
+    if (ShouldTraceVRegs()) PrintWrittenPRegisters();
   }
   void LogAllWrittenRegisters() {
     LogWrittenRegisters();
     LogWrittenVRegisters();
+    LogWrittenPRegisters();
   }
 
-  // Print individual register values (after update).
-  void PrintRegister(unsigned code, Reg31Mode r31mode = Reg31IsStackPointer);
-  void PrintVRegister(unsigned code, PrintRegisterFormat format);
-  void PrintSystemRegister(SystemRegister id);
-  void PrintTakenBranch(const Instruction* target);
+  // The amount of space to leave for a register name. This is used to keep the
+  // values vertically aligned. The longest register name has the form
+  // "z31<2047:1920>". The total overall value indentation must also take into
+  // account the fixed formatting: "# {name}: 0x{value}".
+  static const int kPrintRegisterNameFieldWidth = 14;
 
-  // Like Print* (above), but respect GetTraceParameters().
-  void LogRegister(unsigned code, Reg31Mode r31mode = Reg31IsStackPointer) {
-    if (GetTraceParameters() & LOG_REGS) PrintRegister(code, r31mode);
+  // Print whole, individual register values.
+  // - The format can be used to restrict how much of the register is printed,
+  //   but such formats indicate that the unprinted high-order bits are zero and
+  //   these helpers will assert that.
+  // - If the format includes the kPrintRegAsFP flag then human-friendly FP
+  //   value annotations will be printed.
+  // - The suffix can be used to add annotations (such as memory access
+  //   details), or to suppress the newline.
+  void PrintRegister(int code,
+                     PrintRegisterFormat format = kPrintXReg,
+                     const char* suffix = "\n");
+  void PrintVRegister(int code,
+                      PrintRegisterFormat format = kPrintReg1Q,
+                      const char* suffix = "\n");
+  // PrintZRegister and PrintPRegister print over several lines, so they cannot
+  // allow the suffix to be overridden.
+  void PrintZRegister(int code, PrintRegisterFormat format = kPrintRegVnQ);
+  void PrintPRegister(int code, PrintRegisterFormat format = kPrintRegVnQ);
+  void PrintFFR(PrintRegisterFormat format = kPrintRegVnQ);
+  // Print a single Q-sized part of a Z register, or the corresponding two-byte
+  // part of a P register. These print single lines, and therefore allow the
+  // suffix to be overridden. The format must include the kPrintRegPartial flag.
+  void PrintPartialZRegister(int code,
+                             int q_index,
+                             PrintRegisterFormat format = kPrintRegVnQ,
+                             const char* suffix = "\n");
+  void PrintPartialPRegister(int code,
+                             int q_index,
+                             PrintRegisterFormat format = kPrintRegVnQ,
+                             const char* suffix = "\n");
+  void PrintPartialPRegister(const char* name,
+                             const SimPRegister& reg,
+                             int q_index,
+                             PrintRegisterFormat format = kPrintRegVnQ,
+                             const char* suffix = "\n");
+
+  // Like Print*Register (above), but respect trace parameters.
+  void LogRegister(unsigned code, PrintRegisterFormat format) {
+    if (ShouldTraceRegs()) PrintRegister(code, format);
   }
   void LogVRegister(unsigned code, PrintRegisterFormat format) {
-    if (GetTraceParameters() & LOG_VREGS) PrintVRegister(code, format);
+    if (ShouldTraceVRegs()) PrintVRegister(code, format);
   }
+  void LogZRegister(unsigned code, PrintRegisterFormat format) {
+    if (ShouldTraceVRegs()) PrintZRegister(code, format);
+  }
+  void LogPRegister(unsigned code, PrintRegisterFormat format) {
+    if (ShouldTraceVRegs()) PrintPRegister(code, format);
+  }
+  void LogFFR(PrintRegisterFormat format) {
+    if (ShouldTraceVRegs()) PrintFFR(format);
+  }
+
+  // Other state updates, including system registers.
+  void PrintSystemRegister(SystemRegister id);
+  void PrintTakenBranch(const Instruction* target);
   void LogSystemRegister(SystemRegister id) {
-    if (GetTraceParameters() & LOG_SYSREGS) PrintSystemRegister(id);
+    if (ShouldTraceSysRegs()) PrintSystemRegister(id);
   }
   void LogTakenBranch(const Instruction* target) {
-    if (GetTraceParameters() & LOG_BRANCH) PrintTakenBranch(target);
+    if (ShouldTraceBranches()) PrintTakenBranch(target);
   }
 
-  // Print memory accesses.
-  void PrintRead(uintptr_t address,
-                 unsigned reg_code,
-                 PrintRegisterFormat format);
-  void PrintWrite(uintptr_t address,
-                  unsigned reg_code,
-                  PrintRegisterFormat format);
-  void PrintVRead(uintptr_t address,
-                  unsigned reg_code,
-                  PrintRegisterFormat format,
-                  unsigned lane);
-  void PrintVWrite(uintptr_t address,
-                   unsigned reg_code,
-                   PrintRegisterFormat format,
-                   unsigned lane);
+  // Trace memory accesses.
+
+  // Common, contiguous register accesses (such as for scalars).
+  // The *Write variants automatically set kPrintRegPartial on the format.
+  void PrintRead(int rt_code, PrintRegisterFormat format, uintptr_t address);
+  void PrintExtendingRead(int rt_code,
+                          PrintRegisterFormat format,
+                          int access_size_in_bytes,
+                          uintptr_t address);
+  void PrintWrite(int rt_code, PrintRegisterFormat format, uintptr_t address);
+  void PrintVRead(int rt_code, PrintRegisterFormat format, uintptr_t address);
+  void PrintVWrite(int rt_code, PrintRegisterFormat format, uintptr_t address);
+  // Simple, unpredicated SVE accesses always access the whole vector, and never
+  // know the lane type, so there's no need to accept a `format`.
+  void PrintZRead(int rt_code, uintptr_t address) {
+    vregisters_[rt_code].NotifyRegisterLogged();
+    PrintZAccess(rt_code, "<-", address);
+  }
+  void PrintZWrite(int rt_code, uintptr_t address) {
+    PrintZAccess(rt_code, "->", address);
+  }
+  void PrintPRead(int rt_code, uintptr_t address) {
+    pregisters_[rt_code].NotifyRegisterLogged();
+    PrintPAccess(rt_code, "<-", address);
+  }
+  void PrintPWrite(int rt_code, uintptr_t address) {
+    PrintPAccess(rt_code, "->", address);
+  }
 
   // Like Print* (above), but respect GetTraceParameters().
-  void LogRead(uintptr_t address,
-               unsigned reg_code,
-               PrintRegisterFormat format) {
-    if (GetTraceParameters() & LOG_REGS) PrintRead(address, reg_code, format);
+  void LogRead(int rt_code, PrintRegisterFormat format, uintptr_t address) {
+    if (ShouldTraceRegs()) PrintRead(rt_code, format, address);
   }
-  void LogWrite(uintptr_t address,
-                unsigned reg_code,
-                PrintRegisterFormat format) {
-    if (GetTraceParameters() & LOG_WRITE) PrintWrite(address, reg_code, format);
-  }
-  void LogVRead(uintptr_t address,
-                unsigned reg_code,
-                PrintRegisterFormat format,
-                unsigned lane = 0) {
-    if (GetTraceParameters() & LOG_VREGS) {
-      PrintVRead(address, reg_code, format, lane);
+  void LogExtendingRead(int rt_code,
+                        PrintRegisterFormat format,
+                        int access_size_in_bytes,
+                        uintptr_t address) {
+    if (ShouldTraceRegs()) {
+      PrintExtendingRead(rt_code, format, access_size_in_bytes, address);
     }
   }
-  void LogVWrite(uintptr_t address,
-                 unsigned reg_code,
-                 PrintRegisterFormat format,
-                 unsigned lane = 0) {
-    if (GetTraceParameters() & LOG_WRITE) {
-      PrintVWrite(address, reg_code, format, lane);
-    }
+  void LogWrite(int rt_code, PrintRegisterFormat format, uintptr_t address) {
+    if (ShouldTraceWrites()) PrintWrite(rt_code, format, address);
+  }
+  void LogVRead(int rt_code, PrintRegisterFormat format, uintptr_t address) {
+    if (ShouldTraceVRegs()) PrintVRead(rt_code, format, address);
+  }
+  void LogVWrite(int rt_code, PrintRegisterFormat format, uintptr_t address) {
+    if (ShouldTraceWrites()) PrintVWrite(rt_code, format, address);
+  }
+  void LogZRead(int rt_code, uintptr_t address) {
+    if (ShouldTraceVRegs()) PrintZRead(rt_code, address);
+  }
+  void LogZWrite(int rt_code, uintptr_t address) {
+    if (ShouldTraceWrites()) PrintZWrite(rt_code, address);
+  }
+  void LogPRead(int rt_code, uintptr_t address) {
+    if (ShouldTraceVRegs()) PrintPRead(rt_code, address);
+  }
+  void LogPWrite(int rt_code, uintptr_t address) {
+    if (ShouldTraceWrites()) PrintPWrite(rt_code, address);
   }
 
-  // Helper functions for register tracing.
-  void PrintRegisterRawHelper(unsigned code,
-                              Reg31Mode r31mode,
-                              int size_in_bytes = kXRegSizeInBytes);
-  void PrintVRegisterRawHelper(unsigned code,
-                               int bytes = kQRegSizeInBytes,
-                               int lsb = 0);
-  void PrintVRegisterFPHelper(unsigned code,
-                              unsigned lane_size_in_bytes,
-                              int lane_count = 1,
-                              int rightmost_lane = 0);
+  // Helpers for the above, where the access operation is parameterised.
+  // - For loads, set op = "<-".
+  // - For stores, set op = "->".
+  void PrintAccess(int rt_code,
+                   PrintRegisterFormat format,
+                   const char* op,
+                   uintptr_t address);
+  void PrintVAccess(int rt_code,
+                    PrintRegisterFormat format,
+                    const char* op,
+                    uintptr_t address);
+  // Simple, unpredicated SVE accesses always access the whole vector, and never
+  // know the lane type, so these don't accept a `format`.
+  void PrintZAccess(int rt_code, const char* op, uintptr_t address);
+  void PrintPAccess(int rt_code, const char* op, uintptr_t address);
+
+  // Multiple-structure accesses.
+  void PrintVStructAccess(int rt_code,
+                          int reg_count,
+                          PrintRegisterFormat format,
+                          const char* op,
+                          uintptr_t address);
+  // Single-structure (single-lane) accesses.
+  void PrintVSingleStructAccess(int rt_code,
+                                int reg_count,
+                                int lane,
+                                PrintRegisterFormat format,
+                                const char* op,
+                                uintptr_t address);
+  // Replicating accesses.
+  void PrintVReplicatingStructAccess(int rt_code,
+                                     int reg_count,
+                                     PrintRegisterFormat format,
+                                     const char* op,
+                                     uintptr_t address);
+
+  // Multiple-structure accesses.
+  void PrintZStructAccess(int rt_code,
+                          int reg_count,
+                          const LogicPRegister& pg,
+                          PrintRegisterFormat format,
+                          int msize_in_bytes,
+                          const char* op,
+                          const LogicSVEAddressVector& addr);
+
+  // Register-printing helper for all structured accessors.
+  //
+  // All lanes (according to `format`) are printed, but lanes indicated by
+  // `focus_mask` are of particular interest. Each bit corresponds to a byte in
+  // the printed register, in a manner similar to SVE's predicates. Currently,
+  // this is used to determine when to print human-readable FP annotations.
+  void PrintVRegistersForStructuredAccess(int rt_code,
+                                          int reg_count,
+                                          uint16_t focus_mask,
+                                          PrintRegisterFormat format);
+
+  // As for the VRegister variant, but print partial Z register names.
+  void PrintZRegistersForStructuredAccess(int rt_code,
+                                          int q_index,
+                                          int reg_count,
+                                          uint16_t focus_mask,
+                                          PrintRegisterFormat format);
+
+  // Print part of a memory access. This should be used for annotating
+  // non-trivial accesses, such as structured or sign-extending loads. Call
+  // Print*Register (or Print*RegistersForStructuredAccess), then
+  // PrintPartialAccess for each contiguous access that makes up the
+  // instruction.
+  //
+  //  access_mask:
+  //      The lanes to be printed. Each bit corresponds to a byte in the printed
+  //      register, in a manner similar to SVE's predicates, except that the
+  //      lane size is not respected when interpreting lane_mask: unaligned bits
+  //      must be zeroed.
+  //
+  //      This function asserts that this mask is non-zero.
+  //
+  //  future_access_mask:
+  //      The lanes to be printed by a future invocation. This must be specified
+  //      because vertical lines are drawn for partial accesses that haven't yet
+  //      been printed. The format is the same as for accessed_mask.
+  //
+  //      If a lane is active in both `access_mask` and `future_access_mask`,
+  //      `access_mask` takes precedence.
+  //
+  //  struct_element_count:
+  //      The number of elements in each structure. For non-structured accesses,
+  //      set this to one. Along with lane_size_in_bytes, this is used determine
+  //      the size of each access, and to format the accessed value.
+  //
+  //  op:
+  //      For stores, use "->". For loads, use "<-".
+  //
+  //  address:
+  //      The address of this partial access. (Not the base address of the whole
+  //      instruction.) The traced value is read from this address (according to
+  //      part_count and lane_size_in_bytes) so it must be accessible, and when
+  //      tracing stores, the store must have been executed before this function
+  //      is called.
+  //
+  //  reg_size_in_bytes:
+  //      The size of the register being accessed. This helper is usually used
+  //      for V registers or Q-sized chunks of Z registers, so that is the
+  //      default, but it is possible to use this to annotate X register
+  //      accesses by specifying kXRegSizeInBytes.
+  //
+  // The return value is a future_access_mask suitable for the next iteration,
+  // so that it is possible to execute this in a loop, until the mask is zero.
+  // Note that accessed_mask must still be updated by the caller for each call.
+  uint16_t PrintPartialAccess(uint16_t access_mask,
+                              uint16_t future_access_mask,
+                              int struct_element_count,
+                              int lane_size_in_bytes,
+                              const char* op,
+                              uintptr_t address,
+                              int reg_size_in_bytes = kQRegSizeInBytes);
+
+  // Print an abstract register value. This works for all register types, and
+  // can print parts of registers. This exists to ensure consistent formatting
+  // of values.
+  void PrintRegisterValue(const uint8_t* value,
+                          int value_size,
+                          PrintRegisterFormat format);
+  template <typename T>
+  void PrintRegisterValue(const T& sim_register, PrintRegisterFormat format) {
+    PrintRegisterValue(sim_register.GetBytes(),
+                       std::min(sim_register.GetSizeInBytes(),
+                                kQRegSizeInBytes),
+                       format);
+  }
+
+  // As above, but format as an SVE predicate value, using binary notation with
+  // spaces between each bit so that they align with the Z register bytes that
+  // they predicate.
+  void PrintPRegisterValue(uint16_t value);
+
+  void PrintRegisterValueFPAnnotations(const uint8_t* value,
+                                       uint16_t lane_mask,
+                                       PrintRegisterFormat format);
+  template <typename T>
+  void PrintRegisterValueFPAnnotations(const T& sim_register,
+                                       uint16_t lane_mask,
+                                       PrintRegisterFormat format) {
+    PrintRegisterValueFPAnnotations(sim_register.GetBytes(), lane_mask, format);
+  }
+  template <typename T>
+  void PrintRegisterValueFPAnnotations(const T& sim_register,
+                                       PrintRegisterFormat format) {
+    PrintRegisterValueFPAnnotations(sim_register.GetBytes(),
+                                    GetPrintRegLaneMask(format),
+                                    format);
+  }
 
   VIXL_NO_RETURN void DoUnreachable(const Instruction* instr);
   void DoTrace(const Instruction* instr);
@@ -1587,10 +2399,13 @@
                                      Reg31Mode mode = Reg31IsZeroRegister);
   static const char* XRegNameForCode(unsigned code,
                                      Reg31Mode mode = Reg31IsZeroRegister);
+  static const char* BRegNameForCode(unsigned code);
   static const char* HRegNameForCode(unsigned code);
   static const char* SRegNameForCode(unsigned code);
   static const char* DRegNameForCode(unsigned code);
   static const char* VRegNameForCode(unsigned code);
+  static const char* ZRegNameForCode(unsigned code);
+  static const char* PRegNameForCode(unsigned code);
 
   bool IsColouredTrace() const { return coloured_trace_; }
   VIXL_DEPRECATED("IsColouredTrace", bool coloured_trace() const) {
@@ -1609,18 +2424,28 @@
     return GetTraceParameters();
   }
 
+  bool ShouldTraceWrites() const {
+    return (GetTraceParameters() & LOG_WRITE) != 0;
+  }
+  bool ShouldTraceRegs() const {
+    return (GetTraceParameters() & LOG_REGS) != 0;
+  }
+  bool ShouldTraceVRegs() const {
+    return (GetTraceParameters() & LOG_VREGS) != 0;
+  }
+  bool ShouldTraceSysRegs() const {
+    return (GetTraceParameters() & LOG_SYSREGS) != 0;
+  }
+  bool ShouldTraceBranches() const {
+    return (GetTraceParameters() & LOG_BRANCH) != 0;
+  }
+
   void SetTraceParameters(int parameters);
   VIXL_DEPRECATED("SetTraceParameters",
                   void set_trace_parameters(int parameters)) {
     SetTraceParameters(parameters);
   }
 
-  void SetInstructionStats(bool value);
-  VIXL_DEPRECATED("SetInstructionStats",
-                  void set_instruction_stats(bool value)) {
-    SetInstructionStats(value);
-  }
-
   // Clear the simulated local monitor to force the next store-exclusive
   // instruction to fail.
   void ClearLocalMonitor() { local_monitor_.Clear(); }
@@ -1803,6 +2628,92 @@
   };
 #endif
 
+  // Configure the simulated value of 'VL', which is the size of a Z register.
+  // Because this cannot occur during a program's lifetime, this function also
+  // resets the SVE registers.
+  void SetVectorLengthInBits(unsigned vector_length);
+
+  unsigned GetVectorLengthInBits() const { return vector_length_; }
+  unsigned GetVectorLengthInBytes() const {
+    VIXL_ASSERT((vector_length_ % kBitsPerByte) == 0);
+    return vector_length_ / kBitsPerByte;
+  }
+  unsigned GetPredicateLengthInBits() const {
+    VIXL_ASSERT((GetVectorLengthInBits() % kZRegBitsPerPRegBit) == 0);
+    return GetVectorLengthInBits() / kZRegBitsPerPRegBit;
+  }
+  unsigned GetPredicateLengthInBytes() const {
+    VIXL_ASSERT((GetVectorLengthInBytes() % kZRegBitsPerPRegBit) == 0);
+    return GetVectorLengthInBytes() / kZRegBitsPerPRegBit;
+  }
+
+  unsigned RegisterSizeInBitsFromFormat(VectorFormat vform) const {
+    if (IsSVEFormat(vform)) {
+      return GetVectorLengthInBits();
+    } else {
+      return vixl::aarch64::RegisterSizeInBitsFromFormat(vform);
+    }
+  }
+
+  unsigned RegisterSizeInBytesFromFormat(VectorFormat vform) const {
+    unsigned size_in_bits = RegisterSizeInBitsFromFormat(vform);
+    VIXL_ASSERT((size_in_bits % kBitsPerByte) == 0);
+    return size_in_bits / kBitsPerByte;
+  }
+
+  int LaneCountFromFormat(VectorFormat vform) const {
+    if (IsSVEFormat(vform)) {
+      return GetVectorLengthInBits() / LaneSizeInBitsFromFormat(vform);
+    } else {
+      return vixl::aarch64::LaneCountFromFormat(vform);
+    }
+  }
+
+  bool IsFirstActive(VectorFormat vform,
+                     const LogicPRegister& mask,
+                     const LogicPRegister& bits) {
+    for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+      if (mask.IsActive(vform, i)) {
+        return bits.IsActive(vform, i);
+      }
+    }
+    return false;
+  }
+
+  bool AreNoneActive(VectorFormat vform,
+                     const LogicPRegister& mask,
+                     const LogicPRegister& bits) {
+    for (int i = 0; i < LaneCountFromFormat(vform); i++) {
+      if (mask.IsActive(vform, i) && bits.IsActive(vform, i)) {
+        return false;
+      }
+    }
+    return true;
+  }
+
+  bool IsLastActive(VectorFormat vform,
+                    const LogicPRegister& mask,
+                    const LogicPRegister& bits) {
+    for (int i = LaneCountFromFormat(vform) - 1; i >= 0; i--) {
+      if (mask.IsActive(vform, i)) {
+        return bits.IsActive(vform, i);
+      }
+    }
+    return false;
+  }
+
+  void PredTest(VectorFormat vform,
+                const LogicPRegister& mask,
+                const LogicPRegister& bits) {
+    ReadNzcv().SetN(IsFirstActive(vform, mask, bits));
+    ReadNzcv().SetZ(AreNoneActive(vform, mask, bits));
+    ReadNzcv().SetC(!IsLastActive(vform, mask, bits));
+    ReadNzcv().SetV(0);
+    LogSystemRegister(NZCV);
+  }
+
+  SimPRegister& GetPTrue() { return pregister_all_true_; }
+
  protected:
   const char* clr_normal;
   const char* clr_flag_name;
@@ -1811,6 +2722,8 @@
   const char* clr_reg_value;
   const char* clr_vreg_name;
   const char* clr_vreg_value;
+  const char* clr_preg_name;
+  const char* clr_preg_value;
   const char* clr_memory_address;
   const char* clr_warning;
   const char* clr_warning_message;
@@ -1818,6 +2731,13 @@
   const char* clr_branch_marker;
 
   // Simulation helpers ------------------------------------
+
+  void ResetSystemRegisters();
+  void ResetRegisters();
+  void ResetVRegisters();
+  void ResetPRegisters();
+  void ResetFFR();
+
   bool ConditionPassed(Condition cond) {
     switch (cond) {
       case eq:
@@ -1907,7 +2827,7 @@
   }
 
   int64_t ShiftOperand(unsigned reg_size,
-                       int64_t value,
+                       uint64_t value,
                        Shift shift_type,
                        unsigned amount) const;
   int64_t ExtendValue(unsigned reg_width,
@@ -1919,6 +2839,11 @@
   void ld1(VectorFormat vform, LogicVRegister dst, uint64_t addr);
   void ld1(VectorFormat vform, LogicVRegister dst, int index, uint64_t addr);
   void ld1r(VectorFormat vform, LogicVRegister dst, uint64_t addr);
+  void ld1r(VectorFormat vform,
+            VectorFormat unpack_vform,
+            LogicVRegister dst,
+            uint64_t addr,
+            bool is_signed = false);
   void ld2(VectorFormat vform,
            LogicVRegister dst1,
            LogicVRegister dst2,
@@ -2020,16 +2945,43 @@
                      LogicVRegister dst,
                      const LogicVRegister& src1,
                      const LogicVRegister& src2);
+  // Add `value` to each lane of `src1`, treating `value` as unsigned for the
+  // purposes of setting the saturation flags.
+  LogicVRegister add_uint(VectorFormat vform,
+                          LogicVRegister dst,
+                          const LogicVRegister& src1,
+                          uint64_t value);
   LogicVRegister addp(VectorFormat vform,
                       LogicVRegister dst,
                       const LogicVRegister& src1,
                       const LogicVRegister& src2);
+  LogicPRegister brka(LogicPRegister pd,
+                      const LogicPRegister& pg,
+                      const LogicPRegister& pn);
+  LogicPRegister brkb(LogicPRegister pd,
+                      const LogicPRegister& pg,
+                      const LogicPRegister& pn);
+  LogicPRegister brkn(LogicPRegister pdm,
+                      const LogicPRegister& pg,
+                      const LogicPRegister& pn);
+  LogicPRegister brkpa(LogicPRegister pd,
+                       const LogicPRegister& pg,
+                       const LogicPRegister& pn,
+                       const LogicPRegister& pm);
+  LogicPRegister brkpb(LogicPRegister pd,
+                       const LogicPRegister& pg,
+                       const LogicPRegister& pn,
+                       const LogicPRegister& pm);
+  // dst = srca + src1 * src2
   LogicVRegister mla(VectorFormat vform,
                      LogicVRegister dst,
+                     const LogicVRegister& srca,
                      const LogicVRegister& src1,
                      const LogicVRegister& src2);
+  // dst = srca - src1 * src2
   LogicVRegister mls(VectorFormat vform,
                      LogicVRegister dst,
+                     const LogicVRegister& srca,
                      const LogicVRegister& src1,
                      const LogicVRegister& src2);
   LogicVRegister mul(VectorFormat vform,
@@ -2055,6 +3007,14 @@
                       LogicVRegister dst,
                       const LogicVRegister& src1,
                       const LogicVRegister& src2);
+  LogicVRegister sdiv(VectorFormat vform,
+                      LogicVRegister dst,
+                      const LogicVRegister& src1,
+                      const LogicVRegister& src2);
+  LogicVRegister udiv(VectorFormat vform,
+                      LogicVRegister dst,
+                      const LogicVRegister& src1,
+                      const LogicVRegister& src2);
 
   typedef LogicVRegister (Simulator::*ByElementOp)(VectorFormat vform,
                                                    LogicVRegister dst,
@@ -2101,6 +3061,10 @@
                        const LogicVRegister& src1,
                        const LogicVRegister& src2,
                        int index);
+  LogicVRegister smulh(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicVRegister& src1,
+                       const LogicVRegister& src2);
   LogicVRegister smull(VectorFormat vform,
                        LogicVRegister dst,
                        const LogicVRegister& src1,
@@ -2161,6 +3125,10 @@
                         const LogicVRegister& src1,
                         const LogicVRegister& src2,
                         int index);
+  LogicVRegister umulh(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicVRegister& src1,
+                       const LogicVRegister& src2);
   LogicVRegister sqdmull(VectorFormat vform,
                          LogicVRegister dst,
                          const LogicVRegister& src1,
@@ -2225,6 +3193,12 @@
                      LogicVRegister dst,
                      const LogicVRegister& src1,
                      const LogicVRegister& src2);
+  // Subtract `value` from each lane of `src1`, treating `value` as unsigned for
+  // the purposes of setting the saturation flags.
+  LogicVRegister sub_uint(VectorFormat vform,
+                          LogicVRegister dst,
+                          const LogicVRegister& src1,
+                          uint64_t value);
   LogicVRegister and_(VectorFormat vform,
                       LogicVRegister dst,
                       const LogicVRegister& src1,
@@ -2267,6 +3241,9 @@
   LogicVRegister clz(VectorFormat vform,
                      LogicVRegister dst,
                      const LogicVRegister& src);
+  LogicVRegister cnot(VectorFormat vform,
+                      LogicVRegister dst,
+                      const LogicVRegister& src);
   LogicVRegister cnt(VectorFormat vform,
                      LogicVRegister dst,
                      const LogicVRegister& src);
@@ -2278,8 +3255,11 @@
                       const LogicVRegister& src);
   LogicVRegister rev(VectorFormat vform,
                      LogicVRegister dst,
-                     const LogicVRegister& src,
-                     int revSize);
+                     const LogicVRegister& src);
+  LogicVRegister rev_byte(VectorFormat vform,
+                          LogicVRegister dst,
+                          const LogicVRegister& src,
+                          int rev_size);
   LogicVRegister rev16(VectorFormat vform,
                        LogicVRegister dst,
                        const LogicVRegister& src);
@@ -2327,6 +3307,7 @@
                        LogicVRegister dst,
                        const LogicVRegister& src1,
                        const LogicVRegister& src2,
+                       const LogicVRegister& acc,
                        int index,
                        int rot);
   LogicVRegister fcmla(VectorFormat vform,
@@ -2335,17 +3316,25 @@
                        const LogicVRegister& src2,
                        int index,
                        int rot);
+  LogicVRegister fcmla(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicVRegister& src1,
+                       const LogicVRegister& src2,
+                       const LogicVRegister& acc,
+                       int rot);
   template <typename T>
-  LogicVRegister fcmla(VectorFormat vform,
+  LogicVRegister fadda(VectorFormat vform,
+                       LogicVRegister acc,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src);
+  LogicVRegister fadda(VectorFormat vform,
+                       LogicVRegister acc,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src);
+  LogicVRegister index(VectorFormat vform,
                        LogicVRegister dst,
-                       const LogicVRegister& src1,
-                       const LogicVRegister& src2,
-                       int rot);
-  LogicVRegister fcmla(VectorFormat vform,
-                       LogicVRegister dst,
-                       const LogicVRegister& src1,
-                       const LogicVRegister& src2,
-                       int rot);
+                       uint64_t start,
+                       uint64_t step);
   LogicVRegister ins_element(VectorFormat vform,
                              LogicVRegister dst,
                              int dst_index,
@@ -2355,13 +3344,36 @@
                                LogicVRegister dst,
                                int dst_index,
                                uint64_t imm);
+  LogicVRegister insr(VectorFormat vform, LogicVRegister dst, uint64_t imm);
   LogicVRegister dup_element(VectorFormat vform,
                              LogicVRegister dst,
                              const LogicVRegister& src,
                              int src_index);
+  LogicVRegister dup_elements_to_segments(VectorFormat vform,
+                                          LogicVRegister dst,
+                                          const LogicVRegister& src,
+                                          int src_index);
   LogicVRegister dup_immediate(VectorFormat vform,
                                LogicVRegister dst,
                                uint64_t imm);
+  LogicVRegister mov(VectorFormat vform,
+                     LogicVRegister dst,
+                     const LogicVRegister& src);
+  LogicPRegister mov(LogicPRegister dst, const LogicPRegister& src);
+  LogicVRegister mov_merging(VectorFormat vform,
+                             LogicVRegister dst,
+                             const SimPRegister& pg,
+                             const LogicVRegister& src);
+  LogicVRegister mov_zeroing(VectorFormat vform,
+                             LogicVRegister dst,
+                             const SimPRegister& pg,
+                             const LogicVRegister& src);
+  LogicPRegister mov_merging(LogicPRegister dst,
+                             const LogicPRegister& pg,
+                             const LogicPRegister& src);
+  LogicPRegister mov_zeroing(LogicPRegister dst,
+                             const LogicPRegister& pg,
+                             const LogicPRegister& src);
   LogicVRegister movi(VectorFormat vform, LogicVRegister dst, uint64_t imm);
   LogicVRegister mvni(VectorFormat vform, LogicVRegister dst, uint64_t imm);
   LogicVRegister orr(VectorFormat vform,
@@ -2376,6 +3388,32 @@
                       LogicVRegister dst,
                       const LogicVRegister& src1,
                       const LogicVRegister& src2);
+  // Perform a "conditional last" operation. The first part of the pair is true
+  // if any predicate lane is active, false otherwise. The second part takes the
+  // value of the last active (plus offset) lane, or last (plus offset) lane if
+  // none active.
+  std::pair<bool, uint64_t> clast(VectorFormat vform,
+                                  const LogicPRegister& pg,
+                                  const LogicVRegister& src2,
+                                  int offset_from_last_active);
+  LogicVRegister compact(VectorFormat vform,
+                         LogicVRegister dst,
+                         const LogicPRegister& pg,
+                         const LogicVRegister& src);
+  LogicVRegister splice(VectorFormat vform,
+                        LogicVRegister dst,
+                        const LogicPRegister& pg,
+                        const LogicVRegister& src1,
+                        const LogicVRegister& src2);
+  LogicVRegister sel(VectorFormat vform,
+                     LogicVRegister dst,
+                     const SimPRegister& pg,
+                     const LogicVRegister& src1,
+                     const LogicVRegister& src2);
+  LogicPRegister sel(LogicPRegister dst,
+                     const LogicPRegister& pg,
+                     const LogicPRegister& src1,
+                     const LogicPRegister& src2);
   LogicVRegister sminmax(VectorFormat vform,
                          LogicVRegister dst,
                          const LogicVRegister& src1,
@@ -2416,6 +3454,7 @@
                         const LogicVRegister& src);
   LogicVRegister sminmaxv(VectorFormat vform,
                           LogicVRegister dst,
+                          const LogicPRegister& pg,
                           const LogicVRegister& src,
                           bool max);
   LogicVRegister smaxv(VectorFormat vform,
@@ -2436,6 +3475,14 @@
   LogicVRegister sxtl2(VectorFormat vform,
                        LogicVRegister dst,
                        const LogicVRegister& src);
+  LogicVRegister uxt(VectorFormat vform,
+                     LogicVRegister dst,
+                     const LogicVRegister& src,
+                     unsigned from_size_in_bits);
+  LogicVRegister sxt(VectorFormat vform,
+                     LogicVRegister dst,
+                     const LogicVRegister& src,
+                     unsigned from_size_in_bits);
   LogicVRegister tbl(VectorFormat vform,
                      LogicVRegister dst,
                      const LogicVRegister& tab,
@@ -2460,6 +3507,10 @@
                      const LogicVRegister& ind);
   LogicVRegister Table(VectorFormat vform,
                        LogicVRegister dst,
+                       const LogicVRegister& src,
+                       const LogicVRegister& tab);
+  LogicVRegister Table(VectorFormat vform,
+                       LogicVRegister dst,
                        const LogicVRegister& ind,
                        bool zero_out_of_bounds,
                        const LogicVRegister* tab1,
@@ -2580,6 +3631,7 @@
                        const LogicVRegister& src2);
   LogicVRegister uminmaxv(VectorFormat vform,
                           LogicVRegister dst,
+                          const LogicPRegister& pg,
                           const LogicVRegister& src,
                           bool max);
   LogicVRegister umaxv(VectorFormat vform,
@@ -2617,11 +3669,27 @@
                      const LogicVRegister& src,
                      int shift);
   LogicVRegister scvtf(VectorFormat vform,
+                       unsigned dst_data_size_in_bits,
+                       unsigned src_data_size_in_bits,
+                       LogicVRegister dst,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src,
+                       FPRounding round,
+                       int fbits = 0);
+  LogicVRegister scvtf(VectorFormat vform,
                        LogicVRegister dst,
                        const LogicVRegister& src,
                        int fbits,
                        FPRounding rounding_mode);
   LogicVRegister ucvtf(VectorFormat vform,
+                       unsigned dst_data_size,
+                       unsigned src_data_size,
+                       LogicVRegister dst,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src,
+                       FPRounding round,
+                       int fbits = 0);
+  LogicVRegister ucvtf(VectorFormat vform,
                        LogicVRegister dst,
                        const LogicVRegister& src,
                        int fbits,
@@ -2706,9 +3774,9 @@
                      const LogicVRegister& src);
   LogicVRegister extractnarrow(VectorFormat vform,
                                LogicVRegister dst,
-                               bool dstIsSigned,
+                               bool dst_is_signed,
                                const LogicVRegister& src,
-                               bool srcIsSigned);
+                               bool src_is_signed);
   LogicVRegister xtn(VectorFormat vform,
                      LogicVRegister dst,
                      const LogicVRegister& src);
@@ -2725,7 +3793,7 @@
                          LogicVRegister dst,
                          const LogicVRegister& src1,
                          const LogicVRegister& src2,
-                         bool issigned);
+                         bool is_signed);
   LogicVRegister saba(VectorFormat vform,
                       LogicVRegister dst,
                       const LogicVRegister& src1,
@@ -2951,19 +4019,23 @@
   template <typename T>
   LogicVRegister fmla(VectorFormat vform,
                       LogicVRegister dst,
+                      const LogicVRegister& srca,
                       const LogicVRegister& src1,
                       const LogicVRegister& src2);
   LogicVRegister fmla(VectorFormat vform,
                       LogicVRegister dst,
+                      const LogicVRegister& srca,
                       const LogicVRegister& src1,
                       const LogicVRegister& src2);
   template <typename T>
   LogicVRegister fmls(VectorFormat vform,
                       LogicVRegister dst,
+                      const LogicVRegister& srca,
                       const LogicVRegister& src1,
                       const LogicVRegister& src2);
   LogicVRegister fmls(VectorFormat vform,
                       LogicVRegister dst,
+                      const LogicVRegister& srca,
                       const LogicVRegister& src1,
                       const LogicVRegister& src2);
   LogicVRegister fnmul(VectorFormat vform,
@@ -3023,6 +4095,31 @@
   LogicVRegister frecpx(VectorFormat vform,
                         LogicVRegister dst,
                         const LogicVRegister& src);
+  LogicVRegister ftsmul(VectorFormat vform,
+                        LogicVRegister dst,
+                        const LogicVRegister& src1,
+                        const LogicVRegister& src2);
+  LogicVRegister ftssel(VectorFormat vform,
+                        LogicVRegister dst,
+                        const LogicVRegister& src1,
+                        const LogicVRegister& src2);
+  LogicVRegister ftmad(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicVRegister& src1,
+                       const LogicVRegister& src2,
+                       unsigned index);
+  LogicVRegister fexpa(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicVRegister& src);
+  template <typename T>
+  LogicVRegister fscale(VectorFormat vform,
+                        LogicVRegister dst,
+                        const LogicVRegister& src1,
+                        const LogicVRegister& src2);
+  LogicVRegister fscale(VectorFormat vform,
+                        LogicVRegister dst,
+                        const LogicVRegister& src1,
+                        const LogicVRegister& src2);
   template <typename T>
   LogicVRegister fabs_(VectorFormat vform,
                        LogicVRegister dst,
@@ -3034,19 +4131,40 @@
                       LogicVRegister dst,
                       const LogicVRegister& src1,
                       const LogicVRegister& src2);
-
   LogicVRegister frint(VectorFormat vform,
                        LogicVRegister dst,
                        const LogicVRegister& src,
                        FPRounding rounding_mode,
                        bool inexact_exception = false,
                        FrintMode frint_mode = kFrintToInteger);
+  LogicVRegister fcvt(VectorFormat vform,
+                      unsigned dst_data_size_in_bits,
+                      unsigned src_data_size_in_bits,
+                      LogicVRegister dst,
+                      const LogicPRegister& pg,
+                      const LogicVRegister& src);
+  LogicVRegister fcvts(VectorFormat vform,
+                       unsigned dst_data_size_in_bits,
+                       unsigned src_data_size_in_bits,
+                       LogicVRegister dst,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src,
+                       FPRounding round,
+                       int fbits = 0);
   LogicVRegister fcvts(VectorFormat vform,
                        LogicVRegister dst,
                        const LogicVRegister& src,
                        FPRounding rounding_mode,
                        int fbits = 0);
   LogicVRegister fcvtu(VectorFormat vform,
+                       unsigned dst_data_size_in_bits,
+                       unsigned src_data_size_in_bits,
+                       LogicVRegister dst,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src,
+                       FPRounding round,
+                       int fbits = 0);
+  LogicVRegister fcvtu(VectorFormat vform,
                        LogicVRegister dst,
                        const LogicVRegister& src,
                        FPRounding rounding_mode,
@@ -3086,16 +4204,78 @@
                         LogicVRegister dst,
                         const LogicVRegister& src);
 
+  LogicPRegister pfalse(LogicPRegister dst);
+  LogicPRegister pfirst(LogicPRegister dst,
+                        const LogicPRegister& pg,
+                        const LogicPRegister& src);
+  LogicPRegister ptrue(VectorFormat vform, LogicPRegister dst, int pattern);
+  LogicPRegister pnext(VectorFormat vform,
+                       LogicPRegister dst,
+                       const LogicPRegister& pg,
+                       const LogicPRegister& src);
+
+  LogicVRegister asrd(VectorFormat vform,
+                      LogicVRegister dst,
+                      const LogicVRegister& src1,
+                      int shift);
+
+  LogicVRegister andv(VectorFormat vform,
+                      LogicVRegister dst,
+                      const LogicPRegister& pg,
+                      const LogicVRegister& src);
+  LogicVRegister eorv(VectorFormat vform,
+                      LogicVRegister dst,
+                      const LogicPRegister& pg,
+                      const LogicVRegister& src);
+  LogicVRegister orv(VectorFormat vform,
+                     LogicVRegister dst,
+                     const LogicPRegister& pg,
+                     const LogicVRegister& src);
+  LogicVRegister saddv(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src);
+  LogicVRegister sminv(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src);
+  LogicVRegister smaxv(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src);
+  LogicVRegister uaddv(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src);
+  LogicVRegister uminv(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src);
+  LogicVRegister umaxv(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicPRegister& pg,
+                       const LogicVRegister& src);
+
   template <typename T>
-  struct TFPMinMaxOp {
+  struct TFPPairOp {
     typedef T (Simulator::*type)(T a, T b);
   };
 
   template <typename T>
-  LogicVRegister fminmaxv(VectorFormat vform,
-                          LogicVRegister dst,
-                          const LogicVRegister& src,
-                          typename TFPMinMaxOp<T>::type Op);
+  LogicVRegister FPPairedAcrossHelper(VectorFormat vform,
+                                      LogicVRegister dst,
+                                      const LogicVRegister& src,
+                                      typename TFPPairOp<T>::type fn,
+                                      uint64_t inactive_value);
+
+  LogicVRegister FPPairedAcrossHelper(
+      VectorFormat vform,
+      LogicVRegister dst,
+      const LogicVRegister& src,
+      typename TFPPairOp<vixl::internal::SimFloat16>::type fn16,
+      typename TFPPairOp<float>::type fn32,
+      typename TFPPairOp<double>::type fn64,
+      uint64_t inactive_value);
 
   LogicVRegister fminv(VectorFormat vform,
                        LogicVRegister dst,
@@ -3109,6 +4289,9 @@
   LogicVRegister fmaxnmv(VectorFormat vform,
                          LogicVRegister dst,
                          const LogicVRegister& src);
+  LogicVRegister faddv(VectorFormat vform,
+                       LogicVRegister dst,
+                       const LogicVRegister& src);
 
   static const uint32_t CRC32_POLY = 0x04C11DB7;
   static const uint32_t CRC32C_POLY = 0x1EDC6F41;
@@ -3209,6 +4392,129 @@
   void DoSaveCPUFeatures(const Instruction* instr);
   void DoRestoreCPUFeatures(const Instruction* instr);
 
+  // General arithmetic helpers ----------------------------
+
+  // Add `delta` to the accumulator (`acc`), optionally saturate, then zero- or
+  // sign-extend. Initial `acc` bits outside `n` are ignored, but the delta must
+  // be a valid int<n>_t.
+  uint64_t IncDecN(uint64_t acc,
+                   int64_t delta,
+                   unsigned n,
+                   bool is_saturating = false,
+                   bool is_signed = false);
+
+  // SVE helpers -------------------------------------------
+  LogicVRegister SVEBitwiseLogicalUnpredicatedHelper(LogicalOp op,
+                                                     VectorFormat vform,
+                                                     LogicVRegister zd,
+                                                     const LogicVRegister& zn,
+                                                     const LogicVRegister& zm);
+
+  LogicPRegister SVEPredicateLogicalHelper(SVEPredicateLogicalOp op,
+                                           LogicPRegister Pd,
+                                           const LogicPRegister& pn,
+                                           const LogicPRegister& pm);
+
+  LogicVRegister SVEBitwiseImmHelper(SVEBitwiseLogicalWithImm_UnpredicatedOp op,
+                                     VectorFormat vform,
+                                     LogicVRegister zd,
+                                     uint64_t imm);
+  enum UnpackType { kHiHalf, kLoHalf };
+  enum ExtendType { kSignedExtend, kUnsignedExtend };
+  LogicVRegister unpk(VectorFormat vform,
+                      LogicVRegister zd,
+                      const LogicVRegister& zn,
+                      UnpackType unpack_type,
+                      ExtendType extend_type);
+
+  LogicPRegister SVEIntCompareVectorsHelper(Condition cc,
+                                            VectorFormat vform,
+                                            LogicPRegister dst,
+                                            const LogicPRegister& mask,
+                                            const LogicVRegister& src1,
+                                            const LogicVRegister& src2,
+                                            bool is_wide_elements = false,
+                                            FlagsUpdate flags = SetFlags);
+
+  void SVEGatherLoadScalarPlusVectorHelper(const Instruction* instr,
+                                           VectorFormat vform,
+                                           SVEOffsetModifier mod);
+
+  // Store each active zt<i>[lane] to `addr.GetElementAddress(lane, ...)`.
+  //
+  // `zt_code` specifies the code of the first register (zt). Each additional
+  // register (up to `reg_count`) is `(zt_code + i) % 32`.
+  //
+  // This helper calls LogZWrite in the proper way, according to `addr`.
+  void SVEStructuredStoreHelper(VectorFormat vform,
+                                const LogicPRegister& pg,
+                                unsigned zt_code,
+                                const LogicSVEAddressVector& addr);
+  // Load each active zt<i>[lane] from `addr.GetElementAddress(lane, ...)`.
+  void SVEStructuredLoadHelper(VectorFormat vform,
+                               const LogicPRegister& pg,
+                               unsigned zt_code,
+                               const LogicSVEAddressVector& addr,
+                               bool is_signed = false);
+
+  enum SVEFaultTolerantLoadType {
+    // - Elements active in both FFR and pg are accessed as usual. If the access
+    //   fails, the corresponding lane and all subsequent lanes are filled with
+    //   an unpredictable value, and made inactive in FFR.
+    //
+    // - Elements active in FFR but not pg are set to zero.
+    //
+    // - Elements that are not active in FFR are filled with an unpredictable
+    //   value, regardless of pg.
+    kSVENonFaultLoad,
+
+    // If type == kSVEFirstFaultLoad, the behaviour is the same, except that the
+    // first active element is always accessed, regardless of FFR, and will
+    // generate a real fault if it is inaccessible. If the lane is not active in
+    // FFR, the actual value loaded into the result is still unpredictable.
+    kSVEFirstFaultLoad
+  };
+
+  // Load with first-faulting or non-faulting load semantics, respecting and
+  // updating FFR.
+  void SVEFaultTolerantLoadHelper(VectorFormat vform,
+                                  const LogicPRegister& pg,
+                                  unsigned zt_code,
+                                  const LogicSVEAddressVector& addr,
+                                  SVEFaultTolerantLoadType type,
+                                  bool is_signed);
+
+  LogicVRegister SVEBitwiseShiftHelper(Shift shift_op,
+                                       VectorFormat vform,
+                                       LogicVRegister dst,
+                                       const LogicVRegister& src1,
+                                       const LogicVRegister& src2,
+                                       bool is_wide_elements);
+
+  template <typename T>
+  LogicVRegister FTMaddHelper(VectorFormat vform,
+                              LogicVRegister dst,
+                              const LogicVRegister& src1,
+                              const LogicVRegister& src2,
+                              uint64_t coeff_pos,
+                              uint64_t coeff_neg);
+
+  // Return the first or last active lane, or -1 if none are active.
+  int GetFirstActive(VectorFormat vform, const LogicPRegister& pg) const;
+  int GetLastActive(VectorFormat vform, const LogicPRegister& pg) const;
+
+  int CountActiveLanes(VectorFormat vform, const LogicPRegister& pg) const;
+
+  // Count active and true lanes in `pn`.
+  int CountActiveAndTrueLanes(VectorFormat vform,
+                              const LogicPRegister& pg,
+                              const LogicPRegister& pn) const;
+
+  // Count the number of lanes referred to by `pattern`, given the vector
+  // length. If `pattern` is not a recognised SVEPredicateConstraint, this
+  // returns zero.
+  int GetPredicateConstraintLaneCount(VectorFormat vform, int pattern) const;
+
   // Simulate a runtime call.
   void DoRuntimeCall(const Instruction* instr);
 
@@ -3222,15 +4528,21 @@
   FILE* stream_;
   PrintDisassembler* print_disasm_;
 
-  // Instruction statistics instrumentation.
-  Instrument* instrumentation_;
-
   // General purpose registers. Register 31 is the stack pointer.
   SimRegister registers_[kNumberOfRegisters];
 
   // Vector registers
   SimVRegister vregisters_[kNumberOfVRegisters];
 
+  // SVE predicate registers.
+  SimPRegister pregisters_[kNumberOfPRegisters];
+
+  // SVE first-fault register.
+  SimFFRRegister ffr_register_;
+
+  // A pseudo SVE predicate register with all bits set to true.
+  SimPRegister pregister_all_true_;
+
   // Program Status Register.
   // bits[31, 27]: Condition flags N, Z, C, and V.
   //               (Negative, Zero, Carry, Overflow)
@@ -3263,12 +4575,11 @@
 
   static const uint32_t kConditionFlagsMask = 0xf0000000;
 
-  // Stack
-  byte* stack_;
-  static const int stack_protection_size_ = 256;
-  // 2 KB stack.
-  static const int stack_size_ = 2 * 1024 + 2 * stack_protection_size_;
-  byte* stack_limit_;
+  Memory memory_;
+
+  static const size_t kDefaultStackGuardStartSize = 0;
+  static const size_t kDefaultStackGuardEndSize = 4 * 1024;
+  static const size_t kDefaultStackUsableSize = 8 * 1024;
 
   Decoder* decoder_;
   // Indicates if the pc has been modified by the instruction and should not be
@@ -3276,6 +4587,10 @@
   bool pc_modified_;
   const Instruction* pc_;
 
+  // If non-NULL, the last instruction was a movprfx, and validity needs to be
+  // checked.
+  Instruction const* movprfx_;
+
   // Branch type register, used for branch target identification.
   BType btype_;
 
@@ -3289,10 +4604,13 @@
 
   static const char* xreg_names[];
   static const char* wreg_names[];
+  static const char* breg_names[];
   static const char* hreg_names[];
   static const char* sreg_names[];
   static const char* dreg_names[];
   static const char* vreg_names[];
+  static const char* zreg_names[];
+  static const char* preg_names[];
 
  private:
   static const PACKey kPACKeyIA;
@@ -3301,6 +4619,13 @@
   static const PACKey kPACKeyDB;
   static const PACKey kPACKeyGA;
 
+  bool CanReadMemory(uintptr_t address, size_t size);
+
+  // CanReadMemory needs placeholder file descriptors, so we use a pipe. We can
+  // save some system call overhead by opening them on construction, rather than
+  // on every call to CanReadMemory.
+  int placeholder_pipe_fd_[2];
+
   template <typename T>
   static T FPDefaultNaN();
 
@@ -3353,14 +4678,24 @@
     }
   }
 
+  // Construct a SimVRegister from a SimPRegister, where each byte-sized lane of
+  // the destination is set to all true (0xff) when the corresponding
+  // predicate flag is set, and false (0x00) otherwise.
+  SimVRegister ExpandToSimVRegister(const SimPRegister& preg);
+
+  // Set each predicate flag in pd where the corresponding assigned-sized lane
+  // in vreg is non-zero. Clear the flag, otherwise. This is almost the opposite
+  // operation to ExpandToSimVRegister(), except that any non-zero lane is
+  // interpreted as true.
+  void ExtractFromSimVRegister(VectorFormat vform,
+                               SimPRegister& pd,  // NOLINT(runtime/references)
+                               SimVRegister vreg);
+
   bool coloured_trace_;
 
   // A set of TraceParameters flags.
   int trace_parameters_;
 
-  // Indicates whether the instruction instrumentation is active.
-  bool instruction_stats_;
-
   // Indicates whether the exclusive-access warning has been printed.
   bool print_exclusive_access_warning_;
   void PrintExclusiveAccessWarning();
@@ -3368,8 +4703,14 @@
   CPUFeaturesAuditor cpu_features_auditor_;
   std::vector<CPUFeatures> saved_cpu_features_;
 
-  // The simulated state of RNDR and RNDRRS for generating a random number.
-  uint16_t rndr_state_[3];
+  // State for *rand48 functions, used to simulate randomness with repeatable
+  // behaviour (so that tests are deterministic). This is used to simulate RNDR
+  // and RNDRRS, as well as to simulate a source of entropy for architecturally
+  // undefined behaviour.
+  uint16_t rand_state_[3];
+
+  // A configurable size of SVE vector registers.
+  unsigned vector_length_;
 };
 
 #if defined(VIXL_HAS_SIMULATED_RUNTIME_CALL_SUPPORT) && __cplusplus < 201402L
diff --git a/src/aarch64/simulator-constants-aarch64.h b/src/aarch64/simulator-constants-aarch64.h
index 3256f30..e2389f1 100644
--- a/src/aarch64/simulator-constants-aarch64.h
+++ b/src/aarch64/simulator-constants-aarch64.h
@@ -121,7 +121,7 @@
 enum TraceParameters {
   LOG_DISASM = 1 << 0,   // Log disassembly.
   LOG_REGS = 1 << 1,     // Log general purpose registers.
-  LOG_VREGS = 1 << 2,    // Log NEON and floating-point registers.
+  LOG_VREGS = 1 << 2,    // Log SVE, NEON and floating-point registers.
   LOG_SYSREGS = 1 << 3,  // Log the flags and system registers.
   LOG_WRITE = 1 << 4,    // Log writes to memory.
   LOG_BRANCH = 1 << 5,   // Log taken branches.
diff --git a/src/code-buffer-vixl.h b/src/code-buffer-vixl.h
index a43c584..9a1efd4 100644
--- a/src/code-buffer-vixl.h
+++ b/src/code-buffer-vixl.h
@@ -164,8 +164,8 @@
     *has_grown = is_full;
   }
   void EnsureSpaceFor(size_t amount) {
-    bool dummy;
-    EnsureSpaceFor(amount, &dummy);
+    bool placeholder;
+    EnsureSpaceFor(amount, &placeholder);
   }
 
  private:
diff --git a/src/cpu-features.cc b/src/cpu-features.cc
index ea1e0d3..08db3f4 100644
--- a/src/cpu-features.cc
+++ b/src/cpu-features.cc
@@ -37,31 +37,9 @@
 
 namespace vixl {
 
-static uint64_t MakeFeatureMask(CPUFeatures::Feature feature) {
-  if (feature == CPUFeatures::kNone) {
-    return 0;
-  } else {
-    // Check that the shift is well-defined, and that the feature is valid.
-    VIXL_STATIC_ASSERT(CPUFeatures::kNumberOfFeatures <=
-                       (sizeof(uint64_t) * 8));
-    VIXL_ASSERT(feature < CPUFeatures::kNumberOfFeatures);
-    return UINT64_C(1) << feature;
-  }
-}
-
-CPUFeatures::CPUFeatures(Feature feature0,
-                         Feature feature1,
-                         Feature feature2,
-                         Feature feature3)
-    : features_(0) {
-  Combine(feature0, feature1, feature2, feature3);
-}
-
 CPUFeatures CPUFeatures::All() {
   CPUFeatures all;
-  // Check that the shift is well-defined.
-  VIXL_STATIC_ASSERT(CPUFeatures::kNumberOfFeatures < (sizeof(uint64_t) * 8));
-  all.features_ = (UINT64_C(1) << kNumberOfFeatures) - 1;
+  all.features_.set();
   return all;
 }
 
@@ -89,74 +67,27 @@
   features_ |= other.features_;
 }
 
-void CPUFeatures::Combine(Feature feature0,
-                          Feature feature1,
-                          Feature feature2,
-                          Feature feature3) {
-  features_ |= MakeFeatureMask(feature0);
-  features_ |= MakeFeatureMask(feature1);
-  features_ |= MakeFeatureMask(feature2);
-  features_ |= MakeFeatureMask(feature3);
+void CPUFeatures::Combine(Feature feature) {
+  if (feature != CPUFeatures::kNone) features_.set(feature);
 }
 
 void CPUFeatures::Remove(const CPUFeatures& other) {
   features_ &= ~other.features_;
 }
 
-void CPUFeatures::Remove(Feature feature0,
-                         Feature feature1,
-                         Feature feature2,
-                         Feature feature3) {
-  features_ &= ~MakeFeatureMask(feature0);
-  features_ &= ~MakeFeatureMask(feature1);
-  features_ &= ~MakeFeatureMask(feature2);
-  features_ &= ~MakeFeatureMask(feature3);
-}
-
-CPUFeatures CPUFeatures::With(const CPUFeatures& other) const {
-  CPUFeatures f(*this);
-  f.Combine(other);
-  return f;
-}
-
-CPUFeatures CPUFeatures::With(Feature feature0,
-                              Feature feature1,
-                              Feature feature2,
-                              Feature feature3) const {
-  CPUFeatures f(*this);
-  f.Combine(feature0, feature1, feature2, feature3);
-  return f;
-}
-
-CPUFeatures CPUFeatures::Without(const CPUFeatures& other) const {
-  CPUFeatures f(*this);
-  f.Remove(other);
-  return f;
-}
-
-CPUFeatures CPUFeatures::Without(Feature feature0,
-                                 Feature feature1,
-                                 Feature feature2,
-                                 Feature feature3) const {
-  CPUFeatures f(*this);
-  f.Remove(feature0, feature1, feature2, feature3);
-  return f;
+void CPUFeatures::Remove(Feature feature) {
+  if (feature != CPUFeatures::kNone) features_.reset(feature);
 }
 
 bool CPUFeatures::Has(const CPUFeatures& other) const {
   return (features_ & other.features_) == other.features_;
 }
 
-bool CPUFeatures::Has(Feature feature0,
-                      Feature feature1,
-                      Feature feature2,
-                      Feature feature3) const {
-  uint64_t mask = MakeFeatureMask(feature0) | MakeFeatureMask(feature1) |
-                  MakeFeatureMask(feature2) | MakeFeatureMask(feature3);
-  return (features_ & mask) == mask;
+bool CPUFeatures::Has(Feature feature) const {
+  return (feature == CPUFeatures::kNone) || features_[feature];
 }
 
-size_t CPUFeatures::Count() const { return CountSetBits(features_); }
+size_t CPUFeatures::Count() const { return features_.count(); }
 
 std::ostream& operator<<(std::ostream& os, CPUFeatures::Feature feature) {
   // clang-format off
@@ -177,12 +108,9 @@
 }
 
 CPUFeatures::const_iterator CPUFeatures::begin() const {
-  if (features_ == 0) return const_iterator(this, kNone);
-
-  int feature_number = CountTrailingZeros(features_);
-  vixl::CPUFeatures::Feature feature =
-      static_cast<CPUFeatures::Feature>(feature_number);
-  return const_iterator(this, feature);
+  // For iterators in general, it's undefined to increment `end()`, but here we
+  // control the implementation and it is safe to do this.
+  return ++end();
 }
 
 CPUFeatures::const_iterator CPUFeatures::end() const {
@@ -190,11 +118,11 @@
 }
 
 std::ostream& operator<<(std::ostream& os, const CPUFeatures& features) {
-  CPUFeatures::const_iterator it = features.begin();
-  while (it != features.end()) {
-    os << *it;
-    ++it;
-    if (it != features.end()) os << ", ";
+  bool need_separator = false;
+  for (CPUFeatures::Feature feature : features) {
+    if (need_separator) os << ", ";
+    need_separator = true;
+    os << feature;
   }
   return os;
 }
@@ -205,7 +133,7 @@
   return (cpu_features_ == other.cpu_features_) && (feature_ == other.feature_);
 }
 
-CPUFeatures::Feature CPUFeaturesConstIterator::operator++() {  // Prefix
+CPUFeaturesConstIterator& CPUFeaturesConstIterator::operator++() {  // Prefix
   VIXL_ASSERT(IsValid());
   do {
     // Find the next feature. The order is unspecified.
@@ -219,11 +147,11 @@
     // cpu_features_->Has(kNone) is always true, so this will terminate even if
     // the features list is empty.
   } while (!cpu_features_->Has(feature_));
-  return feature_;
+  return *this;
 }
 
-CPUFeatures::Feature CPUFeaturesConstIterator::operator++(int) {  // Postfix
-  CPUFeatures::Feature result = feature_;
+CPUFeaturesConstIterator CPUFeaturesConstIterator::operator++(int) {  // Postfix
+  CPUFeaturesConstIterator result = *this;
   ++(*this);
   return result;
 }
diff --git a/src/cpu-features.h b/src/cpu-features.h
index 50ddc26..1b0f2c2 100644
--- a/src/cpu-features.h
+++ b/src/cpu-features.h
@@ -27,6 +27,7 @@
 #ifndef VIXL_CPU_FEATURES_H
 #define VIXL_CPU_FEATURES_H
 
+#include <bitset>
 #include <ostream>
 
 #include "globals-vixl.h"
@@ -34,16 +35,65 @@
 namespace vixl {
 
 
+// VIXL aims to handle and detect all architectural features that are likely to
+// influence code-generation decisions at EL0 (user-space).
+//
+// - There may be multiple VIXL feature flags for a given architectural
+//   extension. This occurs where the extension allow components to be
+//   implemented independently, or where kernel support is needed, and is likely
+//   to be fragmented.
+//
+//   For example, Pointer Authentication (kPAuth*) has a separate feature flag
+//   for access to PACGA, and to indicate that the QARMA algorithm is
+//   implemented.
+//
+// - Conversely, some extensions have configuration options that do not affect
+//   EL0, so these are presented as a single VIXL feature.
+//
+//   For example, the RAS extension (kRAS) has several variants, but the only
+//   feature relevant to VIXL is the addition of the ESB instruction so we only
+//   need a single flag.
+//
+// - VIXL offers separate flags for separate features even if they're
+//   architecturally linked.
+//
+//   For example, the architecture requires kFPHalf and kNEONHalf to be equal,
+//   but they have separate hardware ID register fields so VIXL presents them as
+//   separate features.
+//
+// - VIXL can detect every feature for which it can generate code.
+//
+// - VIXL can detect some features for which it cannot generate code.
+//
+// The CPUFeatures::Feature enum — derived from the macro list below — is
+// frequently extended. New features may be added to the list at any point, and
+// no assumptions should be made about the numerical values assigned to each
+// enum constant. The symbolic names can be considered to be stable.
+//
+// The debug descriptions are used only for debug output. The 'cpuinfo' strings
+// are informative; VIXL does not use /proc/cpuinfo for feature detection.
+
 // clang-format off
 #define VIXL_CPU_FEATURE_LIST(V)                                               \
   /* If set, the OS traps and emulates MRS accesses to relevant (EL1) ID_*  */ \
   /* registers, so that the detailed feature registers can be read          */ \
   /* directly.                                                              */ \
+                                                                               \
+  /* Constant name        Debug description         Linux 'cpuinfo' string. */ \
   V(kIDRegisterEmulation, "ID register emulation",  "cpuid")                   \
                                                                                \
   V(kFP,                  "FP",                     "fp")                      \
   V(kNEON,                "NEON",                   "asimd")                   \
   V(kCRC32,               "CRC32",                  "crc32")                   \
+  V(kDGH,                 "DGH",                    "dgh")                     \
+  /* Speculation control features.                                          */ \
+  V(kCSV2,                "CSV2",                   NULL)                      \
+  V(kSCXTNUM,             "SCXTNUM",                NULL)                      \
+  V(kCSV3,                "CSV3",                   NULL)                      \
+  V(kSB,                  "SB",                     "sb")                      \
+  V(kSPECRES,             "SPECRES",                NULL)                      \
+  V(kSSBS,                "SSBS",                   NULL)                      \
+  V(kSSBSControl,         "SSBS (PSTATE control)",  "ssbs")                    \
   /* Cryptographic support instructions.                                    */ \
   V(kAES,                 "AES",                    "aes")                     \
   V(kSHA1,                "SHA1",                   "sha1")                    \
@@ -58,28 +108,36 @@
   V(kRDM,                 "RDM",                    "asimdrdm")                \
   /* Scalable Vector Extension.                                             */ \
   V(kSVE,                 "SVE",                    "sve")                     \
+  V(kSVEF64MM,            "SVE F64MM",              "svef64mm")                \
+  V(kSVEF32MM,            "SVE F32MM",              "svef32mm")                \
+  V(kSVEI8MM,             "SVE I8MM",               "svei8imm")                \
+  V(kSVEBF16,             "SVE BFloat16",           "svebf16")                 \
   /* SDOT and UDOT support (in NEON).                                       */ \
   V(kDotProduct,          "DotProduct",             "asimddp")                 \
+  /* Int8 matrix multiplication (in NEON).                                  */ \
+  V(kI8MM,                "NEON I8MM",              "i8mm")                    \
   /* Half-precision (FP16) support for FP and NEON, respectively.           */ \
   V(kFPHalf,              "FPHalf",                 "fphp")                    \
   V(kNEONHalf,            "NEONHalf",               "asimdhp")                 \
+  /* BFloat16 support (in both FP and NEON.)                                */ \
+  V(kBF16,                "FP/NEON BFloat 16",      "bf16")                    \
   /* The RAS extension, including the ESB instruction.                      */ \
   V(kRAS,                 "RAS",                    NULL)                      \
   /* Data cache clean to the point of persistence: DC CVAP.                 */ \
   V(kDCPoP,               "DCPoP",                  "dcpop")                   \
   /* Data cache clean to the point of deep persistence: DC CVADP.           */ \
-  V(kDCCVADP,             "DCCVADP",                NULL)                      \
+  V(kDCCVADP,             "DCCVADP",                "dcpodp")                  \
   /* Cryptographic support instructions.                                    */ \
   V(kSHA3,                "SHA3",                   "sha3")                    \
   V(kSHA512,              "SHA512",                 "sha512")                  \
   V(kSM3,                 "SM3",                    "sm3")                     \
   V(kSM4,                 "SM4",                    "sm4")                     \
   /* Pointer authentication for addresses.                                  */ \
-  V(kPAuth,               "PAuth",                  NULL)                      \
+  V(kPAuth,               "PAuth",                  "paca")                    \
   /* Pointer authentication for addresses uses QARMA.                       */ \
   V(kPAuthQARMA,          "PAuthQARMA",             NULL)                      \
   /* Generic authentication (using the PACGA instruction).                  */ \
-  V(kPAuthGeneric,        "PAuthGeneric",           NULL)                      \
+  V(kPAuthGeneric,        "PAuthGeneric",           "pacg")                    \
   /* Generic authentication uses QARMA.                                     */ \
   V(kPAuthGenericQARMA,   "PAuthGenericQARMA",      NULL)                      \
   /* JavaScript-style FP -> integer conversion instruction: FJCVTZS.        */ \
@@ -98,13 +156,21 @@
   /* Data-independent timing (for selected instructions).                   */ \
   V(kDIT,                 "DIT",                    "dit")                     \
   /* Branch target identification.                                          */ \
-  V(kBTI,                 "BTI",                    NULL)                      \
+  V(kBTI,                 "BTI",                    "bti")                     \
   /* Flag manipulation instructions: {AX,XA}FLAG                            */ \
-  V(kAXFlag,              "AXFlag",                 NULL)                      \
+  V(kAXFlag,              "AXFlag",                 "flagm2")                  \
   /* Random number generation extension,                                    */ \
-  V(kRNG,                 "RNG",                    NULL)                      \
+  V(kRNG,                 "RNG",                    "rng")                     \
   /* Floating-point round to {32,64}-bit integer.                           */ \
-  V(kFrintToFixedSizedInt,"Frint (bounded)",        NULL)
+  V(kFrintToFixedSizedInt,"Frint (bounded)",        "frint")                   \
+  /* Memory Tagging Extension.                                              */ \
+  V(kMTEInstructions,     "MTE (EL0 instructions)", NULL)                      \
+  V(kMTE,                 "MTE",                    NULL)                      \
+  /* PAuth extensions.                                                      */ \
+  V(kPAuthEnhancedPAC,    "PAuth EnhancedPAC",      NULL)                      \
+  V(kPAuthEnhancedPAC2,   "PAuth EnhancedPAC2",     NULL)                      \
+  V(kPAuthFPAC,           "PAuth FPAC",             NULL)                      \
+  V(kPAuthFPACCombined,   "PAuth FPACCombined",     NULL)
 // clang-format on
 
 
@@ -197,13 +263,13 @@
   // clang-format on
 
   // By default, construct with no features enabled.
-  CPUFeatures() : features_(0) {}
+  CPUFeatures() : features_{} {}
 
   // Construct with some features already enabled.
-  CPUFeatures(Feature feature0,
-              Feature feature1 = kNone,
-              Feature feature2 = kNone,
-              Feature feature3 = kNone);
+  template <typename T, typename... U>
+  CPUFeatures(T first, U... others) : features_{} {
+    Combine(first, others...);
+  }
 
   // Construct with all features enabled. This can be used to disable feature
   // checking: `Has(...)` returns true regardless of the argument.
@@ -236,41 +302,59 @@
   // exist in this set are left unchanged.
   void Combine(const CPUFeatures& other);
 
-  // Combine specific features into this set. Features that already exist in
-  // this set are left unchanged.
-  void Combine(Feature feature0,
-               Feature feature1 = kNone,
-               Feature feature2 = kNone,
-               Feature feature3 = kNone);
+  // Combine a specific feature into this set. If it already exists in the set,
+  // the set is left unchanged.
+  void Combine(Feature feature);
+
+  // Combine multiple features (or feature sets) into this set.
+  template <typename T, typename... U>
+  void Combine(T first, U... others) {
+    Combine(first);
+    Combine(others...);
+  }
 
   // Remove features in another CPUFeatures object from this one.
   void Remove(const CPUFeatures& other);
 
-  // Remove specific features from this set.
-  void Remove(Feature feature0,
-              Feature feature1 = kNone,
-              Feature feature2 = kNone,
-              Feature feature3 = kNone);
+  // Remove a specific feature from this set. This has no effect if the feature
+  // doesn't exist in the set.
+  void Remove(Feature feature0);
 
-  // Chaining helpers for convenient construction.
-  CPUFeatures With(const CPUFeatures& other) const;
-  CPUFeatures With(Feature feature0,
-                   Feature feature1 = kNone,
-                   Feature feature2 = kNone,
-                   Feature feature3 = kNone) const;
-  CPUFeatures Without(const CPUFeatures& other) const;
-  CPUFeatures Without(Feature feature0,
-                      Feature feature1 = kNone,
-                      Feature feature2 = kNone,
-                      Feature feature3 = kNone) const;
+  // Remove multiple features (or feature sets) from this set.
+  template <typename T, typename... U>
+  void Remove(T first, U... others) {
+    Remove(first);
+    Remove(others...);
+  }
 
-  // Query features.
-  // Note that an empty query (like `Has(kNone)`) always returns true.
+  // Chaining helpers for convenient construction by combining other CPUFeatures
+  // or individual Features.
+  template <typename... T>
+  CPUFeatures With(T... others) const {
+    CPUFeatures f(*this);
+    f.Combine(others...);
+    return f;
+  }
+
+  template <typename... T>
+  CPUFeatures Without(T... others) const {
+    CPUFeatures f(*this);
+    f.Remove(others...);
+    return f;
+  }
+
+  // Test whether the `other` feature set is equal to or a subset of this one.
   bool Has(const CPUFeatures& other) const;
-  bool Has(Feature feature0,
-           Feature feature1 = kNone,
-           Feature feature2 = kNone,
-           Feature feature3 = kNone) const;
+
+  // Test whether a single feature exists in this set.
+  // Note that `Has(kNone)` always returns true.
+  bool Has(Feature feature) const;
+
+  // Test whether all of the specified features exist in this set.
+  template <typename T, typename... U>
+  bool Has(T first, U... others) const {
+    return Has(first) && Has(others...);
+  }
 
   // Return the number of enabled features.
   size_t Count() const;
@@ -288,9 +372,8 @@
   const_iterator end() const;
 
  private:
-  // Each bit represents a feature. This field will be replaced as needed if
-  // features are added.
-  uint64_t features_;
+  // Each bit represents a feature. This set will be extended as needed.
+  std::bitset<kNumberOfFeatures> features_;
 
   friend std::ostream& operator<<(std::ostream& os,
                                   const vixl::CPUFeatures& features);
@@ -313,8 +396,8 @@
   bool operator!=(const CPUFeaturesConstIterator& other) const {
     return !(*this == other);
   }
-  CPUFeatures::Feature operator++();
-  CPUFeatures::Feature operator++(int);
+  CPUFeaturesConstIterator& operator++();
+  CPUFeaturesConstIterator operator++(int);
 
   CPUFeatures::Feature operator*() const {
     VIXL_ASSERT(IsValid());
@@ -359,21 +442,17 @@
   // Start a CPUFeaturesScope on any object that implements
   // `CPUFeatures* GetCPUFeatures()`.
   template <typename T>
-  explicit CPUFeaturesScope(T* cpu_features_wrapper,
-                            CPUFeatures::Feature feature0 = CPUFeatures::kNone,
-                            CPUFeatures::Feature feature1 = CPUFeatures::kNone,
-                            CPUFeatures::Feature feature2 = CPUFeatures::kNone,
-                            CPUFeatures::Feature feature3 = CPUFeatures::kNone)
+  explicit CPUFeaturesScope(T* cpu_features_wrapper)
       : cpu_features_(cpu_features_wrapper->GetCPUFeatures()),
-        old_features_(*cpu_features_) {
-    cpu_features_->Combine(feature0, feature1, feature2, feature3);
-  }
+        old_features_(*cpu_features_) {}
 
-  template <typename T>
-  CPUFeaturesScope(T* cpu_features_wrapper, const CPUFeatures& other)
+  // Start a CPUFeaturesScope on any object that implements
+  // `CPUFeatures* GetCPUFeatures()`, with the specified features enabled.
+  template <typename T, typename U, typename... V>
+  CPUFeaturesScope(T* cpu_features_wrapper, U first, V... features)
       : cpu_features_(cpu_features_wrapper->GetCPUFeatures()),
         old_features_(*cpu_features_) {
-    cpu_features_->Combine(other);
+    cpu_features_->Combine(first, features...);
   }
 
   ~CPUFeaturesScope() { *cpu_features_ = old_features_; }
diff --git a/src/globals-vixl.h b/src/globals-vixl.h
index 640b4b9..4dc8c02 100644
--- a/src/globals-vixl.h
+++ b/src/globals-vixl.h
@@ -27,6 +27,10 @@
 #ifndef VIXL_GLOBALS_H
 #define VIXL_GLOBALS_H
 
+#if __cplusplus < 201402L
+#error VIXL requires C++14
+#endif
+
 // Get standard C99 macros for integer types.
 #ifndef __STDC_CONSTANT_MACROS
 #define __STDC_CONSTANT_MACROS
@@ -66,7 +70,8 @@
 const int KBytes = 1024;
 const int MBytes = 1024 * KBytes;
 
-const int kBitsPerByte = 8;
+const int kBitsPerByteLog2 = 3;
+const int kBitsPerByte = 1 << kBitsPerByteLog2;
 
 template <int SizeInBits>
 struct Unsigned;
@@ -223,8 +228,11 @@
 
 #if __cplusplus >= 201103L
 #define VIXL_OVERRIDE override
+#define VIXL_CONSTEXPR constexpr
+#define VIXL_HAS_CONSTEXPR 1
 #else
 #define VIXL_OVERRIDE
+#define VIXL_CONSTEXPR
 #endif
 
 // With VIXL_NEGATIVE_TESTING on, VIXL_ASSERT and VIXL_CHECK will throw
diff --git a/src/invalset-vixl.h b/src/invalset-vixl.h
index fbfb6a0..8bd6035 100644
--- a/src/invalset-vixl.h
+++ b/src/invalset-vixl.h
@@ -842,9 +842,7 @@
 #if __cplusplus >= 201103L
 template <class S>
 InvalSetIterator<S>::InvalSetIterator(InvalSetIterator<S>&& other) noexcept
-    : using_vector_(false),
-      index_(0),
-      inval_set_(NULL) {
+    : using_vector_(false), index_(0), inval_set_(NULL) {
   swap(*this, other);
 }
 #endif
diff --git a/src/pool-manager-impl.h b/src/pool-manager-impl.h
index 66ecd6a..a1bcaaa 100644
--- a/src/pool-manager-impl.h
+++ b/src/pool-manager-impl.h
@@ -264,14 +264,14 @@
     if (checkpoint < temp.min_location_) return true;
   }
 
-  bool tempNotPlacedYet = true;
+  bool temp_not_placed_yet = true;
   for (int i = static_cast<int>(objects_.size()) - 1; i >= 0; --i) {
     const PoolObject<T>& current = objects_[i];
-    if (tempNotPlacedYet && PoolObjectLessThan(current, temp)) {
+    if (temp_not_placed_yet && PoolObjectLessThan(current, temp)) {
       checkpoint = UpdateCheckpointForObject(checkpoint, &temp);
       if (checkpoint < temp.min_location_) return true;
       if (CheckFuturePC(pc, checkpoint)) return true;
-      tempNotPlacedYet = false;
+      temp_not_placed_yet = false;
     }
     if (current.label_base_ == label_base) continue;
     checkpoint = UpdateCheckpointForObject(checkpoint, &current);
@@ -279,7 +279,7 @@
     if (CheckFuturePC(pc, checkpoint)) return true;
   }
   // temp is the object with the smallest max_location_.
-  if (tempNotPlacedYet) {
+  if (temp_not_placed_yet) {
     checkpoint = UpdateCheckpointForObject(checkpoint, &temp);
     if (checkpoint < temp.min_location_) return true;
   }
@@ -497,7 +497,7 @@
   }
 #endif
   // Delete objects the pool manager owns.
-  for (typename std::vector<LocationBase<T> *>::iterator
+  for (typename std::vector<LocationBase<T>*>::iterator
            iter = delete_on_destruction_.begin(),
            end = delete_on_destruction_.end();
        iter != end;
diff --git a/src/utils-vixl.h b/src/utils-vixl.h
index c9287e4..0ae6dfc 100644
--- a/src/utils-vixl.h
+++ b/src/utils-vixl.h
@@ -67,7 +67,7 @@
 #endif
 
 template <typename T, size_t n>
-size_t ArrayLength(const T (&)[n]) {
+constexpr size_t ArrayLength(const T (&)[n]) {
   return n;
 }
 
@@ -77,25 +77,30 @@
   return base - 1;
 }
 
+inline uint64_t GetSignMask(unsigned bits) {
+  VIXL_ASSERT(bits <= 64);
+  return UINT64_C(1) << (bits - 1);
+}
+
 // Check number width.
 // TODO: Refactor these using templates.
 inline bool IsIntN(unsigned n, uint32_t x) {
-  VIXL_ASSERT((0 < n) && (n < 32));
-  uint32_t limit = UINT32_C(1) << (n - 1);
-  return x < limit;
+  VIXL_ASSERT((0 < n) && (n <= 32));
+  return x <= static_cast<uint32_t>(INT32_MAX >> (32 - n));
 }
 inline bool IsIntN(unsigned n, int32_t x) {
-  VIXL_ASSERT((0 < n) && (n < 32));
+  VIXL_ASSERT((0 < n) && (n <= 32));
+  if (n == 32) return true;
   int32_t limit = INT32_C(1) << (n - 1);
   return (-limit <= x) && (x < limit);
 }
 inline bool IsIntN(unsigned n, uint64_t x) {
-  VIXL_ASSERT((0 < n) && (n < 64));
-  uint64_t limit = UINT64_C(1) << (n - 1);
-  return x < limit;
+  VIXL_ASSERT((0 < n) && (n <= 64));
+  return x <= static_cast<uint64_t>(INT64_MAX >> (64 - n));
 }
 inline bool IsIntN(unsigned n, int64_t x) {
-  VIXL_ASSERT((0 < n) && (n < 64));
+  VIXL_ASSERT((0 < n) && (n <= 64));
+  if (n == 64) return true;
   int64_t limit = INT64_C(1) << (n - 1);
   return (-limit <= x) && (x < limit);
 }
@@ -104,7 +109,8 @@
 }
 
 inline bool IsUintN(unsigned n, uint32_t x) {
-  VIXL_ASSERT((0 < n) && (n < 32));
+  VIXL_ASSERT((0 < n) && (n <= 32));
+  if (n >= 32) return true;
   return !(x >> n);
 }
 inline bool IsUintN(unsigned n, int32_t x) {
@@ -113,7 +119,8 @@
   return !(static_cast<uint32_t>(x) >> n);
 }
 inline bool IsUintN(unsigned n, uint64_t x) {
-  VIXL_ASSERT((0 < n) && (n < 64));
+  VIXL_ASSERT((0 < n) && (n <= 64));
+  if (n >= 64) return true;
   return !(x >> n);
 }
 inline bool IsUintN(unsigned n, int64_t x) {
@@ -189,7 +196,7 @@
 }
 
 
-inline uint32_t ExtractUnsignedBitfield32(int msb, int lsb, uint32_t x) {
+inline uint32_t ExtractUnsignedBitfield32(int msb, int lsb, uint64_t x) {
   VIXL_ASSERT((static_cast<size_t>(msb) < sizeof(x) * 8) && (lsb >= 0) &&
               (msb >= lsb));
   return TruncateToUint32(ExtractUnsignedBitfield64(msb, lsb, x));
@@ -209,8 +216,7 @@
   return result;
 }
 
-
-inline int32_t ExtractSignedBitfield32(int msb, int lsb, uint32_t x) {
+inline int32_t ExtractSignedBitfield32(int msb, int lsb, uint64_t x) {
   VIXL_ASSERT((static_cast<size_t>(msb) < sizeof(x) * 8) && (lsb >= 0) &&
               (msb >= lsb));
   uint32_t temp = TruncateToUint32(ExtractSignedBitfield64(msb, lsb, x));
@@ -219,7 +225,6 @@
   return result;
 }
 
-
 inline uint64_t RotateRight(uint64_t value,
                             unsigned int rotate,
                             unsigned int width) {
@@ -277,6 +282,19 @@
   return RawbitsToDouble(bits);
 }
 
+// Convert unsigned to signed numbers in a well-defined way (using two's
+// complement representations).
+inline int64_t RawbitsToInt64(uint64_t bits) {
+  return (bits >= UINT64_C(0x8000000000000000))
+             ? (-static_cast<int64_t>(-bits - 1) - 1)
+             : static_cast<int64_t>(bits);
+}
+
+inline int32_t RawbitsToInt32(uint32_t bits) {
+  return (bits >= UINT64_C(0x80000000)) ? (-static_cast<int32_t>(-bits - 1) - 1)
+                                        : static_cast<int32_t>(bits);
+}
+
 namespace internal {
 
 // Internal simulation class used solely by the simulator to
@@ -371,6 +389,10 @@
 
 bool IsZero(Float16 value);
 
+inline bool IsPositiveZero(double value) {
+  return (value == 0.0) && (copysign(1.0, value) > 0.0);
+}
+
 inline bool IsNaN(float value) { return std::isnan(value); }
 
 inline bool IsNaN(double value) { return std::isnan(value); }
@@ -490,11 +512,11 @@
 
 
 template <typename T>
-inline T SignExtend(T val, int bitSize) {
-  VIXL_ASSERT(bitSize > 0);
-  T mask = (T(2) << (bitSize - 1)) - T(1);
+inline T SignExtend(T val, int size_in_bits) {
+  VIXL_ASSERT(size_in_bits > 0);
+  T mask = (T(2) << (size_in_bits - 1)) - T(1);
   val &= mask;
-  T sign_bits = -((val >> (bitSize - 1)) << bitSize);
+  T sign_bits = -((val >> (size_in_bits - 1)) << size_in_bits);
   val |= sign_bits;
   return val;
 }
@@ -576,7 +598,7 @@
   // reinterpret_cast behaviour for other types.
 
   typename Unsigned<sizeof(T)* kBitsPerByte>::type pointer_raw =
-      (typename Unsigned<sizeof(T) * kBitsPerByte>::type)pointer;
+      (typename Unsigned<sizeof(T) * kBitsPerByte>::type) pointer;
   VIXL_STATIC_ASSERT(sizeof(pointer) <= sizeof(pointer_raw));
 
   size_t mask = alignment - 1;
@@ -596,7 +618,7 @@
   // reinterpret_cast behaviour for other types.
 
   typename Unsigned<sizeof(T)* kBitsPerByte>::type pointer_raw =
-      (typename Unsigned<sizeof(T) * kBitsPerByte>::type)pointer;
+      (typename Unsigned<sizeof(T) * kBitsPerByte>::type) pointer;
   VIXL_STATIC_ASSERT(sizeof(pointer) <= sizeof(pointer_raw));
 
   size_t mask = alignment - 1;
@@ -980,6 +1002,42 @@
 
 Int64 BitCount(Uint32 value);
 
+// The algorithm used is adapted from the one described in section 8.2 of
+// Hacker's Delight, by Henry S. Warren, Jr.
+template <unsigned N, typename T>
+int64_t MultiplyHigh(T u, T v) {
+  uint64_t u0, v0, w0, u1, v1, w1, w2, t;
+  VIXL_STATIC_ASSERT((N == 8) || (N == 16) || (N == 32) || (N == 64));
+  uint64_t sign_mask = UINT64_C(1) << (N - 1);
+  uint64_t sign_ext = 0;
+  unsigned half_bits = N / 2;
+  uint64_t half_mask = GetUintMask(half_bits);
+  if (std::numeric_limits<T>::is_signed) {
+    sign_ext = UINT64_C(0xffffffffffffffff) << half_bits;
+  }
+
+  VIXL_ASSERT(sizeof(u) == sizeof(uint64_t));
+  VIXL_ASSERT(sizeof(u) == sizeof(u0));
+
+  u0 = u & half_mask;
+  u1 = u >> half_bits | (((u & sign_mask) != 0) ? sign_ext : 0);
+  v0 = v & half_mask;
+  v1 = v >> half_bits | (((v & sign_mask) != 0) ? sign_ext : 0);
+
+  w0 = u0 * v0;
+  t = u1 * v0 + (w0 >> half_bits);
+
+  w1 = t & half_mask;
+  w2 = t >> half_bits | (((t & sign_mask) != 0) ? sign_ext : 0);
+  w1 = u0 * v1 + w1;
+  w1 = w1 >> half_bits | (((w1 & sign_mask) != 0) ? sign_ext : 0);
+
+  uint64_t value = u1 * v1 + w2 + w1;
+  int64_t result;
+  memcpy(&result, &value, sizeof(result));
+  return result;
+}
+
 }  // namespace internal
 
 // The default NaN values (for FPCR.DN=1).
@@ -1244,9 +1302,8 @@
                                 uint64_t mantissa,
                                 FPRounding round_mode) {
   return RawbitsToFloat16(
-      FPRound<uint16_t,
-              kFloat16ExponentBits,
-              kFloat16MantissaBits>(sign, exponent, mantissa, round_mode));
+      FPRound<uint16_t, kFloat16ExponentBits, kFloat16MantissaBits>(
+          sign, exponent, mantissa, round_mode));
 }
 
 
@@ -1282,6 +1339,62 @@
                     FPRounding round_mode,
                     UseDefaultNaN DN,
                     bool* exception = NULL);
+
+// Like static_cast<T>(value), but with specialisations for the Float16 type.
+template <typename T, typename F>
+T StaticCastFPTo(F value) {
+  return static_cast<T>(value);
+}
+
+template <>
+inline float StaticCastFPTo<float, Float16>(Float16 value) {
+  return FPToFloat(value, kIgnoreDefaultNaN);
+}
+
+template <>
+inline double StaticCastFPTo<double, Float16>(Float16 value) {
+  return FPToDouble(value, kIgnoreDefaultNaN);
+}
+
+template <>
+inline Float16 StaticCastFPTo<Float16, float>(float value) {
+  return FPToFloat16(value, FPTieEven, kIgnoreDefaultNaN);
+}
+
+template <>
+inline Float16 StaticCastFPTo<Float16, double>(double value) {
+  return FPToFloat16(value, FPTieEven, kIgnoreDefaultNaN);
+}
+
+template <typename T>
+uint64_t FPToRawbitsWithSize(unsigned size_in_bits, T value) {
+  switch (size_in_bits) {
+    case 16:
+      return Float16ToRawbits(StaticCastFPTo<Float16>(value));
+    case 32:
+      return FloatToRawbits(StaticCastFPTo<float>(value));
+    case 64:
+      return DoubleToRawbits(StaticCastFPTo<double>(value));
+  }
+  VIXL_UNREACHABLE();
+  return 0;
+}
+
+template <typename T>
+T RawbitsWithSizeToFP(unsigned size_in_bits, uint64_t value) {
+  VIXL_ASSERT(IsUintN(size_in_bits, value));
+  switch (size_in_bits) {
+    case 16:
+      return StaticCastFPTo<T>(RawbitsToFloat16(static_cast<uint16_t>(value)));
+    case 32:
+      return StaticCastFPTo<T>(RawbitsToFloat(static_cast<uint32_t>(value)));
+    case 64:
+      return StaticCastFPTo<T>(RawbitsToDouble(value));
+  }
+  VIXL_UNREACHABLE();
+  return 0;
+}
+
 }  // namespace vixl
 
 #endif  // VIXL_UTILS_H
diff --git a/test/aarch32/test-assembler-aarch32.cc b/test/aarch32/test-assembler-aarch32.cc
index 24096e5..0be51e1 100644
--- a/test/aarch32/test-assembler-aarch32.cc
+++ b/test/aarch32/test-assembler-aarch32.cc
@@ -3192,6 +3192,7 @@
 }
 
 
+// clang-format off
 TEST_NOASM(set_isa_noop) {
 // It is possible to call a no-op UseA32/T32 or UseInstructionSet even if
 // one or more instructions have been generated.
@@ -3251,6 +3252,7 @@
   }
 #endif
 }
+// clang-format on
 
 
 TEST(logical_arithmetic_identities) {
diff --git a/test/aarch64/examples/test-examples.cc b/test/aarch64/examples/test-examples.cc
index 24ad3ba..3cbbe8d 100644
--- a/test/aarch64/examples/test-examples.cc
+++ b/test/aarch64/examples/test-examples.cc
@@ -177,13 +177,7 @@
                  TRACE_ENABLE);                                          \
     }                                                                    \
   }                                                                      \
-  if (Test::instruction_stats()) {                                       \
-    masm.EnableInstrumentation();                                        \
-  }                                                                      \
   masm.Blr(test_function_reg);                                           \
-  if (Test::instruction_stats()) {                                       \
-    masm.DisableInstrumentation();                                       \
-  }                                                                      \
   masm.Trace(LOG_ALL, TRACE_DISABLE);                                    \
   regs.Dump(&masm);                                                      \
   masm.Mov(lr, reinterpret_cast<uint64_t>(Simulator::kEndOfSimAddress)); \
@@ -623,4 +617,36 @@
 
 #endif  // VIXL_HAS_SIMULATED_RUNTIME_CALL_SUPPORT
 
+TEST(sve_strlen) {
+  START();
+
+  CPUFeatures cpu_features(CPUFeatures::kSVE);
+  masm.SetCPUFeatures(cpu_features);
+
+  Label sve_strlen;
+  masm.Bind(&sve_strlen);
+  GenerateSVEStrlen(&masm);
+  masm.FinalizeCode();
+
+  if (CanRun(cpu_features)) {
+    const char* inputs[] =
+        {"Exactly 15 chrs",
+         "Exactly 16 chars",
+         "Exactly 17 chars.",
+
+         "This string is very long and will require multiple iterations, even "
+         "with the maximum VL (256 bytes). This string is very long and will "
+         "require multiple iterations, even with the maximum VL (256 bytes). "
+         "This string is very long and will require multiple iterations, even "
+         "with the maximum VL (256 bytes)."};
+
+    for (size_t i = 0; i < ArrayLength(inputs); i++) {
+      simulator.ResetState();
+      simulator.WriteXRegister(0, reinterpret_cast<uintptr_t>(inputs[i]));
+      TEST_FUNCTION(sve_strlen);
+      VIXL_CHECK(static_cast<size_t>(regs.xreg(0)) == strlen(inputs[i]));
+    }
+  }
+}
+
 #endif  // VIXL_INCLUDE_SIMULATOR_AARCH64
diff --git a/test/aarch64/test-api-aarch64.cc b/test/aarch64/test-api-aarch64.cc
index 97103e7..b25fa7c 100644
--- a/test/aarch64/test-api-aarch64.cc
+++ b/test/aarch64/test-api-aarch64.cc
@@ -33,6 +33,8 @@
 #include "aarch64/test-utils-aarch64.h"
 
 #include "aarch64/macro-assembler-aarch64.h"
+#include "aarch64/registers-aarch64.h"
+#include "aarch64/simulator-aarch64.h"
 
 #define __ masm.
 #define TEST(name) TEST_(AARCH64_API_##name)
@@ -118,6 +120,22 @@
                ::vixl::internal::SimFloat16(kFP16NegativeZero)));
 }
 
+TEST(rawbits_conversions) {
+  VIXL_CHECK(RawbitsToInt64(0x0) == 0x0);
+  VIXL_CHECK(RawbitsToInt64(0x123) == 0x123);
+  VIXL_CHECK(RawbitsToInt64(INT64_MAX) == INT64_MAX);
+  VIXL_CHECK(RawbitsToInt64(UINT64_C(0xffffffffffffffff)) == -1);
+  VIXL_CHECK(RawbitsToInt64(UINT64_C(0x8000000000000000)) == INT64_MIN);
+  VIXL_CHECK(RawbitsToInt64(UINT64_C(0x8000000000000001)) == -INT64_MAX);
+
+  VIXL_CHECK(RawbitsToInt32(0x0) == 0x0);
+  VIXL_CHECK(RawbitsToInt32(0x123) == 0x123);
+  VIXL_CHECK(RawbitsToInt32(INT32_MAX) == INT32_MAX);
+  VIXL_CHECK(RawbitsToInt32(UINT32_C(0xffffffff)) == -1);
+  VIXL_CHECK(RawbitsToInt32(UINT32_C(0x80000000)) == INT32_MIN);
+  VIXL_CHECK(RawbitsToInt32(UINT32_C(0x80000001)) == -INT32_MAX);
+}
+
 // Check moved FP constants are still accessible via the AArch64 namespace.
 TEST(float_constants_scope) {
   VIXL_CHECK(vixl::aarch64::kFP64PositiveInfinity ==
@@ -193,6 +211,173 @@
 }
 
 
+TEST(constructors) {
+  // *Register(code)
+  VIXL_CHECK(WRegister(0).Is(w0));
+  VIXL_CHECK(XRegister(1).Is(x1));
+
+  VIXL_CHECK(BRegister(2).Is(b2));
+  VIXL_CHECK(HRegister(3).Is(h3));
+  VIXL_CHECK(SRegister(4).Is(s4));
+  VIXL_CHECK(DRegister(5).Is(d5));
+  VIXL_CHECK(QRegister(6).Is(q6));
+
+  VIXL_CHECK(ZRegister(7).Is(z7));
+  VIXL_CHECK(PRegister(8).Is(p8));
+}
+
+
+TEST(constructors_r) {
+  // Register(code, size_in_bits)
+  VIXL_CHECK(Register(0, kWRegSize).Is(w0));
+  VIXL_CHECK(Register(1, kXRegSize).Is(x1));
+}
+
+
+TEST(constructors_v) {
+  // VRegister(code)
+  VIXL_CHECK(VRegister(0).Is(v0));
+  VIXL_CHECK(VRegister(1).Is(v1));
+  VIXL_CHECK(VRegister(2).Is(v2));
+  VIXL_CHECK(VRegister(3).Is(v3));
+  VIXL_CHECK(VRegister(4).Is(v4));
+
+  // VRegister(code, size_in_bits)
+  VIXL_CHECK(VRegister(0, kBRegSize).Is(b0));
+  VIXL_CHECK(VRegister(1, kHRegSize).Is(h1));
+  VIXL_CHECK(VRegister(2, kSRegSize).Is(s2));
+  VIXL_CHECK(VRegister(3, kDRegSize).Is(d3));
+  VIXL_CHECK(VRegister(4, kQRegSize).Is(q4));
+
+  // VRegister(code, size_in_bits, lanes)
+  VIXL_CHECK(VRegister(0, kBRegSize, 1).Is(b0));
+  VIXL_CHECK(VRegister(1, kHRegSize, 1).Is(h1));
+  VIXL_CHECK(VRegister(2, kSRegSize, 1).Is(s2));
+  VIXL_CHECK(VRegister(3, kDRegSize, 1).Is(d3));
+  VIXL_CHECK(VRegister(4, kQRegSize, 1).Is(q4));
+
+  VIXL_CHECK(VRegister(0, kSRegSize, 2).Is(v0.V2H()));
+
+  VIXL_CHECK(VRegister(1, kDRegSize, 1).Is(v1.V1D()));
+  VIXL_CHECK(VRegister(2, kDRegSize, 2).Is(v2.V2S()));
+  VIXL_CHECK(VRegister(3, kDRegSize, 4).Is(v3.V4H()));
+  VIXL_CHECK(VRegister(4, kDRegSize, 8).Is(v4.V8B()));
+
+  VIXL_CHECK(VRegister(5, kQRegSize, 2).Is(v5.V2D()));
+  VIXL_CHECK(VRegister(6, kQRegSize, 4).Is(v6.V4S()));
+  VIXL_CHECK(VRegister(7, kQRegSize, 8).Is(v7.V8H()));
+  VIXL_CHECK(VRegister(8, kQRegSize, 16).Is(v8.V16B()));
+
+  // VRegister(code, format)
+  VIXL_CHECK(VRegister(0, kFormatB).Is(b0));
+  VIXL_CHECK(VRegister(1, kFormatH).Is(h1));
+  VIXL_CHECK(VRegister(2, kFormatS).Is(s2));
+  VIXL_CHECK(VRegister(3, kFormatD).Is(d3));
+  VIXL_CHECK(VRegister(4, kFormat8B).Is(v4.V8B()));
+  VIXL_CHECK(VRegister(5, kFormat16B).Is(v5.V16B()));
+  VIXL_CHECK(VRegister(6, kFormat2H).Is(v6.V2H()));
+  VIXL_CHECK(VRegister(7, kFormat4H).Is(v7.V4H()));
+  VIXL_CHECK(VRegister(8, kFormat8H).Is(v8.V8H()));
+  VIXL_CHECK(VRegister(9, kFormat2S).Is(v9.V2S()));
+  VIXL_CHECK(VRegister(10, kFormat4S).Is(v10.V4S()));
+  VIXL_CHECK(VRegister(11, kFormat1D).Is(v11.V1D()));
+  VIXL_CHECK(VRegister(12, kFormat2D).Is(v12.V2D()));
+}
+
+
+TEST(constructors_z) {
+  // ZRegister(code, lane_size_in_bits)
+  VIXL_CHECK(ZRegister(0, kBRegSize).Is(z0.VnB()));
+  VIXL_CHECK(ZRegister(1, kHRegSize).Is(z1.VnH()));
+  VIXL_CHECK(ZRegister(2, kSRegSize).Is(z2.VnS()));
+  VIXL_CHECK(ZRegister(3, kDRegSize).Is(z3.VnD()));
+
+  // ZRegister(code, format)
+  VIXL_CHECK(ZRegister(0, kFormatVnB).Is(z0.VnB()));
+  VIXL_CHECK(ZRegister(1, kFormatVnH).Is(z1.VnH()));
+  VIXL_CHECK(ZRegister(2, kFormatVnS).Is(z2.VnS()));
+  VIXL_CHECK(ZRegister(3, kFormatVnD).Is(z3.VnD()));
+}
+
+
+TEST(constructors_p) {
+  // ZRegister(code, lane_size_in_bits)
+  VIXL_CHECK(PRegisterWithLaneSize(0, kBRegSize).Is(p0.VnB()));
+  VIXL_CHECK(PRegisterWithLaneSize(1, kHRegSize).Is(p1.VnH()));
+  VIXL_CHECK(PRegisterWithLaneSize(2, kSRegSize).Is(p2.VnS()));
+  VIXL_CHECK(PRegisterWithLaneSize(3, kDRegSize).Is(p3.VnD()));
+
+  // ZRegister(code, format)
+  VIXL_CHECK(PRegisterWithLaneSize(0, kFormatVnB).Is(p0.VnB()));
+  VIXL_CHECK(PRegisterWithLaneSize(1, kFormatVnH).Is(p1.VnH()));
+  VIXL_CHECK(PRegisterWithLaneSize(2, kFormatVnS).Is(p2.VnS()));
+  VIXL_CHECK(PRegisterWithLaneSize(3, kFormatVnD).Is(p3.VnD()));
+
+  VIXL_CHECK(PRegisterZ(0).Is(p0.Zeroing()));
+  VIXL_CHECK(PRegisterM(1).Is(p1.Merging()));
+}
+
+
+TEST(constructors_cpu) {
+  // ZRegister(code, size_in_bits, type)
+  VIXL_CHECK(CPURegister(0, kWRegSize, CPURegister::kRegister).Is(w0));
+  VIXL_CHECK(CPURegister(1, kXRegSize, CPURegister::kRegister).Is(x1));
+
+  VIXL_CHECK(CPURegister(2, kBRegSize, CPURegister::kVRegister).Is(b2));
+  VIXL_CHECK(CPURegister(3, kHRegSize, CPURegister::kVRegister).Is(h3));
+  VIXL_CHECK(CPURegister(4, kSRegSize, CPURegister::kVRegister).Is(s4));
+  VIXL_CHECK(CPURegister(5, kDRegSize, CPURegister::kVRegister).Is(d5));
+  VIXL_CHECK(CPURegister(6, kQRegSize, CPURegister::kVRegister).Is(q6));
+  VIXL_CHECK(CPURegister(7, kQRegSize, CPURegister::kVRegister).Is(v7));
+
+  VIXL_CHECK(CPURegister(0, CPURegister::kUnknownSize, CPURegister::kVRegister)
+                 .Is(z0));
+  VIXL_CHECK(CPURegister(1, CPURegister::kUnknownSize, CPURegister::kPRegister)
+                 .Is(p1));
+}
+
+
+#ifdef __aarch64__
+static void CPURegisterByValueHelper(CPURegister reg) {
+  // Test that `reg` can be passed in one register. We'd like to use
+  // __attribute__((naked)) for this, but it isn't supported for AArch64, so
+  // generate a function using VIXL instead.
+
+  MacroAssembler masm;
+  // CPURegister fn(int placeholder, CPURegister reg);
+  // Move `reg` to its result register.
+  __ Mov(x0, x1);
+  // Clobber all other result registers.
+  __ Mov(x1, 0xfffffffffffffff1);
+  __ Mov(x2, 0xfffffffffffffff2);
+  __ Mov(x3, 0xfffffffffffffff3);
+  __ Mov(x4, 0xfffffffffffffff4);
+  __ Mov(x5, 0xfffffffffffffff5);
+  __ Mov(x6, 0xfffffffffffffff6);
+  __ Mov(x7, 0xfffffffffffffff7);
+  __ Ret();
+  masm.FinalizeCode();
+
+  CodeBuffer* buffer = masm.GetBuffer();
+  auto fn = buffer->GetStartAddress<CPURegister (*)(int, CPURegister)>();
+  buffer->SetExecutable();
+  CPURegister out = fn(42, reg);
+
+  VIXL_CHECK(out.Is(reg));
+}
+
+
+TEST(cpureg_by_value) {
+  VIXL_STATIC_ASSERT(sizeof(CPURegister) <= sizeof(void*));
+  // Check some arbitrary registers to try to exercise each encoding field.
+  CPURegisterByValueHelper(x0);
+  CPURegisterByValueHelper(v31.V8H());
+  CPURegisterByValueHelper(z16.VnD());
+  CPURegisterByValueHelper(p15.Merging());
+}
+#endif  // __aarch64__
+
+
 TEST(isvalid) {
   VIXL_CHECK(!NoReg.IsValid());
   VIXL_CHECK(!NoVReg.IsValid());
@@ -376,6 +561,134 @@
 }
 
 
+TEST(sve_p_registers) {
+  enum Qualification { kNone, kZeroing, kMerging, kWithLaneSize };
+  class Helper {
+   public:
+    static Qualification GetQualification(PRegister) { return kNone; }
+    static Qualification GetQualification(PRegisterZ) { return kZeroing; }
+    static Qualification GetQualification(PRegisterM) { return kMerging; }
+    static Qualification GetQualification(PRegisterWithLaneSize) {
+      return kWithLaneSize;
+    }
+  };
+
+  VIXL_CHECK(kNumberOfPRegisters == 16);
+  VIXL_CHECK(p0.GetCode() == 0);
+  VIXL_CHECK(p15.GetCode() == 15);
+  VIXL_CHECK(p14.VnB().GetLaneSizeInBits() == kBRegSize);
+  VIXL_CHECK(p14.VnH().GetLaneSizeInBits() == kHRegSize);
+  VIXL_CHECK(p14.VnS().GetLaneSizeInBits() == kSRegSize);
+  VIXL_CHECK(p14.VnD().GetLaneSizeInBits() == kDRegSize);
+  VIXL_CHECK(p14.VnB().GetLaneSizeInBytes() == kBRegSizeInBytes);
+  VIXL_CHECK(p14.VnH().GetLaneSizeInBytes() == kHRegSizeInBytes);
+  VIXL_CHECK(p14.VnS().GetLaneSizeInBytes() == kSRegSizeInBytes);
+  VIXL_CHECK(p14.VnD().GetLaneSizeInBytes() == kDRegSizeInBytes);
+  VIXL_CHECK(Helper::GetQualification(p1) == kNone);
+  VIXL_CHECK(Helper::GetQualification(p2.Zeroing()) == kZeroing);
+  VIXL_CHECK(Helper::GetQualification(p3.Merging()) == kMerging);
+  VIXL_CHECK(Helper::GetQualification(p4.VnB()) == kWithLaneSize);
+  VIXL_CHECK(Helper::GetQualification(p5.VnH()) == kWithLaneSize);
+  VIXL_CHECK(Helper::GetQualification(p6.VnS()) == kWithLaneSize);
+  VIXL_CHECK(Helper::GetQualification(p7.VnD()) == kWithLaneSize);
+}
+
+
+TEST(sve_z_registers) {
+  VIXL_CHECK(z0.GetCode() == 0);
+  VIXL_CHECK(z31.GetCode() == 31);
+
+  VIXL_CHECK(z0.Is(z0));
+  VIXL_CHECK(!z0.Is(z1));
+  VIXL_CHECK(!z0.Is(v0));
+  VIXL_CHECK(!z0.Is(b0));
+  VIXL_CHECK(!z0.Is(q0));
+
+  VIXL_CHECK(AreAliased(z5, z5));
+  VIXL_CHECK(AreAliased(z5, b5));
+  VIXL_CHECK(AreAliased(b5, z5));
+  VIXL_CHECK(AreAliased(z5, z5.B()));
+  VIXL_CHECK(AreAliased(z5, z5.VnB()));
+
+  VIXL_CHECK(!AreAliased(z6, z7));
+  VIXL_CHECK(!AreAliased(b6, z7));
+  VIXL_CHECK(!AreAliased(x7, z7));
+}
+
+
+TEST(sve_z_registers_vs_neon) {
+  // There are three related register variants to consider in VIXL's API:
+  //
+  //    "b0": NEON: The least-significant byte of v0.
+  //    "v0.B": NEON: v0, with an unspecified number of byte-sized lanes.
+  //    "z0.B": SVE: z0, with an unspecified number of byte-sized lanes.
+  //
+  // The first two cases are indistinguishable in VIXL; both are obtained using
+  // something like `v0.B()`. This is fine for NEON because there is no
+  // ambiguity in practice; the "v0.B" form is always used with an index that
+  // makes the meaning clear.
+
+  VIXL_ASSERT(v6.B().Is(b6));
+  VIXL_ASSERT(v7.H().Is(h7));
+  VIXL_ASSERT(v8.S().Is(s8));
+  VIXL_ASSERT(v9.D().Is(d9));
+
+  VIXL_ASSERT(z6.B().Is(b6));
+  VIXL_ASSERT(z7.H().Is(h7));
+  VIXL_ASSERT(z8.S().Is(s8));
+  VIXL_ASSERT(z9.D().Is(d9));
+
+  // We cannot use the same approach for SVE's "z0.B" because, for example,
+  // `Add(VRegister, ...)` and `Add(ZRegister, ...)` generate different
+  // instructions.
+
+  // Test that the variants can be distinguished with `Is`.
+  VIXL_CHECK(!z6.VnB().Is(b6));
+  VIXL_CHECK(!z7.VnH().Is(h7));
+  VIXL_CHECK(!z8.VnS().Is(s8));
+  VIXL_CHECK(!z9.VnD().Is(d9));
+
+  VIXL_CHECK(!z6.VnB().Is(v6.B()));
+  VIXL_CHECK(!z7.VnH().Is(v7.H()));
+  VIXL_CHECK(!z8.VnS().Is(v8.S()));
+  VIXL_CHECK(!z9.VnD().Is(v9.D()));
+
+  VIXL_CHECK(!z6.VnB().Is(z6.B()));
+  VIXL_CHECK(!z7.VnH().Is(z7.H()));
+  VIXL_CHECK(!z8.VnS().Is(z8.S()));
+  VIXL_CHECK(!z9.VnD().Is(z9.D()));
+
+  // Test that the variants can be distinguished at compile-time using
+  // overloading. VIXL's API relies on this.
+  enum Variant { kNEON, kSVE, kUnknown };
+  class Helper {
+   public:
+    static Variant GetVariant(ZRegister) { return kSVE; }
+    static Variant GetVariant(VRegister) { return kNEON; }
+    static Variant GetVariant(CPURegister) { return kUnknown; }
+  };
+  VIXL_CHECK(Helper::GetVariant(z10.VnB()) == kSVE);
+  VIXL_CHECK(Helper::GetVariant(z11.VnH()) == kSVE);
+  VIXL_CHECK(Helper::GetVariant(z12.VnS()) == kSVE);
+  VIXL_CHECK(Helper::GetVariant(z13.VnD()) == kSVE);
+
+  VIXL_CHECK(Helper::GetVariant(v10.B()) == kNEON);
+  VIXL_CHECK(Helper::GetVariant(v11.H()) == kNEON);
+  VIXL_CHECK(Helper::GetVariant(v12.S()) == kNEON);
+  VIXL_CHECK(Helper::GetVariant(v13.D()) == kNEON);
+
+  VIXL_CHECK(Helper::GetVariant(v10.V16B()) == kNEON);
+  VIXL_CHECK(Helper::GetVariant(v11.V8H()) == kNEON);
+  VIXL_CHECK(Helper::GetVariant(v12.V4S()) == kNEON);
+  VIXL_CHECK(Helper::GetVariant(v13.V2D()) == kNEON);
+
+  VIXL_CHECK(Helper::GetVariant(b10) == kNEON);
+  VIXL_CHECK(Helper::GetVariant(h11) == kNEON);
+  VIXL_CHECK(Helper::GetVariant(s12) == kNEON);
+  VIXL_CHECK(Helper::GetVariant(d13) == kNEON);
+}
+
+
 TEST(move_immediate_helpers) {
   // Using these helpers to query information (without generating code) should
   // not crash.
@@ -411,6 +724,228 @@
 }
 
 
+TEST(integer_operand_is) {
+  VIXL_CHECK(IntegerOperand(0).IsZero());
+  VIXL_CHECK(!IntegerOperand(1).IsZero());
+  VIXL_CHECK(!IntegerOperand(-1).IsZero());
+
+  VIXL_CHECK(!IntegerOperand(-0x81).IsIntN(8));
+  VIXL_CHECK(IntegerOperand(-0x80).IsIntN(8));
+  VIXL_CHECK(IntegerOperand(-1).IsIntN(8));
+  VIXL_CHECK(IntegerOperand(0).IsIntN(8));
+  VIXL_CHECK(IntegerOperand(1).IsIntN(8));
+  VIXL_CHECK(IntegerOperand(0x7f).IsIntN(8));
+  VIXL_CHECK(!IntegerOperand(0x80).IsIntN(8));
+
+  VIXL_CHECK(!IntegerOperand(-1).IsUintN(8));
+  VIXL_CHECK(IntegerOperand(0).IsUintN(8));
+  VIXL_CHECK(IntegerOperand(1).IsUintN(8));
+  VIXL_CHECK(IntegerOperand(0xff).IsUintN(8));
+  VIXL_CHECK(!IntegerOperand(0x100).IsUintN(8));
+
+  VIXL_CHECK(IntegerOperand(INT64_MIN).IsIntN(64));
+  VIXL_CHECK(IntegerOperand(0).IsIntN(64));
+  VIXL_CHECK(IntegerOperand(INT64_MAX).IsIntN(64));
+  VIXL_CHECK(!IntegerOperand(0x8000000000000000).IsIntN(64));
+
+  VIXL_CHECK(!IntegerOperand(-1).IsUintN(64));
+  VIXL_CHECK(IntegerOperand(0).IsUintN(64));
+  VIXL_CHECK(IntegerOperand(UINT64_MAX).IsUintN(64));
+
+  VIXL_CHECK(!IntegerOperand(-0x801).FitsInBits(12));
+  VIXL_CHECK(IntegerOperand(-0x800).FitsInBits(12));
+  VIXL_CHECK(IntegerOperand(0).FitsInBits(12));
+  VIXL_CHECK(IntegerOperand(0x7ff).FitsInBits(12));
+  VIXL_CHECK(IntegerOperand(0x800).FitsInBits(12));
+  VIXL_CHECK(IntegerOperand(0xfff).FitsInBits(12));
+  VIXL_CHECK(!IntegerOperand(0x1000).FitsInBits(12));
+
+  VIXL_CHECK(!IntegerOperand(-0x8001).FitsInLane(z0.VnH()));
+  VIXL_CHECK(IntegerOperand(-0x8000).FitsInLane(z0.VnH()));
+  VIXL_CHECK(IntegerOperand(0).FitsInLane(z0.VnH()));
+  VIXL_CHECK(IntegerOperand(0x7fff).FitsInLane(z0.VnH()));
+  VIXL_CHECK(IntegerOperand(0x8000).FitsInLane(z0.VnH()));
+  VIXL_CHECK(IntegerOperand(0xffff).FitsInLane(z0.VnH()));
+  VIXL_CHECK(!IntegerOperand(0x10000).FitsInLane(z0.VnH()));
+}
+
+TEST(integer_operand_as_uint) {
+  // Simple cases.
+  VIXL_CHECK(IntegerOperand(1).AsUintN(8) == 1);
+  VIXL_CHECK(IntegerOperand(1).AsUintN(16) == 1);
+  VIXL_CHECK(IntegerOperand(1).AsUintN(32) == 1);
+  VIXL_CHECK(IntegerOperand(1).AsUintN(64) == 1);
+  VIXL_CHECK(IntegerOperand(-1).AsUintN(8) == 0xff);
+  VIXL_CHECK(IntegerOperand(-1).AsUintN(16) == 0xffff);
+  VIXL_CHECK(IntegerOperand(-1).AsUintN(32) == 0xffffffff);
+  VIXL_CHECK(IntegerOperand(-1).AsUintN(64) == 0xffffffffffffffff);
+  VIXL_CHECK(IntegerOperand(0xf0).AsUintN(8) == 0xf0);
+  VIXL_CHECK(IntegerOperand(0xf420).AsUintN(16) == 0xf420);
+  VIXL_CHECK(IntegerOperand(0xf4242420).AsUintN(32) == 0xf4242420);
+  VIXL_CHECK(IntegerOperand(0xf424242424242420).AsUintN(64) ==
+             0xf424242424242420);
+
+  // Boundary conditions for known-size types.
+  VIXL_CHECK(IntegerOperand(INT8_MIN).AsUintN(8) == 0x80);
+  VIXL_CHECK(IntegerOperand(INT8_MAX).AsUintN(8) == 0x7f);
+  VIXL_CHECK(IntegerOperand(UINT8_MAX).AsUintN(8) == 0xff);
+
+  VIXL_CHECK(IntegerOperand(INT16_MIN).AsUintN(16) == 0x8000);
+  VIXL_CHECK(IntegerOperand(INT16_MAX).AsUintN(16) == 0x7fff);
+  VIXL_CHECK(IntegerOperand(UINT16_MAX).AsUintN(16) == 0xffff);
+
+  VIXL_CHECK(IntegerOperand(INT32_MIN).AsUintN(32) == 0x80000000);
+  VIXL_CHECK(IntegerOperand(INT32_MAX).AsUintN(32) == 0x7fffffff);
+  VIXL_CHECK(IntegerOperand(UINT32_MAX).AsUintN(32) == 0xffffffff);
+
+  VIXL_CHECK(IntegerOperand(INT64_MIN).AsUintN(64) == 0x8000000000000000);
+  VIXL_CHECK(IntegerOperand(INT64_MAX).AsUintN(64) == 0x7fffffffffffffff);
+  VIXL_CHECK(IntegerOperand(UINT64_MAX).AsUintN(64) == 0xffffffffffffffff);
+}
+
+TEST(integer_operand_as_int) {
+  // Simple cases.
+  VIXL_CHECK(IntegerOperand(1).AsIntN(8) == 1);
+  VIXL_CHECK(IntegerOperand(1).AsIntN(16) == 1);
+  VIXL_CHECK(IntegerOperand(1).AsIntN(32) == 1);
+  VIXL_CHECK(IntegerOperand(1).AsIntN(64) == 1);
+  VIXL_CHECK(IntegerOperand(-1).AsIntN(8) == -1);
+  VIXL_CHECK(IntegerOperand(-1).AsIntN(16) == -1);
+  VIXL_CHECK(IntegerOperand(-1).AsIntN(32) == -1);
+  VIXL_CHECK(IntegerOperand(-1).AsIntN(64) == -1);
+  VIXL_CHECK(IntegerOperand(0x70).AsIntN(8) == 0x70);
+  VIXL_CHECK(IntegerOperand(0x7420).AsIntN(16) == 0x7420);
+  VIXL_CHECK(IntegerOperand(0x74242420).AsIntN(32) == 0x74242420);
+  VIXL_CHECK(IntegerOperand(0x7424242424242420).AsIntN(64) ==
+             0x7424242424242420);
+
+  // Boundary conditions for known-size types.
+  VIXL_CHECK(IntegerOperand(UINT8_MAX).AsIntN(8) == -1);
+  VIXL_CHECK(IntegerOperand(UINT16_MAX).AsIntN(16) == -1);
+  VIXL_CHECK(IntegerOperand(UINT32_MAX).AsIntN(32) == -1);
+  VIXL_CHECK(IntegerOperand(UINT64_MAX).AsIntN(64) == -1);
+
+  VIXL_CHECK(IntegerOperand(INT8_MAX).AsIntN(8) == INT8_MAX);
+  VIXL_CHECK(IntegerOperand(INT16_MAX).AsIntN(16) == INT16_MAX);
+  VIXL_CHECK(IntegerOperand(INT32_MAX).AsIntN(32) == INT32_MAX);
+  VIXL_CHECK(IntegerOperand(INT64_MAX).AsIntN(64) == INT64_MAX);
+
+  VIXL_CHECK(IntegerOperand(0x80).AsIntN(8) == INT8_MIN);
+  VIXL_CHECK(IntegerOperand(0x8000).AsIntN(16) == INT16_MIN);
+  VIXL_CHECK(IntegerOperand(0x80000000).AsIntN(32) == INT32_MIN);
+  VIXL_CHECK(IntegerOperand(0x8000000000000000).AsIntN(64) == INT64_MIN);
+}
+
+template <unsigned N>
+class IntegerOperandTryEncodeShiftedIntHelper {
+ public:
+  IntegerOperandTryEncodeShiftedIntHelper() {}
+
+  template <unsigned kShift, typename T>
+  void TestEncodable(T value, const ZRegister& zd, int64_t expected_imm) {
+    VIXL_CHECK(TestImpl<kShift>(value, zd, expected_imm));
+  }
+
+  template <unsigned kShift, typename T>
+  void TestUnencodable(T value, const ZRegister& zd) {
+    // The `expected_imm` value is ignored, so its value is arbitrary.
+    VIXL_CHECK(!TestImpl<kShift>(value, zd, 0));
+  }
+
+ private:
+  template <unsigned kShift, typename T>
+  bool TestImpl(T value, const ZRegister& zd, int64_t expected_imm) {
+    IntegerOperand operand(value);
+    int64_t imm = 0xdeadbeef42;
+    unsigned shift = 0xbeef43;
+    bool success =
+        operand.TryEncodeAsShiftedIntNForLane<N, kShift>(zd, &imm, &shift);
+    if (success) {
+      VIXL_CHECK(imm == expected_imm);
+      VIXL_CHECK(shift == kShift);
+    } else {
+      // Check that the outputs were unmodified.
+      VIXL_CHECK(imm == 0xdeadbeef42);
+      VIXL_CHECK(shift == 0xbeef43);
+    }
+
+    // If kShift is 0, also check TryEncodeAsIntNForLane.
+    if (kShift == 0) {
+      int64_t unshifted_imm = 0xdeadbeef99;
+      bool unshifted_success =
+          operand.TryEncodeAsIntNForLane<N>(zd, &unshifted_imm);
+
+      VIXL_CHECK(unshifted_success == success);
+      if (unshifted_success) {
+        VIXL_CHECK(unshifted_imm == expected_imm);
+      } else {
+        VIXL_CHECK(unshifted_imm == 0xdeadbeef99);
+      }
+    }
+
+    return success;
+  }
+};
+
+TEST(integer_operand_encode_as_intn) {
+  IntegerOperandTryEncodeShiftedIntHelper<4> int4_helper;
+  IntegerOperandTryEncodeShiftedIntHelper<8> int8_helper;
+  IntegerOperandTryEncodeShiftedIntHelper<12> int12_helper;
+
+  // Simple cases, where the value is directly encodable.
+  int4_helper.TestEncodable<0>(-8, z0.VnH(), -8);
+  int4_helper.TestEncodable<0>(-7, z0.VnH(), -7);
+  int4_helper.TestEncodable<0>(-1, z0.VnS(), -1);
+  int4_helper.TestEncodable<0>(0, z0.VnD(), 0);
+  int4_helper.TestEncodable<0>(1, z0.VnB(), 1);
+  int4_helper.TestEncodable<0>(7, z0.VnH(), 7);
+
+  int8_helper.TestEncodable<0>(0x7f, z0.VnB(), 0x7f);
+  int8_helper.TestEncodable<0>(0x7f, z0.VnH(), 0x7f);
+  int12_helper.TestEncodable<0>(0x7ff, z0.VnH(), 0x7ff);
+
+  int8_helper.TestEncodable<0>(-0x80, z0.VnB(), -0x80);
+  int8_helper.TestEncodable<0>(-0x80, z0.VnH(), -0x80);
+  int12_helper.TestEncodable<0>(-0x800, z0.VnH(), -0x800);
+
+  // Cases that are directly encodable with a shift.
+  int8_helper.TestEncodable<4>(-0x800, z0.VnH(), -0x80);
+  int8_helper.TestEncodable<4>(-0x7f0, z0.VnH(), -0x7f);
+  int8_helper.TestEncodable<4>(-0x010, z0.VnH(), -1);
+  int8_helper.TestEncodable<4>(0x000, z0.VnH(), 0);
+  int8_helper.TestEncodable<4>(0x010, z0.VnH(), 1);
+  int8_helper.TestEncodable<4>(0x7f0, z0.VnH(), 0x7f);
+
+  // Ensure that (positive) bit representations of negative values are treated
+  // as negative values, even though their arithmetic values are unencodable.
+  int12_helper.TestEncodable<0>(0xffd6, z0.VnH(), -42);
+  int12_helper.TestEncodable<0>(0xffffffd6, z0.VnS(), -42);
+  int12_helper.TestEncodable<4>(0xfd60, z0.VnH(), -42);
+  int12_helper.TestEncodable<8>(0xffffd600, z0.VnS(), -42);
+
+  int8_helper.TestEncodable<0>(UINT8_MAX, z0.VnB(), -1);
+  int8_helper.TestEncodable<0>(UINT16_MAX, z0.VnH(), -1);
+  int8_helper.TestEncodable<0>(UINT32_MAX, z0.VnS(), -1);
+  int8_helper.TestEncodable<0>(UINT64_MAX, z0.VnD(), -1);
+
+  int4_helper.TestEncodable<1>(UINT8_MAX ^ 0x1, z0.VnB(), -1);
+  int4_helper.TestEncodable<2>(UINT16_MAX ^ 0x3, z0.VnH(), -1);
+  int4_helper.TestEncodable<3>(UINT32_MAX ^ 0x7, z0.VnS(), -1);
+  int4_helper.TestEncodable<4>(UINT64_MAX ^ 0xf, z0.VnD(), -1);
+
+  // Unencodable cases.
+  int8_helper.TestUnencodable<0>(INT16_MAX, z0.VnH());
+  int8_helper.TestUnencodable<0>(INT32_MAX, z0.VnS());
+  int8_helper.TestUnencodable<0>(INT64_MAX, z0.VnD());
+
+  int4_helper.TestUnencodable<0>(0x10, z0.VnB());
+  int4_helper.TestUnencodable<1>(0x20, z0.VnB());
+
+  int12_helper.TestUnencodable<1>(1, z0.VnD());
+  int12_helper.TestUnencodable<12>(1, z0.VnD());
+  int12_helper.TestUnencodable<12>(0x800, z0.VnD());
+}
+
 TEST(static_register_types) {
   // [WX]Register implicitly casts to Register.
   XRegister x_x0(0);
@@ -444,7 +979,7 @@
 }
 
 
-TEST(is_plain_register) {
+TEST(operand_is_plain_register) {
   VIXL_CHECK(Operand(x0).IsPlainRegister());
   VIXL_CHECK(Operand(x1, LSL, 0).IsPlainRegister());
   VIXL_CHECK(Operand(x2, LSR, 0).IsPlainRegister());
@@ -479,5 +1014,756 @@
 }
 
 
+TEST(memoperand_is_plain_register) {
+  VIXL_CHECK(MemOperand(x0).IsPlainRegister());
+  VIXL_CHECK(MemOperand(sp).IsPlainRegister());
+  VIXL_CHECK(MemOperand(x1, 0).IsPlainRegister());
+
+  VIXL_CHECK(!MemOperand(x2, xzr).IsPlainRegister());
+  VIXL_CHECK(!MemOperand(x3, xzr, SXTX).IsPlainRegister());
+  VIXL_CHECK(!MemOperand(x4, xzr, SXTX, 2).IsPlainRegister());
+  VIXL_CHECK(!MemOperand(x5, wzr, UXTW).IsPlainRegister());
+  VIXL_CHECK(!MemOperand(x6, wzr, UXTW, 3).IsPlainRegister());
+
+  VIXL_CHECK(!MemOperand(x7, 0, PostIndex).IsPlainRegister());
+  VIXL_CHECK(!MemOperand(x8, 0, PreIndex).IsPlainRegister());
+  VIXL_CHECK(!MemOperand(x9, xzr, PostIndex).IsPlainRegister());
+
+  VIXL_CHECK(!MemOperand(x20, 1).IsPlainRegister());
+  VIXL_CHECK(!MemOperand(x21, x30).IsPlainRegister());
+}
+
+TEST(memoperand_is_plain_register_or_equivalent) {
+  VIXL_CHECK(MemOperand(x0).IsEquivalentToPlainRegister());
+  VIXL_CHECK(MemOperand(sp).IsEquivalentToPlainRegister());
+  VIXL_CHECK(MemOperand(x1, 0).IsEquivalentToPlainRegister());
+
+  VIXL_CHECK(MemOperand(x2, xzr).IsEquivalentToPlainRegister());
+  VIXL_CHECK(MemOperand(x3, xzr, SXTX).IsEquivalentToPlainRegister());
+  VIXL_CHECK(MemOperand(x4, xzr, SXTX, 2).IsEquivalentToPlainRegister());
+  VIXL_CHECK(MemOperand(x5, wzr, UXTW).IsEquivalentToPlainRegister());
+  VIXL_CHECK(MemOperand(x6, wzr, UXTW, 3).IsEquivalentToPlainRegister());
+
+  VIXL_CHECK(MemOperand(x7, 0, PostIndex).IsEquivalentToPlainRegister());
+  VIXL_CHECK(MemOperand(x8, 0, PreIndex).IsEquivalentToPlainRegister());
+  VIXL_CHECK(MemOperand(x9, xzr, PostIndex).IsEquivalentToPlainRegister());
+
+  VIXL_CHECK(!MemOperand(x20, 1).IsEquivalentToPlainRegister());
+  VIXL_CHECK(!MemOperand(x21, x30).IsEquivalentToPlainRegister());
+}
+
+TEST(sve_memoperand_is_plain_scalar) {
+  VIXL_CHECK(SVEMemOperand(x0).IsPlainScalar());
+  VIXL_CHECK(SVEMemOperand(sp).IsPlainScalar());
+  VIXL_CHECK(SVEMemOperand(x1, 0).IsPlainScalar());
+
+  VIXL_CHECK(!SVEMemOperand(x2, xzr).IsPlainScalar());
+  VIXL_CHECK(!SVEMemOperand(x4, xzr, LSL, 2).IsPlainScalar());
+
+  VIXL_CHECK(!SVEMemOperand(x20, 1).IsPlainScalar());
+  VIXL_CHECK(!SVEMemOperand(x21, x30).IsPlainScalar());
+
+  VIXL_CHECK(!SVEMemOperand(x0, z1.VnD()).IsPlainScalar());
+  VIXL_CHECK(!SVEMemOperand(x2, z3.VnS(), UXTW).IsPlainScalar());
+  VIXL_CHECK(!SVEMemOperand(z4.VnD(), 0).IsPlainScalar());
+}
+
+TEST(sve_memoperand_is_scalar_or_equivalent) {
+  VIXL_CHECK(SVEMemOperand(x0).IsEquivalentToScalar());
+  VIXL_CHECK(SVEMemOperand(sp).IsEquivalentToScalar());
+  VIXL_CHECK(SVEMemOperand(x1, 0).IsEquivalentToScalar());
+
+  VIXL_CHECK(SVEMemOperand(x2, xzr).IsEquivalentToScalar());
+  VIXL_CHECK(SVEMemOperand(x4, xzr, LSL, 2).IsEquivalentToScalar());
+
+  VIXL_CHECK(!SVEMemOperand(x20, 1).IsEquivalentToScalar());
+  VIXL_CHECK(!SVEMemOperand(x21, x30).IsEquivalentToScalar());
+
+  VIXL_CHECK(!SVEMemOperand(x0, z1.VnD()).IsEquivalentToScalar());
+  VIXL_CHECK(!SVEMemOperand(x2, z3.VnD(), SXTW).IsEquivalentToScalar());
+  VIXL_CHECK(!SVEMemOperand(z4.VnD(), 0).IsEquivalentToScalar());
+}
+
+TEST(sve_memoperand_types) {
+  VIXL_CHECK(SVEMemOperand(x0, 42).IsScalarPlusImmediate());
+  VIXL_CHECK(SVEMemOperand(x1, 42, SVE_MUL_VL).IsScalarPlusImmediate());
+  VIXL_CHECK(SVEMemOperand(x2, -42, SVE_MUL_VL).IsScalarPlusImmediate());
+
+  VIXL_CHECK(SVEMemOperand(sp, x3).IsScalarPlusScalar());
+  VIXL_CHECK(SVEMemOperand(x4, xzr).IsScalarPlusScalar());
+  VIXL_CHECK(SVEMemOperand(x5, x6, LSL, 1).IsScalarPlusScalar());
+
+  VIXL_CHECK(SVEMemOperand(x7, z0.VnD()).IsScalarPlusVector());
+  VIXL_CHECK(SVEMemOperand(x8, z1.VnS(), SXTW).IsScalarPlusVector());
+  VIXL_CHECK(SVEMemOperand(x9, z2.VnD(), UXTW).IsScalarPlusVector());
+  VIXL_CHECK(SVEMemOperand(x10, z3.VnD(), LSL, 2).IsScalarPlusVector());
+
+  VIXL_CHECK(SVEMemOperand(z4.VnD(), 42).IsVectorPlusImmediate());
+  VIXL_CHECK(SVEMemOperand(z5.VnS(), -42).IsVectorPlusImmediate());
+}
+
+TEST(sve_memoperand_scatter_gather) {
+  // Single-address accesses.
+  VIXL_CHECK(!SVEMemOperand(x0, 42).IsScatterGather());
+  VIXL_CHECK(!SVEMemOperand(x1, 42, SVE_MUL_VL).IsScatterGather());
+  VIXL_CHECK(!SVEMemOperand(x2, -42, SVE_MUL_VL).IsScatterGather());
+
+  VIXL_CHECK(!SVEMemOperand(sp, x3).IsScatterGather());
+  VIXL_CHECK(!SVEMemOperand(x4, xzr).IsScatterGather());
+  VIXL_CHECK(!SVEMemOperand(x5, x6, LSL, 1).IsScatterGather());
+
+  // Scatter-gather accesses.
+  VIXL_CHECK(SVEMemOperand(x7, z0.VnD()).IsScatterGather());
+  VIXL_CHECK(SVEMemOperand(x8, z1.VnS(), SXTW).IsScatterGather());
+  VIXL_CHECK(SVEMemOperand(x9, z2.VnD(), UXTW).IsScatterGather());
+  VIXL_CHECK(SVEMemOperand(x10, z3.VnD(), LSL, 2).IsScatterGather());
+
+  VIXL_CHECK(SVEMemOperand(z4.VnD(), 42).IsScatterGather());
+  VIXL_CHECK(SVEMemOperand(z5.VnS(), -42).IsScatterGather());
+}
+
+TEST(scratch_scope_basic) {
+  MacroAssembler masm;
+  // x16 and x17 are available as scratch registers by default.
+  {
+    UseScratchRegisterScope temps(&masm);
+    Register temp1 = temps.AcquireW();
+    Register temp2 = temps.AcquireX();
+    VIXL_CHECK(temp1.Is(w16));
+    VIXL_CHECK(temp2.Is(x17));
+  }
+  {
+    UseScratchRegisterScope temps(&masm);
+    Register temp1 = temps.AcquireRegisterOfSize(kXRegSize);
+    Register temp2 = temps.AcquireRegisterOfSize(kWRegSize);
+    VIXL_CHECK(temp1.Is(x16));
+    VIXL_CHECK(temp2.Is(w17));
+  }
+}
+
+TEST(scratch_scope_basic_v) {
+  MacroAssembler masm;
+  // v31 is the only V scratch register available by default.
+  {
+    UseScratchRegisterScope temps(&masm);
+    VRegister temp = temps.AcquireH();
+    VIXL_CHECK(temp.Is(h31));
+  }
+  {
+    UseScratchRegisterScope temps(&masm);
+    VRegister temp = temps.AcquireS();
+    VIXL_CHECK(temp.Is(s31));
+  }
+  {
+    UseScratchRegisterScope temps(&masm);
+    VRegister temp = temps.AcquireD();
+    VIXL_CHECK(temp.Is(d31));
+  }
+  {
+    UseScratchRegisterScope temps(&masm);
+    VRegister temp = temps.AcquireVRegisterOfSize(kQRegSize);
+    VIXL_CHECK(temp.Is(q31));
+  }
+  {
+    UseScratchRegisterScope temps(&masm);
+    VRegister temp = temps.AcquireVRegisterOfSize(kDRegSize);
+    VIXL_CHECK(temp.Is(d31));
+  }
+  {
+    UseScratchRegisterScope temps(&masm);
+    VRegister temp = temps.AcquireVRegisterOfSize(kSRegSize);
+    VIXL_CHECK(temp.Is(s31));
+  }
+}
+
+TEST(scratch_scope_basic_z) {
+  MacroAssembler masm;
+  // z31 is the only Z scratch register available by default.
+  {
+    UseScratchRegisterScope temps(&masm);
+    VIXL_CHECK(temps.IsAvailable(v31));
+    VIXL_CHECK(temps.IsAvailable(z31));
+    ZRegister temp = temps.AcquireZ();
+    VIXL_CHECK(temp.Is(z31));
+    // Check that allocating a Z register properly reserves the corresponding V
+    // register.
+    VIXL_CHECK(!temps.IsAvailable(v31));
+    VIXL_CHECK(!temps.IsAvailable(z31));
+  }
+  // Check that the destructor restored the acquired register.
+  UseScratchRegisterScope temps(&masm);
+  VIXL_CHECK(temps.IsAvailable(v31));
+  VIXL_CHECK(temps.IsAvailable(z31));
+}
+
+TEST(scratch_scope_basic_p) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    // There are no P scratch registers available by default.
+    VIXL_CHECK(masm.GetScratchPRegisterList()->IsEmpty());
+    temps.Include(p0, p1);
+    VIXL_CHECK(temps.IsAvailable(p0));
+    VIXL_CHECK(temps.IsAvailable(p1));
+    temps.Include(p7, p8, p15);
+    VIXL_CHECK(temps.IsAvailable(p7));
+    VIXL_CHECK(temps.IsAvailable(p8));
+    VIXL_CHECK(temps.IsAvailable(p15));
+
+    // AcquireGoverningP() can only return p0-p7.
+    VIXL_CHECK(temps.AcquireGoverningP().GetCode() <
+               kNumberOfGoverningPRegisters);
+    VIXL_CHECK(temps.AcquireGoverningP().GetCode() <
+               kNumberOfGoverningPRegisters);
+    VIXL_CHECK(temps.IsAvailable(p8));
+    VIXL_CHECK(temps.IsAvailable(p15));
+
+    // AcquireP() prefers p8-p15, ...
+    VIXL_CHECK(temps.AcquireP().GetCode() >= kNumberOfGoverningPRegisters);
+    VIXL_CHECK(temps.AcquireP().GetCode() >= kNumberOfGoverningPRegisters);
+    // ... but will return p0-p7 if none of p8-p15 are available.
+    VIXL_CHECK(temps.AcquireP().GetCode() < kNumberOfGoverningPRegisters);
+
+    VIXL_CHECK(masm.GetScratchPRegisterList()->IsEmpty());
+
+    // Leave some registers available so we can test the destructor.
+    temps.Include(p3, p6, p9, p12);
+    VIXL_CHECK(!masm.GetScratchPRegisterList()->IsEmpty());
+  }
+  // Check that the destructor correctly cleared the list.
+  VIXL_CHECK(masm.GetScratchPRegisterList()->IsEmpty());
+}
+
+TEST(scratch_scope_include_ignored) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    // Start with an empty set of scratch registers.
+    temps.ExcludeAll();
+
+    // Including NoReg has no effect.
+    temps.Include(NoReg);
+    temps.Include(NoCPUReg);
+    temps.Include(CPURegList(CPURegister::kNoRegister, 0, 0));
+
+    // Including sp or zr has no effect, since they are never appropriate
+    // scratch registers.
+    temps.Include(sp);
+    temps.Include(xzr, wsp);
+    temps.Include(wzr);
+    temps.Include(CPURegList(xzr, sp));
+
+    VIXL_CHECK(masm.GetScratchRegisterList()->IsEmpty());
+    VIXL_CHECK(masm.GetScratchVRegisterList()->IsEmpty());
+  }
+}
+
+class ScratchScopeHelper {
+ public:
+  enum Action { kRelease, kInclude, kExclude };
+
+  ScratchScopeHelper(MacroAssembler* masm,
+                     Action action,
+                     CPURegister::RegisterType type)
+      : masm_(masm),
+        action_(action),
+        type_(type),
+        expected_(GetGuardListFor(CPURegister::kRegister)),
+        expected_v_(GetGuardListFor(CPURegister::kVRegister)),
+        expected_p_(GetGuardListFor(CPURegister::kPRegister)) {
+    *GetExpectedFor(type) = GetInitialList();
+    masm->GetScratchRegisterList()->SetList(expected_);
+    masm->GetScratchVRegisterList()->SetList(expected_v_);
+    masm->GetScratchPRegisterList()->SetList(expected_p_);
+  }
+
+  // Notify the helper that the registers in `update` have been passed into
+  // DoAction(), and assert that the MacroAssembler's scratch lists are as
+  // expected.
+  void RecordActionsAndCheck(RegList update) {
+    RegList* expected = GetExpectedFor(type_);
+    switch (action_) {
+      case kRelease:
+        // It isn't valid to release a register that is already available.
+        VIXL_CHECK((*expected & update) == 0);
+        VIXL_FALLTHROUGH();
+      case kInclude:
+        *expected |= update;
+        break;
+      case kExclude:
+        *expected &= ~update;
+        break;
+    }
+    VIXL_CHECK(masm_->GetScratchRegisterList()->GetList() == expected_);
+    VIXL_CHECK(masm_->GetScratchVRegisterList()->GetList() == expected_v_);
+    VIXL_CHECK(masm_->GetScratchPRegisterList()->GetList() == expected_p_);
+  }
+
+ private:
+  RegList GetInitialList() {
+    switch (action_) {
+      case kRelease:
+      case kInclude:
+        return 0;
+      case kExclude:
+        return GetPotentialListFor(type_);
+    }
+    VIXL_UNREACHABLE();
+    return 0;
+  }
+
+  // Return some valid, non-zero RegList suitable for use as a guard value.
+  static RegList GetGuardListFor(CPURegister::RegisterType type) {
+    return (0x1111111111111111 * (type + 1)) & GetPotentialListFor(type);
+  }
+
+  static RegList GetPotentialListFor(CPURegister::RegisterType type) {
+    RegList list = CPURegList::All(type).GetList();
+    // The zr and sp registers cannot be scratch registers.
+    if (type == CPURegister::kRegister) list &= ~(xzr.GetBit() | sp.GetBit());
+    return list;
+  }
+
+  RegList* GetExpectedFor(CPURegister::RegisterType type) {
+    switch (type) {
+      case CPURegister::kNoRegister:
+        VIXL_UNREACHABLE();
+        return NULL;
+      case CPURegister::kRegister:
+        return &expected_;
+      case CPURegister::kVRegister:
+      case CPURegister::kZRegister:
+        return &expected_v_;
+      case CPURegister::kPRegister:
+        return &expected_p_;
+    }
+    VIXL_UNREACHABLE();
+    return NULL;
+  }
+
+  MacroAssembler* masm_;
+  Action action_;
+  CPURegister::RegisterType type_;
+
+  RegList expected_;
+  RegList expected_v_;
+  RegList expected_p_;
+};
+
+TEST(scratch_scope_include) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kInclude,
+                              CPURegister::kRegister);
+
+    // Any suitable register type deriving from CPURegister can be included.
+    temps.Include(w0);
+    temps.Include(x1);
+    temps.Include(WRegister(2));
+    temps.Include(XRegister(3));
+    temps.Include(Register(w4));
+    temps.Include(Register(x5));
+    temps.Include(CPURegister(w6));
+    temps.Include(CPURegister(x7));
+    helper.RecordActionsAndCheck(0xff);
+    // Multiple registers can be included at once.
+    temps.Include(x8, w9, x10);
+    temps.Include(Register(w12), Register(x13), Register(w14));
+    temps.Include(XRegister(16), XRegister(17), XRegister(18));
+    temps.Include(WRegister(20), WRegister(21), WRegister(22));
+    temps.Include(CPURegList(w24, w25, w26));
+    helper.RecordActionsAndCheck(0x7777700);
+    // Including a register again has no effect.
+    temps.Include(Register(w26));
+    temps.Include(Register(x25));
+    temps.Include(CPURegister(x24));
+    temps.Include(CPURegister(x22));
+    temps.Include(x21, x20, w18, x17);
+    temps.Include(CPURegList(x16, x14, x13, x12));
+    helper.RecordActionsAndCheck(0x7777700);
+  }
+}
+
+TEST(scratch_scope_exclude) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kExclude,
+                              CPURegister::kRegister);
+
+    // Any suitable register type deriving from CPURegister can be excluded.
+    temps.Exclude(w0);
+    temps.Exclude(x1);
+    temps.Exclude(WRegister(2));
+    temps.Exclude(XRegister(3));
+    temps.Exclude(Register(w4));
+    temps.Exclude(Register(x5));
+    temps.Exclude(CPURegister(w6));
+    temps.Exclude(CPURegister(x7));
+    helper.RecordActionsAndCheck(0xff);
+    // Multiple registers can be excluded at once.
+    temps.Exclude(x8, w9, x10);
+    temps.Exclude(Register(w12), Register(x13), Register(w14));
+    temps.Exclude(XRegister(16), XRegister(17), XRegister(18));
+    temps.Exclude(WRegister(20), WRegister(21), WRegister(22));
+    temps.Exclude(CPURegList(w24, w25, w26));
+    helper.RecordActionsAndCheck(0x7777700);
+    // Excluding a register again has no effect.
+    temps.Exclude(Register(w26));
+    temps.Exclude(Register(x25));
+    temps.Exclude(CPURegister(x24));
+    temps.Exclude(CPURegister(x22));
+    temps.Exclude(x21, x20, w18, x17);
+    temps.Exclude(CPURegList(x16, x14, x13, x12));
+    helper.RecordActionsAndCheck(0x7777700);
+  }
+}
+
+TEST(scratch_scope_release) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kRelease,
+                              CPURegister::kRegister);
+
+    // Any suitable register type deriving from CPURegister can be released.
+    temps.Release(w0);
+    temps.Release(x1);
+    temps.Release(WRegister(2));
+    temps.Release(XRegister(3));
+    temps.Release(Register(w4));
+    temps.Release(Register(x5));
+    temps.Release(CPURegister(w6));
+    temps.Release(CPURegister(x7));
+    helper.RecordActionsAndCheck(0xff);
+    // It is not possible to release more than one register at a time, and it is
+    // invalid to release a register that is already available.
+  }
+}
+
+TEST(scratch_scope_include_v) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kInclude,
+                              CPURegister::kVRegister);
+
+    // Any suitable register type deriving from CPURegister can be included.
+    temps.Include(b0);
+    temps.Include(h1);
+    temps.Include(SRegister(2));
+    temps.Include(DRegister(3));
+    temps.Include(VRegister(q4));
+    temps.Include(VRegister(v5.V8B()));
+    temps.Include(CPURegister(d6));
+    temps.Include(CPURegister(v7.S4B()));
+    helper.RecordActionsAndCheck(0xff);
+    // Multiple registers can be included at once.
+    temps.Include(b8, h9, s10);
+    temps.Include(VRegister(d12), VRegister(d13), VRegister(d14));
+    temps.Include(QRegister(16), QRegister(17), QRegister(18));
+    temps.Include(BRegister(20), BRegister(21), BRegister(22));
+    temps.Include(CPURegList(s24, s25, s26));
+    helper.RecordActionsAndCheck(0x7777700);
+    // Including a register again has no effect.
+    temps.Include(VRegister(b26));
+    temps.Include(VRegister(h25));
+    temps.Include(CPURegister(s24));
+    temps.Include(CPURegister(v22.V4H()));
+    temps.Include(q21, d20, s18, h17);
+    temps.Include(CPURegList(h16, h14, h13, h12));
+    helper.RecordActionsAndCheck(0x7777700);
+  }
+}
+
+TEST(scratch_scope_exclude_v) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kExclude,
+                              CPURegister::kVRegister);
+
+    // Any suitable register type deriving from CPURegister can be excluded.
+    temps.Exclude(b0);
+    temps.Exclude(h1);
+    temps.Exclude(SRegister(2));
+    temps.Exclude(DRegister(3));
+    temps.Exclude(VRegister(q4));
+    temps.Exclude(VRegister(v5.V8B()));
+    temps.Exclude(CPURegister(d6));
+    temps.Exclude(CPURegister(v7.S4B()));
+    helper.RecordActionsAndCheck(0xff);
+    // Multiple registers can be excluded at once.
+    temps.Exclude(b8, h9, s10);
+    temps.Exclude(VRegister(d12), VRegister(d13), VRegister(d14));
+    temps.Exclude(QRegister(16), QRegister(17), QRegister(18));
+    temps.Exclude(BRegister(20), BRegister(21), BRegister(22));
+    temps.Exclude(CPURegList(s24, s25, s26));
+    helper.RecordActionsAndCheck(0x7777700);
+    // Excluding a register again has no effect.
+    temps.Exclude(VRegister(b26));
+    temps.Exclude(VRegister(h25));
+    temps.Exclude(CPURegister(s24));
+    temps.Exclude(CPURegister(v22.V4H()));
+    temps.Exclude(q21, d20, s18, h17);
+    temps.Exclude(CPURegList(h16, h14, h13, h12));
+    helper.RecordActionsAndCheck(0x7777700);
+  }
+}
+
+TEST(scratch_scope_release_v) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kRelease,
+                              CPURegister::kVRegister);
+
+    // Any suitable register type deriving from CPURegister can be released.
+    temps.Release(b0);
+    temps.Release(h1);
+    temps.Release(SRegister(2));
+    temps.Release(DRegister(3));
+    temps.Release(VRegister(q4));
+    temps.Release(VRegister(v5.V8B()));
+    temps.Release(CPURegister(d6));
+    temps.Release(CPURegister(v7.S4B()));
+    helper.RecordActionsAndCheck(0xff);
+    // It is not possible to release more than one register at a time, and it is
+    // invalid to release a register that is already available.
+  }
+}
+
+TEST(scratch_scope_include_z) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kInclude,
+                              CPURegister::kZRegister);
+
+    // Any suitable register type deriving from CPURegister can be included.
+    temps.Include(z0);
+    temps.Include(z1.VnB());
+    temps.Include(ZRegister(2));
+    temps.Include(ZRegister(3, kFormatVnD));
+    temps.Include(CPURegister(z4));
+    temps.Include(CPURegister(z5.VnH()));
+    helper.RecordActionsAndCheck(0x3f);
+    // Multiple registers can be included at once.
+    temps.Include(z8, z9, z10.VnS());
+    temps.Include(ZRegister(12), ZRegister(13, kHRegSize), z14);
+    temps.Include(CPURegList(z16, z17, z18));
+    helper.RecordActionsAndCheck(0x77700);
+    // Including a register again has no effect.
+    temps.Include(ZRegister(18));
+    temps.Include(ZRegister(17, kFormatVnB));
+    temps.Include(CPURegister(z16));
+    temps.Include(CPURegister(z13.VnD()));
+    temps.Include(z12, z10, z9.VnB(), z8);
+    temps.Include(CPURegList(z5, z4, z3, z2));
+    helper.RecordActionsAndCheck(0x77700);
+  }
+}
+
+TEST(scratch_scope_exclude_z) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kExclude,
+                              CPURegister::kZRegister);
+
+    // Any suitable register type deriving from CPURegister can be excluded.
+    temps.Exclude(z0);
+    temps.Exclude(z1.VnB());
+    temps.Exclude(ZRegister(2));
+    temps.Exclude(ZRegister(3, kFormatVnD));
+    temps.Exclude(CPURegister(z4));
+    temps.Exclude(CPURegister(z5.VnH()));
+    helper.RecordActionsAndCheck(0x3f);
+    // Multiple registers can be excluded at once.
+    temps.Exclude(z8, z9, z10.VnS());
+    temps.Exclude(ZRegister(12), ZRegister(13, kHRegSize), z14);
+    temps.Exclude(CPURegList(z16, z17, z18));
+    helper.RecordActionsAndCheck(0x77700);
+    // Exluding a register again has no effect.
+    temps.Exclude(ZRegister(18));
+    temps.Exclude(ZRegister(17, kFormatVnB));
+    temps.Exclude(CPURegister(z16));
+    temps.Exclude(CPURegister(z13.VnD()));
+    temps.Exclude(z12, z10, z9.VnB(), z8);
+    temps.Exclude(CPURegList(z5, z4, z3, z2));
+    helper.RecordActionsAndCheck(0x77700);
+  }
+}
+
+TEST(scratch_scope_release_z) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kRelease,
+                              CPURegister::kZRegister);
+
+    // Any suitable register type deriving from CPURegister can be released.
+    temps.Release(z0);
+    temps.Release(z1.VnB());
+    temps.Release(ZRegister(2));
+    temps.Release(ZRegister(3, kFormatVnD));
+    temps.Release(CPURegister(z4));
+    temps.Release(CPURegister(z5.VnH()));
+    helper.RecordActionsAndCheck(0x3f);
+    // It is not possible to release more than one register at a time, and it is
+    // invalid to release a register that is already available.
+  }
+}
+
+TEST(scratch_scope_include_p) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kInclude,
+                              CPURegister::kPRegister);
+
+    // Any suitable register type deriving from CPURegister can be included.
+    temps.Include(p0);
+    temps.Include(PRegister(1));
+    temps.Include(PRegisterWithLaneSize(2, kFormatVnD));
+    temps.Include(PRegisterM(3));
+    temps.Include(CPURegister(PRegister(4)));
+    temps.Include(CPURegister(PRegisterZ(5)));
+    helper.RecordActionsAndCheck(0x3f);
+    // Multiple registers can be included at once.
+    temps.Include(p7, p8.Merging(), p9.VnS());
+    temps.Include(PRegister(11), PRegisterWithLaneSize(12, kHRegSize));
+    temps.Include(CPURegList(p15));
+    helper.RecordActionsAndCheck(0x9b80);
+    // Including a register again has no effect.
+    temps.Include(PRegister(15));
+    temps.Include(PRegisterWithLaneSize(12, kFormatVnB));
+    temps.Include(CPURegister(p11));
+    temps.Include(CPURegister(p9.VnD()));
+    temps.Include(p8.Merging(), p7.Zeroing(), p5.VnB(), p4);
+    temps.Include(CPURegList(p3, p2, p1, p0));
+    helper.RecordActionsAndCheck(0x9b80);
+  }
+}
+
+TEST(scratch_scope_exclude_p) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kExclude,
+                              CPURegister::kPRegister);
+
+    // Any suitable register type deriving from CPURegister can be excluded.
+    temps.Exclude(p0);
+    temps.Exclude(PRegister(1));
+    temps.Exclude(PRegisterWithLaneSize(2, kFormatVnD));
+    temps.Exclude(PRegisterM(3));
+    temps.Exclude(CPURegister(PRegister(4)));
+    temps.Exclude(CPURegister(PRegisterZ(5)));
+    helper.RecordActionsAndCheck(0x3f);
+    // Multiple registers can be excluded at once.
+    temps.Exclude(p7, p8.Merging(), p9.VnS());
+    temps.Exclude(PRegister(11), PRegisterWithLaneSize(12, kHRegSize));
+    temps.Exclude(CPURegList(p15));
+    helper.RecordActionsAndCheck(0x9b80);
+    // Excluding a register again has no effect.
+    temps.Exclude(PRegister(15));
+    temps.Exclude(PRegisterWithLaneSize(12, kFormatVnB));
+    temps.Exclude(CPURegister(p11));
+    temps.Exclude(CPURegister(p9.VnD()));
+    temps.Exclude(p8.Merging(), p7.Zeroing(), p5.VnB(), p4);
+    temps.Exclude(CPURegList(p3, p2, p1, p0));
+    helper.RecordActionsAndCheck(0x9b80);
+  }
+}
+
+TEST(scratch_scope_release_p) {
+  MacroAssembler masm;
+  {
+    UseScratchRegisterScope temps(&masm);
+    ScratchScopeHelper helper(&masm,
+                              ScratchScopeHelper::kRelease,
+                              CPURegister::kPRegister);
+
+    // Any suitable register type deriving from CPURegister can be excluded.
+    temps.Release(p0);
+    temps.Release(PRegister(1));
+    temps.Release(PRegisterWithLaneSize(2, kFormatVnD));
+    temps.Release(PRegisterM(3));
+    temps.Release(CPURegister(PRegister(4)));
+    temps.Release(CPURegister(PRegisterZ(5)));
+    helper.RecordActionsAndCheck(0x3f);
+    // It is not possible to release more than one register at a time, and it is
+    // invalid to release a register that is already available.
+  }
+}
+
+#ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
+TEST(sim_stack_default) {
+  SimStack::Allocated s = SimStack().Allocate();
+
+  // The default stack is at least 16-byte aligned.
+  VIXL_CHECK(IsAligned<16>(s.GetBase()));
+  VIXL_CHECK(IsAligned<16>(s.GetLimit() + 1));
+
+  VIXL_CHECK(s.GetBase() > s.GetLimit());
+
+  // The default guard regions are sufficient to detect at least off-by-one
+  // errors.
+  VIXL_CHECK(s.IsAccessInGuardRegion(s.GetBase(), 1));
+  VIXL_CHECK(!s.IsAccessInGuardRegion(s.GetBase() - 1, 1));
+  // The limit is one below the lowest address on the stack.
+  VIXL_CHECK(s.IsAccessInGuardRegion(s.GetLimit(), 1));
+  VIXL_CHECK(!s.IsAccessInGuardRegion(s.GetLimit() + 1, 1));
+
+  // We need to be able to access 16-byte granules at both extremes.
+  VIXL_CHECK(!s.IsAccessInGuardRegion(s.GetBase() - 16, 16));
+  VIXL_CHECK(!s.IsAccessInGuardRegion(s.GetLimit() + 1, 16));
+}
+
+TEST(sim_stack) {
+  SimStack builder;
+  builder.AlignToBytesLog2(WhichPowerOf2(1024));
+  builder.SetBaseGuardSize(42);
+  builder.SetLimitGuardSize(2049);
+  builder.SetUsableSize(2048);
+  SimStack::Allocated s = builder.Allocate();
+
+  VIXL_CHECK(IsAligned<1024>(s.GetBase()));
+  VIXL_CHECK(IsAligned<1024>(s.GetLimit() + 1));
+
+  // The stack is accessible for (limit, base), both exclusive.
+  // This is checked precisely, using the base and limit modified to respect
+  // alignment, so we can test the exact boundary condition.
+  VIXL_CHECK(s.IsAccessInGuardRegion(s.GetBase(), 1));
+  VIXL_CHECK(!s.IsAccessInGuardRegion(s.GetBase() - 1, 1));
+  VIXL_CHECK(s.IsAccessInGuardRegion(s.GetLimit(), 1));
+  VIXL_CHECK(!s.IsAccessInGuardRegion(s.GetLimit() + 1, 1));
+  VIXL_CHECK((s.GetBase() - s.GetLimit() - 1) == 2048);
+
+  // We can access the whole range (limit, base), both exclusive.
+  VIXL_CHECK(!s.IsAccessInGuardRegion(s.GetLimit() + 1, 2048));
+  // Off-by-one.
+  VIXL_CHECK(s.IsAccessInGuardRegion(s.GetLimit(), 2048));
+  VIXL_CHECK(s.IsAccessInGuardRegion(s.GetLimit() + 1, 2049));
+  // Accesses spanning whole guard regions.
+  VIXL_CHECK(s.IsAccessInGuardRegion(s.GetBase() - 42, 4096));
+  VIXL_CHECK(s.IsAccessInGuardRegion(s.GetLimit() - 1280, 2048));
+  VIXL_CHECK(s.IsAccessInGuardRegion(s.GetLimit() - 1280, 10000));
+}
+#endif
+
 }  // namespace aarch64
 }  // namespace vixl
diff --git a/test/aarch64/test-api-movprfx-aarch64.cc b/test/aarch64/test-api-movprfx-aarch64.cc
new file mode 100644
index 0000000..1c1bcee
--- /dev/null
+++ b/test/aarch64/test-api-movprfx-aarch64.cc
@@ -0,0 +1,1859 @@
+// Copyright 2017, VIXL authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//   * Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//   * Neither the name of ARM Limited nor the names of its contributors may be
+//     used to endorse or promote products derived from this software without
+//     specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <cstdio>
+#include <cstring>
+#include <string>
+
+#include "test-runner.h"
+#include "test-utils.h"
+#include "aarch64/test-utils-aarch64.h"
+
+#include "aarch64/assembler-aarch64.h"
+#include "aarch64/instructions-aarch64.h"
+
+#define __ assm.
+#define TEST(name) TEST_(AARCH64_API_##name)
+
+namespace vixl {
+namespace aarch64 {
+
+static void CheckAndMaybeDisassembleMovprfxPairs(const CodeBuffer* buffer,
+                                                 bool can_take_movprfx) {
+  const Instruction* pair = buffer->GetStartAddress<Instruction*>();
+  const Instruction* end = buffer->GetEndAddress<Instruction*>();
+  bool any_failures = false;
+  PrintDisassembler print_disasm(stdout);
+  while (pair < end) {
+    const Instruction* movprfx = pair;
+    const Instruction* candidate = pair->GetNextInstruction();
+    const Instruction* next_pair = candidate->GetNextInstruction();
+    VIXL_ASSERT(candidate < end);
+
+    bool failed = can_take_movprfx != candidate->CanTakeSVEMovprfx(movprfx);
+    any_failures = any_failures || failed;
+
+    if (failed || Test::disassemble()) {
+      printf("----\n");
+      if (failed) {
+        printf("# ERROR: Expected %sCanTakeSVEMovprfx(movprfx):\n",
+               can_take_movprfx ? "" : "!");
+      }
+      print_disasm.DisassembleBuffer(pair, next_pair);
+    }
+
+    pair = next_pair;
+  }
+  // Abort only at the end, so we can see the individual failures.
+  VIXL_CHECK(!any_failures);
+}
+
+TEST(movprfx_negative_aliasing) {
+  // Test that CanTakeSVEMovprfx() checks that the movprfx destination does not
+  // alias an input to the prefixed instruction.
+  Assembler assm;
+  assm.GetCPUFeatures()->Combine(CPUFeatures::kSVE);
+  {
+    // We have to use the Assembler directly to generate movprfx, so we need
+    // to manually reserve space for the code we're about to emit.
+    static const size_t kPairCount = 73;
+    CodeBufferCheckScope guard(&assm, kPairCount * 2 * kInstructionSize);
+
+    __ movprfx(z0.VnB(), p0.Merging(), z9.VnB());
+    __ abs(z0.VnB(), p0.Merging(), z0.VnB());
+
+    __ movprfx(z1, z17);
+    __ add(z1.VnH(), p2.Merging(), z1.VnH(), z1.VnH());
+
+    __ movprfx(z12, z13);
+    __ and_(z12.VnD(), p5.Merging(), z12.VnD(), z12.VnD());
+
+    __ movprfx(z2, z4);
+    __ asr(z2.VnS(), p2.Merging(), z2.VnS(), z2.VnS());
+
+    __ movprfx(z10, z18);
+    __ asr(z10.VnH(), p2.Merging(), z10.VnH(), z10.VnD());
+
+    __ movprfx(z17.VnD(), p5.Zeroing(), z20.VnD());
+    __ asr(z17.VnD(), p5.Merging(), z17.VnD(), z17.VnD());
+
+    __ movprfx(z22, z9);
+    __ asrr(z22.VnH(), p1.Merging(), z22.VnH(), z22.VnH());
+
+    __ movprfx(z0.VnS(), p6.Zeroing(), z6.VnS());
+    __ bic(z0.VnS(), p6.Merging(), z0.VnS(), z0.VnS());
+
+    __ movprfx(z12, z16);
+    __ clasta(z12.VnD(), p5, z12.VnD(), z12.VnD());
+
+    __ movprfx(z7, z15);
+    __ clastb(z7.VnS(), p7, z7.VnS(), z7.VnS());
+
+    __ movprfx(z10, z29);
+    __ cls(z10.VnH(), p2.Merging(), z10.VnH());
+
+    __ movprfx(z6, z13);
+    __ clz(z6.VnB(), p4.Merging(), z6.VnB());
+
+    __ movprfx(z14.VnS(), p6.Zeroing(), z3.VnS());
+    __ cnot(z14.VnS(), p6.Merging(), z14.VnS());
+
+    __ movprfx(z5.VnD(), p6.Merging(), z4.VnD());
+    __ cnt(z5.VnD(), p6.Merging(), z5.VnD());
+
+    __ movprfx(z19.VnB(), p6.Zeroing(), z4.VnB());
+    __ eor(z19.VnB(), p6.Merging(), z19.VnB(), z19.VnB());
+
+    __ movprfx(z27, z2);
+    __ ext(z27.VnB(), z27.VnB(), z27.VnB(), 42);
+
+    __ movprfx(z4.VnS(), p1.Zeroing(), z22.VnS());
+    __ lsl(z4.VnS(), p1.Merging(), z4.VnS(), z4.VnS());
+
+    __ movprfx(z4, z5);
+    __ lsl(z4.VnB(), p5.Merging(), z4.VnB(), z4.VnD());
+
+    __ movprfx(z11.VnD(), p4.Merging(), z29.VnD());
+    __ lsl(z11.VnD(), p4.Merging(), z11.VnD(), z11.VnD());
+
+    __ movprfx(z12.VnD(), p6.Merging(), z3.VnD());
+    __ lslr(z12.VnD(), p6.Merging(), z12.VnD(), z12.VnD());
+
+    __ movprfx(z7, z2);
+    __ lsr(z7.VnB(), p4.Merging(), z7.VnB(), z7.VnB());
+
+    __ movprfx(z25.VnH(), p6.Merging(), z28.VnH());
+    __ lsr(z25.VnH(), p6.Merging(), z25.VnH(), z25.VnD());
+
+    __ movprfx(z14.VnD(), p6.Merging(), z6.VnD());
+    __ lsr(z14.VnD(), p6.Merging(), z14.VnD(), z14.VnD());
+
+    __ movprfx(z26.VnH(), p6.Zeroing(), z27.VnH());
+    __ lsrr(z26.VnH(), p6.Merging(), z26.VnH(), z26.VnH());
+
+    __ movprfx(z17.VnS(), p4.Zeroing(), z29.VnS());
+    __ mad(z17.VnS(), p4.Merging(), z17.VnS(), z23.VnS());
+
+    __ movprfx(z7, z17);
+    __ mad(z7.VnD(), p5.Merging(), z4.VnD(), z7.VnD());
+
+    __ movprfx(z11, z7);
+    __ mla(z11.VnS(), p1.Merging(), z11.VnS(), z27.VnS());
+
+    __ movprfx(z7, z5);
+    __ mla(z7.VnH(), p0.Merging(), z5.VnH(), z7.VnH());
+
+    __ movprfx(z1.VnH(), p0.Merging(), z17.VnH());
+    __ mls(z1.VnH(), p0.Merging(), z1.VnH(), z31.VnH());
+
+    __ movprfx(z22.VnB(), p3.Merging(), z18.VnB());
+    __ mls(z22.VnB(), p3.Merging(), z18.VnB(), z22.VnB());
+
+    __ movprfx(z7.VnS(), p0.Merging(), z10.VnS());
+    __ msb(z7.VnS(), p0.Merging(), z7.VnS(), z10.VnS());
+
+    __ movprfx(z12, z6);
+    __ msb(z12.VnH(), p7.Merging(), z6.VnH(), z12.VnH());
+
+    __ movprfx(z8.VnB(), p4.Merging(), z3.VnB());
+    __ mul(z8.VnB(), p4.Merging(), z8.VnB(), z8.VnB());
+
+    __ movprfx(z9, z26);
+    __ neg(z9.VnS(), p7.Merging(), z9.VnS());
+
+    __ movprfx(z16, z8);
+    __ not_(z16.VnH(), p6.Merging(), z16.VnH());
+
+    __ movprfx(z25.VnH(), p5.Zeroing(), z11.VnH());
+    __ orr(z25.VnH(), p5.Merging(), z25.VnH(), z25.VnH());
+
+    __ movprfx(z17.VnH(), p1.Merging(), z22.VnH());
+    __ rbit(z17.VnH(), p1.Merging(), z17.VnH());
+
+    __ movprfx(z11, z25);
+    __ revb(z11.VnD(), p6.Merging(), z11.VnD());
+
+    __ movprfx(z13, z27);
+    __ revh(z13.VnS(), p2.Merging(), z13.VnS());
+
+    __ movprfx(z30.VnD(), p6.Merging(), z20.VnD());
+    __ revw(z30.VnD(), p6.Merging(), z30.VnD());
+
+    __ movprfx(z2.VnD(), p2.Merging(), z21.VnD());
+    __ sabd(z2.VnD(), p2.Merging(), z2.VnD(), z2.VnD());
+
+    __ movprfx(z0, z7);
+    __ sdiv(z0.VnD(), p0.Merging(), z0.VnD(), z0.VnD());
+
+    __ movprfx(z19, z28);
+    __ sdivr(z19.VnS(), p1.Merging(), z19.VnS(), z19.VnS());
+
+    __ movprfx(z5, z18);
+    __ sdot(z5.VnS(), z18.VnB(), z5.VnB(), 1);
+
+    __ movprfx(z15, z11);
+    __ sdot(z15.VnD(), z2.VnH(), z15.VnH(), 1);
+
+    __ movprfx(z30, z13);
+    __ sdot(z30.VnD(), z30.VnH(), z13.VnH(), 1);
+
+    __ movprfx(z8, z9);
+    __ sdot(z8.VnS(), z8.VnB(), z9.VnB());
+
+    __ movprfx(z23, z14);
+    __ sdot(z23.VnS(), z14.VnB(), z23.VnB());
+
+    __ movprfx(z26, z5);
+    __ sdot(z26.VnS(), z26.VnB(), z5.VnB(), 1);
+
+    __ movprfx(z14, z15);
+    __ smax(z14.VnB(), p2.Merging(), z14.VnB(), z14.VnB());
+
+    __ movprfx(z26.VnS(), p0.Merging(), z10.VnS());
+    __ smin(z26.VnS(), p0.Merging(), z26.VnS(), z26.VnS());
+
+    __ movprfx(z22, z18);
+    __ smulh(z22.VnB(), p2.Merging(), z22.VnB(), z22.VnB());
+
+    __ movprfx(z8, z19);
+    __ splice(z8.VnD(), p2, z8.VnD(), z8.VnD());
+
+    __ movprfx(z23.VnH(), p6.Zeroing(), z2.VnH());
+    __ sub(z23.VnH(), p6.Merging(), z23.VnH(), z23.VnH());
+
+    __ movprfx(z25.VnS(), p2.Merging(), z21.VnS());
+    __ subr(z25.VnS(), p2.Merging(), z25.VnS(), z25.VnS());
+
+    __ movprfx(z28, z31);
+    __ sxtb(z28.VnS(), p6.Merging(), z28.VnS());
+
+    __ movprfx(z14.VnD(), p6.Merging(), z17.VnD());
+    __ sxth(z14.VnD(), p6.Merging(), z14.VnD());
+
+    __ movprfx(z21.VnD(), p0.Zeroing(), z28.VnD());
+    __ sxtw(z21.VnD(), p0.Merging(), z21.VnD());
+
+    __ movprfx(z25, z30);
+    __ uabd(z25.VnB(), p5.Merging(), z25.VnB(), z25.VnB());
+
+    __ movprfx(z13.VnD(), p2.Merging(), z30.VnD());
+    __ udiv(z13.VnD(), p2.Merging(), z13.VnD(), z13.VnD());
+
+    __ movprfx(z19.VnD(), p4.Zeroing(), z6.VnD());
+    __ udivr(z19.VnD(), p4.Merging(), z19.VnD(), z19.VnD());
+
+    __ movprfx(z1, z20);
+    __ udot(z1.VnS(), z18.VnB(), z1.VnB(), 1);
+
+    __ movprfx(z8, z2);
+    __ udot(z8.VnD(), z2.VnH(), z8.VnH(), 1);
+
+    __ movprfx(z28, z10);
+    __ udot(z28.VnD(), z28.VnH(), z7.VnH(), 1);
+
+    __ movprfx(z21, z11);
+    __ udot(z21.VnD(), z21.VnH(), z11.VnH());
+
+    __ movprfx(z1, z22);
+    __ udot(z1.VnD(), z10.VnH(), z1.VnH());
+
+    __ movprfx(z8, z23);
+    __ udot(z8.VnS(), z8.VnB(), z0.VnB(), 1);
+
+    __ movprfx(z10.VnB(), p5.Zeroing(), z0.VnB());
+    __ umax(z10.VnB(), p5.Merging(), z10.VnB(), z10.VnB());
+
+    __ movprfx(z0.VnS(), p2.Zeroing(), z30.VnS());
+    __ umin(z0.VnS(), p2.Merging(), z0.VnS(), z0.VnS());
+
+    __ movprfx(z26.VnD(), p6.Zeroing(), z29.VnD());
+    __ umulh(z26.VnD(), p6.Merging(), z26.VnD(), z26.VnD());
+
+    __ movprfx(z23, z25);
+    __ uxtb(z23.VnS(), p7.Merging(), z23.VnS());
+
+    __ movprfx(z14.VnS(), p3.Zeroing(), z5.VnS());
+    __ uxth(z14.VnS(), p3.Merging(), z14.VnS());
+
+    __ movprfx(z14, z5);
+    __ uxtw(z14.VnD(), p3.Merging(), z14.VnD());
+  }
+  assm.FinalizeCode();
+
+  CheckAndMaybeDisassembleMovprfxPairs(assm.GetBuffer(), false);
+}
+
+TEST(movprfx_negative_aliasing_fp) {
+  // Test that CanTakeSVEMovprfx() checks that the movprfx destination does not
+  // alias an input to the prefixed instruction.
+  Assembler assm;
+  assm.GetCPUFeatures()->Combine(CPUFeatures::kSVE);
+  {
+    // We have to use the Assembler directly to generate movprfx, so we need
+    // to manually reserve space for the code we're about to emit.
+    static const size_t kPairCount = 78;
+    CodeBufferCheckScope guard(&assm, kPairCount * 2 * kInstructionSize);
+
+    __ movprfx(z17.VnS(), p1.Zeroing(), z12.VnS());
+    __ fabd(z17.VnS(), p1.Merging(), z17.VnS(), z17.VnS());
+
+    __ movprfx(z13, z23);
+    __ fabs(z13.VnS(), p4.Merging(), z13.VnS());
+
+    __ movprfx(z24.VnS(), p5.Merging(), z15.VnS());
+    __ fadd(z24.VnS(), p5.Merging(), z24.VnS(), z24.VnS());
+
+    __ movprfx(z28.VnD(), p5.Zeroing(), z14.VnD());
+    __ fcadd(z28.VnD(), p5.Merging(), z28.VnD(), z28.VnD(), 90);
+
+    __ movprfx(z5, z0);
+    __ fcmla(z5.VnH(), z0.VnH(), z5.VnH(), 2, 180);
+
+    __ movprfx(z10, z4);
+    __ fcmla(z10.VnS(), z8.VnS(), z10.VnS(), 1, 270);
+
+    __ movprfx(z12, z26);
+    __ fcmla(z12.VnH(), z12.VnH(), z3.VnH(), 2, 180);
+
+    __ movprfx(z8, z1);
+    __ fcmla(z8.VnS(), z8.VnS(), z1.VnS(), 1, 270);
+
+    __ movprfx(z16.VnD(), p0.Merging(), z13.VnD());
+    __ fcvt(z16.VnD(), p0.Merging(), z16.VnH());
+
+    __ movprfx(z12.VnD(), p7.Zeroing(), z13.VnD());
+    __ fcvt(z12.VnD(), p7.Merging(), z12.VnS());
+
+    __ movprfx(z14, z26);
+    __ fcvt(z14.VnS(), p5.Merging(), z14.VnD());
+
+    __ movprfx(z26, z2);
+    __ fcvt(z26.VnH(), p7.Merging(), z26.VnD());
+
+    __ movprfx(z25.VnD(), p2.Merging(), z13.VnD());
+    __ fcvtzs(z25.VnD(), p2.Merging(), z25.VnH());
+
+    __ movprfx(z31, z2);
+    __ fcvtzs(z31.VnH(), p7.Merging(), z31.VnH());
+
+    __ movprfx(z21.VnD(), p1.Merging(), z7.VnD());
+    __ fcvtzs(z21.VnD(), p1.Merging(), z21.VnS());
+
+    __ movprfx(z5, z17);
+    __ fcvtzs(z5.VnS(), p5.Merging(), z5.VnD());
+
+    __ movprfx(z19.VnD(), p1.Zeroing(), z16.VnD());
+    __ fcvtzu(z19.VnD(), p1.Merging(), z19.VnH());
+
+    __ movprfx(z2.VnH(), p7.Zeroing(), z28.VnH());
+    __ fcvtzu(z2.VnH(), p7.Merging(), z2.VnH());
+
+    __ movprfx(z21.VnD(), p7.Zeroing(), z27.VnD());
+    __ fcvtzu(z21.VnD(), p7.Merging(), z21.VnS());
+
+    __ movprfx(z22.VnD(), p4.Zeroing(), z8.VnD());
+    __ fcvtzu(z22.VnS(), p4.Merging(), z22.VnD());
+
+    __ movprfx(z0.VnS(), p5.Merging(), z5.VnS());
+    __ fdiv(z0.VnS(), p5.Merging(), z0.VnS(), z0.VnS());
+
+    __ movprfx(z12, z24);
+    __ fdivr(z12.VnD(), p7.Merging(), z12.VnD(), z12.VnD());
+
+    __ movprfx(z14.VnD(), p6.Zeroing(), z21.VnD());
+    __ fmad(z14.VnD(), p6.Merging(), z14.VnD(), z3.VnD());
+
+    __ movprfx(z2.VnS(), p5.Zeroing(), z10.VnS());
+    __ fmad(z2.VnS(), p5.Merging(), z14.VnS(), z2.VnS());
+
+    __ movprfx(z24, z5);
+    __ fmax(z24.VnS(), p1.Merging(), z24.VnS(), z24.VnS());
+
+    __ movprfx(z15.VnD(), p2.Merging(), z26.VnD());
+    __ fmaxnm(z15.VnD(), p2.Merging(), z15.VnD(), z15.VnD());
+
+    __ movprfx(z20, z22);
+    __ fmin(z20.VnH(), p0.Merging(), z20.VnH(), z20.VnH());
+
+    __ movprfx(z24.VnS(), p6.Zeroing(), z30.VnS());
+    __ fminnm(z24.VnS(), p6.Merging(), z24.VnS(), z24.VnS());
+
+    __ movprfx(z4, z24);
+    __ fmla(z4.VnH(), z24.VnH(), z4.VnH(), 7);
+
+    __ movprfx(z4, z7);
+    __ fmla(z4.VnS(), z24.VnS(), z4.VnS(), 3);
+
+    __ movprfx(z5, z28);
+    __ fmla(z5.VnD(), z28.VnD(), z5.VnD(), 1);
+
+    __ movprfx(z24, z2);
+    __ fmla(z24.VnD(), z24.VnD(), z2.VnD(), 1);
+
+    __ movprfx(z7, z21);
+    __ fmla(z7.VnH(), p2.Merging(), z7.VnH(), z31.VnH());
+
+    __ movprfx(z25.VnH(), p5.Zeroing(), z29.VnH());
+    __ fmla(z25.VnH(), p5.Merging(), z29.VnH(), z25.VnH());
+
+    __ movprfx(z31, z25);
+    __ fmla(z31.VnH(), z31.VnH(), z2.VnH(), 7);
+
+    __ movprfx(z15, z4);
+    __ fmla(z15.VnS(), z15.VnS(), z4.VnS(), 3);
+
+    __ movprfx(z7, z11);
+    __ fmls(z7.VnH(), z11.VnH(), z7.VnH(), 4);
+
+    __ movprfx(z3, z10);
+    __ fmls(z3.VnS(), z10.VnS(), z3.VnS(), 3);
+
+    __ movprfx(z5, z16);
+    __ fmls(z5.VnD(), z16.VnD(), z5.VnD(), 1);
+
+    __ movprfx(z31, z26);
+    __ fmls(z31.VnD(), z31.VnD(), z8.VnD(), 1);
+
+    __ movprfx(z5.VnH(), p3.Merging(), z2.VnH());
+    __ fmls(z5.VnH(), p3.Merging(), z5.VnH(), z2.VnH());
+
+    __ movprfx(z22.VnS(), p3.Zeroing(), z17.VnS());
+    __ fmls(z22.VnS(), p3.Merging(), z21.VnS(), z22.VnS());
+
+    __ movprfx(z17, z2);
+    __ fmls(z17.VnH(), z17.VnH(), z2.VnH(), 4);
+
+    __ movprfx(z28, z11);
+    __ fmls(z28.VnS(), z28.VnS(), z0.VnS(), 3);
+
+    __ movprfx(z15.VnD(), p1.Merging(), z31.VnD());
+    __ fmsb(z15.VnD(), p1.Merging(), z15.VnD(), z31.VnD());
+
+    __ movprfx(z21.VnD(), p0.Zeroing(), z5.VnD());
+    __ fmsb(z21.VnD(), p0.Merging(), z19.VnD(), z21.VnD());
+
+    __ movprfx(z0.VnH(), p3.Merging(), z31.VnH());
+    __ fmul(z0.VnH(), p3.Merging(), z0.VnH(), z0.VnH());
+
+    __ movprfx(z31.VnH(), p6.Merging(), z8.VnH());
+    __ fmulx(z31.VnH(), p6.Merging(), z31.VnH(), z31.VnH());
+
+    __ movprfx(z17.VnH(), p1.Zeroing(), z10.VnH());
+    __ fneg(z17.VnH(), p1.Merging(), z17.VnH());
+
+    __ movprfx(z22, z31);
+    __ fnmad(z22.VnH(), p1.Merging(), z22.VnH(), z23.VnH());
+
+    __ movprfx(z14.VnD(), p0.Zeroing(), z26.VnD());
+    __ fnmad(z14.VnD(), p0.Merging(), z2.VnD(), z14.VnD());
+
+    __ movprfx(z13.VnH(), p6.Zeroing(), z29.VnH());
+    __ fnmla(z13.VnH(), p6.Merging(), z13.VnH(), z26.VnH());
+
+    __ movprfx(z19.VnH(), p7.Zeroing(), z25.VnH());
+    __ fnmla(z19.VnH(), p7.Merging(), z25.VnH(), z19.VnH());
+
+    __ movprfx(z27.VnH(), p5.Merging(), z24.VnH());
+    __ fnmls(z27.VnH(), p5.Merging(), z27.VnH(), z24.VnH());
+
+    __ movprfx(z6.VnH(), p6.Zeroing(), z21.VnH());
+    __ fnmls(z6.VnH(), p6.Merging(), z21.VnH(), z6.VnH());
+
+    __ movprfx(z7.VnS(), p3.Merging(), z23.VnS());
+    __ fnmsb(z7.VnS(), p3.Merging(), z7.VnS(), z23.VnS());
+
+    __ movprfx(z29.VnH(), p2.Zeroing(), z24.VnH());
+    __ fnmsb(z29.VnH(), p2.Merging(), z24.VnH(), z29.VnH());
+
+    __ movprfx(z7.VnH(), p6.Merging(), z23.VnH());
+    __ frecpx(z7.VnH(), p6.Merging(), z7.VnH());
+
+    __ movprfx(z17.VnS(), p5.Zeroing(), z2.VnS());
+    __ frinta(z17.VnS(), p5.Merging(), z17.VnS());
+
+    __ movprfx(z0.VnS(), p2.Zeroing(), z7.VnS());
+    __ frinti(z0.VnS(), p2.Merging(), z0.VnS());
+
+    __ movprfx(z8.VnH(), p3.Merging(), z20.VnH());
+    __ frintm(z8.VnH(), p3.Merging(), z8.VnH());
+
+    __ movprfx(z3.VnD(), p2.Zeroing(), z20.VnD());
+    __ frintn(z3.VnD(), p2.Merging(), z3.VnD());
+
+    __ movprfx(z11, z3);
+    __ frintp(z11.VnS(), p4.Merging(), z11.VnS());
+
+    __ movprfx(z23, z29);
+    __ frintx(z23.VnD(), p4.Merging(), z23.VnD());
+
+    __ movprfx(z4.VnH(), p4.Zeroing(), z14.VnH());
+    __ frintz(z4.VnH(), p4.Merging(), z4.VnH());
+
+    __ movprfx(z18.VnH(), p3.Zeroing(), z0.VnH());
+    __ fscale(z18.VnH(), p3.Merging(), z18.VnH(), z18.VnH());
+
+    __ movprfx(z2.VnS(), p6.Zeroing(), z4.VnS());
+    __ fsqrt(z2.VnS(), p6.Merging(), z2.VnS());
+
+    __ movprfx(z14.VnD(), p4.Zeroing(), z31.VnD());
+    __ fsub(z14.VnD(), p4.Merging(), z14.VnD(), z14.VnD());
+
+    __ movprfx(z31.VnH(), p2.Merging(), z6.VnH());
+    __ fsubr(z31.VnH(), p2.Merging(), z31.VnH(), z31.VnH());
+
+    __ movprfx(z4, z30);
+    __ ftmad(z4.VnH(), z4.VnH(), z4.VnH(), 2);
+
+    __ movprfx(z25.VnD(), p6.Zeroing(), z2.VnD());
+    __ scvtf(z25.VnD(), p6.Merging(), z25.VnS());
+
+    __ movprfx(z0.VnD(), p3.Merging(), z16.VnD());
+    __ scvtf(z0.VnD(), p3.Merging(), z0.VnD());
+
+    __ movprfx(z19, z23);
+    __ scvtf(z19.VnS(), p7.Merging(), z19.VnD());
+
+    __ movprfx(z19, z4);
+    __ scvtf(z19.VnH(), p4.Merging(), z19.VnD());
+
+    __ movprfx(z13.VnD(), p4.Zeroing(), z6.VnD());
+    __ ucvtf(z13.VnD(), p4.Merging(), z13.VnS());
+
+    __ movprfx(z6.VnH(), p0.Zeroing(), z14.VnH());
+    __ ucvtf(z6.VnH(), p0.Merging(), z6.VnH());
+
+    __ movprfx(z19.VnS(), p4.Merging(), z12.VnS());
+    __ ucvtf(z19.VnH(), p4.Merging(), z19.VnS());
+
+    __ movprfx(z0.VnD(), p5.Zeroing(), z12.VnD());
+    __ ucvtf(z0.VnH(), p5.Merging(), z0.VnD());
+  }
+  assm.FinalizeCode();
+
+  CheckAndMaybeDisassembleMovprfxPairs(assm.GetBuffer(), false);
+}
+
+TEST(movprfx_negative_instructions) {
+  Assembler assm;
+  assm.GetCPUFeatures()->Combine(CPUFeatures::kSVE);
+  {
+    // We have to use the Assembler directly to generate movprfx, so we need
+    // to manually reserve space for the code we're about to emit.
+    static const size_t kPairCount = 13;
+    CodeBufferCheckScope guard(&assm, kPairCount * 2 * kInstructionSize);
+
+    __ movprfx(z26, z11);
+    __ add(z26.VnB(), z11.VnB(), z4.VnB());
+
+    // The merging form can take movprfx, but the zeroing form cannot.
+    __ movprfx(z29.VnB(), p3.Zeroing(), z7.VnB());
+    __ cpy(z29.VnB(), p3.Zeroing(), -42);
+
+    // Frecpx can take movprfx, but frecpe and frecps cannot.
+    __ movprfx(z13, z15);
+    __ frecpe(z13.VnD(), z26.VnD());
+
+    __ movprfx(z19, z1);
+    __ frecps(z19.VnD(), z1.VnD(), z12.VnD());
+
+    __ movprfx(z6, z12);
+    __ frsqrte(z6.VnS(), z12.VnS());
+
+    __ movprfx(z29, z5);
+    __ frsqrts(z29.VnH(), z5.VnH(), z20.VnH());
+
+    // Ftmad can take movprfx, but ftsmul and ftssel cannot.
+    __ movprfx(z1, z31);
+    __ ftsmul(z1.VnD(), z31.VnD(), z16.VnD());
+
+    __ movprfx(z8, z27);
+    __ ftssel(z8.VnH(), z27.VnH(), z1.VnH());
+
+    // This looks like a merging unary operation, but it's actually an alias of
+    // sel, which isn't destructive.
+    __ movprfx(z0, z18);
+    __ mov(z0.VnS(), p6.Merging(), z18.VnS());
+
+    // The merging form can take movprfx, but the zeroing form cannot.
+    __ movprfx(z12.VnS(), p2.Merging(), z11.VnS());
+    __ mov(z12.VnS(), p2.Zeroing(), -42);
+
+    __ movprfx(z13, z6);
+    __ movprfx(z13, z2);
+
+    // Movprfx can never prefix itself.
+    __ movprfx(z3.VnD(), p5.Zeroing(), z8.VnD());
+    __ movprfx(z3.VnD(), p5.Merging(), z8.VnD());
+
+    __ movprfx(z1.VnD(), p3.Zeroing(), z14.VnD());
+    __ movprfx(z1.VnD(), p3.Zeroing(), z18.VnD());
+  }
+  assm.FinalizeCode();
+
+  CheckAndMaybeDisassembleMovprfxPairs(assm.GetBuffer(), false);
+}
+
+TEST(movprfx_negative_lane_size) {
+  // Test that CanTakeSVEMovprfx() checks that the (predicated) movprfx lane
+  // size is compatible with the prefixed instruction.
+  Assembler assm;
+  assm.GetCPUFeatures()->Combine(CPUFeatures::kSVE);
+  {
+    // We have to use the Assembler directly to generate movprfx, so we need
+    // to manually reserve space for the code we're about to emit.
+    static const size_t kPairCount = 63;
+    CodeBufferCheckScope guard(&assm, kPairCount * 2 * kInstructionSize);
+
+    __ movprfx(z0.VnH(), p2.Zeroing(), z17.VnH());
+    __ abs(z0.VnS(), p2.Merging(), z17.VnS());
+
+    __ movprfx(z10.VnD(), p0.Zeroing(), z4.VnD());
+    __ add(z10.VnS(), p0.Merging(), z10.VnS(), z2.VnS());
+
+    __ movprfx(z25.VnS(), p4.Zeroing(), z26.VnS());
+    __ and_(z25.VnB(), p4.Merging(), z25.VnB(), z27.VnB());
+
+    __ movprfx(z26.VnD(), p5.Merging(), z23.VnD());
+    __ asr(z26.VnB(), p5.Merging(), z26.VnB(), 3);
+
+    __ movprfx(z25.VnS(), p7.Zeroing(), z14.VnS());
+    __ asr(z25.VnH(), p7.Merging(), z25.VnH(), z14.VnH());
+
+    __ movprfx(z12.VnS(), p7.Zeroing(), z23.VnS());
+    __ asr(z12.VnH(), p7.Merging(), z12.VnH(), z23.VnD());
+
+    __ movprfx(z3.VnH(), p4.Zeroing(), z18.VnH());
+    __ asr(z3.VnD(), p4.Merging(), z3.VnD(), z15.VnD());
+
+    __ movprfx(z29.VnH(), p4.Merging(), z31.VnH());
+    __ asrd(z29.VnB(), p4.Merging(), z29.VnB(), 3);
+
+    __ movprfx(z31.VnH(), p5.Zeroing(), z14.VnH());
+    __ asrr(z31.VnB(), p5.Merging(), z31.VnB(), z5.VnB());
+
+    __ movprfx(z0.VnS(), p6.Zeroing(), z18.VnS());
+    __ bic(z0.VnB(), p6.Merging(), z0.VnB(), z23.VnB());
+
+    __ movprfx(z19.VnH(), p2.Zeroing(), z24.VnH());
+    __ cls(z19.VnB(), p2.Merging(), z24.VnB());
+
+    __ movprfx(z14.VnS(), p5.Zeroing(), z4.VnS());
+    __ clz(z14.VnD(), p5.Merging(), z10.VnD());
+
+    __ movprfx(z0.VnD(), p5.Merging(), z2.VnD());
+    __ cnot(z0.VnH(), p5.Merging(), z2.VnH());
+
+    __ movprfx(z0.VnB(), p3.Zeroing(), z19.VnB());
+    __ cnt(z0.VnH(), p3.Merging(), z8.VnH());
+
+    __ movprfx(z29.VnS(), p0.Merging(), z7.VnS());
+    __ cpy(z29.VnD(), p0.Merging(), -42);
+
+    __ movprfx(z13.VnB(), p2.Merging(), z31.VnB());
+    __ cpy(z13.VnS(), p2.Merging(), w13);
+
+    __ movprfx(z0.VnS(), p3.Merging(), z15.VnS());
+    __ cpy(z0.VnH(), p3.Merging(), h0);
+
+    __ movprfx(z2.VnD(), p6.Zeroing(), z26.VnD());
+    __ eor(z2.VnB(), p6.Merging(), z2.VnB(), z26.VnB());
+
+    __ movprfx(z7.VnS(), p7.Zeroing(), z30.VnS());
+    __ lsl(z7.VnD(), p7.Merging(), z7.VnD(), 3);
+
+    __ movprfx(z11.VnH(), p3.Merging(), z23.VnH());
+    __ lsl(z11.VnB(), p3.Merging(), z11.VnB(), z21.VnB());
+
+    __ movprfx(z31.VnS(), p7.Zeroing(), z21.VnS());
+    __ lsl(z31.VnH(), p7.Merging(), z31.VnH(), z21.VnD());
+
+    __ movprfx(z26.VnH(), p0.Merging(), z0.VnH());
+    __ lsl(z26.VnD(), p0.Merging(), z26.VnD(), z24.VnD());
+
+    __ movprfx(z1.VnS(), p2.Zeroing(), z6.VnS());
+    __ lslr(z1.VnB(), p2.Merging(), z1.VnB(), z6.VnB());
+
+    __ movprfx(z4.VnD(), p4.Zeroing(), z6.VnD());
+    __ lsr(z4.VnH(), p4.Merging(), z4.VnH(), 3);
+
+    __ movprfx(z27.VnH(), p0.Zeroing(), z29.VnH());
+    __ lsr(z27.VnS(), p0.Merging(), z27.VnS(), z29.VnS());
+
+    __ movprfx(z5.VnD(), p2.Zeroing(), z16.VnD());
+    __ lsr(z5.VnH(), p2.Merging(), z5.VnH(), z2.VnD());
+
+    __ movprfx(z27.VnB(), p4.Zeroing(), z5.VnB());
+    __ lsr(z27.VnD(), p4.Merging(), z27.VnD(), z5.VnD());
+
+    __ movprfx(z27.VnS(), p3.Merging(), z13.VnS());
+    __ lsrr(z27.VnD(), p3.Merging(), z27.VnD(), z13.VnD());
+
+    __ movprfx(z30.VnS(), p2.Zeroing(), z14.VnS());
+    __ mad(z30.VnB(), p2.Merging(), z20.VnB(), z14.VnB());
+
+    __ movprfx(z14.VnB(), p6.Merging(), z11.VnB());
+    __ mla(z14.VnD(), p6.Merging(), z28.VnD(), z11.VnD());
+
+    __ movprfx(z28.VnH(), p2.Zeroing(), z22.VnH());
+    __ mls(z28.VnS(), p2.Merging(), z3.VnS(), z22.VnS());
+
+    // Aliases of cpy.
+    __ movprfx(z18.VnH(), p6.Zeroing(), z25.VnH());
+    __ mov(z18.VnD(), p6.Merging(), -42);
+
+    __ movprfx(z22.VnD(), p2.Zeroing(), z6.VnD());
+    __ mov(z22.VnS(), p2.Merging(), w22);
+
+    __ movprfx(z3.VnH(), p0.Zeroing(), z13.VnH());
+    __ mov(z3.VnB(), p0.Merging(), b0);
+
+    __ movprfx(z31.VnS(), p7.Zeroing(), z12.VnS());
+    __ msb(z31.VnH(), p7.Merging(), z14.VnH(), z12.VnH());
+
+    __ movprfx(z16.VnS(), p7.Zeroing(), z6.VnS());
+    __ mul(z16.VnB(), p7.Merging(), z16.VnB(), z30.VnB());
+
+    __ movprfx(z17.VnD(), p7.Merging(), z1.VnD());
+    __ neg(z17.VnB(), p7.Merging(), z1.VnB());
+
+    __ movprfx(z31.VnH(), p4.Zeroing(), z12.VnH());
+    __ not_(z31.VnB(), p4.Merging(), z12.VnB());
+
+    __ movprfx(z9.VnH(), p3.Zeroing(), z23.VnH());
+    __ orr(z9.VnS(), p3.Merging(), z9.VnS(), z13.VnS());
+
+    __ movprfx(z25.VnD(), p2.Zeroing(), z21.VnD());
+    __ rbit(z25.VnS(), p2.Merging(), z21.VnS());
+
+    __ movprfx(z26.VnH(), p3.Merging(), z13.VnH());
+    __ revb(z26.VnD(), p3.Merging(), z13.VnD());
+
+    __ movprfx(z8.VnH(), p5.Merging(), z20.VnH());
+    __ revh(z8.VnS(), p5.Merging(), z0.VnS());
+
+    __ movprfx(z22.VnH(), p6.Merging(), z15.VnH());
+    __ revw(z22.VnD(), p6.Merging(), z10.VnD());
+
+    __ movprfx(z1.VnD(), p3.Merging(), z15.VnD());
+    __ sabd(z1.VnB(), p3.Merging(), z1.VnB(), z15.VnB());
+
+    __ movprfx(z25.VnD(), p1.Zeroing(), z30.VnD());
+    __ sdiv(z25.VnS(), p1.Merging(), z25.VnS(), z30.VnS());
+
+    __ movprfx(z19.VnS(), p3.Zeroing(), z11.VnS());
+    __ sdivr(z19.VnD(), p3.Merging(), z19.VnD(), z24.VnD());
+
+    __ movprfx(z12.VnH(), p2.Merging(), z2.VnH());
+    __ smax(z12.VnS(), p2.Merging(), z12.VnS(), z24.VnS());
+
+    __ movprfx(z3.VnD(), p1.Merging(), z15.VnD());
+    __ smin(z3.VnS(), p1.Merging(), z3.VnS(), z20.VnS());
+
+    __ movprfx(z13.VnS(), p5.Merging(), z22.VnS());
+    __ smulh(z13.VnB(), p5.Merging(), z13.VnB(), z27.VnB());
+
+    __ movprfx(z11.VnH(), p5.Zeroing(), z25.VnH());
+    __ sub(z11.VnB(), p5.Merging(), z11.VnB(), z7.VnB());
+
+    __ movprfx(z3.VnB(), p6.Merging(), z13.VnB());
+    __ subr(z3.VnS(), p6.Merging(), z3.VnS(), z13.VnS());
+
+    __ movprfx(z26.VnH(), p5.Merging(), z1.VnH());
+    __ sxtb(z26.VnS(), p5.Merging(), z17.VnS());
+
+    __ movprfx(z11.VnB(), p7.Zeroing(), z26.VnB());
+    __ sxth(z11.VnS(), p7.Merging(), z26.VnS());
+
+    __ movprfx(z1.VnS(), p2.Merging(), z21.VnS());
+    __ sxtw(z1.VnD(), p2.Merging(), z21.VnD());
+
+    __ movprfx(z4.VnS(), p6.Zeroing(), z6.VnS());
+    __ uabd(z4.VnH(), p6.Merging(), z4.VnH(), z6.VnH());
+
+    __ movprfx(z26.VnB(), p2.Zeroing(), z11.VnB());
+    __ udiv(z26.VnD(), p2.Merging(), z26.VnD(), z11.VnD());
+
+    __ movprfx(z19.VnB(), p5.Merging(), z6.VnB());
+    __ udivr(z19.VnS(), p5.Merging(), z19.VnS(), z9.VnS());
+
+    __ movprfx(z16.VnB(), p4.Merging(), z6.VnB());
+    __ umax(z16.VnH(), p4.Merging(), z16.VnH(), z6.VnH());
+
+    __ movprfx(z1.VnD(), p0.Zeroing(), z4.VnD());
+    __ umin(z1.VnS(), p0.Merging(), z1.VnS(), z28.VnS());
+
+    __ movprfx(z25.VnD(), p7.Merging(), z4.VnD());
+    __ umulh(z25.VnB(), p7.Merging(), z25.VnB(), z16.VnB());
+
+    __ movprfx(z29.VnB(), p4.Merging(), z2.VnB());
+    __ uxtb(z29.VnS(), p4.Merging(), z31.VnS());
+
+    __ movprfx(z27.VnH(), p5.Merging(), z21.VnH());
+    __ uxth(z27.VnD(), p5.Merging(), z1.VnD());
+
+    __ movprfx(z29.VnB(), p2.Merging(), z7.VnB());
+    __ uxtw(z29.VnD(), p2.Merging(), z7.VnD());
+  }
+  assm.FinalizeCode();
+
+  CheckAndMaybeDisassembleMovprfxPairs(assm.GetBuffer(), false);
+}
+
+TEST(movprfx_negative_lane_size_fp) {
+  // Test that CanTakeSVEMovprfx() checks that the (predicated) movprfx lane
+  // size is compatible with the prefixed instruction.
+  Assembler assm;
+  assm.GetCPUFeatures()->Combine(CPUFeatures::kSVE);
+  {
+    // We have to use the Assembler directly to generate movprfx, so we need
+    // to manually reserve space for the code we're about to emit.
+    static const size_t kPairCount = 64;
+    CodeBufferCheckScope guard(&assm, kPairCount * 2 * kInstructionSize);
+
+    __ movprfx(z29.VnD(), p5.Zeroing(), z8.VnD());
+    __ fabd(z29.VnS(), p5.Merging(), z29.VnS(), z26.VnS());
+
+    __ movprfx(z9.VnB(), p0.Zeroing(), z1.VnB());
+    __ fabs(z9.VnS(), p0.Merging(), z15.VnS());
+
+    __ movprfx(z24.VnD(), p0.Zeroing(), z8.VnD());
+    __ fadd(z24.VnH(), p0.Merging(), z24.VnH(), 0.5);
+
+    __ movprfx(z24.VnB(), p1.Zeroing(), z27.VnB());
+    __ fadd(z24.VnH(), p1.Merging(), z24.VnH(), z27.VnH());
+
+    __ movprfx(z14.VnH(), p7.Merging(), z12.VnH());
+    __ fcadd(z14.VnD(), p7.Merging(), z14.VnD(), z12.VnD(), 90);
+
+    __ movprfx(z10.VnB(), p6.Merging(), z11.VnB());
+    __ fcpy(z10.VnH(), p6.Merging(), 1.25);
+
+    __ movprfx(z12.VnB(), p6.Merging(), z18.VnB());
+    __ fcvt(z12.VnD(), p6.Merging(), z18.VnH());
+
+    __ movprfx(z18.VnH(), p7.Zeroing(), z2.VnH());
+    __ fcvt(z18.VnD(), p7.Merging(), z0.VnS());
+
+    __ movprfx(z3.VnH(), p5.Merging(), z14.VnH());
+    __ fcvt(z3.VnS(), p5.Merging(), z21.VnD());
+
+    __ movprfx(z15.VnH(), p1.Zeroing(), z12.VnH());
+    __ fcvt(z15.VnH(), p1.Merging(), z12.VnD());
+
+    __ movprfx(z3.VnH(), p2.Merging(), z22.VnH());
+    __ fcvtzs(z3.VnD(), p2.Merging(), z7.VnH());
+
+    __ movprfx(z17.VnS(), p3.Merging(), z14.VnS());
+    __ fcvtzs(z17.VnD(), p3.Merging(), z14.VnD());
+
+    __ movprfx(z2.VnH(), p1.Zeroing(), z16.VnH());
+    __ fcvtzs(z2.VnS(), p1.Merging(), z31.VnH());
+
+    __ movprfx(z13.VnB(), p2.Merging(), z9.VnB());
+    __ fcvtzs(z13.VnS(), p2.Merging(), z23.VnD());
+
+    __ movprfx(z19.VnB(), p1.Merging(), z4.VnB());
+    __ fcvtzu(z19.VnD(), p1.Merging(), z14.VnH());
+
+    __ movprfx(z29.VnS(), p2.Merging(), z19.VnS());
+    __ fcvtzu(z29.VnD(), p2.Merging(), z19.VnD());
+
+    __ movprfx(z21.VnS(), p4.Zeroing(), z17.VnS());
+    __ fcvtzu(z21.VnD(), p4.Merging(), z17.VnS());
+
+    __ movprfx(z19.VnH(), p4.Zeroing(), z30.VnH());
+    __ fcvtzu(z19.VnS(), p4.Merging(), z16.VnD());
+
+    __ movprfx(z10.VnS(), p7.Zeroing(), z27.VnS());
+    __ fdiv(z10.VnH(), p7.Merging(), z10.VnH(), z27.VnH());
+
+    __ movprfx(z7.VnD(), p7.Zeroing(), z17.VnD());
+    __ fdivr(z7.VnH(), p7.Merging(), z7.VnH(), z28.VnH());
+
+    __ movprfx(z22.VnB(), p0.Merging(), z27.VnB());
+    __ fmad(z22.VnH(), p0.Merging(), z27.VnH(), z15.VnH());
+
+    __ movprfx(z14.VnD(), p1.Zeroing(), z11.VnD());
+    __ fmax(z14.VnS(), p1.Merging(), z14.VnS(), 0.0);
+
+    __ movprfx(z27.VnB(), p5.Merging(), z14.VnB());
+    __ fmax(z27.VnD(), p5.Merging(), z27.VnD(), z14.VnD());
+
+    __ movprfx(z31.VnH(), p7.Merging(), z24.VnH());
+    __ fmaxnm(z31.VnD(), p7.Merging(), z31.VnD(), 0.0);
+
+    __ movprfx(z11.VnD(), p7.Zeroing(), z25.VnD());
+    __ fmaxnm(z11.VnS(), p7.Merging(), z11.VnS(), z28.VnS());
+
+    __ movprfx(z31.VnD(), p6.Merging(), z19.VnD());
+    __ fmin(z31.VnH(), p6.Merging(), z31.VnH(), 0.0);
+
+    __ movprfx(z20.VnS(), p3.Zeroing(), z15.VnS());
+    __ fmin(z20.VnH(), p3.Merging(), z20.VnH(), z8.VnH());
+
+    __ movprfx(z6.VnS(), p0.Merging(), z30.VnS());
+    __ fminnm(z6.VnH(), p0.Merging(), z6.VnH(), 0.0);
+
+    __ movprfx(z1.VnH(), p1.Zeroing(), z14.VnH());
+    __ fminnm(z1.VnS(), p1.Merging(), z1.VnS(), z14.VnS());
+
+    __ movprfx(z13.VnB(), p3.Zeroing(), z21.VnB());
+    __ fmla(z13.VnD(), p3.Merging(), z12.VnD(), z21.VnD());
+
+    __ movprfx(z15.VnS(), p1.Zeroing(), z20.VnS());
+    __ fmls(z15.VnH(), p1.Merging(), z28.VnH(), z20.VnH());
+
+    __ movprfx(z19.VnD(), p3.Zeroing(), z31.VnD());
+    __ fmov(z19.VnH(), p3.Merging(), 0.0);
+
+    __ movprfx(z16.VnS(), p7.Merging(), z30.VnS());
+    __ fmov(z16.VnH(), p7.Merging(), 2.5);
+
+    __ movprfx(z21.VnB(), p1.Merging(), z28.VnB());
+    __ fmsb(z21.VnH(), p1.Merging(), z30.VnH(), z28.VnH());
+
+    __ movprfx(z21.VnS(), p1.Zeroing(), z19.VnS());
+    __ fmul(z21.VnH(), p1.Merging(), z21.VnH(), 2.0);
+
+    __ movprfx(z28.VnB(), p7.Zeroing(), z8.VnB());
+    __ fmul(z28.VnS(), p7.Merging(), z28.VnS(), z26.VnS());
+
+    __ movprfx(z2.VnB(), p4.Merging(), z31.VnB());
+    __ fmulx(z2.VnH(), p4.Merging(), z2.VnH(), z31.VnH());
+
+    __ movprfx(z6.VnB(), p2.Zeroing(), z0.VnB());
+    __ fneg(z6.VnS(), p2.Merging(), z28.VnS());
+
+    __ movprfx(z26.VnB(), p0.Zeroing(), z21.VnB());
+    __ fnmad(z26.VnH(), p0.Merging(), z21.VnH(), z18.VnH());
+
+    __ movprfx(z15.VnB(), p1.Zeroing(), z26.VnB());
+    __ fnmla(z15.VnH(), p1.Merging(), z26.VnH(), z18.VnH());
+
+    __ movprfx(z16.VnS(), p0.Merging(), z1.VnS());
+    __ fnmls(z16.VnD(), p0.Merging(), z1.VnD(), z13.VnD());
+
+    __ movprfx(z4.VnH(), p0.Zeroing(), z16.VnH());
+    __ fnmsb(z4.VnS(), p0.Merging(), z30.VnS(), z3.VnS());
+
+    // Note that frecpe and frecps _cannot_ take movprfx.
+    __ movprfx(z9.VnH(), p0.Zeroing(), z21.VnH());
+    __ frecpx(z9.VnS(), p0.Merging(), z14.VnS());
+
+    __ movprfx(z6.VnH(), p2.Zeroing(), z28.VnH());
+    __ frinta(z6.VnD(), p2.Merging(), z28.VnD());
+
+    __ movprfx(z12.VnS(), p4.Zeroing(), z7.VnS());
+    __ frinti(z12.VnH(), p4.Merging(), z7.VnH());
+
+    __ movprfx(z6.VnB(), p5.Merging(), z20.VnB());
+    __ frintm(z6.VnD(), p5.Merging(), z20.VnD());
+
+    __ movprfx(z7.VnB(), p6.Merging(), z19.VnB());
+    __ frintn(z7.VnH(), p6.Merging(), z11.VnH());
+
+    __ movprfx(z12.VnD(), p2.Merging(), z31.VnD());
+    __ frintp(z12.VnS(), p2.Merging(), z31.VnS());
+
+    __ movprfx(z1.VnS(), p5.Merging(), z10.VnS());
+    __ frintx(z1.VnD(), p5.Merging(), z0.VnD());
+
+    __ movprfx(z6.VnH(), p0.Merging(), z12.VnH());
+    __ frintz(z6.VnS(), p0.Merging(), z7.VnS());
+
+    __ movprfx(z8.VnH(), p2.Merging(), z6.VnH());
+    __ fscale(z8.VnD(), p2.Merging(), z8.VnD(), z6.VnD());
+
+    __ movprfx(z20.VnH(), p2.Zeroing(), z2.VnH());
+    __ fsqrt(z20.VnD(), p2.Merging(), z15.VnD());
+
+    __ movprfx(z28.VnS(), p6.Zeroing(), z19.VnS());
+    __ fsub(z28.VnD(), p6.Merging(), z28.VnD(), 1.0);
+
+    __ movprfx(z6.VnB(), p0.Zeroing(), z12.VnB());
+    __ fsub(z6.VnD(), p0.Merging(), z6.VnD(), z20.VnD());
+
+    __ movprfx(z6.VnS(), p7.Zeroing(), z11.VnS());
+    __ fsubr(z6.VnH(), p7.Merging(), z6.VnH(), 1.0);
+
+    __ movprfx(z28.VnB(), p3.Merging(), z10.VnB());
+    __ fsubr(z28.VnS(), p3.Merging(), z28.VnS(), z9.VnS());
+
+    __ movprfx(z22.VnB(), p3.Zeroing(), z14.VnB());
+    __ scvtf(z22.VnD(), p3.Merging(), z24.VnS());
+
+    __ movprfx(z20.VnS(), p2.Merging(), z9.VnS());
+    __ scvtf(z20.VnH(), p2.Merging(), z9.VnH());
+
+    __ movprfx(z19.VnH(), p1.Merging(), z21.VnH());
+    __ scvtf(z19.VnS(), p1.Merging(), z6.VnD());
+
+    __ movprfx(z31.VnS(), p3.Merging(), z22.VnS());
+    __ scvtf(z31.VnH(), p3.Merging(), z22.VnD());
+
+    __ movprfx(z8.VnS(), p3.Merging(), z3.VnS());
+    __ ucvtf(z8.VnD(), p3.Merging(), z1.VnS());
+
+    __ movprfx(z0.VnB(), p0.Merging(), z23.VnB());
+    __ ucvtf(z0.VnH(), p0.Merging(), z12.VnH());
+
+    __ movprfx(z8.VnH(), p3.Zeroing(), z4.VnH());
+    __ ucvtf(z8.VnH(), p3.Merging(), z4.VnS());
+
+    __ movprfx(z20.VnH(), p2.Zeroing(), z10.VnH());
+    __ ucvtf(z20.VnH(), p2.Merging(), z11.VnD());
+  }
+  assm.FinalizeCode();
+
+  CheckAndMaybeDisassembleMovprfxPairs(assm.GetBuffer(), false);
+}
+
+TEST(movprfx_negative_predication) {
+  // Test that CanTakeSVEMovprfx() is false when a predicated movprfx appears
+  // before an unpredicated instruction.
+  Assembler assm;
+  assm.GetCPUFeatures()->Combine(CPUFeatures::kSVE);
+  {
+    // We have to use the Assembler directly to generate movprfx, so we need
+    // to manually reserve space for the code we're about to emit.
+    static const size_t kPairCount = 54;
+    CodeBufferCheckScope guard(&assm, kPairCount * 2 * kInstructionSize);
+
+    __ movprfx(z27.VnS(), p1.Zeroing(), z12.VnS());
+    __ add(z27.VnS(), z27.VnS(), 42);
+
+    __ movprfx(z31.VnS(), p6.Zeroing(), z1.VnS());
+    __ and_(z31.VnS(), z31.VnS(), 4);
+
+    __ movprfx(z27.VnS(), p5.Merging(), z24.VnS());
+    __ bic(z27.VnS(), z27.VnS(), 4);
+
+    __ movprfx(z6.VnH(), p7.Merging(), z30.VnH());
+    __ clasta(z6.VnH(), p7, z6.VnH(), z14.VnH());
+
+    __ movprfx(z11.VnB(), p6.Merging(), z5.VnB());
+    __ clastb(z11.VnB(), p6, z11.VnB(), z29.VnB());
+
+    __ movprfx(z5.VnD(), p0.Merging(), z1.VnD());
+    __ decd(z5.VnD(), SVE_MUL3);
+
+    __ movprfx(z11.VnH(), p7.Zeroing(), z28.VnH());
+    __ dech(z11.VnH(), SVE_VL2);
+
+    __ movprfx(z14.VnS(), p5.Zeroing(), z6.VnS());
+    __ decp(z14.VnS(), p5);
+
+    __ movprfx(z6.VnS(), p5.Merging(), z10.VnS());
+    __ decw(z6.VnS(), SVE_ALL);
+
+    __ movprfx(z27.VnH(), p7.Zeroing(), z9.VnH());
+    __ eon(z27.VnH(), z27.VnH(), 4);
+
+    __ movprfx(z3.VnS(), p3.Zeroing(), z2.VnS());
+    __ eor(z3.VnS(), z3.VnS(), 4);
+
+    __ movprfx(z30.VnB(), p2.Zeroing(), z25.VnB());
+    __ ext(z30.VnB(), z30.VnB(), z25.VnB(), 42);
+
+    __ movprfx(z22.VnD(), p0.Merging(), z0.VnD());
+    __ incd(z22.VnD(), SVE_MUL3);
+
+    __ movprfx(z7.VnH(), p3.Merging(), z3.VnH());
+    __ inch(z7.VnH(), SVE_VL2);
+
+    __ movprfx(z9.VnD(), p1.Zeroing(), z28.VnD());
+    __ incp(z9.VnD(), p1);
+
+    __ movprfx(z30.VnS(), p3.Merging(), z4.VnS());
+    __ incw(z30.VnS(), SVE_ALL);
+
+    __ movprfx(z30.VnB(), p7.Zeroing(), z21.VnB());
+    __ insr(z30.VnB(), w30);
+
+    __ movprfx(z2.VnB(), p4.Zeroing(), z26.VnB());
+    __ insr(z2.VnB(), b0);
+
+    __ movprfx(z27.VnS(), p5.Zeroing(), z5.VnS());
+    __ mul(z27.VnS(), z27.VnS(), 42);
+
+    __ movprfx(z5.VnS(), p0.Merging(), z26.VnS());
+    __ orn(z5.VnS(), z5.VnS(), 4);
+
+    __ movprfx(z5.VnS(), p0.Merging(), z26.VnS());
+    __ orn(z5.VnS(), z5.VnS(), 4);
+
+    __ movprfx(z16.VnD(), p1.Merging(), z13.VnD());
+    __ sdot(z16.VnD(), z11.VnH(), z7.VnH(), 1);
+
+    __ movprfx(z27.VnD(), p5.Merging(), z18.VnD());
+    __ sdot(z27.VnD(), z18.VnH(), z0.VnH());
+
+    __ movprfx(z20.VnS(), p6.Merging(), z1.VnS());
+    __ sdot(z20.VnS(), z10.VnB(), z1.VnB(), 1);
+
+    __ movprfx(z19.VnD(), p0.Zeroing(), z7.VnD());
+    __ smax(z19.VnD(), z19.VnD(), 42);
+
+    __ movprfx(z15.VnD(), p1.Zeroing(), z7.VnD());
+    __ smin(z15.VnD(), z15.VnD(), 42);
+
+    __ movprfx(z15.VnB(), p5.Merging(), z3.VnB());
+    __ splice(z15.VnB(), p5, z15.VnB(), z3.VnB());
+
+    __ movprfx(z5.VnB(), p6.Zeroing(), z4.VnB());
+    __ sqadd(z5.VnB(), z5.VnB(), 42);
+
+    __ movprfx(z16.VnD(), p0.Zeroing(), z18.VnD());
+    __ sqdecd(z16.VnD(), SVE_MUL3);
+
+    __ movprfx(z7.VnH(), p3.Merging(), z28.VnH());
+    __ sqdech(z7.VnH(), SVE_VL2);
+
+    __ movprfx(z7.VnS(), p2.Merging(), z13.VnS());
+    __ sqdecp(z7.VnS(), p2);
+
+    __ movprfx(z22.VnS(), p7.Zeroing(), z20.VnS());
+    __ sqdecw(z22.VnS(), SVE_ALL);
+
+    __ movprfx(z26.VnD(), p1.Zeroing(), z0.VnD());
+    __ sqincd(z26.VnD(), SVE_MUL3);
+
+    __ movprfx(z15.VnH(), p7.Zeroing(), z27.VnH());
+    __ sqinch(z15.VnH(), SVE_VL2);
+
+    __ movprfx(z4.VnD(), p7.Merging(), z13.VnD());
+    __ sqincp(z4.VnD(), p7);
+
+    __ movprfx(z29.VnS(), p6.Merging(), z14.VnS());
+    __ sqincw(z29.VnS(), SVE_ALL);
+
+    __ movprfx(z17.VnB(), p1.Merging(), z24.VnB());
+    __ sqsub(z17.VnB(), z17.VnB(), 42);
+
+    __ movprfx(z26.VnS(), p5.Zeroing(), z19.VnS());
+    __ sub(z26.VnS(), z26.VnS(), 42);
+
+    __ movprfx(z15.VnD(), p1.Merging(), z3.VnD());
+    __ subr(z15.VnD(), z15.VnD(), 42);
+
+    __ movprfx(z4.VnD(), p2.Zeroing(), z14.VnD());
+    __ udot(z4.VnD(), z15.VnH(), z7.VnH(), 1);
+
+    __ movprfx(z29.VnD(), p4.Zeroing(), z28.VnD());
+    __ udot(z29.VnD(), z2.VnH(), z17.VnH());
+
+    __ movprfx(z7.VnS(), p6.Merging(), z3.VnS());
+    __ udot(z7.VnS(), z14.VnB(), z1.VnB(), 1);
+
+    __ movprfx(z14.VnB(), p3.Merging(), z5.VnB());
+    __ umax(z14.VnB(), z14.VnB(), 42);
+
+    __ movprfx(z4.VnD(), p1.Zeroing(), z2.VnD());
+    __ umin(z4.VnD(), z4.VnD(), 42);
+
+    __ movprfx(z19.VnB(), p0.Zeroing(), z27.VnB());
+    __ uqadd(z19.VnB(), z19.VnB(), 42);
+
+    __ movprfx(z24.VnD(), p7.Zeroing(), z11.VnD());
+    __ uqdecd(z24.VnD(), SVE_MUL3);
+
+    __ movprfx(z24.VnH(), p4.Zeroing(), z18.VnH());
+    __ uqdech(z24.VnH(), SVE_VL2);
+
+    __ movprfx(z31.VnS(), p5.Zeroing(), z2.VnS());
+    __ uqdecp(z31.VnS(), p5);
+
+    __ movprfx(z19.VnS(), p6.Merging(), z21.VnS());
+    __ uqdecw(z19.VnS(), SVE_ALL);
+
+    __ movprfx(z27.VnD(), p0.Merging(), z21.VnD());
+    __ uqincd(z27.VnD(), SVE_MUL3);
+
+    __ movprfx(z13.VnH(), p4.Zeroing(), z12.VnH());
+    __ uqinch(z13.VnH(), SVE_VL2);
+
+    __ movprfx(z0.VnD(), p4.Zeroing(), z1.VnD());
+    __ uqincp(z0.VnD(), p4);
+
+    __ movprfx(z12.VnS(), p4.Merging(), z21.VnS());
+    __ uqincw(z12.VnS(), SVE_ALL);
+
+    __ movprfx(z9.VnD(), p0.Zeroing(), z16.VnD());
+    __ uqsub(z9.VnD(), z9.VnD(), 42);
+  }
+  assm.FinalizeCode();
+
+  CheckAndMaybeDisassembleMovprfxPairs(assm.GetBuffer(), false);
+}
+
+TEST(movprfx_negative_predication_fp) {
+  // Test that CanTakeSVEMovprfx() is false when a predicated movprfx appears
+  // before an unpredicated instruction.
+  Assembler assm;
+  assm.GetCPUFeatures()->Combine(CPUFeatures::kSVE);
+  {
+    // We have to use the Assembler directly to generate movprfx, so we need
+    // to manually reserve space for the code we're about to emit.
+    static const size_t kPairCount = 9;
+    CodeBufferCheckScope guard(&assm, kPairCount * 2 * kInstructionSize);
+
+    __ movprfx(z10.VnH(), p3.Zeroing(), z3.VnH());
+    __ fcmla(z10.VnH(), z22.VnH(), z3.VnH(), 2, 180);
+
+    __ movprfx(z12.VnS(), p4.Merging(), z14.VnS());
+    __ fcmla(z12.VnS(), z3.VnS(), z10.VnS(), 1, 270);
+
+    __ movprfx(z16.VnD(), p3.Zeroing(), z24.VnD());
+    __ fmla(z16.VnD(), z24.VnD(), z8.VnD(), 1);
+
+    __ movprfx(z9.VnH(), p7.Zeroing(), z0.VnH());
+    __ fmla(z9.VnH(), z8.VnH(), z0.VnH(), 7);
+
+    __ movprfx(z23.VnS(), p5.Merging(), z5.VnS());
+    __ fmla(z23.VnS(), z7.VnS(), z5.VnS(), 3);
+
+    __ movprfx(z19.VnD(), p6.Zeroing(), z8.VnD());
+    __ fmls(z19.VnD(), z27.VnD(), z13.VnD(), 1);
+
+    __ movprfx(z25.VnH(), p7.Merging(), z24.VnH());
+    __ fmls(z25.VnH(), z24.VnH(), z4.VnH(), 4);
+
+    __ movprfx(z2.VnS(), p1.Zeroing(), z0.VnS());
+    __ fmls(z2.VnS(), z9.VnS(), z0.VnS(), 3);
+
+    // Note that ftsmul and ftssel _cannot_ take movprfx.
+    __ movprfx(z22.VnD(), p6.Merging(), z16.VnD());
+    __ ftmad(z22.VnD(), z22.VnD(), z20.VnD(), 2);
+  }
+  assm.FinalizeCode();
+
+  CheckAndMaybeDisassembleMovprfxPairs(assm.GetBuffer(), false);
+}
+
+TEST(movprfx_positive) {
+  Assembler assm;
+  assm.GetCPUFeatures()->Combine(CPUFeatures::kSVE);
+  {
+    // We have to use the Assembler directly to generate movprfx, so we need
+    // to manually reserve space for the code we're about to emit.
+    static const size_t kPairCount = 117;
+    CodeBufferCheckScope guard(&assm, kPairCount * 2 * kInstructionSize);
+
+    __ movprfx(z17, z28);
+    __ abs(z17.VnB(), p6.Merging(), z28.VnB());
+
+    __ movprfx(z9, z7);
+    __ add(z9.VnB(), p5.Merging(), z9.VnB(), z29.VnB());
+
+    __ movprfx(z11, z0);
+    __ add(z11.VnD(), z11.VnD(), 42);
+
+    __ movprfx(z8.VnS(), p3.Zeroing(), z28.VnS());
+    __ and_(z8.VnS(), p3.Merging(), z8.VnS(), z31.VnS());
+
+    __ movprfx(z20, z23);
+    __ and_(z20.VnS(), z20.VnS(), 4);
+
+    __ movprfx(z24.VnD(), p5.Merging(), z11.VnD());
+    __ asr(z24.VnD(), p5.Merging(), z24.VnD(), 3);
+
+    __ movprfx(z1, z13);
+    __ asr(z1.VnH(), p3.Merging(), z1.VnH(), z4.VnH());
+
+    __ movprfx(z0.VnB(), p7.Zeroing(), z28.VnB());
+    __ asr(z0.VnB(), p7.Merging(), z0.VnB(), z28.VnD());
+
+    __ movprfx(z15, z5);
+    __ asr(z15.VnD(), p3.Merging(), z15.VnD(), z5.VnD());
+
+    __ movprfx(z24.VnH(), p3.Merging(), z22.VnH());
+    __ asrd(z24.VnH(), p3.Merging(), z24.VnH(), 3);
+
+    __ movprfx(z2.VnS(), p3.Zeroing(), z20.VnS());
+    __ asrr(z2.VnS(), p3.Merging(), z2.VnS(), z15.VnS());
+
+    __ movprfx(z17.VnB(), p7.Merging(), z6.VnB());
+    __ bic(z17.VnB(), p7.Merging(), z17.VnB(), z25.VnB());
+
+    __ movprfx(z31, z6);
+    __ bic(z31.VnD(), z31.VnD(), 4);
+
+    __ movprfx(z20, z2);
+    __ clasta(z20.VnB(), p4, z20.VnB(), z15.VnB());
+
+    __ movprfx(z27, z11);
+    __ clastb(z27.VnB(), p5, z27.VnB(), z6.VnB());
+
+    __ movprfx(z3.VnS(), p7.Zeroing(), z17.VnS());
+    __ cls(z3.VnS(), p7.Merging(), z0.VnS());
+
+    __ movprfx(z29.VnB(), p0.Zeroing(), z24.VnB());
+    __ clz(z29.VnB(), p0.Merging(), z7.VnB());
+
+    __ movprfx(z2.VnH(), p7.Zeroing(), z29.VnH());
+    __ cnot(z2.VnH(), p7.Merging(), z28.VnH());
+
+    __ movprfx(z23, z5);
+    __ cnt(z23.VnH(), p0.Merging(), z12.VnH());
+
+    __ movprfx(z5, z3);
+    __ cpy(z5.VnD(), p1.Merging(), -42);
+
+    __ movprfx(z0, z12);
+    __ cpy(z0.VnB(), p1.Merging(), w0);
+
+    __ movprfx(z27, z8);
+    __ cpy(z27.VnB(), p0.Merging(), b0);
+
+    __ movprfx(z20, z24);
+    __ decd(z20.VnD(), SVE_MUL3);
+
+    __ movprfx(z5, z28);
+    __ dech(z5.VnH(), SVE_VL2);
+
+    __ movprfx(z7, z3);
+    __ decp(z7.VnD(), p2);
+
+    __ movprfx(z4, z7);
+    __ decw(z4.VnS(), SVE_ALL);
+
+    __ movprfx(z3, z18);
+    __ eon(z3.VnS(), z3.VnS(), 4);
+
+    __ movprfx(z4.VnD(), p0.Merging(), z10.VnD());
+    __ eor(z4.VnD(), p0.Merging(), z4.VnD(), z10.VnD());
+
+    __ movprfx(z15, z18);
+    __ eor(z15.VnH(), z15.VnH(), 4);
+
+    __ movprfx(z30, z11);
+    __ ext(z30.VnB(), z30.VnB(), z11.VnB(), 42);
+
+    __ movprfx(z19, z28);
+    __ incd(z19.VnD(), SVE_MUL3);
+
+    __ movprfx(z13, z7);
+    __ inch(z13.VnH(), SVE_VL2);
+
+    __ movprfx(z14, z21);
+    __ incp(z14.VnD(), p1);
+
+    __ movprfx(z26, z12);
+    __ incw(z26.VnS(), SVE_ALL);
+
+    __ movprfx(z16, z2);
+    __ insr(z16.VnB(), w16);
+
+    __ movprfx(z20, z26);
+    __ insr(z20.VnB(), b0);
+
+    __ movprfx(z30.VnD(), p0.Merging(), z23.VnD());
+    __ lsl(z30.VnD(), p0.Merging(), z30.VnD(), 3);
+
+    __ movprfx(z28.VnS(), p2.Zeroing(), z6.VnS());
+    __ lsl(z28.VnS(), p2.Merging(), z28.VnS(), z6.VnS());
+
+    __ movprfx(z15.VnH(), p6.Zeroing(), z3.VnH());
+    __ lsl(z15.VnH(), p6.Merging(), z15.VnH(), z3.VnD());
+
+    __ movprfx(z13.VnD(), p4.Zeroing(), z14.VnD());
+    __ lsl(z13.VnD(), p4.Merging(), z13.VnD(), z25.VnD());
+
+    __ movprfx(z14, z5);
+    __ lslr(z14.VnS(), p0.Merging(), z14.VnS(), z17.VnS());
+
+    __ movprfx(z21, z1);
+    __ lsr(z21.VnH(), p5.Merging(), z21.VnH(), 3);
+
+    __ movprfx(z11.VnH(), p0.Zeroing(), z13.VnH());
+    __ lsr(z11.VnH(), p0.Merging(), z11.VnH(), z9.VnH());
+
+    __ movprfx(z24, z29);
+    __ lsr(z24.VnS(), p4.Merging(), z24.VnS(), z1.VnD());
+
+    __ movprfx(z1.VnD(), p6.Merging(), z9.VnD());
+    __ lsr(z1.VnD(), p6.Merging(), z1.VnD(), z9.VnD());
+
+    __ movprfx(z22, z3);
+    __ lsrr(z22.VnB(), p3.Merging(), z22.VnB(), z3.VnB());
+
+    __ movprfx(z24.VnB(), p2.Zeroing(), z5.VnB());
+    __ mad(z24.VnB(), p2.Merging(), z5.VnB(), z10.VnB());
+
+    __ movprfx(z8, z4);
+    __ mla(z8.VnS(), p6.Merging(), z4.VnS(), z26.VnS());
+
+    __ movprfx(z10, z8);
+    __ mls(z10.VnS(), p4.Merging(), z23.VnS(), z16.VnS());
+
+    // Aliases of cpy.
+    __ movprfx(z4.VnH(), p5.Zeroing(), z2.VnH());
+    __ mov(z4.VnH(), p5.Merging(), -42);
+
+    __ movprfx(z2.VnB(), p3.Zeroing(), z24.VnB());
+    __ mov(z2.VnB(), p3.Merging(), w2);
+
+    __ movprfx(z27, z13);
+    __ mov(z27.VnD(), p3.Merging(), d0);
+
+    __ movprfx(z18.VnB(), p5.Zeroing(), z11.VnB());
+    __ msb(z18.VnB(), p5.Merging(), z3.VnB(), z11.VnB());
+
+    __ movprfx(z29, z16);
+    __ mul(z29.VnS(), p6.Merging(), z29.VnS(), z9.VnS());
+
+    __ movprfx(z21, z23);
+    __ mul(z21.VnH(), z21.VnH(), 42);
+
+    __ movprfx(z7.VnS(), p4.Merging(), z14.VnS());
+    __ neg(z7.VnS(), p4.Merging(), z14.VnS());
+
+    __ movprfx(z8.VnD(), p4.Zeroing(), z5.VnD());
+    __ not_(z8.VnD(), p4.Merging(), z5.VnD());
+
+    __ movprfx(z14, z13);
+    __ orn(z14.VnS(), z14.VnS(), 4);
+
+    __ movprfx(z14, z13);
+    __ orn(z14.VnS(), z14.VnS(), 4);
+
+    __ movprfx(z27, z17);
+    __ orr(z27.VnD(), p2.Merging(), z27.VnD(), z17.VnD());
+
+    __ movprfx(z13.VnH(), p2.Zeroing(), z27.VnH());
+    __ rbit(z13.VnH(), p2.Merging(), z1.VnH());
+
+    __ movprfx(z1, z29);
+    __ revb(z1.VnS(), p4.Merging(), z6.VnS());
+
+    __ movprfx(z18.VnD(), p2.Zeroing(), z10.VnD());
+    __ revh(z18.VnD(), p2.Merging(), z16.VnD());
+
+    __ movprfx(z2.VnD(), p1.Merging(), z10.VnD());
+    __ revw(z2.VnD(), p1.Merging(), z1.VnD());
+
+    __ movprfx(z28.VnS(), p7.Merging(), z11.VnS());
+    __ sabd(z28.VnS(), p7.Merging(), z28.VnS(), z11.VnS());
+
+    __ movprfx(z22.VnS(), p0.Merging(), z20.VnS());
+    __ sdiv(z22.VnS(), p0.Merging(), z22.VnS(), z6.VnS());
+
+    __ movprfx(z13.VnS(), p7.Merging(), z0.VnS());
+    __ sdivr(z13.VnS(), p7.Merging(), z13.VnS(), z2.VnS());
+
+    __ movprfx(z0, z12);
+    __ sdot(z0.VnD(), z10.VnH(), z12.VnH(), 1);
+
+    __ movprfx(z8, z15);
+    __ sdot(z8.VnS(), z15.VnB(), z12.VnB());
+
+    __ movprfx(z13, z0);
+    __ sdot(z13.VnS(), z10.VnB(), z0.VnB(), 1);
+
+    __ movprfx(z11, z13);
+    __ smax(z11.VnB(), p5.Merging(), z11.VnB(), z24.VnB());
+
+    __ movprfx(z3, z17);
+    __ smax(z3.VnD(), z3.VnD(), 42);
+
+    __ movprfx(z10, z29);
+    __ smin(z10.VnD(), p4.Merging(), z10.VnD(), z29.VnD());
+
+    __ movprfx(z13, z29);
+    __ smin(z13.VnD(), z13.VnD(), 42);
+
+    __ movprfx(z6, z17);
+    __ smulh(z6.VnS(), p7.Merging(), z6.VnS(), z31.VnS());
+
+    __ movprfx(z19, z20);
+    __ splice(z19.VnB(), p3, z19.VnB(), z20.VnB());
+
+    __ movprfx(z0, z3);
+    __ sqadd(z0.VnD(), z0.VnD(), 42);
+
+    __ movprfx(z29, z5);
+    __ sqdecd(z29.VnD(), SVE_MUL3);
+
+    __ movprfx(z25, z11);
+    __ sqdech(z25.VnH(), SVE_VL2);
+
+    __ movprfx(z16, z9);
+    __ sqdecp(z16.VnS(), p1);
+
+    __ movprfx(z8, z17);
+    __ sqdecw(z8.VnS(), SVE_ALL);
+
+    __ movprfx(z4, z5);
+    __ sqincd(z4.VnD(), SVE_MUL3);
+
+    __ movprfx(z0, z17);
+    __ sqinch(z0.VnH(), SVE_VL2);
+
+    __ movprfx(z7, z27);
+    __ sqincp(z7.VnS(), p6);
+
+    __ movprfx(z10, z9);
+    __ sqincw(z10.VnS(), SVE_ALL);
+
+    __ movprfx(z31, z22);
+    __ sqsub(z31.VnB(), z31.VnB(), 42);
+
+    __ movprfx(z12.VnH(), p7.Zeroing(), z23.VnH());
+    __ sub(z12.VnH(), p7.Merging(), z12.VnH(), z23.VnH());
+
+    __ movprfx(z10, z1);
+    __ sub(z10.VnH(), z10.VnH(), 42);
+
+    __ movprfx(z15.VnB(), p0.Merging(), z0.VnB());
+    __ subr(z15.VnB(), p0.Merging(), z15.VnB(), z0.VnB());
+
+    __ movprfx(z17, z2);
+    __ subr(z17.VnH(), z17.VnH(), 42);
+
+    __ movprfx(z5, z3);
+    __ sxtb(z5.VnD(), p6.Merging(), z20.VnD());
+
+    __ movprfx(z11, z17);
+    __ sxth(z11.VnD(), p6.Merging(), z25.VnD());
+
+    __ movprfx(z26, z4);
+    __ sxtw(z26.VnD(), p5.Merging(), z4.VnD());
+
+    __ movprfx(z15.VnD(), p0.Zeroing(), z8.VnD());
+    __ uabd(z15.VnD(), p0.Merging(), z15.VnD(), z20.VnD());
+
+    __ movprfx(z21, z24);
+    __ udiv(z21.VnD(), p3.Merging(), z21.VnD(), z24.VnD());
+
+    __ movprfx(z22, z10);
+    __ udivr(z22.VnD(), p7.Merging(), z22.VnD(), z27.VnD());
+
+    __ movprfx(z27, z25);
+    __ udot(z27.VnD(), z29.VnH(), z3.VnH(), 1);
+
+    __ movprfx(z29, z10);
+    __ udot(z29.VnS(), z10.VnB(), z21.VnB());
+
+    __ movprfx(z18, z0);
+    __ udot(z18.VnS(), z14.VnB(), z0.VnB(), 1);
+
+    __ movprfx(z6, z30);
+    __ umax(z6.VnS(), p2.Merging(), z6.VnS(), z27.VnS());
+
+    __ movprfx(z31, z17);
+    __ umax(z31.VnD(), z31.VnD(), 42);
+
+    __ movprfx(z27.VnS(), p0.Merging(), z20.VnS());
+    __ umin(z27.VnS(), p0.Merging(), z27.VnS(), z8.VnS());
+
+    __ movprfx(z0, z11);
+    __ umin(z0.VnH(), z0.VnH(), 42);
+
+    __ movprfx(z21, z17);
+    __ umulh(z21.VnB(), p0.Merging(), z21.VnB(), z30.VnB());
+
+    __ movprfx(z9, z24);
+    __ uqadd(z9.VnD(), z9.VnD(), 42);
+
+    __ movprfx(z18, z13);
+    __ uqdecd(z18.VnD(), SVE_MUL3);
+
+    __ movprfx(z20, z23);
+    __ uqdech(z20.VnH(), SVE_VL2);
+
+    __ movprfx(z12, z29);
+    __ uqdecp(z12.VnS(), p7);
+
+    __ movprfx(z24, z25);
+    __ uqdecw(z24.VnS(), SVE_ALL);
+
+    __ movprfx(z13, z1);
+    __ uqincd(z13.VnD(), SVE_MUL3);
+
+    __ movprfx(z5, z19);
+    __ uqinch(z5.VnH(), SVE_VL2);
+
+    __ movprfx(z6, z25);
+    __ uqincp(z6.VnS(), p5);
+
+    __ movprfx(z12, z14);
+    __ uqincw(z12.VnS(), SVE_ALL);
+
+    __ movprfx(z13, z6);
+    __ uqsub(z13.VnH(), z13.VnH(), 42);
+
+    __ movprfx(z31, z3);
+    __ uxtb(z31.VnS(), p0.Merging(), z3.VnS());
+
+    __ movprfx(z18.VnD(), p4.Merging(), z25.VnD());
+    __ uxth(z18.VnD(), p4.Merging(), z25.VnD());
+
+    __ movprfx(z18.VnD(), p7.Merging(), z25.VnD());
+    __ uxtw(z18.VnD(), p7.Merging(), z25.VnD());
+  }
+  assm.FinalizeCode();
+
+  CheckAndMaybeDisassembleMovprfxPairs(assm.GetBuffer(), true);
+}
+
+TEST(movprfx_positive_fp) {
+  Assembler assm;
+  assm.GetCPUFeatures()->Combine(CPUFeatures::kSVE);
+  {
+    // We have to use the Assembler directly to generate movprfx, so we need
+    // to manually reserve space for the code we're about to emit.
+    static const size_t kPairCount = 73;
+    CodeBufferCheckScope guard(&assm, kPairCount * 2 * kInstructionSize);
+
+    __ movprfx(z18.VnS(), p6.Zeroing(), z20.VnS());
+    __ fabd(z18.VnS(), p6.Merging(), z18.VnS(), z19.VnS());
+
+    __ movprfx(z28.VnD(), p4.Zeroing(), z24.VnD());
+    __ fabs(z28.VnD(), p4.Merging(), z24.VnD());
+
+    __ movprfx(z12, z8);
+    __ fadd(z12.VnS(), p2.Merging(), z12.VnS(), 0.5);
+
+    __ movprfx(z0.VnS(), p1.Merging(), z9.VnS());
+    __ fadd(z0.VnS(), p1.Merging(), z0.VnS(), z9.VnS());
+
+    __ movprfx(z10.VnH(), p2.Merging(), z2.VnH());
+    __ fcadd(z10.VnH(), p2.Merging(), z10.VnH(), z20.VnH(), 90);
+
+    __ movprfx(z21, z6);
+    __ fcmla(z21.VnH(), z31.VnH(), z6.VnH(), 2, 180);
+
+    __ movprfx(z16, z6);
+    __ fcmla(z16.VnS(), z11.VnS(), z6.VnS(), 1, 270);
+
+    __ movprfx(z15.VnH(), p6.Merging(), z16.VnH());
+    __ fcpy(z15.VnH(), p6.Merging(), 1.25);
+
+    __ movprfx(z1, z14);
+    __ fcvt(z1.VnD(), p2.Merging(), z4.VnH());
+
+    __ movprfx(z25.VnD(), p6.Merging(), z1.VnD());
+    __ fcvt(z25.VnD(), p6.Merging(), z1.VnS());
+
+    __ movprfx(z18.VnS(), p2.Merging(), z2.VnS());
+    __ fcvt(z18.VnH(), p2.Merging(), z7.VnS());
+
+    __ movprfx(z21.VnD(), p5.Zeroing(), z26.VnD());
+    __ fcvt(z21.VnH(), p5.Merging(), z26.VnD());
+
+    __ movprfx(z12.VnD(), p1.Merging(), z18.VnD());
+    __ fcvtzs(z12.VnD(), p1.Merging(), z18.VnH());
+
+    __ movprfx(z3.VnS(), p2.Merging(), z0.VnS());
+    __ fcvtzs(z3.VnS(), p2.Merging(), z26.VnS());
+
+    __ movprfx(z21.VnS(), p4.Merging(), z7.VnS());
+    __ fcvtzs(z21.VnS(), p4.Merging(), z7.VnH());
+
+    __ movprfx(z16.VnD(), p3.Zeroing(), z4.VnD());
+    __ fcvtzs(z16.VnS(), p3.Merging(), z28.VnD());
+
+    __ movprfx(z31.VnD(), p4.Merging(), z1.VnD());
+    __ fcvtzu(z31.VnD(), p4.Merging(), z1.VnH());
+
+    __ movprfx(z23.VnH(), p0.Zeroing(), z28.VnH());
+    __ fcvtzu(z23.VnH(), p0.Merging(), z28.VnH());
+
+    __ movprfx(z2, z12);
+    __ fcvtzu(z2.VnD(), p3.Merging(), z28.VnS());
+
+    __ movprfx(z4, z7);
+    __ fcvtzu(z4.VnS(), p7.Merging(), z16.VnD());
+
+    __ movprfx(z13.VnS(), p3.Zeroing(), z23.VnS());
+    __ fdiv(z13.VnS(), p3.Merging(), z13.VnS(), z23.VnS());
+
+    __ movprfx(z6.VnD(), p1.Zeroing(), z16.VnD());
+    __ fdivr(z6.VnD(), p1.Merging(), z6.VnD(), z5.VnD());
+
+    __ movprfx(z31, z23);
+    __ fmad(z31.VnS(), p5.Merging(), z23.VnS(), z11.VnS());
+
+    __ movprfx(z14.VnH(), p7.Merging(), z21.VnH());
+    __ fmax(z14.VnH(), p7.Merging(), z14.VnH(), 0.0);
+
+    __ movprfx(z17.VnS(), p4.Merging(), z9.VnS());
+    __ fmax(z17.VnS(), p4.Merging(), z17.VnS(), z9.VnS());
+
+    __ movprfx(z1.VnS(), p3.Zeroing(), z30.VnS());
+    __ fmaxnm(z1.VnS(), p3.Merging(), z1.VnS(), 0.0);
+
+    __ movprfx(z10.VnD(), p1.Zeroing(), z17.VnD());
+    __ fmaxnm(z10.VnD(), p1.Merging(), z10.VnD(), z17.VnD());
+
+    __ movprfx(z3, z13);
+    __ fmin(z3.VnS(), p0.Merging(), z3.VnS(), 0.0);
+
+    __ movprfx(z15, z21);
+    __ fmin(z15.VnS(), p4.Merging(), z15.VnS(), z21.VnS());
+
+    __ movprfx(z30.VnH(), p7.Zeroing(), z25.VnH());
+    __ fminnm(z30.VnH(), p7.Merging(), z30.VnH(), 0.0);
+
+    __ movprfx(z31, z15);
+    __ fminnm(z31.VnD(), p5.Merging(), z31.VnD(), z25.VnD());
+
+    __ movprfx(z27, z28);
+    __ fmla(z27.VnD(), z28.VnD(), z12.VnD(), 1);
+
+    __ movprfx(z26.VnH(), p6.Zeroing(), z13.VnH());
+    __ fmla(z26.VnH(), p6.Merging(), z13.VnH(), z7.VnH());
+
+    __ movprfx(z26, z10);
+    __ fmla(z26.VnH(), z10.VnH(), z1.VnH(), 7);
+
+    __ movprfx(z0, z1);
+    __ fmla(z0.VnS(), z25.VnS(), z1.VnS(), 3);
+
+    __ movprfx(z7, z3);
+    __ fmls(z7.VnD(), z30.VnD(), z3.VnD(), 1);
+
+    __ movprfx(z1, z24);
+    __ fmls(z1.VnD(), p5.Merging(), z20.VnD(), z24.VnD());
+
+    __ movprfx(z19, z18);
+    __ fmls(z19.VnH(), z18.VnH(), z7.VnH(), 4);
+
+    __ movprfx(z0, z26);
+    __ fmls(z0.VnS(), z17.VnS(), z4.VnS(), 3);
+
+    __ movprfx(z19.VnS(), p7.Zeroing(), z6.VnS());
+    __ fmov(z19.VnS(), p7.Merging(), 0.0);
+
+    __ movprfx(z21, z15);
+    __ fmov(z21.VnH(), p7.Merging(), 2.5);
+
+    __ movprfx(z23, z18);
+    __ fmsb(z23.VnS(), p4.Merging(), z1.VnS(), z7.VnS());
+
+    __ movprfx(z8, z28);
+    __ fmul(z8.VnS(), p4.Merging(), z8.VnS(), 2.0);
+
+    __ movprfx(z6.VnD(), p6.Merging(), z27.VnD());
+    __ fmul(z6.VnD(), p6.Merging(), z6.VnD(), z27.VnD());
+
+    __ movprfx(z6.VnH(), p0.Merging(), z19.VnH());
+    __ fmulx(z6.VnH(), p0.Merging(), z6.VnH(), z19.VnH());
+
+    __ movprfx(z5.VnH(), p0.Merging(), z1.VnH());
+    __ fneg(z5.VnH(), p0.Merging(), z1.VnH());
+
+    __ movprfx(z22.VnD(), p4.Zeroing(), z24.VnD());
+    __ fnmad(z22.VnD(), p4.Merging(), z24.VnD(), z12.VnD());
+
+    __ movprfx(z5.VnS(), p0.Merging(), z29.VnS());
+    __ fnmla(z5.VnS(), p0.Merging(), z17.VnS(), z29.VnS());
+
+    __ movprfx(z5, z3);
+    __ fnmls(z5.VnD(), p5.Merging(), z3.VnD(), z2.VnD());
+
+    __ movprfx(z9.VnD(), p2.Zeroing(), z7.VnD());
+    __ fnmsb(z9.VnD(), p2.Merging(), z7.VnD(), z23.VnD());
+
+    // Note that frecpe and frecps _cannot_ take movprfx.
+    __ movprfx(z12.VnH(), p1.Zeroing(), z17.VnH());
+    __ frecpx(z12.VnH(), p1.Merging(), z4.VnH());
+
+    __ movprfx(z28.VnS(), p4.Zeroing(), z27.VnS());
+    __ frinta(z28.VnS(), p4.Merging(), z24.VnS());
+
+    __ movprfx(z7.VnD(), p7.Merging(), z25.VnD());
+    __ frinti(z7.VnD(), p7.Merging(), z25.VnD());
+
+    __ movprfx(z10, z21);
+    __ frintm(z10.VnD(), p5.Merging(), z26.VnD());
+
+    __ movprfx(z25, z21);
+    __ frintn(z25.VnH(), p4.Merging(), z1.VnH());
+
+    __ movprfx(z25, z9);
+    __ frintp(z25.VnH(), p1.Merging(), z9.VnH());
+
+    __ movprfx(z30, z16);
+    __ frintx(z30.VnS(), p1.Merging(), z16.VnS());
+
+    __ movprfx(z0.VnD(), p5.Merging(), z9.VnD());
+    __ frintz(z0.VnD(), p5.Merging(), z23.VnD());
+
+    __ movprfx(z11.VnD(), p7.Merging(), z2.VnD());
+    __ fscale(z11.VnD(), p7.Merging(), z11.VnD(), z2.VnD());
+
+    __ movprfx(z23.VnS(), p4.Merging(), z17.VnS());
+    __ fsqrt(z23.VnS(), p4.Merging(), z10.VnS());
+
+    __ movprfx(z0.VnD(), p2.Merging(), z26.VnD());
+    __ fsub(z0.VnD(), p2.Merging(), z0.VnD(), 1.0);
+
+    __ movprfx(z28.VnD(), p1.Zeroing(), z16.VnD());
+    __ fsub(z28.VnD(), p1.Merging(), z28.VnD(), z16.VnD());
+
+    __ movprfx(z22, z27);
+    __ fsubr(z22.VnD(), p4.Merging(), z22.VnD(), 1.0);
+
+    __ movprfx(z4.VnS(), p2.Merging(), z26.VnS());
+    __ fsubr(z4.VnS(), p2.Merging(), z4.VnS(), z26.VnS());
+
+    // Note that ftsmul and ftssel _cannot_ take movprfx.
+    __ movprfx(z10, z4);
+    __ ftmad(z10.VnS(), z10.VnS(), z4.VnS(), 2);
+
+    __ movprfx(z2, z16);
+    __ scvtf(z2.VnD(), p1.Merging(), z16.VnS());
+
+    __ movprfx(z10, z20);
+    __ scvtf(z10.VnD(), p5.Merging(), z20.VnD());
+
+    __ movprfx(z29, z28);
+    __ scvtf(z29.VnS(), p0.Merging(), z31.VnD());
+
+    __ movprfx(z26.VnD(), p3.Merging(), z13.VnD());
+    __ scvtf(z26.VnH(), p3.Merging(), z5.VnD());
+
+    __ movprfx(z7.VnD(), p3.Zeroing(), z26.VnD());
+    __ ucvtf(z7.VnD(), p3.Merging(), z26.VnS());
+
+    __ movprfx(z13, z17);
+    __ ucvtf(z13.VnD(), p7.Merging(), z17.VnD());
+
+    __ movprfx(z24.VnD(), p1.Merging(), z31.VnD());
+    __ ucvtf(z24.VnS(), p1.Merging(), z18.VnD());
+
+    __ movprfx(z17.VnD(), p4.Merging(), z22.VnD());
+    __ ucvtf(z17.VnH(), p4.Merging(), z4.VnD());
+  }
+  assm.FinalizeCode();
+
+  CheckAndMaybeDisassembleMovprfxPairs(assm.GetBuffer(), true);
+}
+
+
+}  // namespace aarch64
+}  // namespace vixl
diff --git a/test/aarch64/test-assembler-aarch64.cc b/test/aarch64/test-assembler-aarch64.cc
index c4696e5..e23bd8c 100644
--- a/test/aarch64/test-assembler-aarch64.cc
+++ b/test/aarch64/test-assembler-aarch64.cc
@@ -1531,8 +1531,8 @@
 static void TbzRangePoolLimitHelper(TestBranchSignature test_branch) {
   const int kTbzRange = 32768;
   const int kNumLdrLiteral = kTbzRange / 4;
-  const int fuzzRange = 2;
-  for (int n = kNumLdrLiteral - fuzzRange; n <= kNumLdrLiteral + fuzzRange;
+  const int fuzz_range = 2;
+  for (int n = kNumLdrLiteral - fuzz_range; n <= kNumLdrLiteral + fuzz_range;
        ++n) {
     for (int margin = -32; margin < 32; margin += 4) {
       SETUP();
@@ -4113,6 +4113,26 @@
   }
 }
 
+static const PrefetchOperation kPrfmOperations[] = {PLDL1KEEP,
+                                                    PLDL1STRM,
+                                                    PLDL2KEEP,
+                                                    PLDL2STRM,
+                                                    PLDL3KEEP,
+                                                    PLDL3STRM,
+
+                                                    PLIL1KEEP,
+                                                    PLIL1STRM,
+                                                    PLIL2KEEP,
+                                                    PLIL2STRM,
+                                                    PLIL3KEEP,
+                                                    PLIL3STRM,
+
+                                                    PSTL1KEEP,
+                                                    PSTL1STRM,
+                                                    PSTL2KEEP,
+                                                    PSTL2STRM,
+                                                    PSTL3KEEP,
+                                                    PSTL3STRM};
 
 TEST(prfm_offset) {
   SETUP();
@@ -4121,15 +4141,18 @@
   // The address used in prfm doesn't have to be valid.
   __ Mov(x0, 0x0123456789abcdef);
 
-  for (int i = 0; i < (1 << ImmPrefetchOperation_width); i++) {
+  for (int op = 0; op < (1 << ImmPrefetchOperation_width); op++) {
     // Unallocated prefetch operations are ignored, so test all of them.
-    PrefetchOperation op = static_cast<PrefetchOperation>(i);
+    // We have to use the Assembler directly for this.
+    ExactAssemblyScope guard(&masm, 3 * kInstructionSize);
+    __ prfm(op, MemOperand(x0));
+    __ prfm(op, MemOperand(x0, 8));
+    __ prfm(op, MemOperand(x0, 32760));
+  }
 
-    __ Prfm(op, MemOperand(x0));
-    __ Prfm(op, MemOperand(x0, 8));
-    __ Prfm(op, MemOperand(x0, 32760));
+  for (PrefetchOperation op : kPrfmOperations) {
+    // Also test named operations.
     __ Prfm(op, MemOperand(x0, 32768));
-
     __ Prfm(op, MemOperand(x0, 1));
     __ Prfm(op, MemOperand(x0, 9));
     __ Prfm(op, MemOperand(x0, 255));
@@ -4167,14 +4190,21 @@
   __ Mov(x17, -255);
   __ Mov(x18, 0xfedcba9876543210);
 
-  for (int i = 0; i < (1 << ImmPrefetchOperation_width); i++) {
+  for (int op = 0; op < (1 << ImmPrefetchOperation_width); op++) {
     // Unallocated prefetch operations are ignored, so test all of them.
-    PrefetchOperation op = static_cast<PrefetchOperation>(i);
+    // We have to use the Assembler directly for this.
+    ExactAssemblyScope guard(&masm, inputs.GetCount() * kInstructionSize);
+    CPURegList loop = inputs;
+    while (!loop.IsEmpty()) {
+      __ prfm(op, MemOperand(x0, Register(loop.PopLowestIndex())));
+    }
+  }
 
+  for (PrefetchOperation op : kPrfmOperations) {
+    // Also test named operations.
     CPURegList loop = inputs;
     while (!loop.IsEmpty()) {
       Register input(loop.PopLowestIndex());
-      __ Prfm(op, MemOperand(x0, input));
       __ Prfm(op, MemOperand(x0, input, UXTW));
       __ Prfm(op, MemOperand(x0, input, UXTW, 3));
       __ Prfm(op, MemOperand(x0, input, LSL));
@@ -4197,15 +4227,19 @@
   SETUP();
   START();
 
-  for (int i = 0; i < (1 << ImmPrefetchOperation_width); i++) {
+  for (int op = 0; op < (1 << ImmPrefetchOperation_width); op++) {
     // Unallocated prefetch operations are ignored, so test all of them.
-    PrefetchOperation op = static_cast<PrefetchOperation>(i);
-
-    ExactAssemblyScope scope(&masm, 7 * kInstructionSize);
-    // The address used in prfm doesn't have to be valid.
+    // We have to use the Assembler directly for this.
+    ExactAssemblyScope guard(&masm, 3 * kInstructionSize);
     __ prfm(op, INT64_C(0));
     __ prfm(op, 1);
     __ prfm(op, -1);
+  }
+
+  for (PrefetchOperation op : kPrfmOperations) {
+    // Also test named operations.
+    ExactAssemblyScope guard(&masm, 4 * kInstructionSize);
+    // The address used in prfm doesn't have to be valid.
     __ prfm(op, 1000);
     __ prfm(op, -1000);
     __ prfm(op, 0x3ffff);
@@ -4237,10 +4271,16 @@
   }
   __ Bind(&end_of_pool_before);
 
-  for (int i = 0; i < (1 << ImmPrefetchOperation_width); i++) {
+  for (int op = 0; op < (1 << ImmPrefetchOperation_width); op++) {
     // Unallocated prefetch operations are ignored, so test all of them.
-    PrefetchOperation op = static_cast<PrefetchOperation>(i);
+    // We have to use the Assembler directly for this.
+    ExactAssemblyScope guard(&masm, 2 * kInstructionSize);
+    __ prfm(op, &before);
+    __ prfm(op, &after);
+  }
 
+  for (PrefetchOperation op : kPrfmOperations) {
+    // Also test named operations.
     ExactAssemblyScope guard(&masm, 2 * kInstructionSize);
     __ prfm(op, &before);
     __ prfm(op, &after);
@@ -4268,10 +4308,7 @@
   // The address used in prfm doesn't have to be valid.
   __ Mov(x0, 0x0123456789abcdef);
 
-  for (int i = 0; i < (1 << ImmPrefetchOperation_width); i++) {
-    // Unallocated prefetch operations are ignored, so test all of them.
-    PrefetchOperation op = static_cast<PrefetchOperation>(i);
-
+  for (PrefetchOperation op : kPrfmOperations) {
     __ Prfm(op, MemOperand(x0, 0x40000));
     __ Prfm(op, MemOperand(x0, -0x40001));
     __ Prfm(op, MemOperand(x0, UINT64_C(0x5555555555555555)));
@@ -4319,9 +4356,25 @@
   }
   __ Bind(&end_of_pool_before);
 
-  for (int i = 0; i < (1 << ImmPrefetchOperation_width); i++) {
+  for (int op = 0; op < (1 << ImmPrefetchOperation_width); op++) {
     // Unallocated prefetch operations are ignored, so test all of them.
-    PrefetchOperation op = static_cast<PrefetchOperation>(i);
+    ExactAssemblyScope scope(&masm, 10 * kInstructionSize);
+
+    __ prfm(op, &before_x);
+    __ prfm(op, &before_w);
+    __ prfm(op, &before_sx);
+    __ prfm(op, &before_d);
+    __ prfm(op, &before_s);
+
+    __ prfm(op, &after_x);
+    __ prfm(op, &after_w);
+    __ prfm(op, &after_sx);
+    __ prfm(op, &after_d);
+    __ prfm(op, &after_s);
+  }
+
+  for (PrefetchOperation op : kPrfmOperations) {
+    // Also test named operations.
     ExactAssemblyScope scope(&masm, 10 * kInstructionSize);
 
     __ prfm(op, &before_x);
@@ -6681,12 +6734,10 @@
 
 TEST(system_msr) {
   // All FPCR fields that must be implemented: AHP, DN, FZ, RMode
-  const uint64_t fpcr_core = 0x07c00000;
-
-  // All FPCR fields (including fields which may be read-as-zero):
-  //  Stride, Len
-  //  IDE, IXE, UFE, OFE, DZE, IOE
-  const uint64_t fpcr_all = fpcr_core | 0x00379f00;
+  const uint64_t fpcr_core = (0b1 << 26) |  // AHP
+                             (0b1 << 25) |  // DN
+                             (0b1 << 24) |  // FZ
+                             (0b11 << 22);  // RMode
 
   SETUP();
 
@@ -6719,6 +6770,18 @@
   __ Msr(FPCR, x8);
   __ Mrs(x8, FPCR);
 
+#ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
+  // All FPCR fields that aren't `RES0`:
+  const uint64_t fpcr_all = fpcr_core | (0b11 << 20) |  // Stride
+                            (0b1 << 19) |               // FZ16
+                            (0b111 << 16) |             // Len
+                            (0b1 << 15) |               // IDE
+                            (0b1 << 12) |               // IXE
+                            (0b1 << 11) |               // UFE
+                            (0b1 << 10) |               // OFE
+                            (0b1 << 9) |                // DZE
+                            (0b1 << 8);                 // IOE
+
   // All FPCR fields, including optional ones. This part of the test doesn't
   // achieve much other than ensuring that supported fields can be cleared by
   // the next test.
@@ -6734,6 +6797,7 @@
   __ Mov(x10, ~fpcr_all);
   __ Msr(FPCR, x10);
   __ Mrs(x10, FPCR);
+#endif
 
   END();
 
@@ -6744,8 +6808,11 @@
     ASSERT_EQUAL_64(8, x7);
 
     ASSERT_EQUAL_64(fpcr_core, x8);
+
+#ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
     ASSERT_EQUAL_64(fpcr_core, x9);
     ASSERT_EQUAL_64(0, x10);
+#endif
   }
 }
 
@@ -7257,7 +7324,7 @@
   __ Mov(x0, 0);
   __ Mov(x1, literal_base);
   for (unsigned i = 2; i < x30.GetCode(); i++) {
-    __ Add(Register::GetXRegFromCode(i), Register::GetXRegFromCode(i - 1), x1);
+    __ Add(XRegister(i), XRegister(i - 1), x1);
   }
   before.Dump(&masm);
 
@@ -7327,7 +7394,7 @@
   __ Mov(x0, 0);
   __ Mov(x1, literal_base);
   for (int i = 2; i < 30; i++) {
-    __ Add(Register::GetXRegFromCode(i), Register::GetXRegFromCode(i - 1), x1);
+    __ Add(XRegister(i), XRegister(i - 1), x1);
   }
   before.Dump(&masm);
 
@@ -8625,7 +8692,7 @@
     if (active_w_slots > requested_w_slots) {
       __ Drop((active_w_slots - requested_w_slots) * kWRegSizeInBytes);
       // Bump the number of active W-sized slots back to where it should be,
-      // and fill the empty space with a dummy value.
+      // and fill the empty space with a placeholder value.
       do {
         stack[active_w_slots--] = 0xdeadbeef;
       } while (active_w_slots > requested_w_slots);
@@ -9746,47 +9813,38 @@
 #endif
 
 TEST(cas_casa_casl_casal_w) {
-  uint64_t data1[] = {0x01234567, 0};
-  uint64_t data2[] = {0x01234567, 0};
-  uint64_t data3[] = {0x01234567, 0};
-  uint64_t data4[] = {0x01234567, 0};
-  uint64_t data5[] = {0x01234567, 0};
-  uint64_t data6[] = {0x01234567, 0};
-  uint64_t data7[] = {0x01234567, 0};
-  uint64_t data8[] = {0x01234567, 0};
-
-  uint64_t* data1_aligned = AlignUp(data1, kXRegSizeInBytes * 2);
-  uint64_t* data2_aligned = AlignUp(data2, kXRegSizeInBytes * 2);
-  uint64_t* data3_aligned = AlignUp(data3, kXRegSizeInBytes * 2);
-  uint64_t* data4_aligned = AlignUp(data4, kXRegSizeInBytes * 2);
-  uint64_t* data5_aligned = AlignUp(data5, kXRegSizeInBytes * 2);
-  uint64_t* data6_aligned = AlignUp(data6, kXRegSizeInBytes * 2);
-  uint64_t* data7_aligned = AlignUp(data7, kXRegSizeInBytes * 2);
-  uint64_t* data8_aligned = AlignUp(data8, kXRegSizeInBytes * 2);
+  uint64_t data1 = 0x0123456789abcdef;
+  uint64_t data2 = 0x0123456789abcdef;
+  uint64_t data3 = 0x0123456789abcdef;
+  uint64_t data4 = 0x0123456789abcdef;
+  uint64_t data5 = 0x0123456789abcdef;
+  uint64_t data6 = 0x0123456789abcdef;
+  uint64_t data7 = 0x0123456789abcdef;
+  uint64_t data8 = 0x0123456789abcdef;
 
   SETUP_WITH_FEATURES(CPUFeatures::kAtomics);
 
   START();
 
-  __ Mov(x21, reinterpret_cast<uintptr_t>(data1_aligned));
-  __ Mov(x22, reinterpret_cast<uintptr_t>(data2_aligned));
-  __ Mov(x23, reinterpret_cast<uintptr_t>(data3_aligned));
-  __ Mov(x24, reinterpret_cast<uintptr_t>(data4_aligned));
-  __ Mov(x25, reinterpret_cast<uintptr_t>(data5_aligned));
-  __ Mov(x26, reinterpret_cast<uintptr_t>(data6_aligned));
-  __ Mov(x27, reinterpret_cast<uintptr_t>(data7_aligned));
-  __ Mov(x28, reinterpret_cast<uintptr_t>(data8_aligned));
+  __ Mov(x21, reinterpret_cast<uintptr_t>(&data1) + 0);
+  __ Mov(x22, reinterpret_cast<uintptr_t>(&data2) + 0);
+  __ Mov(x23, reinterpret_cast<uintptr_t>(&data3) + 4);
+  __ Mov(x24, reinterpret_cast<uintptr_t>(&data4) + 4);
+  __ Mov(x25, reinterpret_cast<uintptr_t>(&data5) + 0);
+  __ Mov(x26, reinterpret_cast<uintptr_t>(&data6) + 0);
+  __ Mov(x27, reinterpret_cast<uintptr_t>(&data7) + 4);
+  __ Mov(x28, reinterpret_cast<uintptr_t>(&data8) + 4);
 
   __ Mov(x0, 0xffffffff);
 
-  __ Mov(x1, 0x76543210);
-  __ Mov(x2, 0x01234567);
-  __ Mov(x3, 0x76543210);
-  __ Mov(x4, 0x01234567);
-  __ Mov(x5, 0x76543210);
-  __ Mov(x6, 0x01234567);
-  __ Mov(x7, 0x76543210);
-  __ Mov(x8, 0x01234567);
+  __ Mov(x1, 0xfedcba9876543210);
+  __ Mov(x2, 0x0123456789abcdef);
+  __ Mov(x3, 0xfedcba9876543210);
+  __ Mov(x4, 0x89abcdef01234567);
+  __ Mov(x5, 0xfedcba9876543210);
+  __ Mov(x6, 0x0123456789abcdef);
+  __ Mov(x7, 0xfedcba9876543210);
+  __ Mov(x8, 0x89abcdef01234567);
 
   __ Cas(w1, w0, MemOperand(x21));
   __ Cas(w2, w0, MemOperand(x22));
@@ -9802,57 +9860,48 @@
   if (CAN_RUN()) {
     RUN();
 
-    ASSERT_EQUAL_64(0x01234567, x1);
-    ASSERT_EQUAL_64(0x01234567, x2);
+    ASSERT_EQUAL_64(0x89abcdef, x1);
+    ASSERT_EQUAL_64(0x89abcdef, x2);
     ASSERT_EQUAL_64(0x01234567, x3);
     ASSERT_EQUAL_64(0x01234567, x4);
-    ASSERT_EQUAL_64(0x01234567, x5);
-    ASSERT_EQUAL_64(0x01234567, x6);
+    ASSERT_EQUAL_64(0x89abcdef, x5);
+    ASSERT_EQUAL_64(0x89abcdef, x6);
     ASSERT_EQUAL_64(0x01234567, x7);
     ASSERT_EQUAL_64(0x01234567, x8);
 
-    ASSERT_EQUAL_64(0x01234567, data1[0]);
-    ASSERT_EQUAL_64(0xffffffff, data2[0]);
-    ASSERT_EQUAL_64(0x01234567, data3[0]);
-    ASSERT_EQUAL_64(0xffffffff, data4[0]);
-    ASSERT_EQUAL_64(0x01234567, data5[0]);
-    ASSERT_EQUAL_64(0xffffffff, data6[0]);
-    ASSERT_EQUAL_64(0x01234567, data7[0]);
-    ASSERT_EQUAL_64(0xffffffff, data8[0]);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data1);
+    ASSERT_EQUAL_64(0x01234567ffffffff, data2);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data3);
+    ASSERT_EQUAL_64(0xffffffff89abcdef, data4);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data5);
+    ASSERT_EQUAL_64(0x01234567ffffffff, data6);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data7);
+    ASSERT_EQUAL_64(0xffffffff89abcdef, data8);
   }
 }
 
 TEST(cas_casa_casl_casal_x) {
-  uint64_t data1[] = {0x0123456789abcdef, 0};
-  uint64_t data2[] = {0x0123456789abcdef, 0};
-  uint64_t data3[] = {0x0123456789abcdef, 0};
-  uint64_t data4[] = {0x0123456789abcdef, 0};
-  uint64_t data5[] = {0x0123456789abcdef, 0};
-  uint64_t data6[] = {0x0123456789abcdef, 0};
-  uint64_t data7[] = {0x0123456789abcdef, 0};
-  uint64_t data8[] = {0x0123456789abcdef, 0};
-
-  uint64_t* data1_aligned = AlignUp(data1, kXRegSizeInBytes * 2);
-  uint64_t* data2_aligned = AlignUp(data2, kXRegSizeInBytes * 2);
-  uint64_t* data3_aligned = AlignUp(data3, kXRegSizeInBytes * 2);
-  uint64_t* data4_aligned = AlignUp(data4, kXRegSizeInBytes * 2);
-  uint64_t* data5_aligned = AlignUp(data5, kXRegSizeInBytes * 2);
-  uint64_t* data6_aligned = AlignUp(data6, kXRegSizeInBytes * 2);
-  uint64_t* data7_aligned = AlignUp(data7, kXRegSizeInBytes * 2);
-  uint64_t* data8_aligned = AlignUp(data8, kXRegSizeInBytes * 2);
+  uint64_t data1 = 0x0123456789abcdef;
+  uint64_t data2 = 0x0123456789abcdef;
+  uint64_t data3 = 0x0123456789abcdef;
+  uint64_t data4 = 0x0123456789abcdef;
+  uint64_t data5 = 0x0123456789abcdef;
+  uint64_t data6 = 0x0123456789abcdef;
+  uint64_t data7 = 0x0123456789abcdef;
+  uint64_t data8 = 0x0123456789abcdef;
 
   SETUP_WITH_FEATURES(CPUFeatures::kAtomics);
 
   START();
 
-  __ Mov(x21, reinterpret_cast<uintptr_t>(data1_aligned));
-  __ Mov(x22, reinterpret_cast<uintptr_t>(data2_aligned));
-  __ Mov(x23, reinterpret_cast<uintptr_t>(data3_aligned));
-  __ Mov(x24, reinterpret_cast<uintptr_t>(data4_aligned));
-  __ Mov(x25, reinterpret_cast<uintptr_t>(data5_aligned));
-  __ Mov(x26, reinterpret_cast<uintptr_t>(data6_aligned));
-  __ Mov(x27, reinterpret_cast<uintptr_t>(data7_aligned));
-  __ Mov(x28, reinterpret_cast<uintptr_t>(data8_aligned));
+  __ Mov(x21, reinterpret_cast<uintptr_t>(&data1));
+  __ Mov(x22, reinterpret_cast<uintptr_t>(&data2));
+  __ Mov(x23, reinterpret_cast<uintptr_t>(&data3));
+  __ Mov(x24, reinterpret_cast<uintptr_t>(&data4));
+  __ Mov(x25, reinterpret_cast<uintptr_t>(&data5));
+  __ Mov(x26, reinterpret_cast<uintptr_t>(&data6));
+  __ Mov(x27, reinterpret_cast<uintptr_t>(&data7));
+  __ Mov(x28, reinterpret_cast<uintptr_t>(&data8));
 
   __ Mov(x0, 0xffffffffffffffff);
 
@@ -9888,59 +9937,50 @@
     ASSERT_EQUAL_64(0x0123456789abcdef, x7);
     ASSERT_EQUAL_64(0x0123456789abcdef, x8);
 
-    ASSERT_EQUAL_64(0x0123456789abcdef, data1[0]);
-    ASSERT_EQUAL_64(0xffffffffffffffff, data2[0]);
-    ASSERT_EQUAL_64(0x0123456789abcdef, data3[0]);
-    ASSERT_EQUAL_64(0xffffffffffffffff, data4[0]);
-    ASSERT_EQUAL_64(0x0123456789abcdef, data5[0]);
-    ASSERT_EQUAL_64(0xffffffffffffffff, data6[0]);
-    ASSERT_EQUAL_64(0x0123456789abcdef, data7[0]);
-    ASSERT_EQUAL_64(0xffffffffffffffff, data8[0]);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data1);
+    ASSERT_EQUAL_64(0xffffffffffffffff, data2);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data3);
+    ASSERT_EQUAL_64(0xffffffffffffffff, data4);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data5);
+    ASSERT_EQUAL_64(0xffffffffffffffff, data6);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data7);
+    ASSERT_EQUAL_64(0xffffffffffffffff, data8);
   }
 }
 
 TEST(casb_casab_caslb_casalb) {
-  uint64_t data1[] = {0x01234567, 0};
-  uint64_t data2[] = {0x01234567, 0};
-  uint64_t data3[] = {0x01234567, 0};
-  uint64_t data4[] = {0x01234567, 0};
-  uint64_t data5[] = {0x01234567, 0};
-  uint64_t data6[] = {0x01234567, 0};
-  uint64_t data7[] = {0x01234567, 0};
-  uint64_t data8[] = {0x01234567, 0};
-
-  uint64_t* data1_aligned = AlignUp(data1, kXRegSizeInBytes * 2);
-  uint64_t* data2_aligned = AlignUp(data2, kXRegSizeInBytes * 2);
-  uint64_t* data3_aligned = AlignUp(data3, kXRegSizeInBytes * 2);
-  uint64_t* data4_aligned = AlignUp(data4, kXRegSizeInBytes * 2);
-  uint64_t* data5_aligned = AlignUp(data5, kXRegSizeInBytes * 2);
-  uint64_t* data6_aligned = AlignUp(data6, kXRegSizeInBytes * 2);
-  uint64_t* data7_aligned = AlignUp(data7, kXRegSizeInBytes * 2);
-  uint64_t* data8_aligned = AlignUp(data8, kXRegSizeInBytes * 2);
+  uint32_t data1 = 0x01234567;
+  uint32_t data2 = 0x01234567;
+  uint32_t data3 = 0x01234567;
+  uint32_t data4 = 0x01234567;
+  uint32_t data5 = 0x01234567;
+  uint32_t data6 = 0x01234567;
+  uint32_t data7 = 0x01234567;
+  uint32_t data8 = 0x01234567;
 
   SETUP_WITH_FEATURES(CPUFeatures::kAtomics);
 
   START();
 
-  __ Mov(x21, reinterpret_cast<uintptr_t>(data1_aligned));
-  __ Mov(x22, reinterpret_cast<uintptr_t>(data2_aligned));
-  __ Mov(x23, reinterpret_cast<uintptr_t>(data3_aligned));
-  __ Mov(x24, reinterpret_cast<uintptr_t>(data4_aligned));
-  __ Mov(x25, reinterpret_cast<uintptr_t>(data5_aligned));
-  __ Mov(x26, reinterpret_cast<uintptr_t>(data6_aligned));
-  __ Mov(x27, reinterpret_cast<uintptr_t>(data7_aligned));
-  __ Mov(x28, reinterpret_cast<uintptr_t>(data8_aligned));
+  __ Mov(x21, reinterpret_cast<uintptr_t>(&data1) + 0);
+  __ Mov(x22, reinterpret_cast<uintptr_t>(&data2) + 0);
+  __ Mov(x23, reinterpret_cast<uintptr_t>(&data3) + 1);
+  __ Mov(x24, reinterpret_cast<uintptr_t>(&data4) + 1);
+  __ Mov(x25, reinterpret_cast<uintptr_t>(&data5) + 2);
+  __ Mov(x26, reinterpret_cast<uintptr_t>(&data6) + 2);
+  __ Mov(x27, reinterpret_cast<uintptr_t>(&data7) + 3);
+  __ Mov(x28, reinterpret_cast<uintptr_t>(&data8) + 3);
 
-  __ Mov(x0, 0xffffffff);
+  __ Mov(x0, 0xff);
 
   __ Mov(x1, 0x76543210);
   __ Mov(x2, 0x01234567);
   __ Mov(x3, 0x76543210);
-  __ Mov(x4, 0x01234567);
+  __ Mov(x4, 0x67012345);
   __ Mov(x5, 0x76543210);
-  __ Mov(x6, 0x01234567);
+  __ Mov(x6, 0x45670123);
   __ Mov(x7, 0x76543210);
-  __ Mov(x8, 0x01234567);
+  __ Mov(x8, 0x23456701);
 
   __ Casb(w1, w0, MemOperand(x21));
   __ Casb(w2, w0, MemOperand(x22));
@@ -9958,66 +9998,57 @@
 
     ASSERT_EQUAL_64(0x00000067, x1);
     ASSERT_EQUAL_64(0x00000067, x2);
-    ASSERT_EQUAL_64(0x00000067, x3);
-    ASSERT_EQUAL_64(0x00000067, x4);
-    ASSERT_EQUAL_64(0x00000067, x5);
-    ASSERT_EQUAL_64(0x00000067, x6);
-    ASSERT_EQUAL_64(0x00000067, x7);
-    ASSERT_EQUAL_64(0x00000067, x8);
+    ASSERT_EQUAL_64(0x00000045, x3);
+    ASSERT_EQUAL_64(0x00000045, x4);
+    ASSERT_EQUAL_64(0x00000023, x5);
+    ASSERT_EQUAL_64(0x00000023, x6);
+    ASSERT_EQUAL_64(0x00000001, x7);
+    ASSERT_EQUAL_64(0x00000001, x8);
 
-    ASSERT_EQUAL_64(0x01234567, data1[0]);
-    ASSERT_EQUAL_64(0x012345ff, data2[0]);
-    ASSERT_EQUAL_64(0x01234567, data3[0]);
-    ASSERT_EQUAL_64(0x012345ff, data4[0]);
-    ASSERT_EQUAL_64(0x01234567, data5[0]);
-    ASSERT_EQUAL_64(0x012345ff, data6[0]);
-    ASSERT_EQUAL_64(0x01234567, data7[0]);
-    ASSERT_EQUAL_64(0x012345ff, data8[0]);
+    ASSERT_EQUAL_64(0x01234567, data1);
+    ASSERT_EQUAL_64(0x012345ff, data2);
+    ASSERT_EQUAL_64(0x01234567, data3);
+    ASSERT_EQUAL_64(0x0123ff67, data4);
+    ASSERT_EQUAL_64(0x01234567, data5);
+    ASSERT_EQUAL_64(0x01ff4567, data6);
+    ASSERT_EQUAL_64(0x01234567, data7);
+    ASSERT_EQUAL_64(0xff234567, data8);
   }
 }
 
 TEST(cash_casah_caslh_casalh) {
-  uint64_t data1[] = {0x01234567, 0};
-  uint64_t data2[] = {0x01234567, 0};
-  uint64_t data3[] = {0x01234567, 0};
-  uint64_t data4[] = {0x01234567, 0};
-  uint64_t data5[] = {0x01234567, 0};
-  uint64_t data6[] = {0x01234567, 0};
-  uint64_t data7[] = {0x01234567, 0};
-  uint64_t data8[] = {0x01234567, 0};
-
-  uint64_t* data1_aligned = AlignUp(data1, kXRegSizeInBytes * 2);
-  uint64_t* data2_aligned = AlignUp(data2, kXRegSizeInBytes * 2);
-  uint64_t* data3_aligned = AlignUp(data3, kXRegSizeInBytes * 2);
-  uint64_t* data4_aligned = AlignUp(data4, kXRegSizeInBytes * 2);
-  uint64_t* data5_aligned = AlignUp(data5, kXRegSizeInBytes * 2);
-  uint64_t* data6_aligned = AlignUp(data6, kXRegSizeInBytes * 2);
-  uint64_t* data7_aligned = AlignUp(data7, kXRegSizeInBytes * 2);
-  uint64_t* data8_aligned = AlignUp(data8, kXRegSizeInBytes * 2);
+  uint64_t data1 = 0x0123456789abcdef;
+  uint64_t data2 = 0x0123456789abcdef;
+  uint64_t data3 = 0x0123456789abcdef;
+  uint64_t data4 = 0x0123456789abcdef;
+  uint64_t data5 = 0x0123456789abcdef;
+  uint64_t data6 = 0x0123456789abcdef;
+  uint64_t data7 = 0x0123456789abcdef;
+  uint64_t data8 = 0x0123456789abcdef;
 
   SETUP_WITH_FEATURES(CPUFeatures::kAtomics);
 
   START();
 
-  __ Mov(x21, reinterpret_cast<uintptr_t>(data1_aligned));
-  __ Mov(x22, reinterpret_cast<uintptr_t>(data2_aligned));
-  __ Mov(x23, reinterpret_cast<uintptr_t>(data3_aligned));
-  __ Mov(x24, reinterpret_cast<uintptr_t>(data4_aligned));
-  __ Mov(x25, reinterpret_cast<uintptr_t>(data5_aligned));
-  __ Mov(x26, reinterpret_cast<uintptr_t>(data6_aligned));
-  __ Mov(x27, reinterpret_cast<uintptr_t>(data7_aligned));
-  __ Mov(x28, reinterpret_cast<uintptr_t>(data8_aligned));
+  __ Mov(x21, reinterpret_cast<uintptr_t>(&data1) + 0);
+  __ Mov(x22, reinterpret_cast<uintptr_t>(&data2) + 0);
+  __ Mov(x23, reinterpret_cast<uintptr_t>(&data3) + 2);
+  __ Mov(x24, reinterpret_cast<uintptr_t>(&data4) + 2);
+  __ Mov(x25, reinterpret_cast<uintptr_t>(&data5) + 4);
+  __ Mov(x26, reinterpret_cast<uintptr_t>(&data6) + 4);
+  __ Mov(x27, reinterpret_cast<uintptr_t>(&data7) + 6);
+  __ Mov(x28, reinterpret_cast<uintptr_t>(&data8) + 6);
 
-  __ Mov(x0, 0xffffffff);
+  __ Mov(x0, 0xffff);
 
-  __ Mov(x1, 0x76543210);
-  __ Mov(x2, 0x01234567);
-  __ Mov(x3, 0x76543210);
-  __ Mov(x4, 0x01234567);
-  __ Mov(x5, 0x76543210);
-  __ Mov(x6, 0x01234567);
-  __ Mov(x7, 0x76543210);
-  __ Mov(x8, 0x01234567);
+  __ Mov(x1, 0xfedcba9876543210);
+  __ Mov(x2, 0x0123456789abcdef);
+  __ Mov(x3, 0xfedcba9876543210);
+  __ Mov(x4, 0xcdef0123456789ab);
+  __ Mov(x5, 0xfedcba9876543210);
+  __ Mov(x6, 0x89abcdef01234567);
+  __ Mov(x7, 0xfedcba9876543210);
+  __ Mov(x8, 0x456789abcdef0123);
 
   __ Cash(w1, w0, MemOperand(x21));
   __ Cash(w2, w0, MemOperand(x22));
@@ -10033,80 +10064,71 @@
   if (CAN_RUN()) {
     RUN();
 
-    ASSERT_EQUAL_64(0x00004567, x1);
-    ASSERT_EQUAL_64(0x00004567, x2);
-    ASSERT_EQUAL_64(0x00004567, x3);
-    ASSERT_EQUAL_64(0x00004567, x4);
+    ASSERT_EQUAL_64(0x0000cdef, x1);
+    ASSERT_EQUAL_64(0x0000cdef, x2);
+    ASSERT_EQUAL_64(0x000089ab, x3);
+    ASSERT_EQUAL_64(0x000089ab, x4);
     ASSERT_EQUAL_64(0x00004567, x5);
     ASSERT_EQUAL_64(0x00004567, x6);
-    ASSERT_EQUAL_64(0x00004567, x7);
-    ASSERT_EQUAL_64(0x00004567, x8);
+    ASSERT_EQUAL_64(0x00000123, x7);
+    ASSERT_EQUAL_64(0x00000123, x8);
 
-    ASSERT_EQUAL_64(0x01234567, data1[0]);
-    ASSERT_EQUAL_64(0x0123ffff, data2[0]);
-    ASSERT_EQUAL_64(0x01234567, data3[0]);
-    ASSERT_EQUAL_64(0x0123ffff, data4[0]);
-    ASSERT_EQUAL_64(0x01234567, data5[0]);
-    ASSERT_EQUAL_64(0x0123ffff, data6[0]);
-    ASSERT_EQUAL_64(0x01234567, data7[0]);
-    ASSERT_EQUAL_64(0x0123ffff, data8[0]);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data1);
+    ASSERT_EQUAL_64(0x0123456789abffff, data2);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data3);
+    ASSERT_EQUAL_64(0x01234567ffffcdef, data4);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data5);
+    ASSERT_EQUAL_64(0x0123ffff89abcdef, data6);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data7);
+    ASSERT_EQUAL_64(0xffff456789abcdef, data8);
   }
 }
 
-TEST(casp_caspa_caspl_caspal) {
-  uint64_t data1[] = {0x89abcdef01234567, 0};
-  uint64_t data2[] = {0x89abcdef01234567, 0};
-  uint64_t data3[] = {0x89abcdef01234567, 0};
-  uint64_t data4[] = {0x89abcdef01234567, 0};
-  uint64_t data5[] = {0x89abcdef01234567, 0};
-  uint64_t data6[] = {0x89abcdef01234567, 0};
-  uint64_t data7[] = {0x89abcdef01234567, 0};
-  uint64_t data8[] = {0x89abcdef01234567, 0};
-
-  uint64_t* data1_aligned = AlignUp(data1, kXRegSizeInBytes * 2);
-  uint64_t* data2_aligned = AlignUp(data2, kXRegSizeInBytes * 2);
-  uint64_t* data3_aligned = AlignUp(data3, kXRegSizeInBytes * 2);
-  uint64_t* data4_aligned = AlignUp(data4, kXRegSizeInBytes * 2);
-  uint64_t* data5_aligned = AlignUp(data5, kXRegSizeInBytes * 2);
-  uint64_t* data6_aligned = AlignUp(data6, kXRegSizeInBytes * 2);
-  uint64_t* data7_aligned = AlignUp(data7, kXRegSizeInBytes * 2);
-  uint64_t* data8_aligned = AlignUp(data8, kXRegSizeInBytes * 2);
+TEST(casp_caspa_caspl_caspal_w) {
+  uint64_t data1[] = {0x7766554433221100, 0xffeeddccbbaa9988};
+  uint64_t data2[] = {0x7766554433221100, 0xffeeddccbbaa9988};
+  uint64_t data3[] = {0x7766554433221100, 0xffeeddccbbaa9988};
+  uint64_t data4[] = {0x7766554433221100, 0xffeeddccbbaa9988};
+  uint64_t data5[] = {0x7766554433221100, 0xffeeddccbbaa9988};
+  uint64_t data6[] = {0x7766554433221100, 0xffeeddccbbaa9988};
+  uint64_t data7[] = {0x7766554433221100, 0xffeeddccbbaa9988};
+  uint64_t data8[] = {0x7766554433221100, 0xffeeddccbbaa9988};
 
   SETUP_WITH_FEATURES(CPUFeatures::kAtomics);
 
   START();
 
-  __ Mov(x21, reinterpret_cast<uintptr_t>(data1_aligned));
-  __ Mov(x22, reinterpret_cast<uintptr_t>(data2_aligned));
-  __ Mov(x23, reinterpret_cast<uintptr_t>(data3_aligned));
-  __ Mov(x24, reinterpret_cast<uintptr_t>(data4_aligned));
-  __ Mov(x25, reinterpret_cast<uintptr_t>(data5_aligned));
-  __ Mov(x26, reinterpret_cast<uintptr_t>(data6_aligned));
-  __ Mov(x27, reinterpret_cast<uintptr_t>(data7_aligned));
-  __ Mov(x28, reinterpret_cast<uintptr_t>(data8_aligned));
+  __ Mov(x21, reinterpret_cast<uintptr_t>(data1) + 0);
+  __ Mov(x22, reinterpret_cast<uintptr_t>(data2) + 0);
+  __ Mov(x23, reinterpret_cast<uintptr_t>(data3) + 8);
+  __ Mov(x24, reinterpret_cast<uintptr_t>(data4) + 8);
+  __ Mov(x25, reinterpret_cast<uintptr_t>(data5) + 8);
+  __ Mov(x26, reinterpret_cast<uintptr_t>(data6) + 8);
+  __ Mov(x27, reinterpret_cast<uintptr_t>(data7) + 0);
+  __ Mov(x28, reinterpret_cast<uintptr_t>(data8) + 0);
 
-  __ Mov(x0, 0xffffffff);
-  __ Mov(x1, 0xffffffff);
+  __ Mov(x0, 0xfff00fff);
+  __ Mov(x1, 0xfff11fff);
 
-  __ Mov(x2, 0x76543210);
-  __ Mov(x3, 0xfedcba98);
-  __ Mov(x4, 0x89abcdef);
-  __ Mov(x5, 0x01234567);
+  __ Mov(x2, 0x77665544);
+  __ Mov(x3, 0x33221100);
+  __ Mov(x4, 0x33221100);
+  __ Mov(x5, 0x77665544);
 
-  __ Mov(x6, 0x76543210);
-  __ Mov(x7, 0xfedcba98);
-  __ Mov(x8, 0x89abcdef);
-  __ Mov(x9, 0x01234567);
+  __ Mov(x6, 0xffeeddcc);
+  __ Mov(x7, 0xbbaa9988);
+  __ Mov(x8, 0xbbaa9988);
+  __ Mov(x9, 0xffeeddcc);
 
-  __ Mov(x10, 0x76543210);
-  __ Mov(x11, 0xfedcba98);
-  __ Mov(x12, 0x89abcdef);
-  __ Mov(x13, 0x01234567);
+  __ Mov(x10, 0xffeeddcc);
+  __ Mov(x11, 0xbbaa9988);
+  __ Mov(x12, 0xbbaa9988);
+  __ Mov(x13, 0xffeeddcc);
 
-  __ Mov(x14, 0x76543210);
-  __ Mov(x15, 0xfedcba98);
-  __ Mov(x16, 0x89abcdef);
-  __ Mov(x17, 0x01234567);
+  __ Mov(x14, 0x77665544);
+  __ Mov(x15, 0x33221100);
+  __ Mov(x16, 0x33221100);
+  __ Mov(x17, 0x77665544);
 
   __ Casp(w2, w3, w0, w1, MemOperand(x21));
   __ Casp(w4, w5, w0, w1, MemOperand(x22));
@@ -10122,31 +10144,185 @@
   if (CAN_RUN()) {
     RUN();
 
-    ASSERT_EQUAL_64(0x89abcdef, x2);
-    ASSERT_EQUAL_64(0x01234567, x3);
-    ASSERT_EQUAL_64(0x89abcdef, x4);
-    ASSERT_EQUAL_64(0x01234567, x5);
-    ASSERT_EQUAL_64(0x89abcdef, x6);
-    ASSERT_EQUAL_64(0x01234567, x7);
-    ASSERT_EQUAL_64(0x89abcdef, x8);
-    ASSERT_EQUAL_64(0x01234567, x9);
-    ASSERT_EQUAL_64(0x89abcdef, x10);
-    ASSERT_EQUAL_64(0x01234567, x11);
-    ASSERT_EQUAL_64(0x89abcdef, x12);
-    ASSERT_EQUAL_64(0x01234567, x13);
-    ASSERT_EQUAL_64(0x89abcdef, x14);
-    ASSERT_EQUAL_64(0x01234567, x15);
-    ASSERT_EQUAL_64(0x89abcdef, x16);
-    ASSERT_EQUAL_64(0x01234567, x17);
+    ASSERT_EQUAL_64(0x33221100, x2);
+    ASSERT_EQUAL_64(0x77665544, x3);
+    ASSERT_EQUAL_64(0x33221100, x4);
+    ASSERT_EQUAL_64(0x77665544, x5);
+    ASSERT_EQUAL_64(0xbbaa9988, x6);
+    ASSERT_EQUAL_64(0xffeeddcc, x7);
+    ASSERT_EQUAL_64(0xbbaa9988, x8);
+    ASSERT_EQUAL_64(0xffeeddcc, x9);
+    ASSERT_EQUAL_64(0xbbaa9988, x10);
+    ASSERT_EQUAL_64(0xffeeddcc, x11);
+    ASSERT_EQUAL_64(0xbbaa9988, x12);
+    ASSERT_EQUAL_64(0xffeeddcc, x13);
+    ASSERT_EQUAL_64(0x33221100, x14);
+    ASSERT_EQUAL_64(0x77665544, x15);
+    ASSERT_EQUAL_64(0x33221100, x16);
+    ASSERT_EQUAL_64(0x77665544, x17);
 
-    ASSERT_EQUAL_64(0x89abcdef01234567, data1[0]);
-    ASSERT_EQUAL_64(0xffffffffffffffff, data2[0]);
-    ASSERT_EQUAL_64(0x89abcdef01234567, data3[0]);
-    ASSERT_EQUAL_64(0xffffffffffffffff, data4[0]);
-    ASSERT_EQUAL_64(0x89abcdef01234567, data5[0]);
-    ASSERT_EQUAL_64(0xffffffffffffffff, data6[0]);
-    ASSERT_EQUAL_64(0x89abcdef01234567, data7[0]);
-    ASSERT_EQUAL_64(0xffffffffffffffff, data8[0]);
+    ASSERT_EQUAL_64(0x7766554433221100, data1[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data1[1]);
+    ASSERT_EQUAL_64(0xfff11ffffff00fff, data2[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data2[1]);
+    ASSERT_EQUAL_64(0x7766554433221100, data3[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data3[1]);
+    ASSERT_EQUAL_64(0x7766554433221100, data4[0]);
+    ASSERT_EQUAL_64(0xfff11ffffff00fff, data4[1]);
+    ASSERT_EQUAL_64(0x7766554433221100, data5[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data5[1]);
+    ASSERT_EQUAL_64(0x7766554433221100, data6[0]);
+    ASSERT_EQUAL_64(0xfff11ffffff00fff, data6[1]);
+    ASSERT_EQUAL_64(0x7766554433221100, data7[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data7[1]);
+    ASSERT_EQUAL_64(0xfff11ffffff00fff, data8[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data8[1]);
+  }
+}
+
+TEST(casp_caspa_caspl_caspal_x) {
+  alignas(kXRegSizeInBytes * 2) uint64_t data1[] = {0x7766554433221100,
+                                                    0xffeeddccbbaa9988,
+                                                    0xfedcba9876543210,
+                                                    0x0123456789abcdef};
+  alignas(kXRegSizeInBytes * 2) uint64_t data2[] = {0x7766554433221100,
+                                                    0xffeeddccbbaa9988,
+                                                    0xfedcba9876543210,
+                                                    0x0123456789abcdef};
+  alignas(kXRegSizeInBytes * 2) uint64_t data3[] = {0x7766554433221100,
+                                                    0xffeeddccbbaa9988,
+                                                    0xfedcba9876543210,
+                                                    0x0123456789abcdef};
+  alignas(kXRegSizeInBytes * 2) uint64_t data4[] = {0x7766554433221100,
+                                                    0xffeeddccbbaa9988,
+                                                    0xfedcba9876543210,
+                                                    0x0123456789abcdef};
+  alignas(kXRegSizeInBytes * 2) uint64_t data5[] = {0x7766554433221100,
+                                                    0xffeeddccbbaa9988,
+                                                    0xfedcba9876543210,
+                                                    0x0123456789abcdef};
+  alignas(kXRegSizeInBytes * 2) uint64_t data6[] = {0x7766554433221100,
+                                                    0xffeeddccbbaa9988,
+                                                    0xfedcba9876543210,
+                                                    0x0123456789abcdef};
+  alignas(kXRegSizeInBytes * 2) uint64_t data7[] = {0x7766554433221100,
+                                                    0xffeeddccbbaa9988,
+                                                    0xfedcba9876543210,
+                                                    0x0123456789abcdef};
+  alignas(kXRegSizeInBytes * 2) uint64_t data8[] = {0x7766554433221100,
+                                                    0xffeeddccbbaa9988,
+                                                    0xfedcba9876543210,
+                                                    0x0123456789abcdef};
+
+  SETUP_WITH_FEATURES(CPUFeatures::kAtomics);
+
+  START();
+
+  __ Mov(x21, reinterpret_cast<uintptr_t>(data1) + 0);
+  __ Mov(x22, reinterpret_cast<uintptr_t>(data2) + 0);
+  __ Mov(x23, reinterpret_cast<uintptr_t>(data3) + 16);
+  __ Mov(x24, reinterpret_cast<uintptr_t>(data4) + 16);
+  __ Mov(x25, reinterpret_cast<uintptr_t>(data5) + 16);
+  __ Mov(x26, reinterpret_cast<uintptr_t>(data6) + 16);
+  __ Mov(x27, reinterpret_cast<uintptr_t>(data7) + 0);
+  __ Mov(x28, reinterpret_cast<uintptr_t>(data8) + 0);
+
+  __ Mov(x0, 0xfffffff00fffffff);
+  __ Mov(x1, 0xfffffff11fffffff);
+
+  __ Mov(x2, 0xffeeddccbbaa9988);
+  __ Mov(x3, 0x7766554433221100);
+  __ Mov(x4, 0x7766554433221100);
+  __ Mov(x5, 0xffeeddccbbaa9988);
+
+  __ Mov(x6, 0x0123456789abcdef);
+  __ Mov(x7, 0xfedcba9876543210);
+  __ Mov(x8, 0xfedcba9876543210);
+  __ Mov(x9, 0x0123456789abcdef);
+
+  __ Mov(x10, 0x0123456789abcdef);
+  __ Mov(x11, 0xfedcba9876543210);
+  __ Mov(x12, 0xfedcba9876543210);
+  __ Mov(x13, 0x0123456789abcdef);
+
+  __ Mov(x14, 0xffeeddccbbaa9988);
+  __ Mov(x15, 0x7766554433221100);
+  __ Mov(x16, 0x7766554433221100);
+  __ Mov(x17, 0xffeeddccbbaa9988);
+
+  __ Casp(x2, x3, x0, x1, MemOperand(x21));
+  __ Casp(x4, x5, x0, x1, MemOperand(x22));
+  __ Caspa(x6, x7, x0, x1, MemOperand(x23));
+  __ Caspa(x8, x9, x0, x1, MemOperand(x24));
+  __ Caspl(x10, x11, x0, x1, MemOperand(x25));
+  __ Caspl(x12, x13, x0, x1, MemOperand(x26));
+  __ Caspal(x14, x15, x0, x1, MemOperand(x27));
+  __ Caspal(x16, x17, x0, x1, MemOperand(x28));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_64(0x7766554433221100, x2);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, x3);
+    ASSERT_EQUAL_64(0x7766554433221100, x4);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, x5);
+
+    ASSERT_EQUAL_64(0xfedcba9876543210, x6);
+    ASSERT_EQUAL_64(0x0123456789abcdef, x7);
+    ASSERT_EQUAL_64(0xfedcba9876543210, x8);
+    ASSERT_EQUAL_64(0x0123456789abcdef, x9);
+
+    ASSERT_EQUAL_64(0xfedcba9876543210, x10);
+    ASSERT_EQUAL_64(0x0123456789abcdef, x11);
+    ASSERT_EQUAL_64(0xfedcba9876543210, x12);
+    ASSERT_EQUAL_64(0x0123456789abcdef, x13);
+
+    ASSERT_EQUAL_64(0x7766554433221100, x14);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, x15);
+    ASSERT_EQUAL_64(0x7766554433221100, x16);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, x17);
+
+    ASSERT_EQUAL_64(0x7766554433221100, data1[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data1[1]);
+    ASSERT_EQUAL_64(0xfedcba9876543210, data1[2]);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data1[3]);
+
+    ASSERT_EQUAL_64(0xfffffff00fffffff, data2[0]);
+    ASSERT_EQUAL_64(0xfffffff11fffffff, data2[1]);
+    ASSERT_EQUAL_64(0xfedcba9876543210, data2[2]);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data2[3]);
+
+    ASSERT_EQUAL_64(0x7766554433221100, data3[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data3[1]);
+    ASSERT_EQUAL_64(0xfedcba9876543210, data3[2]);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data3[3]);
+
+    ASSERT_EQUAL_64(0x7766554433221100, data4[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data4[1]);
+    ASSERT_EQUAL_64(0xfffffff00fffffff, data4[2]);
+    ASSERT_EQUAL_64(0xfffffff11fffffff, data4[3]);
+
+    ASSERT_EQUAL_64(0x7766554433221100, data5[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data5[1]);
+    ASSERT_EQUAL_64(0xfedcba9876543210, data5[2]);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data5[3]);
+
+    ASSERT_EQUAL_64(0x7766554433221100, data6[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data6[1]);
+    ASSERT_EQUAL_64(0xfffffff00fffffff, data6[2]);
+    ASSERT_EQUAL_64(0xfffffff11fffffff, data6[3]);
+
+    ASSERT_EQUAL_64(0x7766554433221100, data7[0]);
+    ASSERT_EQUAL_64(0xffeeddccbbaa9988, data7[1]);
+    ASSERT_EQUAL_64(0xfedcba9876543210, data7[2]);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data7[3]);
+
+    ASSERT_EQUAL_64(0xfffffff00fffffff, data8[0]);
+    ASSERT_EQUAL_64(0xfffffff11fffffff, data8[1]);
+    ASSERT_EQUAL_64(0xfedcba9876543210, data8[2]);
+    ASSERT_EQUAL_64(0x0123456789abcdef, data8[3]);
   }
 }
 
@@ -13139,7 +13315,7 @@
   __ Ret();
   __ Bind(&after_function);
 
-  // Call our dummy function, taking care to preserve the link register.
+  // Call our placeholder function, taking care to preserve the link register.
   __ Push(ip0, lr);
   __ Bl(&function);
   __ Pop(lr, ip0);
@@ -13240,26 +13416,6 @@
   masm.FinalizeCode();
 }
 
-TEST(scratch_scope_basic_v) {
-  MacroAssembler masm;
-
-  {
-    UseScratchRegisterScope temps(&masm);
-    VRegister temp = temps.AcquireVRegisterOfSize(kQRegSize);
-    VIXL_CHECK(temp.Aliases(v31));
-  }
-  {
-    UseScratchRegisterScope temps(&masm);
-    VRegister temp = temps.AcquireVRegisterOfSize(kDRegSize);
-    VIXL_CHECK(temp.Aliases(v31));
-  }
-  {
-    UseScratchRegisterScope temps(&masm);
-    VRegister temp = temps.AcquireVRegisterOfSize(kSRegSize);
-    VIXL_CHECK(temp.Aliases(v31));
-  }
-}
-
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
 // Test the pseudo-instructions that control CPUFeatures dynamically in the
 // Simulator. These are used by the test infrastructure itself, but in a fairly
@@ -13413,7 +13569,122 @@
 TEST(configure_cpu_features_scope) {
   RunHelperWithFeatureCombinations(SimulationCPUFeaturesScopeHelper);
 }
+#endif
 
+
+#ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
+TEST(large_sim_stack) {
+  SimStack builder;
+  builder.SetUsableSize(16 * 1024);  // The default is 8kB.
+  SimStack::Allocated stack = builder.Allocate();
+  uintptr_t base = reinterpret_cast<uintptr_t>(stack.GetBase());
+  uintptr_t limit = reinterpret_cast<uintptr_t>(stack.GetLimit());
+  SETUP_CUSTOM_SIM(std::move(stack));
+  START();
+
+  // Check that we can access the extremes of the stack.
+  __ Mov(x0, base);
+  __ Mov(x1, limit);
+  __ Mov(x2, sp);
+  __ Add(sp, x1, 1);  // Avoid accessing memory below `sp`.
+
+  __ Mov(x10, 42);
+  __ Poke(x10, 0);
+  __ Peek(x10, base - limit - kXRegSizeInBytes - 1);
+
+  __ Mov(sp, x2);
+
+  END();
+  if (CAN_RUN()) {
+    RUN();
+  }
+}
+
+#ifdef VIXL_NEGATIVE_TESTING
+TEST(sim_stack_limit_guard_read) {
+  SimStack builder;
+  SimStack::Allocated stack = builder.Allocate();
+  uintptr_t limit = reinterpret_cast<uintptr_t>(stack.GetLimit());
+  SETUP_CUSTOM_SIM(std::move(stack));
+  START();
+
+  __ Mov(x1, limit);
+  __ Mov(x2, sp);
+  __ Add(sp, x1, 1);  // Avoid accessing memory below `sp`.
+
+  // `sp` points to the lowest usable byte of the stack.
+  __ Mov(w10, 42);
+  __ Ldrb(w10, MemOperand(sp, -1));
+
+  __ Mov(sp, x2);
+
+  END();
+  if (CAN_RUN()) {
+    MUST_FAIL_WITH_MESSAGE(RUN(), "Attempt to read from stack guard region");
+  }
+}
+
+TEST(sim_stack_limit_guard_write) {
+  SimStack builder;
+  SimStack::Allocated stack = builder.Allocate();
+  uintptr_t limit = reinterpret_cast<uintptr_t>(stack.GetLimit());
+  SETUP_CUSTOM_SIM(std::move(stack));
+  START();
+
+  __ Mov(x1, limit);
+  __ Mov(x2, sp);
+  __ Add(sp, x1, 1);  // Avoid accessing memory below `sp`.
+
+  // `sp` points to the lowest usable byte of the stack.
+  __ Mov(w10, 42);
+  __ Strb(w10, MemOperand(sp, -1));
+
+  __ Mov(sp, x2);
+
+  END();
+  if (CAN_RUN()) {
+    MUST_FAIL_WITH_MESSAGE(RUN(), "Attempt to write to stack guard region");
+  }
+}
+
+TEST(sim_stack_base_guard_read) {
+  SimStack builder;
+  SimStack::Allocated stack = builder.Allocate();
+  uintptr_t base = reinterpret_cast<uintptr_t>(stack.GetBase());
+  SETUP_CUSTOM_SIM(std::move(stack));
+  START();
+
+  __ Mov(x0, base);
+  // `base` (x0) is the byte after the highest usable byte of the stack.
+  // The last byte of this access will hit the guard region.
+  __ Mov(x10, 42);
+  __ Ldr(x10, MemOperand(x0, -static_cast<int64_t>(kXRegSizeInBytes) + 1));
+
+  END();
+  if (CAN_RUN()) {
+    MUST_FAIL_WITH_MESSAGE(RUN(), "Attempt to read from stack guard region");
+  }
+}
+
+TEST(sim_stack_base_guard_write) {
+  SimStack builder;
+  SimStack::Allocated stack = builder.Allocate();
+  uintptr_t base = reinterpret_cast<uintptr_t>(stack.GetBase());
+  SETUP_CUSTOM_SIM(std::move(stack));
+  START();
+
+  __ Mov(x0, base);
+  // `base` (x0) is the byte after the highest usable byte of the stack.
+  // The last byte of this access will hit the guard region.
+  __ Mov(x10, 42);
+  __ Str(x10, MemOperand(x0, -static_cast<int64_t>(kXRegSizeInBytes) + 1));
+
+  END();
+  if (CAN_RUN()) {
+    MUST_FAIL_WITH_MESSAGE(RUN(), "Attempt to write to stack guard region");
+  }
+}
+#endif
 #endif
 
 }  // namespace aarch64
diff --git a/test/aarch64/test-assembler-aarch64.h b/test/aarch64/test-assembler-aarch64.h
index 1462918..31e926d 100644
--- a/test/aarch64/test-assembler-aarch64.h
+++ b/test/aarch64/test-assembler-aarch64.h
@@ -80,42 +80,51 @@
 #define __ masm.
 #define TEST(name) TEST_(AARCH64_ASM_##name)
 
-// PushCalleeSavedRegisters(), PopCalleeSavedRegisters() and Dump() use NEON, so
-// we need to enable it in the infrastructure code for each test.
-static const CPUFeatures kInfrastructureCPUFeatures(CPUFeatures::kNEON);
-
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
 // Run tests with the simulator.
 
 #define SETUP()        \
   MacroAssembler masm; \
-  SETUP_COMMON()
+  SETUP_COMMON();      \
+  SETUP_COMMON_SIM()
 
 #define SETUP_WITH_FEATURES(...)                 \
   MacroAssembler masm;                           \
   SETUP_COMMON();                                \
+  SETUP_COMMON_SIM();                            \
   masm.SetCPUFeatures(CPUFeatures(__VA_ARGS__)); \
   simulator.SetCPUFeatures(CPUFeatures(__VA_ARGS__))
 
 #define SETUP_CUSTOM(size, pic)                                  \
   MacroAssembler masm(size + CodeBuffer::kDefaultCapacity, pic); \
-  SETUP_COMMON()
+  SETUP_COMMON();                                                \
+  SETUP_COMMON_SIM()
+
+#define SETUP_CUSTOM_SIM(...)                                   \
+  MacroAssembler masm;                                          \
+  SETUP_COMMON();                                               \
+  Simulator simulator(&simulator_decoder, stdout, __VA_ARGS__); \
+  simulator.SetColouredTrace(Test::coloured_trace());           \
+  simulator.SetCPUFeatures(CPUFeatures::None())
 
 #define SETUP_COMMON()                                                   \
   bool queried_can_run = false;                                          \
+  bool printed_sve_lane_warning = false;                                 \
   /* Avoid unused-variable warnings in case a test never calls RUN(). */ \
   USE(queried_can_run);                                                  \
+  USE(printed_sve_lane_warning);                                         \
   masm.SetCPUFeatures(CPUFeatures::None());                              \
   masm.SetGenerateSimulatorCode(true);                                   \
   Decoder simulator_decoder;                                             \
-  Simulator simulator(&simulator_decoder);                               \
-  simulator.SetColouredTrace(Test::coloured_trace());                    \
-  simulator.SetInstructionStats(Test::instruction_stats());              \
-  simulator.SetCPUFeatures(CPUFeatures::None());                         \
   RegisterDump core;                                                     \
   ptrdiff_t offset_after_infrastructure_start;                           \
   ptrdiff_t offset_before_infrastructure_end
 
+#define SETUP_COMMON_SIM()                            \
+  Simulator simulator(&simulator_decoder);            \
+  simulator.SetColouredTrace(Test::coloured_trace()); \
+  simulator.SetCPUFeatures(CPUFeatures::None())
+
 #define START()                                                               \
   masm.Reset();                                                               \
   simulator.ResetState();                                                     \
@@ -133,9 +142,6 @@
       __ Trace(static_cast<TraceParameters>(trace_parameters), TRACE_ENABLE); \
     }                                                                         \
   }                                                                           \
-  if (Test::instruction_stats()) {                                            \
-    __ EnableInstrumentation();                                               \
-  }                                                                           \
   offset_after_infrastructure_start = masm.GetCursorOffset();                 \
   /* Avoid unused-variable warnings in case a test never calls RUN(). */      \
   USE(offset_after_infrastructure_start)
@@ -144,9 +150,6 @@
   offset_before_infrastructure_end = masm.GetCursorOffset();             \
   /* Avoid unused-variable warnings in case a test never calls RUN(). */ \
   USE(offset_before_infrastructure_end);                                 \
-  if (Test::instruction_stats()) {                                       \
-    __ DisableInstrumentation();                                         \
-  }                                                                      \
   __ Trace(LOG_ALL, TRACE_DISABLE);                                      \
   {                                                                      \
     SimulationCPUFeaturesScope cpu(&masm, kInfrastructureCPUFeatures);   \
@@ -156,14 +159,6 @@
   __ Ret();                                                              \
   masm.FinalizeCode()
 
-inline bool CanRun(const CPUFeatures& required, bool* queried_can_run) {
-  // The Simulator can run any test that VIXL can assemble.
-  USE(required);
-  *queried_can_run = true;
-  return true;
-}
-
-
 #define RUN()                                                                  \
   RUN_WITHOUT_SEEN_FEATURE_CHECK();                                            \
   {                                                                            \
@@ -214,8 +209,10 @@
 
 #define SETUP_COMMON()                                                   \
   bool queried_can_run = false;                                          \
+  bool printed_sve_lane_warning = false;                                 \
   /* Avoid unused-variable warnings in case a test never calls RUN(). */ \
   USE(queried_can_run);                                                  \
+  USE(printed_sve_lane_warning);                                         \
   masm.SetCPUFeatures(CPUFeatures::None());                              \
   masm.SetGenerateSimulatorCode(false);                                  \
   RegisterDump core;                                                     \
@@ -259,32 +256,6 @@
 // We cannot run seen-feature checks when running natively.
 #define RUN_WITHOUT_SEEN_FEATURE_CHECK() RUN()
 
-inline bool CanRun(const CPUFeatures& required, bool* queried_can_run) {
-  CPUFeatures cpu = CPUFeatures::InferFromOS();
-  // If InferFromOS fails, assume that basic features are present.
-  if (cpu.HasNoFeatures()) cpu = CPUFeatures::AArch64LegacyBaseline();
-
-  VIXL_ASSERT(cpu.Has(kInfrastructureCPUFeatures));
-
-  if (cpu.Has(required)) {
-    *queried_can_run = true;
-    return true;
-  }
-
-  // Only warn if we haven't already checked CanRun(...).
-  if (!*queried_can_run) {
-    *queried_can_run = true;
-    CPUFeatures missing = required.Without(cpu);
-    // Note: This message needs to match REGEXP_MISSING_FEATURES from
-    // tools/threaded_test.py.
-    std::cout << "SKIPPED: Missing features: { " << missing << " }\n";
-    std::cout << "This test requires the following features to run its "
-                 "generated code on this CPU: "
-              << required << "\n";
-  }
-  return false;
-}
-
 #endif  // ifdef VIXL_INCLUDE_SIMULATOR_AARCH64.
 
 #define CAN_RUN() CanRun(*masm.GetCPUFeatures(), &queried_can_run)
@@ -349,6 +320,21 @@
 #define ASSERT_LITERAL_POOL_SIZE(expected) \
   VIXL_CHECK((expected + kInstructionSize) == (masm.GetLiteralPoolSize()))
 
+#define ASSERT_EQUAL_SVE_LANE(expected, result, lane) \
+  VIXL_CHECK(EqualSVELane(expected, &core, result, lane));
+
+// If `expected` is scalar, check that every lane of `result` matches it.
+// If `expected` is an array of N expected values, check that the first N
+// lanes on `result` match. The rightmost (highest-indexed) array element maps
+// to the lowest-numbered lane.
+#define ASSERT_EQUAL_SVE(expected, result) \
+  VIXL_CHECK(EqualSVE(expected, &core, result, &printed_sve_lane_warning))
+
+#define ASSERT_EQUAL_MEMORY(expected, result, ...)          \
+  VIXL_CHECK(EqualMemory(reinterpret_cast<void*>(expected), \
+                         reinterpret_cast<void*>(result),   \
+                         __VA_ARGS__))
+
 #define MUST_FAIL_WITH_MESSAGE(code, message)                     \
   {                                                               \
     bool aborted = false;                                         \
diff --git a/test/aarch64/test-assembler-fp-aarch64.cc b/test/aarch64/test-assembler-fp-aarch64.cc
index e4c9b59..b9a581e 100644
--- a/test/aarch64/test-assembler-fp-aarch64.cc
+++ b/test/aarch64/test-assembler-fp-aarch64.cc
@@ -285,7 +285,7 @@
   SETUP_WITH_FEATURES(CPUFeatures::kFP);
 
   const bool is_32bits = (sizeof(T) == 4);
-  const VRegister& fp_tgt = is_32bits ? s2 : d2;
+  const VRegister& fp_tgt = is_32bits ? VRegister(s2) : VRegister(d2);
   const Register& tgt1 = is_32bits ? Register(w1) : Register(x1);
   const Register& tgt2 = is_32bits ? Register(w2) : Register(x2);
 
@@ -2029,9 +2029,9 @@
   __ Fmov(s24, -0.2);
   __ Fmov(s25, kFP32DefaultNaN);
   __ Fmov(s26, INT32_MIN);
-  __ Fmov(s27, INT32_MIN + 1);
-  __ Fmov(s28, INT32_MAX);
-  __ Fmov(s29, INT32_MAX - 1);
+  __ Fmov(s27, INT32_MIN + 0x80);  // The next representable FP32.
+  __ Fmov(s28, 0x80000000);
+  __ Fmov(s29, 0x7fffff80);  // The largest int32_t representable as FP32.
   __ Fmov(s30, FLT_MIN);
   __ Fmov(s31, FLT_MAX);
 
@@ -2072,11 +2072,11 @@
     ASSERT_EQUAL_FP32(0.0, s9);
     ASSERT_EQUAL_FP32(-0.0, s10);
     ASSERT_EQUAL_FP32(-0.0, s11);
-    ASSERT_EQUAL_FP32(INT32_MIN, s12);
+    ASSERT_EQUAL_FP32(INT32_MIN, s12);  // NaN.
     ASSERT_EQUAL_FP32(INT32_MIN, s13);
-    ASSERT_EQUAL_FP32(INT32_MIN + 1, s14);
-    ASSERT_EQUAL_FP32(INT32_MIN, s15);
-    ASSERT_EQUAL_FP32(INT32_MIN, s16);
+    ASSERT_EQUAL_FP32(INT32_MIN + 0x80, s14);
+    ASSERT_EQUAL_FP32(INT32_MIN, s15);  // Out of range.
+    ASSERT_EQUAL_FP32(0x7fffff80, s16);
     ASSERT_EQUAL_FP32(0, s17);
     ASSERT_EQUAL_FP32(INT32_MIN, s18);
   }
@@ -2173,9 +2173,9 @@
   __ Fmov(s24, -0.2);
   __ Fmov(s25, kFP32DefaultNaN);
   __ Fmov(s26, INT32_MIN);
-  __ Fmov(s27, INT32_MIN + 1);
-  __ Fmov(s28, INT32_MAX);
-  __ Fmov(s29, INT32_MAX - 1);
+  __ Fmov(s27, INT32_MIN + 0x80);  // The next representable FP32.
+  __ Fmov(s28, 0x80000000);
+  __ Fmov(s29, 0x7fffff80);  // The largest int32_t representable as FP32.
   __ Fmov(s30, FLT_MIN);
   __ Fmov(s31, FLT_MAX);
 
@@ -2216,11 +2216,11 @@
     ASSERT_EQUAL_FP32(0.0, s9);
     ASSERT_EQUAL_FP32(-0.0, s10);
     ASSERT_EQUAL_FP32(-0.0, s11);
-    ASSERT_EQUAL_FP32(INT32_MIN, s12);
+    ASSERT_EQUAL_FP32(INT32_MIN, s12);  // NaN.
     ASSERT_EQUAL_FP32(INT32_MIN, s13);
-    ASSERT_EQUAL_FP32(INT32_MIN + 1, s14);
-    ASSERT_EQUAL_FP32(INT32_MIN, s15);
-    ASSERT_EQUAL_FP32(INT32_MIN, s16);
+    ASSERT_EQUAL_FP32(INT32_MIN + 0x80, s14);
+    ASSERT_EQUAL_FP32(INT32_MIN, s15);  // Out of range.
+    ASSERT_EQUAL_FP32(0x7fffff80, s16);
     ASSERT_EQUAL_FP32(0, s17);
     ASSERT_EQUAL_FP32(INT32_MIN, s18);
   }
@@ -2317,9 +2317,10 @@
   __ Fmov(s24, -0.2);
   __ Fmov(s25, kFP64DefaultNaN);
   __ Fmov(s26, INT64_MIN);
-  __ Fmov(s27, INT64_MIN + 1);
-  __ Fmov(s28, INT64_MAX);
-  __ Fmov(s29, INT64_MAX - 1);
+  __ Fmov(s27, INT64_MIN + 0x80'00000000);  // The next representable FP32.
+  __ Fmov(s28, 0x80000000'00000000);
+  // The largest int64_t representable as FP32.
+  __ Fmov(s29, 0x7fffff80'00000000);
   __ Fmov(s30, FLT_MIN);
   __ Fmov(s31, FLT_MAX);
 
@@ -2360,11 +2361,11 @@
     ASSERT_EQUAL_FP32(0.0, s9);
     ASSERT_EQUAL_FP32(-0.0, s10);
     ASSERT_EQUAL_FP32(-0.0, s11);
-    ASSERT_EQUAL_FP32(INT64_MIN, s12);
+    ASSERT_EQUAL_FP32(INT64_MIN, s12);  // Nan.
     ASSERT_EQUAL_FP32(INT64_MIN, s13);
-    ASSERT_EQUAL_FP32(INT64_MIN + 1, s14);
-    ASSERT_EQUAL_FP32(INT64_MAX, s15);
-    ASSERT_EQUAL_FP32(INT64_MAX - 1, s16);
+    ASSERT_EQUAL_FP32(INT64_MIN + 0x80'00000000, s14);
+    ASSERT_EQUAL_FP32(INT64_MIN, s15);  // Out of range.
+    ASSERT_EQUAL_FP32(0x7fffff80'00000000, s16);
     ASSERT_EQUAL_FP32(0, s17);
     ASSERT_EQUAL_FP32(INT64_MIN, s18);
   }
@@ -2389,9 +2390,10 @@
   __ Fmov(d24, -0.2);
   __ Fmov(d25, kFP64DefaultNaN);
   __ Fmov(d26, INT64_MIN);
-  __ Fmov(d27, INT64_MIN + 1);
-  __ Fmov(d28, INT64_MAX);
-  __ Fmov(d29, INT64_MAX - 1);
+  __ Fmov(d27, INT64_MIN + 0x400);  // The next representable FP64.
+  __ Fmov(d28, 0x80000000'00000000);
+  // The largest int64_t representable as FP64.
+  __ Fmov(d29, 0x7fffffff'fffffc00);
   __ Fmov(d30, FLT_MIN);
   __ Fmov(d31, FLT_MAX);
 
@@ -2432,11 +2434,11 @@
     ASSERT_EQUAL_FP64(0.0, d9);
     ASSERT_EQUAL_FP64(-0.0, d10);
     ASSERT_EQUAL_FP64(-0.0, d11);
-    ASSERT_EQUAL_FP64(INT64_MIN, d12);
+    ASSERT_EQUAL_FP64(INT64_MIN, d12);  // NaN.
     ASSERT_EQUAL_FP64(INT64_MIN, d13);
-    ASSERT_EQUAL_FP64(INT64_MIN, d14);
-    ASSERT_EQUAL_FP64(INT64_MAX, d15);
-    ASSERT_EQUAL_FP64(INT64_MAX, d16);
+    ASSERT_EQUAL_FP64(INT64_MIN + 0x400, d14);
+    ASSERT_EQUAL_FP64(INT64_MIN, d15);  // Out of range.
+    ASSERT_EQUAL_FP64(0x7fffffff'fffffc00, d16);
     ASSERT_EQUAL_FP64(0, d17);
     ASSERT_EQUAL_FP64(INT64_MIN, d18);
   }
@@ -2461,9 +2463,10 @@
   __ Fmov(s24, -0.2);
   __ Fmov(s25, kFP64DefaultNaN);
   __ Fmov(s26, INT64_MIN);
-  __ Fmov(s27, INT64_MIN + 1);
-  __ Fmov(s28, INT64_MAX);
-  __ Fmov(s29, INT64_MAX - 1);
+  __ Fmov(s27, INT64_MIN + 0x80'00000000);  // The next representable FP32.
+  __ Fmov(s28, 0x80000000'00000000);
+  // The largest int64_t representable as FP32.
+  __ Fmov(s29, 0x7fffff80'00000000);
   __ Fmov(s30, FLT_MIN);
   __ Fmov(s31, FLT_MAX);
 
@@ -2504,11 +2507,11 @@
     ASSERT_EQUAL_FP32(0.0, s9);
     ASSERT_EQUAL_FP32(-0.0, s10);
     ASSERT_EQUAL_FP32(-0.0, s11);
-    ASSERT_EQUAL_FP32(INT64_MIN, s12);
+    ASSERT_EQUAL_FP32(INT64_MIN, s12);  // Nan.
     ASSERT_EQUAL_FP32(INT64_MIN, s13);
-    ASSERT_EQUAL_FP32(INT64_MIN + 1, s14);
-    ASSERT_EQUAL_FP32(INT64_MAX, s15);
-    ASSERT_EQUAL_FP32(INT64_MAX - 1, s16);
+    ASSERT_EQUAL_FP32(INT64_MIN + 0x80'00000000, s14);
+    ASSERT_EQUAL_FP32(INT64_MIN, s15);  // Out of range.
+    ASSERT_EQUAL_FP32(0x7fffff80'00000000, s16);
     ASSERT_EQUAL_FP32(0, s17);
     ASSERT_EQUAL_FP32(INT64_MIN, s18);
   }
@@ -2533,9 +2536,10 @@
   __ Fmov(d24, -0.2);
   __ Fmov(d25, kFP64DefaultNaN);
   __ Fmov(d26, INT64_MIN);
-  __ Fmov(d27, INT64_MIN + 1);
-  __ Fmov(d28, INT64_MAX);
-  __ Fmov(d29, INT64_MAX - 1);
+  __ Fmov(d27, INT64_MIN + 0x400);  // The next representable FP64.
+  __ Fmov(d28, 0x80000000'00000000);
+  // The largest int64_t representable as FP64.
+  __ Fmov(d29, 0x7fffffff'fffffc00);
   __ Fmov(d30, FLT_MIN);
   __ Fmov(d31, FLT_MAX);
 
@@ -2576,11 +2580,11 @@
     ASSERT_EQUAL_FP64(0.0, d9);
     ASSERT_EQUAL_FP64(-0.0, d10);
     ASSERT_EQUAL_FP64(-0.0, d11);
-    ASSERT_EQUAL_FP64(INT64_MIN, d12);
+    ASSERT_EQUAL_FP64(INT64_MIN, d12);  // NaN.
     ASSERT_EQUAL_FP64(INT64_MIN, d13);
-    ASSERT_EQUAL_FP64(INT64_MIN, d14);
-    ASSERT_EQUAL_FP64(INT64_MAX, d15);
-    ASSERT_EQUAL_FP64(INT64_MAX, d16);
+    ASSERT_EQUAL_FP64(INT64_MIN + 0x400, d14);
+    ASSERT_EQUAL_FP64(INT64_MIN, d15);  // Out of range.
+    ASSERT_EQUAL_FP64(0x7fffffff'fffffc00, d16);
     ASSERT_EQUAL_FP64(0, d17);
     ASSERT_EQUAL_FP64(INT64_MIN, d18);
   }
diff --git a/test/aarch64/test-assembler-neon-aarch64.cc b/test/aarch64/test-assembler-neon-aarch64.cc
index c3643ee..d2e0405 100644
--- a/test/aarch64/test-assembler-neon-aarch64.cc
+++ b/test/aarch64/test-assembler-neon-aarch64.cc
@@ -9482,7 +9482,7 @@
   __ Movi(v31.V8H(), 0x3bff3c013bff3c01, 0x3bff3c013bff3c01);
   // Set up [v8,v15] as vm inputs.
   for (int i = 0; i <= 7; i++) {
-    VRegister vm = VRegister::GetVRegFromCode(i + 8);
+    VRegister vm(i + 8);
     __ Mov(vm, poison);
     __ Ins(vm.V8H(), i, v31.V8H(), i);
   }
diff --git a/test/aarch64/test-assembler-sve-aarch64.cc b/test/aarch64/test-assembler-sve-aarch64.cc
new file mode 100644
index 0000000..7f0c178
--- /dev/null
+++ b/test/aarch64/test-assembler-sve-aarch64.cc
@@ -0,0 +1,18692 @@
+// Copyright 2019, VIXL authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//   * Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//   * Neither the name of ARM Limited nor the names of its contributors may be
+//     used to endorse or promote products derived from this software without
+//     specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sys/mman.h>
+#include <unistd.h>
+
+#include <cfloat>
+#include <cmath>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <functional>
+
+#include "test-runner.h"
+#include "test-utils.h"
+#include "aarch64/test-utils-aarch64.h"
+
+#include "aarch64/cpu-aarch64.h"
+#include "aarch64/disasm-aarch64.h"
+#include "aarch64/macro-assembler-aarch64.h"
+#include "aarch64/simulator-aarch64.h"
+#include "test-assembler-aarch64.h"
+
+namespace vixl {
+namespace aarch64 {
+
+Test* MakeSVETest(int vl, const char* name, Test::TestFunctionWithConfig* fn) {
+  // We never free this memory, but we need it to live for as long as the static
+  // linked list of tests, and this is the easiest way to do it.
+  Test* test = new Test(name, fn);
+  test->set_sve_vl_in_bits(vl);
+  return test;
+}
+
+// The TEST_SVE macro works just like the usual TEST macro, but the resulting
+// function receives a `const Test& config` argument, to allow it to query the
+// vector length.
+#ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
+// On the Simulator, run SVE tests with several vector lengths, including the
+// extreme values and an intermediate value that isn't a power of two.
+
+#define TEST_SVE(name)                                                  \
+  void Test##name(Test* config);                                        \
+  Test* test_##name##_list[] =                                          \
+      {MakeSVETest(128, "AARCH64_ASM_" #name "_vl128", &Test##name),    \
+       MakeSVETest(384, "AARCH64_ASM_" #name "_vl384", &Test##name),    \
+       MakeSVETest(2048, "AARCH64_ASM_" #name "_vl2048", &Test##name)}; \
+  void Test##name(Test* config)
+
+#define SVE_SETUP_WITH_FEATURES(...) \
+  SETUP_WITH_FEATURES(__VA_ARGS__);  \
+  simulator.SetVectorLengthInBits(config->sve_vl_in_bits())
+
+#else
+// Otherwise, just use whatever the hardware provides.
+static const int kSVEVectorLengthInBits =
+    CPUFeatures::InferFromOS().Has(CPUFeatures::kSVE)
+        ? CPU::ReadSVEVectorLengthInBits()
+        : kZRegMinSize;
+
+#define TEST_SVE(name)                                                     \
+  void Test##name(Test* config);                                           \
+  Test* test_##name##_vlauto = MakeSVETest(kSVEVectorLengthInBits,         \
+                                           "AARCH64_ASM_" #name "_vlauto", \
+                                           &Test##name);                   \
+  void Test##name(Test* config)
+
+#define SVE_SETUP_WITH_FEATURES(...) \
+  SETUP_WITH_FEATURES(__VA_ARGS__);  \
+  USE(config)
+
+#endif
+
+// Call masm->Insr repeatedly to allow test inputs to be set up concisely. This
+// is optimised for call-site clarity, not generated code quality, so it doesn't
+// exist in the MacroAssembler itself.
+//
+// Usage:
+//
+//    int values[] = { 42, 43, 44 };
+//    InsrHelper(&masm, z0.VnS(), values);    // Sets z0.S = { ..., 42, 43, 44 }
+//
+// The rightmost (highest-indexed) array element maps to the lowest-numbered
+// lane.
+template <typename T, size_t N>
+void InsrHelper(MacroAssembler* masm,
+                const ZRegister& zdn,
+                const T (&values)[N]) {
+  for (size_t i = 0; i < N; i++) {
+    masm->Insr(zdn, values[i]);
+  }
+}
+
+// Conveniently initialise P registers with scalar bit patterns. The destination
+// lane size is ignored. This is optimised for call-site clarity, not generated
+// code quality.
+//
+// Usage:
+//
+//    Initialise(&masm, p0, 0x1234);  // Sets p0 = 0b'0001'0010'0011'0100
+void Initialise(MacroAssembler* masm,
+                const PRegister& pd,
+                uint64_t value3,
+                uint64_t value2,
+                uint64_t value1,
+                uint64_t value0) {
+  // Generate a literal pool, as in the array form.
+  UseScratchRegisterScope temps(masm);
+  Register temp = temps.AcquireX();
+  Label data;
+  Label done;
+
+  masm->Adr(temp, &data);
+  masm->Ldr(pd, SVEMemOperand(temp));
+  masm->B(&done);
+  {
+    ExactAssemblyScope total(masm, kPRegMaxSizeInBytes);
+    masm->bind(&data);
+    masm->dc64(value0);
+    masm->dc64(value1);
+    masm->dc64(value2);
+    masm->dc64(value3);
+  }
+  masm->Bind(&done);
+}
+void Initialise(MacroAssembler* masm,
+                const PRegister& pd,
+                uint64_t value2,
+                uint64_t value1,
+                uint64_t value0) {
+  Initialise(masm, pd, 0, value2, value1, value0);
+}
+void Initialise(MacroAssembler* masm,
+                const PRegister& pd,
+                uint64_t value1,
+                uint64_t value0) {
+  Initialise(masm, pd, 0, 0, value1, value0);
+}
+void Initialise(MacroAssembler* masm, const PRegister& pd, uint64_t value0) {
+  Initialise(masm, pd, 0, 0, 0, value0);
+}
+
+// Conveniently initialise P registers by lane. This is optimised for call-site
+// clarity, not generated code quality.
+//
+// Usage:
+//
+//     int values[] = { 0x0, 0x1, 0x2 };
+//     Initialise(&masm, p0.VnS(), values);  // Sets p0 = 0b'0000'0001'0010
+//
+// The rightmost (highest-indexed) array element maps to the lowest-numbered
+// lane. Unspecified lanes are set to 0 (inactive).
+//
+// Each element of the `values` array is mapped onto a lane in `pd`. The
+// architecture only respects the lower bit, and writes zero the upper bits, but
+// other (encodable) values can be specified if required by the test.
+template <typename T, size_t N>
+void Initialise(MacroAssembler* masm,
+                const PRegisterWithLaneSize& pd,
+                const T (&values)[N]) {
+  // Turn the array into 64-bit chunks.
+  uint64_t chunks[4] = {0, 0, 0, 0};
+  VIXL_STATIC_ASSERT(sizeof(chunks) == kPRegMaxSizeInBytes);
+
+  int p_bits_per_lane = pd.GetLaneSizeInBits() / kZRegBitsPerPRegBit;
+  VIXL_ASSERT((64 % p_bits_per_lane) == 0);
+  VIXL_ASSERT((N * p_bits_per_lane) <= kPRegMaxSize);
+
+  uint64_t p_lane_mask = GetUintMask(p_bits_per_lane);
+
+  VIXL_STATIC_ASSERT(N <= kPRegMaxSize);
+  size_t bit = 0;
+  for (int n = static_cast<int>(N - 1); n >= 0; n--) {
+    VIXL_ASSERT(bit < (sizeof(chunks) * kBitsPerByte));
+    uint64_t value = values[n] & p_lane_mask;
+    chunks[bit / 64] |= value << (bit % 64);
+    bit += p_bits_per_lane;
+  }
+
+  Initialise(masm, pd, chunks[3], chunks[2], chunks[1], chunks[0]);
+}
+
+// Ensure that basic test infrastructure works.
+TEST_SVE(sve_test_infrastructure_z) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Mov(x0, 0x0123456789abcdef);
+
+  // Test basic `Insr` behaviour.
+  __ Insr(z0.VnB(), 1);
+  __ Insr(z0.VnB(), 2);
+  __ Insr(z0.VnB(), x0);
+  __ Insr(z0.VnB(), -42);
+  __ Insr(z0.VnB(), 0);
+
+  // Test array inputs.
+  int z1_inputs[] = {3, 4, 5, -42, 0};
+  InsrHelper(&masm, z1.VnH(), z1_inputs);
+
+  // Test that sign-extension works as intended for various lane sizes.
+  __ Dup(z2.VnD(), 0);            // Clear the register first.
+  __ Insr(z2.VnB(), -42);         //                       0xd6
+  __ Insr(z2.VnB(), 0xfe);        //                       0xfe
+  __ Insr(z2.VnH(), -42);         //                     0xffd6
+  __ Insr(z2.VnH(), 0xfedc);      //                     0xfedc
+  __ Insr(z2.VnS(), -42);         //                 0xffffffd6
+  __ Insr(z2.VnS(), 0xfedcba98);  //                 0xfedcba98
+  // Use another register for VnD(), so we can support 128-bit Z registers.
+  __ Insr(z3.VnD(), -42);                 // 0xffffffffffffffd6
+  __ Insr(z3.VnD(), 0xfedcba9876543210);  // 0xfedcba9876543210
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Test that array checks work properly on a register initialised
+    // lane-by-lane.
+    int z0_inputs_b[] = {0x01, 0x02, 0xef, 0xd6, 0x00};
+    ASSERT_EQUAL_SVE(z0_inputs_b, z0.VnB());
+
+    // Test that lane-by-lane checks work properly on a register initialised
+    // by array.
+    for (size_t i = 0; i < ArrayLength(z1_inputs); i++) {
+      // The rightmost (highest-indexed) array element maps to the
+      // lowest-numbered lane.
+      int lane = static_cast<int>(ArrayLength(z1_inputs) - i - 1);
+      ASSERT_EQUAL_SVE_LANE(z1_inputs[i], z1.VnH(), lane);
+    }
+
+    uint64_t z2_inputs_d[] = {0x0000d6feffd6fedc, 0xffffffd6fedcba98};
+    ASSERT_EQUAL_SVE(z2_inputs_d, z2.VnD());
+    uint64_t z3_inputs_d[] = {0xffffffffffffffd6, 0xfedcba9876543210};
+    ASSERT_EQUAL_SVE(z3_inputs_d, z3.VnD());
+  }
+}
+
+// Ensure that basic test infrastructure works.
+TEST_SVE(sve_test_infrastructure_p) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Simple cases: move boolean (0 or 1) values.
+
+  int p0_inputs[] = {0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0};
+  Initialise(&masm, p0.VnB(), p0_inputs);
+
+  int p1_inputs[] = {1, 0, 1, 1, 0, 1, 1, 1};
+  Initialise(&masm, p1.VnH(), p1_inputs);
+
+  int p2_inputs[] = {1, 1, 0, 1};
+  Initialise(&masm, p2.VnS(), p2_inputs);
+
+  int p3_inputs[] = {0, 1};
+  Initialise(&masm, p3.VnD(), p3_inputs);
+
+  // Advanced cases: move numeric value into architecturally-ignored bits.
+
+  // B-sized lanes get one bit in a P register, so there are no ignored bits.
+
+  // H-sized lanes get two bits in a P register.
+  int p4_inputs[] = {0x3, 0x2, 0x1, 0x0, 0x1, 0x2, 0x3};
+  Initialise(&masm, p4.VnH(), p4_inputs);
+
+  // S-sized lanes get four bits in a P register.
+  int p5_inputs[] = {0xc, 0x7, 0x9, 0x6, 0xf};
+  Initialise(&masm, p5.VnS(), p5_inputs);
+
+  // D-sized lanes get eight bits in a P register.
+  int p6_inputs[] = {0x81, 0xcc, 0x55};
+  Initialise(&masm, p6.VnD(), p6_inputs);
+
+  // The largest possible P register has 32 bytes.
+  int p7_inputs[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+                     0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+                     0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+                     0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f};
+  Initialise(&masm, p7.VnD(), p7_inputs);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Test that lane-by-lane checks work properly. The rightmost
+    // (highest-indexed) array element maps to the lowest-numbered lane.
+    for (size_t i = 0; i < ArrayLength(p0_inputs); i++) {
+      int lane = static_cast<int>(ArrayLength(p0_inputs) - i - 1);
+      ASSERT_EQUAL_SVE_LANE(p0_inputs[i], p0.VnB(), lane);
+    }
+    for (size_t i = 0; i < ArrayLength(p1_inputs); i++) {
+      int lane = static_cast<int>(ArrayLength(p1_inputs) - i - 1);
+      ASSERT_EQUAL_SVE_LANE(p1_inputs[i], p1.VnH(), lane);
+    }
+    for (size_t i = 0; i < ArrayLength(p2_inputs); i++) {
+      int lane = static_cast<int>(ArrayLength(p2_inputs) - i - 1);
+      ASSERT_EQUAL_SVE_LANE(p2_inputs[i], p2.VnS(), lane);
+    }
+    for (size_t i = 0; i < ArrayLength(p3_inputs); i++) {
+      int lane = static_cast<int>(ArrayLength(p3_inputs) - i - 1);
+      ASSERT_EQUAL_SVE_LANE(p3_inputs[i], p3.VnD(), lane);
+    }
+
+    // Test that array checks work properly on predicates initialised with a
+    // possibly-different lane size.
+    // 0b...11'10'01'00'01'10'11
+    int p4_expected[] = {0x39, 0x1b};
+    ASSERT_EQUAL_SVE(p4_expected, p4.VnD());
+
+    ASSERT_EQUAL_SVE(p5_inputs, p5.VnS());
+
+    // 0b...10000001'11001100'01010101
+    int p6_expected[] = {2, 0, 0, 1, 3, 0, 3, 0, 1, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p6_expected, p6.VnH());
+
+    // 0b...10011100'10011101'10011110'10011111
+    int p7_expected[] = {1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1,
+                         1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p7_expected, p7.VnB());
+  }
+}
+
+// Test that writes to V registers clear the high bits of the corresponding Z
+// register.
+TEST_SVE(sve_v_write_clear) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kNEON,
+                          CPUFeatures::kFP,
+                          CPUFeatures::kSVE);
+  START();
+
+  // The Simulator has two mechansisms for writing V registers:
+  //  - Write*Register, calling through to SimRegisterBase::Write.
+  //  - LogicVRegister::ClearForWrite followed by one or more lane updates.
+  // Try to cover both variants.
+
+  // Prepare some known inputs.
+  uint8_t data[kQRegSizeInBytes];
+  for (size_t i = 0; i < kQRegSizeInBytes; i++) {
+    data[i] = 42 + i;
+  }
+  __ Mov(x10, reinterpret_cast<uintptr_t>(data));
+  __ Fmov(d30, 42.0);
+
+  // Use Index to label the lane indices, so failures are easy to detect and
+  // diagnose.
+  __ Index(z0.VnB(), 0, 1);
+  __ Index(z1.VnB(), 0, 1);
+  __ Index(z2.VnB(), 0, 1);
+  __ Index(z3.VnB(), 0, 1);
+  __ Index(z4.VnB(), 0, 1);
+
+  __ Index(z10.VnB(), 0, -1);
+  __ Index(z11.VnB(), 0, -1);
+  __ Index(z12.VnB(), 0, -1);
+  __ Index(z13.VnB(), 0, -1);
+  __ Index(z14.VnB(), 0, -1);
+
+  // Instructions using Write*Register (and SimRegisterBase::Write).
+  __ Ldr(b0, MemOperand(x10));
+  __ Fcvt(h1, d30);
+  __ Fmov(s2, 1.5f);
+  __ Fmov(d3, d30);
+  __ Ldr(q4, MemOperand(x10));
+
+  // Instructions using LogicVRegister::ClearForWrite.
+  // These also (incidentally) test that across-lane instructions correctly
+  // ignore the high-order Z register lanes.
+  __ Sminv(b10, v10.V16B());
+  __ Addv(h11, v11.V4H());
+  __ Saddlv(s12, v12.V8H());
+  __ Dup(v13.V8B(), b13, kDRegSizeInBytes);
+  __ Uaddl(v14.V8H(), v14.V8B(), v14.V8B());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Check the Q part first.
+    ASSERT_EQUAL_128(0x0000000000000000, 0x000000000000002a, v0);
+    ASSERT_EQUAL_128(0x0000000000000000, 0x0000000000005140, v1);  // 42.0 (f16)
+    ASSERT_EQUAL_128(0x0000000000000000, 0x000000003fc00000, v2);  // 1.5 (f32)
+    ASSERT_EQUAL_128(0x0000000000000000, 0x4045000000000000, v3);  // 42.0 (f64)
+    ASSERT_EQUAL_128(0x3938373635343332, 0x31302f2e2d2c2b2a, v4);
+    ASSERT_EQUAL_128(0x0000000000000000, 0x00000000000000f1, v10);  // -15
+    //  0xf9fa + 0xfbfc + 0xfdfe + 0xff00 -> 0xf2f4
+    ASSERT_EQUAL_128(0x0000000000000000, 0x000000000000f2f4, v11);
+    //  0xfffff1f2 + 0xfffff3f4 + ... + 0xfffffdfe + 0xffffff00 -> 0xffffc6c8
+    ASSERT_EQUAL_128(0x0000000000000000, 0x00000000ffffc6c8, v12);
+    ASSERT_EQUAL_128(0x0000000000000000, 0xf8f8f8f8f8f8f8f8, v13);  // [-8] x 8
+    //    [0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, 0x0000]
+    //  + [0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, 0x0000]
+    // -> [0x01f2, 0x01f4, 0x01f6, 0x01f8, 0x01fa, 0x01fc, 0x01fe, 0x0000]
+    ASSERT_EQUAL_128(0x01f201f401f601f8, 0x01fa01fc01fe0000, v14);
+
+    // Check that the upper lanes are all clear.
+    for (int i = kQRegSizeInBytes; i < core.GetSVELaneCount(kBRegSize); i++) {
+      ASSERT_EQUAL_SVE_LANE(0x00, z0.VnB(), i);
+      ASSERT_EQUAL_SVE_LANE(0x00, z1.VnB(), i);
+      ASSERT_EQUAL_SVE_LANE(0x00, z2.VnB(), i);
+      ASSERT_EQUAL_SVE_LANE(0x00, z3.VnB(), i);
+      ASSERT_EQUAL_SVE_LANE(0x00, z4.VnB(), i);
+      ASSERT_EQUAL_SVE_LANE(0x00, z10.VnB(), i);
+      ASSERT_EQUAL_SVE_LANE(0x00, z11.VnB(), i);
+      ASSERT_EQUAL_SVE_LANE(0x00, z12.VnB(), i);
+      ASSERT_EQUAL_SVE_LANE(0x00, z13.VnB(), i);
+      ASSERT_EQUAL_SVE_LANE(0x00, z14.VnB(), i);
+    }
+  }
+}
+
+static void MlaMlsHelper(Test* config, unsigned lane_size_in_bits) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int zd_inputs[] = {0xbb, 0xcc, 0xdd, 0xee};
+  int za_inputs[] = {-39, 1, -3, 2};
+  int zn_inputs[] = {-5, -20, 9, 8};
+  int zm_inputs[] = {9, -5, 4, 5};
+
+  ZRegister zd = z0.WithLaneSize(lane_size_in_bits);
+  ZRegister za = z1.WithLaneSize(lane_size_in_bits);
+  ZRegister zn = z2.WithLaneSize(lane_size_in_bits);
+  ZRegister zm = z3.WithLaneSize(lane_size_in_bits);
+
+  // TODO: Use a simple `Dup` once it accepts arbitrary immediates.
+  InsrHelper(&masm, zd, zd_inputs);
+  InsrHelper(&masm, za, za_inputs);
+  InsrHelper(&masm, zn, zn_inputs);
+  InsrHelper(&masm, zm, zm_inputs);
+
+  int p0_inputs[] = {1, 1, 0, 1};
+  int p1_inputs[] = {1, 0, 1, 1};
+  int p2_inputs[] = {0, 1, 1, 1};
+  int p3_inputs[] = {1, 1, 1, 0};
+
+  Initialise(&masm, p0.WithLaneSize(lane_size_in_bits), p0_inputs);
+  Initialise(&masm, p1.WithLaneSize(lane_size_in_bits), p1_inputs);
+  Initialise(&masm, p2.WithLaneSize(lane_size_in_bits), p2_inputs);
+  Initialise(&masm, p3.WithLaneSize(lane_size_in_bits), p3_inputs);
+
+  // The Mla macro automatically selects between mla, mad and movprfx + mla
+  // based on what registers are aliased.
+  ZRegister mla_da_result = z10.WithLaneSize(lane_size_in_bits);
+  ZRegister mla_dn_result = z11.WithLaneSize(lane_size_in_bits);
+  ZRegister mla_dm_result = z12.WithLaneSize(lane_size_in_bits);
+  ZRegister mla_d_result = z13.WithLaneSize(lane_size_in_bits);
+
+  __ Mov(mla_da_result, za);
+  __ Mla(mla_da_result, p0.Merging(), mla_da_result, zn, zm);
+
+  __ Mov(mla_dn_result, zn);
+  __ Mla(mla_dn_result, p1.Merging(), za, mla_dn_result, zm);
+
+  __ Mov(mla_dm_result, zm);
+  __ Mla(mla_dm_result, p2.Merging(), za, zn, mla_dm_result);
+
+  __ Mov(mla_d_result, zd);
+  __ Mla(mla_d_result, p3.Merging(), za, zn, zm);
+
+  // The Mls macro automatically selects between mls, msb and movprfx + mls
+  // based on what registers are aliased.
+  ZRegister mls_da_result = z20.WithLaneSize(lane_size_in_bits);
+  ZRegister mls_dn_result = z21.WithLaneSize(lane_size_in_bits);
+  ZRegister mls_dm_result = z22.WithLaneSize(lane_size_in_bits);
+  ZRegister mls_d_result = z23.WithLaneSize(lane_size_in_bits);
+
+  __ Mov(mls_da_result, za);
+  __ Mls(mls_da_result, p0.Merging(), mls_da_result, zn, zm);
+
+  __ Mov(mls_dn_result, zn);
+  __ Mls(mls_dn_result, p1.Merging(), za, mls_dn_result, zm);
+
+  __ Mov(mls_dm_result, zm);
+  __ Mls(mls_dm_result, p2.Merging(), za, zn, mls_dm_result);
+
+  __ Mov(mls_d_result, zd);
+  __ Mls(mls_d_result, p3.Merging(), za, zn, zm);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(za_inputs, z1.WithLaneSize(lane_size_in_bits));
+    ASSERT_EQUAL_SVE(zn_inputs, z2.WithLaneSize(lane_size_in_bits));
+    ASSERT_EQUAL_SVE(zm_inputs, z3.WithLaneSize(lane_size_in_bits));
+
+    int mla[] = {-84, 101, 33, 42};
+    int mls[] = {6, -99, -39, -38};
+
+    int mla_da_expected[] = {mla[0], mla[1], za_inputs[2], mla[3]};
+    ASSERT_EQUAL_SVE(mla_da_expected, mla_da_result);
+
+    int mla_dn_expected[] = {mla[0], zn_inputs[1], mla[2], mla[3]};
+    ASSERT_EQUAL_SVE(mla_dn_expected, mla_dn_result);
+
+    int mla_dm_expected[] = {zm_inputs[0], mla[1], mla[2], mla[3]};
+    ASSERT_EQUAL_SVE(mla_dm_expected, mla_dm_result);
+
+    int mla_d_expected[] = {mla[0], mla[1], mla[2], zd_inputs[3]};
+    ASSERT_EQUAL_SVE(mla_d_expected, mla_d_result);
+
+    int mls_da_expected[] = {mls[0], mls[1], za_inputs[2], mls[3]};
+    ASSERT_EQUAL_SVE(mls_da_expected, mls_da_result);
+
+    int mls_dn_expected[] = {mls[0], zn_inputs[1], mls[2], mls[3]};
+    ASSERT_EQUAL_SVE(mls_dn_expected, mls_dn_result);
+
+    int mls_dm_expected[] = {zm_inputs[0], mls[1], mls[2], mls[3]};
+    ASSERT_EQUAL_SVE(mls_dm_expected, mls_dm_result);
+
+    int mls_d_expected[] = {mls[0], mls[1], mls[2], zd_inputs[3]};
+    ASSERT_EQUAL_SVE(mls_d_expected, mls_d_result);
+  }
+}
+
+TEST_SVE(sve_mla_mls_b) { MlaMlsHelper(config, kBRegSize); }
+TEST_SVE(sve_mla_mls_h) { MlaMlsHelper(config, kHRegSize); }
+TEST_SVE(sve_mla_mls_s) { MlaMlsHelper(config, kSRegSize); }
+TEST_SVE(sve_mla_mls_d) { MlaMlsHelper(config, kDRegSize); }
+
+TEST_SVE(sve_bitwise_unpredicate_logical) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t z8_inputs[] = {0xfedcba9876543210, 0x0123456789abcdef};
+  InsrHelper(&masm, z8.VnD(), z8_inputs);
+  uint64_t z15_inputs[] = {0xffffeeeeddddcccc, 0xccccddddeeeeffff};
+  InsrHelper(&masm, z15.VnD(), z15_inputs);
+
+  __ And(z1.VnD(), z8.VnD(), z15.VnD());
+  __ Bic(z2.VnD(), z8.VnD(), z15.VnD());
+  __ Eor(z3.VnD(), z8.VnD(), z15.VnD());
+  __ Orr(z4.VnD(), z8.VnD(), z15.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t z1_expected[] = {0xfedcaa8854540000, 0x0000454588aacdef};
+    uint64_t z2_expected[] = {0x0000101022003210, 0x0123002201010000};
+    uint64_t z3_expected[] = {0x01235476ab89fedc, 0xcdef98ba67453210};
+    uint64_t z4_expected[] = {0xfffffefeffddfedc, 0xcdefddffefefffff};
+
+    ASSERT_EQUAL_SVE(z1_expected, z1.VnD());
+    ASSERT_EQUAL_SVE(z2_expected, z2.VnD());
+    ASSERT_EQUAL_SVE(z3_expected, z3.VnD());
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+  }
+}
+
+TEST_SVE(sve_last_r) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE, CPUFeatures::kNEON);
+  START();
+
+  __ Pfalse(p1.VnB());
+  int p2_inputs[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
+  int p3_inputs[] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0};
+  Initialise(&masm, p2.VnB(), p2_inputs);
+  Initialise(&masm, p3.VnB(), p3_inputs);
+  __ Ptrue(p4.VnB());
+
+  __ Index(z0.VnB(), 0x10, 1);
+  __ Lasta(x1, p1, z0.VnB());
+  __ Lastb(x2, p1, z0.VnB());
+  __ Lasta(x3, p2, z0.VnB());
+  __ Lastb(x4, p2, z0.VnB());
+  __ Lasta(x5, p3, z0.VnB());
+  __ Lastb(x6, p3, z0.VnB());
+  __ Lasta(x7, p4, z0.VnB());
+
+  __ Punpklo(p3.VnH(), p3.VnB());
+  __ Index(z0.VnH(), 0x1110, 1);
+  __ Lasta(x9, p1, z0.VnH());
+  __ Lastb(x10, p3, z0.VnH());
+  __ Lasta(x12, p4, z0.VnH());
+
+  __ Index(z0.VnS(), 0x11111110, 1);
+  __ Lastb(x13, p1, z0.VnS());
+  __ Lasta(x14, p2, z0.VnS());
+  __ Lastb(x18, p4, z0.VnS());
+
+  __ Index(z0.VnD(), 0x1111111111111110, 1);
+  __ Lasta(x19, p1, z0.VnD());
+  __ Lastb(x20, p3, z0.VnD());
+  __ Lasta(x21, p3, z0.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_64(0x0000000000000010, x1);
+    ASSERT_EQUAL_64(0x0000000000000011, x3);
+    ASSERT_EQUAL_64(0x0000000000000010, x4);
+    ASSERT_EQUAL_64(0x0000000000000019, x5);
+    ASSERT_EQUAL_64(0x0000000000000018, x6);
+    ASSERT_EQUAL_64(0x0000000000000010, x7);
+    ASSERT_EQUAL_64(0x0000000000001110, x9);
+    ASSERT_EQUAL_64(0x0000000000001110, x12);
+    ASSERT_EQUAL_64(0x0000000011111111, x14);
+    ASSERT_EQUAL_64(0x1111111111111110, x19);
+
+    int vl = core.GetSVELaneCount(kBRegSize) * 8;
+    switch (vl) {
+      case 128:
+        ASSERT_EQUAL_64(0x000000000000001f, x2);
+        ASSERT_EQUAL_64(0x0000000000001116, x10);
+        ASSERT_EQUAL_64(0x0000000011111113, x13);
+        ASSERT_EQUAL_64(0x0000000011111113, x18);
+        ASSERT_EQUAL_64(0x1111111111111111, x20);
+        ASSERT_EQUAL_64(0x1111111111111110, x21);
+        break;
+      case 384:
+        ASSERT_EQUAL_64(0x000000000000003f, x2);
+        ASSERT_EQUAL_64(0x0000000000001118, x10);
+        ASSERT_EQUAL_64(0x000000001111111b, x13);
+        ASSERT_EQUAL_64(0x000000001111111b, x18);
+        ASSERT_EQUAL_64(0x1111111111111112, x20);
+        ASSERT_EQUAL_64(0x1111111111111113, x21);
+        break;
+      case 2048:
+        ASSERT_EQUAL_64(0x000000000000000f, x2);
+        ASSERT_EQUAL_64(0x0000000000001118, x10);
+        ASSERT_EQUAL_64(0x000000001111114f, x13);
+        ASSERT_EQUAL_64(0x000000001111114f, x18);
+        ASSERT_EQUAL_64(0x1111111111111112, x20);
+        ASSERT_EQUAL_64(0x1111111111111113, x21);
+        break;
+      default:
+        printf("WARNING: Some tests skipped due to unexpected VL.\n");
+        break;
+    }
+  }
+}
+
+TEST_SVE(sve_last_v) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE, CPUFeatures::kNEON);
+  START();
+
+  __ Pfalse(p1.VnB());
+  int p2_inputs[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
+  int p3_inputs[] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0};
+  Initialise(&masm, p2.VnB(), p2_inputs);
+  Initialise(&masm, p3.VnB(), p3_inputs);
+  __ Ptrue(p4.VnB());
+
+  __ Index(z0.VnB(), 0x10, 1);
+  __ Lasta(b1, p1, z0.VnB());
+  __ Lastb(b2, p1, z0.VnB());
+  __ Lasta(b3, p2, z0.VnB());
+  __ Lastb(b4, p2, z0.VnB());
+  __ Lasta(b5, p3, z0.VnB());
+  __ Lastb(b6, p3, z0.VnB());
+  __ Lasta(b7, p4, z0.VnB());
+
+  __ Punpklo(p3.VnH(), p3.VnB());
+  __ Index(z0.VnH(), 0x1110, 1);
+  __ Lasta(h9, p1, z0.VnH());
+  __ Lastb(h10, p3, z0.VnH());
+  __ Lasta(h12, p4, z0.VnH());
+
+  __ Index(z0.VnS(), 0x11111110, 1);
+  __ Lastb(s13, p1, z0.VnS());
+  __ Lasta(s14, p2, z0.VnS());
+  __ Lastb(s18, p4, z0.VnS());
+
+  __ Index(z0.VnD(), 0x1111111111111110, 1);
+  __ Lasta(d19, p1, z0.VnD());
+  __ Lastb(d20, p3, z0.VnD());
+  __ Lasta(d21, p3, z0.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_128(0, 0x0000000000000010, q1);
+    ASSERT_EQUAL_128(0, 0x0000000000000011, q3);
+    ASSERT_EQUAL_128(0, 0x0000000000000010, q4);
+    ASSERT_EQUAL_128(0, 0x0000000000000019, q5);
+    ASSERT_EQUAL_128(0, 0x0000000000000018, q6);
+    ASSERT_EQUAL_128(0, 0x0000000000000010, q7);
+    ASSERT_EQUAL_128(0, 0x0000000000001110, q9);
+    ASSERT_EQUAL_128(0, 0x0000000000001110, q12);
+    ASSERT_EQUAL_128(0, 0x0000000011111111, q14);
+    ASSERT_EQUAL_128(0, 0x1111111111111110, q19);
+
+    int vl = core.GetSVELaneCount(kBRegSize) * 8;
+    switch (vl) {
+      case 128:
+        ASSERT_EQUAL_128(0, 0x000000000000001f, q2);
+        ASSERT_EQUAL_128(0, 0x0000000000001116, q10);
+        ASSERT_EQUAL_128(0, 0x0000000011111113, q13);
+        ASSERT_EQUAL_128(0, 0x0000000011111113, q18);
+        ASSERT_EQUAL_128(0, 0x1111111111111111, q20);
+        ASSERT_EQUAL_128(0, 0x1111111111111110, q21);
+        break;
+      case 384:
+        ASSERT_EQUAL_128(0, 0x000000000000003f, q2);
+        ASSERT_EQUAL_128(0, 0x0000000000001118, q10);
+        ASSERT_EQUAL_128(0, 0x000000001111111b, q13);
+        ASSERT_EQUAL_128(0, 0x000000001111111b, q18);
+        ASSERT_EQUAL_128(0, 0x1111111111111112, q20);
+        ASSERT_EQUAL_128(0, 0x1111111111111113, q21);
+        break;
+      case 2048:
+        ASSERT_EQUAL_128(0, 0x000000000000000f, q2);
+        ASSERT_EQUAL_128(0, 0x0000000000001118, q10);
+        ASSERT_EQUAL_128(0, 0x000000001111114f, q13);
+        ASSERT_EQUAL_128(0, 0x000000001111114f, q18);
+        ASSERT_EQUAL_128(0, 0x1111111111111112, q20);
+        ASSERT_EQUAL_128(0, 0x1111111111111113, q21);
+        break;
+      default:
+        printf("WARNING: Some tests skipped due to unexpected VL.\n");
+        break;
+    }
+  }
+}
+
+TEST_SVE(sve_clast_r) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE, CPUFeatures::kNEON);
+  START();
+
+  __ Pfalse(p1.VnB());
+  int p2_inputs[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
+  int p3_inputs[] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0};
+  Initialise(&masm, p2.VnB(), p2_inputs);
+  Initialise(&masm, p3.VnB(), p3_inputs);
+  __ Ptrue(p4.VnB());
+
+  __ Index(z0.VnB(), 0x10, 1);
+  __ Mov(x1, -1);
+  __ Mov(x2, -1);
+  __ Clasta(x1, p1, x1, z0.VnB());
+  __ Clastb(x2, p1, x2, z0.VnB());
+  __ Clasta(x3, p2, x3, z0.VnB());
+  __ Clastb(x4, p2, x4, z0.VnB());
+  __ Clasta(x5, p3, x5, z0.VnB());
+  __ Clastb(x6, p3, x6, z0.VnB());
+  __ Clasta(x7, p4, x7, z0.VnB());
+
+  __ Punpklo(p3.VnH(), p3.VnB());
+  __ Index(z0.VnH(), 0x1110, 1);
+  __ Mov(x9, -1);
+  __ Clasta(x9, p1, x9, z0.VnH());
+  __ Clastb(x10, p3, x10, z0.VnH());
+  __ Clasta(x12, p4, x12, z0.VnH());
+
+  __ Index(z0.VnS(), 0x11111110, 1);
+  __ Mov(x13, -1);
+  __ Clasta(x13, p1, x13, z0.VnS());
+  __ Clastb(x14, p2, x14, z0.VnS());
+  __ Clasta(x18, p4, x18, z0.VnS());
+
+  __ Index(z0.VnD(), 0x1111111111111110, 1);
+  __ Mov(x19, -1);
+  __ Clasta(x19, p1, x19, z0.VnD());
+  __ Clastb(x20, p2, x20, z0.VnD());
+  __ Clasta(x21, p4, x21, z0.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    ASSERT_EQUAL_64(0x00000000000000ff, x1);
+    ASSERT_EQUAL_64(0x00000000000000ff, x2);
+    ASSERT_EQUAL_64(0x0000000000000011, x3);
+    ASSERT_EQUAL_64(0x0000000000000010, x4);
+    ASSERT_EQUAL_64(0x0000000000000019, x5);
+    ASSERT_EQUAL_64(0x0000000000000018, x6);
+    ASSERT_EQUAL_64(0x0000000000000010, x7);
+    ASSERT_EQUAL_64(0x000000000000ffff, x9);
+    ASSERT_EQUAL_64(0x0000000000001110, x12);
+    ASSERT_EQUAL_64(0x00000000ffffffff, x13);
+    ASSERT_EQUAL_64(0x0000000011111110, x14);
+    ASSERT_EQUAL_64(0x0000000011111110, x18);
+    ASSERT_EQUAL_64(0xffffffffffffffff, x19);
+    ASSERT_EQUAL_64(0x1111111111111110, x20);
+    ASSERT_EQUAL_64(0x1111111111111110, x21);
+
+    int vl = core.GetSVELaneCount(kBRegSize) * 8;
+    switch (vl) {
+      case 128:
+        ASSERT_EQUAL_64(0x0000000000001116, x10);
+        break;
+      case 384:
+        ASSERT_EQUAL_64(0x0000000000001118, x10);
+        break;
+      case 2048:
+        ASSERT_EQUAL_64(0x0000000000001118, x10);
+        break;
+      default:
+        printf("WARNING: Some tests skipped due to unexpected VL.\n");
+        break;
+    }
+  }
+}
+
+TEST_SVE(sve_clast_v) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE, CPUFeatures::kNEON);
+  START();
+
+  __ Pfalse(p1.VnB());
+  int p2_inputs[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
+  int p3_inputs[] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0};
+  Initialise(&masm, p2.VnB(), p2_inputs);
+  Initialise(&masm, p3.VnB(), p3_inputs);
+  __ Ptrue(p4.VnB());
+
+  __ Index(z0.VnB(), 0x10, 1);
+  __ Dup(z1.VnB(), -1);
+  __ Dup(z2.VnB(), -1);
+  __ Clasta(b1, p1, b1, z0.VnB());
+  __ Clastb(b2, p1, b2, z0.VnB());
+  __ Clasta(b3, p2, b3, z0.VnB());
+  __ Clastb(b4, p2, b4, z0.VnB());
+  __ Clasta(b5, p3, b5, z0.VnB());
+  __ Clastb(b6, p3, b6, z0.VnB());
+  __ Clasta(b7, p4, b7, z0.VnB());
+
+  __ Punpklo(p3.VnH(), p3.VnB());
+  __ Index(z0.VnH(), 0x1110, 1);
+  __ Dup(z9.VnB(), -1);
+  __ Clasta(h9, p1, h9, z0.VnH());
+  __ Clastb(h10, p3, h10, z0.VnH());
+  __ Clasta(h12, p4, h12, z0.VnH());
+
+  __ Index(z0.VnS(), 0x11111110, 1);
+  __ Dup(z13.VnB(), -1);
+  __ Clasta(s13, p1, s13, z0.VnS());
+  __ Clastb(s14, p2, s14, z0.VnS());
+  __ Clasta(s18, p4, s18, z0.VnS());
+
+  __ Index(z0.VnD(), 0x1111111111111110, 1);
+  __ Dup(z19.VnB(), -1);
+  __ Clasta(d19, p1, d19, z0.VnD());
+  __ Clastb(d20, p2, d20, z0.VnD());
+  __ Clasta(d21, p4, d21, z0.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    ASSERT_EQUAL_128(0, 0x00000000000000ff, q1);
+    ASSERT_EQUAL_128(0, 0x00000000000000ff, q2);
+    ASSERT_EQUAL_128(0, 0x0000000000000011, q3);
+    ASSERT_EQUAL_128(0, 0x0000000000000010, q4);
+    ASSERT_EQUAL_128(0, 0x0000000000000019, q5);
+    ASSERT_EQUAL_128(0, 0x0000000000000018, q6);
+    ASSERT_EQUAL_128(0, 0x0000000000000010, q7);
+    ASSERT_EQUAL_128(0, 0x000000000000ffff, q9);
+    ASSERT_EQUAL_128(0, 0x0000000000001110, q12);
+    ASSERT_EQUAL_128(0, 0x00000000ffffffff, q13);
+    ASSERT_EQUAL_128(0, 0x0000000011111110, q14);
+    ASSERT_EQUAL_128(0, 0x0000000011111110, q18);
+    ASSERT_EQUAL_128(0, 0xffffffffffffffff, q19);
+    ASSERT_EQUAL_128(0, 0x1111111111111110, q20);
+    ASSERT_EQUAL_128(0, 0x1111111111111110, q21);
+
+    int vl = core.GetSVELaneCount(kBRegSize) * 8;
+    switch (vl) {
+      case 128:
+        ASSERT_EQUAL_128(0, 0x0000000000001116, q10);
+        break;
+      case 384:
+        ASSERT_EQUAL_128(0, 0x0000000000001118, q10);
+        break;
+      case 2048:
+        ASSERT_EQUAL_128(0, 0x0000000000001118, q10);
+        break;
+      default:
+        printf("WARNING: Some tests skipped due to unexpected VL.\n");
+        break;
+    }
+  }
+}
+
+TEST_SVE(sve_clast_z) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE, CPUFeatures::kNEON);
+  START();
+
+  __ Pfalse(p1.VnB());
+  int p2_inputs[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
+  int p3_inputs[] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0};
+  Initialise(&masm, p2.VnB(), p2_inputs);
+  Initialise(&masm, p3.VnB(), p3_inputs);
+  __ Ptrue(p4.VnB());
+
+  __ Index(z0.VnB(), 0x10, 1);
+  __ Dup(z1.VnB(), 0xff);
+  __ Dup(z2.VnB(), 0xff);
+  __ Clasta(z1.VnB(), p1, z1.VnB(), z0.VnB());
+  __ Clastb(z2.VnB(), p1, z2.VnB(), z0.VnB());
+  __ Clasta(z3.VnB(), p2, z3.VnB(), z0.VnB());
+  __ Clastb(z4.VnB(), p2, z4.VnB(), z0.VnB());
+  __ Clasta(z5.VnB(), p3, z5.VnB(), z0.VnB());
+  __ Clastb(z6.VnB(), p3, z6.VnB(), z0.VnB());
+  __ Clasta(z7.VnB(), p4, z7.VnB(), z0.VnB());
+
+  __ Punpklo(p3.VnH(), p3.VnB());
+  __ Index(z0.VnH(), 0x1110, 1);
+  __ Dup(z9.VnB(), 0xff);
+  __ Clasta(z9.VnH(), p1, z9.VnH(), z0.VnH());
+  __ Clastb(z10.VnH(), p3, z10.VnH(), z0.VnH());
+  __ Clasta(z12.VnH(), p4, z12.VnH(), z0.VnH());
+
+  __ Index(z0.VnS(), 0x11111110, 1);
+  __ Dup(z13.VnB(), 0xff);
+  __ Clasta(z13.VnS(), p1, z13.VnS(), z0.VnS());
+  __ Clastb(z14.VnS(), p2, z14.VnS(), z0.VnS());
+  __ Clasta(z16.VnS(), p4, z16.VnS(), z0.VnS());
+
+  __ Index(z0.VnD(), 0x1111111111111110, 1);
+  __ Dup(z17.VnB(), 0xff);
+  __ Clasta(z17.VnD(), p1, z17.VnD(), z0.VnD());
+  __ Clastb(z18.VnD(), p2, z18.VnD(), z0.VnD());
+  __ Clasta(z20.VnD(), p4, z20.VnD(), z0.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t z1_expected[] = {0xffffffffffffffff, 0xffffffffffffffff};
+    uint64_t z2_expected[] = {0xffffffffffffffff, 0xffffffffffffffff};
+    uint64_t z3_expected[] = {0x1111111111111111, 0x1111111111111111};
+    uint64_t z4_expected[] = {0x1010101010101010, 0x1010101010101010};
+    uint64_t z5_expected[] = {0x1919191919191919, 0x1919191919191919};
+    uint64_t z6_expected[] = {0x1818181818181818, 0x1818181818181818};
+    uint64_t z7_expected[] = {0x1010101010101010, 0x1010101010101010};
+    uint64_t z9_expected[] = {0xffffffffffffffff, 0xffffffffffffffff};
+    uint64_t z12_expected[] = {0x1110111011101110, 0x1110111011101110};
+    uint64_t z13_expected[] = {0xffffffffffffffff, 0xffffffffffffffff};
+    uint64_t z14_expected[] = {0x1111111011111110, 0x1111111011111110};
+    uint64_t z16_expected[] = {0x1111111011111110, 0x1111111011111110};
+    uint64_t z17_expected[] = {0xffffffffffffffff, 0xffffffffffffffff};
+    uint64_t z18_expected[] = {0x1111111111111110, 0x1111111111111110};
+    uint64_t z20_expected[] = {0x1111111111111110, 0x1111111111111110};
+
+    uint64_t z10_expected_vl128[] = {0x1116111611161116, 0x1116111611161116};
+    uint64_t z10_expected_vl_long[] = {0x1118111811181118, 0x1118111811181118};
+
+    ASSERT_EQUAL_SVE(z1_expected, z1.VnD());
+    ASSERT_EQUAL_SVE(z2_expected, z2.VnD());
+    ASSERT_EQUAL_SVE(z3_expected, z3.VnD());
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+    ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+    ASSERT_EQUAL_SVE(z6_expected, z6.VnD());
+    ASSERT_EQUAL_SVE(z7_expected, z7.VnD());
+    ASSERT_EQUAL_SVE(z9_expected, z9.VnD());
+    ASSERT_EQUAL_SVE(z12_expected, z12.VnD());
+    ASSERT_EQUAL_SVE(z13_expected, z13.VnD());
+    ASSERT_EQUAL_SVE(z14_expected, z14.VnD());
+    ASSERT_EQUAL_SVE(z16_expected, z16.VnD());
+    ASSERT_EQUAL_SVE(z17_expected, z17.VnD());
+    ASSERT_EQUAL_SVE(z18_expected, z18.VnD());
+    ASSERT_EQUAL_SVE(z20_expected, z20.VnD());
+
+    int vl = core.GetSVELaneCount(kBRegSize) * 8;
+    switch (vl) {
+      case 128:
+        ASSERT_EQUAL_SVE(z10_expected_vl128, z10.VnD());
+        break;
+      case 384:
+      case 2048:
+        ASSERT_EQUAL_SVE(z10_expected_vl_long, z10.VnD());
+        break;
+      default:
+        printf("WARNING: Some tests skipped due to unexpected VL.\n");
+        break;
+    }
+  }
+}
+
+TEST_SVE(sve_compact) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE, CPUFeatures::kNEON);
+  START();
+
+  __ Ptrue(p0.VnB());
+  __ Pfalse(p1.VnB());
+  __ Zip1(p2.VnS(), p0.VnS(), p1.VnS());
+  __ Zip1(p3.VnS(), p1.VnS(), p0.VnS());
+  __ Zip1(p4.VnD(), p0.VnD(), p1.VnD());
+
+  __ Index(z0.VnS(), 0x11111111, 0x11111111);
+  __ Mov(q0, q0);
+  __ Compact(z1.VnS(), p0, z0.VnS());
+  __ Compact(z2.VnS(), p2, z0.VnS());
+  __ Compact(z0.VnS(), p3, z0.VnS());
+
+  __ Index(z3.VnD(), 0x1111111111111111, 0x1111111111111111);
+  __ Mov(q3, q3);
+  __ Compact(z4.VnD(), p0, z3.VnD());
+  __ Compact(z5.VnD(), p1, z3.VnD());
+  __ Compact(z6.VnD(), p4, z3.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t z1_expected[] = {0x4444444433333333, 0x2222222211111111};
+    uint64_t z2_expected[] = {0x0000000000000000, 0x3333333311111111};
+    uint64_t z0_expected[] = {0x0000000000000000, 0x4444444422222222};
+    uint64_t z4_expected[] = {0x2222222222222222, 0x1111111111111111};
+    uint64_t z5_expected[] = {0x0000000000000000, 0x0000000000000000};
+    uint64_t z6_expected[] = {0x0000000000000000, 0x1111111111111111};
+    ASSERT_EQUAL_SVE(z1_expected, z1.VnD());
+    ASSERT_EQUAL_SVE(z2_expected, z2.VnD());
+    ASSERT_EQUAL_SVE(z0_expected, z0.VnD());
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+    ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+    ASSERT_EQUAL_SVE(z6_expected, z6.VnD());
+  }
+}
+
+TEST_SVE(sve_splice) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Ptrue(p0.VnB());
+  __ Pfalse(p1.VnB());
+  int p2b_inputs[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
+  int p3b_inputs[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0};
+  int p4b_inputs[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int p5b_inputs[] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0};
+  int p6b_inputs[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0};
+  Initialise(&masm, p2.VnB(), p2b_inputs);
+  Initialise(&masm, p3.VnB(), p3b_inputs);
+  Initialise(&masm, p4.VnB(), p4b_inputs);
+  Initialise(&masm, p5.VnB(), p5b_inputs);
+  Initialise(&masm, p6.VnB(), p6b_inputs);
+
+  __ Index(z30.VnB(), 1, 1);
+
+  __ Index(z0.VnB(), -1, -1);
+  __ Splice(z0.VnB(), p0, z0.VnB(), z30.VnB());
+  __ Index(z1.VnB(), -1, -1);
+  __ Splice(z1.VnB(), p1, z1.VnB(), z30.VnB());
+  __ Index(z2.VnB(), -1, -1);
+  __ Splice(z2.VnB(), p2, z2.VnB(), z30.VnB());
+  __ Index(z3.VnB(), -1, -1);
+  __ Splice(z3.VnB(), p3, z3.VnB(), z30.VnB());
+  __ Index(z4.VnB(), -1, -1);
+  __ Splice(z4.VnB(), p4, z4.VnB(), z30.VnB());
+  __ Index(z5.VnB(), -1, -1);
+  __ Splice(z5.VnB(), p5, z5.VnB(), z30.VnB());
+  __ Index(z6.VnB(), -1, -1);
+  __ Splice(z6.VnB(), p6, z6.VnB(), z30.VnB());
+
+  int p2h_inputs[] = {0, 0, 0, 0, 0, 0, 1, 0};
+  int p3h_inputs[] = {0, 0, 1, 0, 0, 0, 1, 0};
+  Initialise(&masm, p2.VnH(), p2h_inputs);
+  Initialise(&masm, p3.VnH(), p3h_inputs);
+
+  __ Index(z30.VnH(), 1, 1);
+  __ Index(z29.VnH(), -1, -1);
+  __ Splice(z7.VnH(), p2, z29.VnH(), z30.VnH());
+  __ Splice(z8.VnH(), p3, z29.VnH(), z30.VnH());
+
+  int p2s_inputs[] = {0, 0, 1, 0};
+  int p3s_inputs[] = {1, 0, 1, 0};
+  Initialise(&masm, p2.VnS(), p2s_inputs);
+  Initialise(&masm, p3.VnS(), p3s_inputs);
+
+  __ Index(z30.VnS(), 1, 1);
+  __ Index(z29.VnS(), -1, -1);
+  __ Splice(z9.VnS(), p2, z29.VnS(), z30.VnS());
+  __ Splice(z10.VnS(), p3, z29.VnS(), z30.VnS());
+
+  int p2d_inputs[] = {0, 1};
+  int p3d_inputs[] = {1, 0};
+  Initialise(&masm, p2.VnD(), p2d_inputs);
+  Initialise(&masm, p3.VnD(), p3d_inputs);
+
+  __ Index(z30.VnD(), 1, 1);
+  __ Index(z29.VnD(), -1, -1);
+  __ Splice(z11.VnD(), p2, z29.VnD(), z30.VnD());
+  __ Splice(z30.VnD(), p3, z29.VnD(), z30.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t z0_expected[] = {0xf0f1f2f3f4f5f6f7, 0xf8f9fafbfcfdfeff};
+    uint64_t z1_expected[] = {0x100f0e0d0c0b0a09, 0x0807060504030201};
+    uint64_t z2_expected[] = {0x0f0e0d0c0b0a0908, 0x07060504030201ff};
+    uint64_t z3_expected[] = {0x0f0e0d0c0b0a0908, 0x07060504030201fe};
+    uint64_t z4_expected[] = {0x0f0e0d0c0b0a0908, 0x07060504030201f0};
+    uint64_t z5_expected[] = {0x0c0b0a0908070605, 0x04030201f6f7f8f9};
+    uint64_t z6_expected[] = {0x01f0f1f2f3f4f5f6, 0xf7f8f9fafbfcfdfe};
+    uint64_t z7_expected[] = {0x0007000600050004, 0x000300020001fffe};
+    uint64_t z8_expected[] = {0x000300020001fffa, 0xfffbfffcfffdfffe};
+    uint64_t z9_expected[] = {0x0000000300000002, 0x00000001fffffffe};
+    uint64_t z10_expected[] = {0x00000001fffffffc, 0xfffffffdfffffffe};
+    uint64_t z11_expected[] = {0x0000000000000001, 0xffffffffffffffff};
+    uint64_t z30_expected[] = {0x0000000000000001, 0xfffffffffffffffe};
+
+    ASSERT_EQUAL_SVE(z0_expected, z0.VnD());
+    ASSERT_EQUAL_SVE(z1_expected, z1.VnD());
+    ASSERT_EQUAL_SVE(z2_expected, z2.VnD());
+    ASSERT_EQUAL_SVE(z3_expected, z3.VnD());
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+    ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+    ASSERT_EQUAL_SVE(z6_expected, z6.VnD());
+    ASSERT_EQUAL_SVE(z7_expected, z7.VnD());
+    ASSERT_EQUAL_SVE(z8_expected, z8.VnD());
+    ASSERT_EQUAL_SVE(z9_expected, z9.VnD());
+    ASSERT_EQUAL_SVE(z10_expected, z10.VnD());
+    ASSERT_EQUAL_SVE(z11_expected, z11.VnD());
+    ASSERT_EQUAL_SVE(z30_expected, z30.VnD());
+  }
+}
+
+TEST_SVE(sve_predicate_logical) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // 0b...01011010'10110111
+  int p10_inputs[] = {0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1};  // Pm
+  // 0b...11011001'01010010
+  int p11_inputs[] = {1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0};  // Pn
+  // 0b...01010101'10110010
+  int p12_inputs[] = {0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0};  // pg
+
+  Initialise(&masm, p10.VnB(), p10_inputs);
+  Initialise(&masm, p11.VnB(), p11_inputs);
+  Initialise(&masm, p12.VnB(), p12_inputs);
+
+  __ Ands(p0.VnB(), p12.Zeroing(), p11.VnB(), p10.VnB());
+  __ Mrs(x0, NZCV);
+  __ Bics(p1.VnB(), p12.Zeroing(), p11.VnB(), p10.VnB());
+  __ Mrs(x1, NZCV);
+  __ Eor(p2.VnB(), p12.Zeroing(), p11.VnB(), p10.VnB());
+  __ Nand(p3.VnB(), p12.Zeroing(), p11.VnB(), p10.VnB());
+  __ Nor(p4.VnB(), p12.Zeroing(), p11.VnB(), p10.VnB());
+  __ Orn(p5.VnB(), p12.Zeroing(), p11.VnB(), p10.VnB());
+  __ Orr(p6.VnB(), p12.Zeroing(), p11.VnB(), p10.VnB());
+  __ Sel(p7.VnB(), p12, p11.VnB(), p10.VnB());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // 0b...01010000'00010010
+    int p0_expected[] = {0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0};
+    // 0b...00000001'00000000
+    int p1_expected[] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0};
+    // 0b...00000001'10100000
+    int p2_expected[] = {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0};
+    // 0b...00000101'10100000
+    int p3_expected[] = {0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0};
+    // 0b...00000100'00000000
+    int p4_expected[] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+    // 0b...01010101'00010010
+    int p5_expected[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0};
+    // 0b...01010001'10110010
+    int p6_expected[] = {0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0};
+    // 0b...01011011'00010111
+    int p7_expected[] = {0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1};
+
+    ASSERT_EQUAL_SVE(p0_expected, p0.VnB());
+    ASSERT_EQUAL_SVE(p1_expected, p1.VnB());
+    ASSERT_EQUAL_SVE(p2_expected, p2.VnB());
+    ASSERT_EQUAL_SVE(p3_expected, p3.VnB());
+    ASSERT_EQUAL_SVE(p4_expected, p4.VnB());
+    ASSERT_EQUAL_SVE(p5_expected, p5.VnB());
+    ASSERT_EQUAL_SVE(p6_expected, p6.VnB());
+    ASSERT_EQUAL_SVE(p7_expected, p7.VnB());
+
+    ASSERT_EQUAL_32(SVEFirstFlag, w0);
+    ASSERT_EQUAL_32(SVENotLastFlag, w1);
+  }
+}
+
+TEST_SVE(sve_int_compare_vectors) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int z10_inputs[] = {0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff};
+  int z11_inputs[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0xfe};
+  int p0_inputs[] = {1, 0, 1, 1, 1, 1, 1, 1};
+  InsrHelper(&masm, z10.VnB(), z10_inputs);
+  InsrHelper(&masm, z11.VnB(), z11_inputs);
+  Initialise(&masm, p0.VnB(), p0_inputs);
+
+  __ Cmphs(p6.VnB(), p0.Zeroing(), z10.VnB(), z11.VnB());
+  __ Mrs(x6, NZCV);
+
+  uint64_t z12_inputs[] = {0xffffffffffffffff, 0x8000000000000000};
+  uint64_t z13_inputs[] = {0x0000000000000000, 0x8000000000000000};
+  int p1_inputs[] = {1, 1};
+  InsrHelper(&masm, z12.VnD(), z12_inputs);
+  InsrHelper(&masm, z13.VnD(), z13_inputs);
+  Initialise(&masm, p1.VnD(), p1_inputs);
+
+  __ Cmphi(p7.VnD(), p1.Zeroing(), z12.VnD(), z13.VnD());
+  __ Mrs(x7, NZCV);
+
+  int z14_inputs[] = {0, 32767, -1, -32767, 0, 0, 0, 32766};
+  int z15_inputs[] = {0, 0, 0, 0, 32767, -1, -32767, 32767};
+
+  int p2_inputs[] = {1, 0, 1, 1, 1, 1, 1, 1};
+  InsrHelper(&masm, z14.VnH(), z14_inputs);
+  InsrHelper(&masm, z15.VnH(), z15_inputs);
+  Initialise(&masm, p2.VnH(), p2_inputs);
+
+  __ Cmpge(p8.VnH(), p2.Zeroing(), z14.VnH(), z15.VnH());
+  __ Mrs(x8, NZCV);
+
+  __ Cmpeq(p9.VnH(), p2.Zeroing(), z14.VnH(), z15.VnH());
+  __ Mrs(x9, NZCV);
+
+  int z16_inputs[] = {0, -1, 0, 0};
+  int z17_inputs[] = {0, 0, 2147483647, -2147483648};
+  int p3_inputs[] = {1, 1, 1, 1};
+  InsrHelper(&masm, z16.VnS(), z16_inputs);
+  InsrHelper(&masm, z17.VnS(), z17_inputs);
+  Initialise(&masm, p3.VnS(), p3_inputs);
+
+  __ Cmpgt(p10.VnS(), p3.Zeroing(), z16.VnS(), z17.VnS());
+  __ Mrs(x10, NZCV);
+
+  __ Cmpne(p11.VnS(), p3.Zeroing(), z16.VnS(), z17.VnS());
+  __ Mrs(x11, NZCV);
+
+  // Architectural aliases testing.
+  __ Cmpls(p12.VnB(), p0.Zeroing(), z11.VnB(), z10.VnB());  // HS
+  __ Cmplo(p13.VnD(), p1.Zeroing(), z13.VnD(), z12.VnD());  // HI
+  __ Cmple(p14.VnH(), p2.Zeroing(), z15.VnH(), z14.VnH());  // GE
+  __ Cmplt(p15.VnS(), p3.Zeroing(), z17.VnS(), z16.VnS());  // GT
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int p6_expected[] = {1, 0, 1, 1, 0, 0, 0, 1};
+    for (size_t i = 0; i < ArrayLength(p6_expected); i++) {
+      int lane = static_cast<int>(ArrayLength(p6_expected) - i - 1);
+      ASSERT_EQUAL_SVE_LANE(p6_expected[i], p6.VnB(), lane);
+    }
+
+    int p7_expected[] = {1, 0};
+    ASSERT_EQUAL_SVE(p7_expected, p7.VnD());
+
+    int p8_expected[] = {1, 0, 0, 0, 0, 1, 1, 0};
+    ASSERT_EQUAL_SVE(p8_expected, p8.VnH());
+
+    int p9_expected[] = {1, 0, 0, 0, 0, 0, 0, 0};
+    ASSERT_EQUAL_SVE(p9_expected, p9.VnH());
+
+    int p10_expected[] = {0, 0, 0, 1};
+    ASSERT_EQUAL_SVE(p10_expected, p10.VnS());
+
+    int p11_expected[] = {0, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p11_expected, p11.VnS());
+
+    // Reuse the expected results to verify the architectural aliases.
+    ASSERT_EQUAL_SVE(p6_expected, p12.VnB());
+    ASSERT_EQUAL_SVE(p7_expected, p13.VnD());
+    ASSERT_EQUAL_SVE(p8_expected, p14.VnH());
+    ASSERT_EQUAL_SVE(p10_expected, p15.VnS());
+
+    ASSERT_EQUAL_32(SVEFirstFlag, w6);
+    ASSERT_EQUAL_32(NoFlag, w7);
+    ASSERT_EQUAL_32(NoFlag, w8);
+    ASSERT_EQUAL_32(NoFlag, w9);
+    ASSERT_EQUAL_32(SVEFirstFlag | SVENotLastFlag, w10);
+  }
+}
+
+TEST_SVE(sve_int_compare_vectors_wide_elements) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int src1_inputs_1[] = {0, 1, -1, -128, 127, 100, -66};
+  int src2_inputs_1[] = {0, -1};
+  int mask_inputs_1[] = {1, 1, 1, 1, 1, 0, 1};
+  InsrHelper(&masm, z13.VnB(), src1_inputs_1);
+  InsrHelper(&masm, z19.VnD(), src2_inputs_1);
+  Initialise(&masm, p0.VnB(), mask_inputs_1);
+
+  __ Cmpge(p2.VnB(), p0.Zeroing(), z13.VnB(), z19.VnD());
+  __ Mrs(x2, NZCV);
+  __ Cmpgt(p3.VnB(), p0.Zeroing(), z13.VnB(), z19.VnD());
+  __ Mrs(x3, NZCV);
+
+  int src1_inputs_2[] = {0, 32767, -1, -32767, 1, 1234, 0, 32766};
+  int src2_inputs_2[] = {0, -32767};
+  int mask_inputs_2[] = {1, 0, 1, 1, 1, 1, 1, 1};
+  InsrHelper(&masm, z13.VnH(), src1_inputs_2);
+  InsrHelper(&masm, z19.VnD(), src2_inputs_2);
+  Initialise(&masm, p0.VnH(), mask_inputs_2);
+
+  __ Cmple(p4.VnH(), p0.Zeroing(), z13.VnH(), z19.VnD());
+  __ Mrs(x4, NZCV);
+  __ Cmplt(p5.VnH(), p0.Zeroing(), z13.VnH(), z19.VnD());
+  __ Mrs(x5, NZCV);
+
+  int src1_inputs_3[] = {0, -1, 2147483647, -2147483648};
+  int src2_inputs_3[] = {0, -2147483648};
+  int mask_inputs_3[] = {1, 1, 1, 1};
+  InsrHelper(&masm, z13.VnS(), src1_inputs_3);
+  InsrHelper(&masm, z19.VnD(), src2_inputs_3);
+  Initialise(&masm, p0.VnS(), mask_inputs_3);
+
+  __ Cmpeq(p6.VnS(), p0.Zeroing(), z13.VnS(), z19.VnD());
+  __ Mrs(x6, NZCV);
+  __ Cmpne(p7.VnS(), p0.Zeroing(), z13.VnS(), z19.VnD());
+  __ Mrs(x7, NZCV);
+
+  int src1_inputs_4[] = {0x00, 0x80, 0x7f, 0xff, 0x7f, 0xf0, 0x0f, 0x55};
+  int src2_inputs_4[] = {0x00, 0x7f};
+  int mask_inputs_4[] = {1, 1, 1, 1, 0, 1, 1, 1};
+  InsrHelper(&masm, z13.VnB(), src1_inputs_4);
+  InsrHelper(&masm, z19.VnD(), src2_inputs_4);
+  Initialise(&masm, p0.VnB(), mask_inputs_4);
+
+  __ Cmplo(p8.VnB(), p0.Zeroing(), z13.VnB(), z19.VnD());
+  __ Mrs(x8, NZCV);
+  __ Cmpls(p9.VnB(), p0.Zeroing(), z13.VnB(), z19.VnD());
+  __ Mrs(x9, NZCV);
+
+  int src1_inputs_5[] = {0x0000, 0x8000, 0x7fff, 0xffff};
+  int src2_inputs_5[] = {0x8000, 0xffff};
+  int mask_inputs_5[] = {1, 1, 1, 1};
+  InsrHelper(&masm, z13.VnS(), src1_inputs_5);
+  InsrHelper(&masm, z19.VnD(), src2_inputs_5);
+  Initialise(&masm, p0.VnS(), mask_inputs_5);
+
+  __ Cmphi(p10.VnS(), p0.Zeroing(), z13.VnS(), z19.VnD());
+  __ Mrs(x10, NZCV);
+  __ Cmphs(p11.VnS(), p0.Zeroing(), z13.VnS(), z19.VnD());
+  __ Mrs(x11, NZCV);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    int p2_expected[] = {1, 1, 1, 0, 1, 0, 0};
+    ASSERT_EQUAL_SVE(p2_expected, p2.VnB());
+
+    int p3_expected[] = {1, 1, 0, 0, 1, 0, 0};
+    ASSERT_EQUAL_SVE(p3_expected, p3.VnB());
+
+    int p4_expected[] = {0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0};
+    ASSERT_EQUAL_SVE(p4_expected, p4.VnH());
+
+    int p5_expected[] = {0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0};
+    ASSERT_EQUAL_SVE(p5_expected, p5.VnH());
+
+    int p6_expected[] = {0x1, 0x0, 0x0, 0x1};
+    ASSERT_EQUAL_SVE(p6_expected, p6.VnS());
+
+    int p7_expected[] = {0x0, 0x1, 0x1, 0x0};
+    ASSERT_EQUAL_SVE(p7_expected, p7.VnS());
+
+    int p8_expected[] = {1, 0, 0, 0, 0, 0, 1, 1};
+    ASSERT_EQUAL_SVE(p8_expected, p8.VnB());
+
+    int p9_expected[] = {1, 0, 1, 0, 0, 0, 1, 1};
+    ASSERT_EQUAL_SVE(p9_expected, p9.VnB());
+
+    int p10_expected[] = {0x0, 0x0, 0x0, 0x0};
+    ASSERT_EQUAL_SVE(p10_expected, p10.VnS());
+
+    int p11_expected[] = {0x0, 0x1, 0x0, 0x1};
+    ASSERT_EQUAL_SVE(p11_expected, p11.VnS());
+
+    ASSERT_EQUAL_32(NoFlag, w2);
+    ASSERT_EQUAL_32(NoFlag, w3);
+    ASSERT_EQUAL_32(NoFlag, w4);
+    ASSERT_EQUAL_32(SVENotLastFlag, w5);
+    ASSERT_EQUAL_32(SVEFirstFlag, w6);
+    ASSERT_EQUAL_32(SVENotLastFlag, w7);
+    ASSERT_EQUAL_32(SVEFirstFlag, w8);
+    ASSERT_EQUAL_32(SVEFirstFlag, w9);
+    ASSERT_EQUAL_32(SVENotLastFlag | SVENoneFlag, w10);
+    ASSERT_EQUAL_32(SVENotLastFlag | SVEFirstFlag, w11);
+  }
+}
+
+TEST_SVE(sve_bitwise_imm) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // clang-format off
+  uint64_t z21_inputs[] = {0xfedcba9876543210, 0x0123456789abcdef};
+  uint32_t z22_inputs[] = {0xfedcba98, 0x76543210, 0x01234567, 0x89abcdef};
+  uint16_t z23_inputs[] = {0xfedc, 0xba98, 0x7654, 0x3210,
+                           0x0123, 0x4567, 0x89ab, 0xcdef};
+  uint8_t z24_inputs[] = {0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
+                          0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef};
+  // clang-format on
+
+  InsrHelper(&masm, z1.VnD(), z21_inputs);
+  InsrHelper(&masm, z2.VnS(), z22_inputs);
+  InsrHelper(&masm, z3.VnH(), z23_inputs);
+  InsrHelper(&masm, z4.VnB(), z24_inputs);
+
+  __ And(z1.VnD(), z1.VnD(), 0x0000ffff0000ffff);
+  __ And(z2.VnS(), z2.VnS(), 0xff0000ff);
+  __ And(z3.VnH(), z3.VnH(), 0x0ff0);
+  __ And(z4.VnB(), z4.VnB(), 0x3f);
+
+  InsrHelper(&masm, z5.VnD(), z21_inputs);
+  InsrHelper(&masm, z6.VnS(), z22_inputs);
+  InsrHelper(&masm, z7.VnH(), z23_inputs);
+  InsrHelper(&masm, z8.VnB(), z24_inputs);
+
+  __ Eor(z5.VnD(), z5.VnD(), 0x0000ffff0000ffff);
+  __ Eor(z6.VnS(), z6.VnS(), 0xff0000ff);
+  __ Eor(z7.VnH(), z7.VnH(), 0x0ff0);
+  __ Eor(z8.VnB(), z8.VnB(), 0x3f);
+
+  InsrHelper(&masm, z9.VnD(), z21_inputs);
+  InsrHelper(&masm, z10.VnS(), z22_inputs);
+  InsrHelper(&masm, z11.VnH(), z23_inputs);
+  InsrHelper(&masm, z12.VnB(), z24_inputs);
+
+  __ Orr(z9.VnD(), z9.VnD(), 0x0000ffff0000ffff);
+  __ Orr(z10.VnS(), z10.VnS(), 0xff0000ff);
+  __ Orr(z11.VnH(), z11.VnH(), 0x0ff0);
+  __ Orr(z12.VnB(), z12.VnB(), 0x3f);
+
+  {
+    // The `Dup` macro maps onto either `dup` or `dupm`, but has its own test,
+    // so here we test `dupm` directly.
+    ExactAssemblyScope guard(&masm, 4 * kInstructionSize);
+    __ dupm(z13.VnD(), 0x7ffffff800000000);
+    __ dupm(z14.VnS(), 0x7ffc7ffc);
+    __ dupm(z15.VnH(), 0x3ffc);
+    __ dupm(z16.VnB(), 0xc3);
+  }
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // clang-format off
+    uint64_t z1_expected[] = {0x0000ba9800003210, 0x000045670000cdef};
+    uint32_t z2_expected[] = {0xfe000098, 0x76000010, 0x01000067, 0x890000ef};
+    uint16_t z3_expected[] = {0x0ed0, 0x0a90, 0x0650, 0x0210,
+                              0x0120, 0x0560, 0x09a0, 0x0de0};
+    uint8_t z4_expected[] = {0x3e, 0x1c, 0x3a, 0x18, 0x36, 0x14, 0x32, 0x10,
+                             0x01, 0x23, 0x05, 0x27, 0x09, 0x2b, 0x0d, 0x2f};
+
+    ASSERT_EQUAL_SVE(z1_expected, z1.VnD());
+    ASSERT_EQUAL_SVE(z2_expected, z2.VnS());
+    ASSERT_EQUAL_SVE(z3_expected, z3.VnH());
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnB());
+
+    uint64_t z5_expected[] = {0xfedc45677654cdef, 0x0123ba9889ab3210};
+    uint32_t z6_expected[] = {0x01dcba67, 0x895432ef, 0xfe234598, 0x76abcd10};
+    uint16_t z7_expected[] = {0xf12c, 0xb568, 0x79a4, 0x3de0,
+                              0x0ed3, 0x4a97, 0x865b, 0xc21f};
+    uint8_t z8_expected[] = {0xc1, 0xe3, 0x85, 0xa7, 0x49, 0x6b, 0x0d, 0x2f,
+                             0x3e, 0x1c, 0x7a, 0x58, 0xb6, 0x94, 0xf2, 0xd0};
+
+    ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+    ASSERT_EQUAL_SVE(z6_expected, z6.VnS());
+    ASSERT_EQUAL_SVE(z7_expected, z7.VnH());
+    ASSERT_EQUAL_SVE(z8_expected, z8.VnB());
+
+    uint64_t z9_expected[] = {0xfedcffff7654ffff, 0x0123ffff89abffff};
+    uint32_t z10_expected[] = {0xffdcbaff, 0xff5432ff,  0xff2345ff, 0xffabcdff};
+    uint16_t z11_expected[] = {0xfffc, 0xbff8, 0x7ff4, 0x3ff0,
+                               0x0ff3, 0x4ff7, 0x8ffb, 0xcfff};
+    uint8_t z12_expected[] = {0xff, 0xff, 0xbf, 0xbf, 0x7f, 0x7f, 0x3f, 0x3f,
+                              0x3f, 0x3f, 0x7f, 0x7f, 0xbf, 0xbf, 0xff, 0xff};
+
+    ASSERT_EQUAL_SVE(z9_expected, z9.VnD());
+    ASSERT_EQUAL_SVE(z10_expected, z10.VnS());
+    ASSERT_EQUAL_SVE(z11_expected, z11.VnH());
+    ASSERT_EQUAL_SVE(z12_expected, z12.VnB());
+
+    uint64_t z13_expected[] = {0x7ffffff800000000, 0x7ffffff800000000};
+    uint32_t z14_expected[] = {0x7ffc7ffc, 0x7ffc7ffc, 0x7ffc7ffc, 0x7ffc7ffc};
+    uint16_t z15_expected[] = {0x3ffc, 0x3ffc, 0x3ffc, 0x3ffc,
+                               0x3ffc, 0x3ffc, 0x3ffc ,0x3ffc};
+    ASSERT_EQUAL_SVE(z13_expected, z13.VnD());
+    ASSERT_EQUAL_SVE(z14_expected, z14.VnS());
+    ASSERT_EQUAL_SVE(z15_expected, z15.VnH());
+    // clang-format on
+  }
+}
+
+TEST_SVE(sve_dup_imm) {
+  // The `Dup` macro can generate `dup`, `dupm`, and it can synthesise
+  // unencodable immediates.
+
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Encodable with `dup` (shift 0).
+  __ Dup(z0.VnD(), -1);
+  __ Dup(z1.VnS(), 0x7f);
+  __ Dup(z2.VnH(), -0x80);
+  __ Dup(z3.VnB(), 42);
+
+  // Encodable with `dup` (shift 8).
+  __ Dup(z4.VnD(), -42 * 256);
+  __ Dup(z5.VnS(), -0x8000);
+  __ Dup(z6.VnH(), 0x7f00);
+  // B-sized lanes cannot take a shift of 8.
+
+  // Encodable with `dupm` (but not `dup`).
+  __ Dup(z10.VnD(), 0x3fc);
+  __ Dup(z11.VnS(), -516097);  // 0xfff81fff, as a signed int.
+  __ Dup(z12.VnH(), 0x0001);
+  // All values that fit B-sized lanes are encodable with `dup`.
+
+  // Cases that require immediate synthesis.
+  __ Dup(z20.VnD(), 0x1234);
+  __ Dup(z21.VnD(), -4242);
+  __ Dup(z22.VnD(), 0xfedcba9876543210);
+  __ Dup(z23.VnS(), 0x01020304);
+  __ Dup(z24.VnS(), -0x01020304);
+  __ Dup(z25.VnH(), 0x3c38);
+  // All values that fit B-sized lanes are directly encodable.
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(0xffffffffffffffff, z0.VnD());
+    ASSERT_EQUAL_SVE(0x0000007f, z1.VnS());
+    ASSERT_EQUAL_SVE(0xff80, z2.VnH());
+    ASSERT_EQUAL_SVE(0x2a, z3.VnB());
+
+    ASSERT_EQUAL_SVE(0xffffffffffffd600, z4.VnD());
+    ASSERT_EQUAL_SVE(0xffff8000, z5.VnS());
+    ASSERT_EQUAL_SVE(0x7f00, z6.VnH());
+
+    ASSERT_EQUAL_SVE(0x00000000000003fc, z10.VnD());
+    ASSERT_EQUAL_SVE(0xfff81fff, z11.VnS());
+    ASSERT_EQUAL_SVE(0x0001, z12.VnH());
+
+    ASSERT_EQUAL_SVE(0x1234, z20.VnD());
+    ASSERT_EQUAL_SVE(0xffffffffffffef6e, z21.VnD());
+    ASSERT_EQUAL_SVE(0xfedcba9876543210, z22.VnD());
+    ASSERT_EQUAL_SVE(0x01020304, z23.VnS());
+    ASSERT_EQUAL_SVE(0xfefdfcfc, z24.VnS());
+    ASSERT_EQUAL_SVE(0x3c38, z25.VnH());
+  }
+}
+
+TEST_SVE(sve_inc_dec_p_scalar) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int p0_inputs[] = {0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1};
+  Initialise(&masm, p0.VnB(), p0_inputs);
+
+  int p0_b_count = 9;
+  int p0_h_count = 5;
+  int p0_s_count = 3;
+  int p0_d_count = 2;
+
+  // 64-bit operations preserve their high bits.
+  __ Mov(x0, 0x123456780000002a);
+  __ Decp(x0, p0.VnB());
+
+  __ Mov(x1, 0x123456780000002a);
+  __ Incp(x1, p0.VnH());
+
+  // Check that saturation does not occur.
+  __ Mov(x10, 1);
+  __ Decp(x10, p0.VnS());
+
+  __ Mov(x11, UINT64_MAX);
+  __ Incp(x11, p0.VnD());
+
+  __ Mov(x12, INT64_MAX);
+  __ Incp(x12, p0.VnB());
+
+  // With an all-true predicate, these instructions increment or decrement by
+  // the vector length.
+  __ Ptrue(p15.VnB());
+
+  __ Mov(x20, 0x4000000000000000);
+  __ Decp(x20, p15.VnB());
+
+  __ Mov(x21, 0x4000000000000000);
+  __ Incp(x21, p15.VnH());
+
+  END();
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_64(0x123456780000002a - p0_b_count, x0);
+    ASSERT_EQUAL_64(0x123456780000002a + p0_h_count, x1);
+
+    ASSERT_EQUAL_64(UINT64_C(1) - p0_s_count, x10);
+    ASSERT_EQUAL_64(UINT64_MAX + p0_d_count, x11);
+    ASSERT_EQUAL_64(static_cast<uint64_t>(INT64_MAX) + p0_b_count, x12);
+
+    ASSERT_EQUAL_64(0x4000000000000000 - core.GetSVELaneCount(kBRegSize), x20);
+    ASSERT_EQUAL_64(0x4000000000000000 + core.GetSVELaneCount(kHRegSize), x21);
+  }
+}
+
+TEST_SVE(sve_sqinc_sqdec_p_scalar) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int p0_inputs[] = {0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1};
+  Initialise(&masm, p0.VnB(), p0_inputs);
+
+  int p0_b_count = 9;
+  int p0_h_count = 5;
+  int p0_s_count = 3;
+  int p0_d_count = 2;
+
+  uint64_t placeholder_high = 0x1234567800000000;
+
+  // 64-bit operations preserve their high bits.
+  __ Mov(x0, placeholder_high + 42);
+  __ Sqdecp(x0, p0.VnB());
+
+  __ Mov(x1, placeholder_high + 42);
+  __ Sqincp(x1, p0.VnH());
+
+  // 32-bit operations sign-extend into their high bits.
+  __ Mov(x2, placeholder_high + 42);
+  __ Sqdecp(x2, p0.VnS(), w2);
+
+  __ Mov(x3, placeholder_high + 42);
+  __ Sqincp(x3, p0.VnD(), w3);
+
+  __ Mov(x4, placeholder_high + 1);
+  __ Sqdecp(x4, p0.VnS(), w4);
+
+  __ Mov(x5, placeholder_high - 1);
+  __ Sqincp(x5, p0.VnD(), w5);
+
+  // Check that saturation behaves correctly.
+  __ Mov(x10, 0x8000000000000001);  // INT64_MIN + 1
+  __ Sqdecp(x10, p0.VnB());
+
+  __ Mov(x11, placeholder_high + 0x80000001);  // INT32_MIN + 1
+  __ Sqdecp(x11, p0.VnH(), w11);
+
+  __ Mov(x12, 1);
+  __ Sqdecp(x12, p0.VnS());
+
+  __ Mov(x13, placeholder_high + 1);
+  __ Sqdecp(x13, p0.VnD(), w13);
+
+  __ Mov(x14, 0x7ffffffffffffffe);  // INT64_MAX - 1
+  __ Sqincp(x14, p0.VnB());
+
+  __ Mov(x15, placeholder_high + 0x7ffffffe);  // INT32_MAX - 1
+  __ Sqincp(x15, p0.VnH(), w15);
+
+  // Don't use x16 and x17 since they are scratch registers by default.
+
+  __ Mov(x18, 0xffffffffffffffff);
+  __ Sqincp(x18, p0.VnS());
+
+  __ Mov(x19, placeholder_high + 0xffffffff);
+  __ Sqincp(x19, p0.VnD(), w19);
+
+  __ Mov(x20, placeholder_high + 0xffffffff);
+  __ Sqdecp(x20, p0.VnB(), w20);
+
+  // With an all-true predicate, these instructions increment or decrement by
+  // the vector length.
+  __ Ptrue(p15.VnB());
+
+  __ Mov(x21, 0);
+  __ Sqdecp(x21, p15.VnB());
+
+  __ Mov(x22, 0);
+  __ Sqincp(x22, p15.VnH());
+
+  __ Mov(x23, placeholder_high);
+  __ Sqdecp(x23, p15.VnS(), w23);
+
+  __ Mov(x24, placeholder_high);
+  __ Sqincp(x24, p15.VnD(), w24);
+
+  END();
+  if (CAN_RUN()) {
+    RUN();
+
+    // 64-bit operations preserve their high bits.
+    ASSERT_EQUAL_64(placeholder_high + 42 - p0_b_count, x0);
+    ASSERT_EQUAL_64(placeholder_high + 42 + p0_h_count, x1);
+
+    // 32-bit operations sign-extend into their high bits.
+    ASSERT_EQUAL_64(42 - p0_s_count, x2);
+    ASSERT_EQUAL_64(42 + p0_d_count, x3);
+    ASSERT_EQUAL_64(0xffffffff00000000 | (1 - p0_s_count), x4);
+    ASSERT_EQUAL_64(p0_d_count - 1, x5);
+
+    // Check that saturation behaves correctly.
+    ASSERT_EQUAL_64(INT64_MIN, x10);
+    ASSERT_EQUAL_64(INT32_MIN, x11);
+    ASSERT_EQUAL_64(1 - p0_s_count, x12);
+    ASSERT_EQUAL_64(1 - p0_d_count, x13);
+    ASSERT_EQUAL_64(INT64_MAX, x14);
+    ASSERT_EQUAL_64(INT32_MAX, x15);
+    ASSERT_EQUAL_64(p0_s_count - 1, x18);
+    ASSERT_EQUAL_64(p0_d_count - 1, x19);
+    ASSERT_EQUAL_64(-1 - p0_b_count, x20);
+
+    // Check all-true predicates.
+    ASSERT_EQUAL_64(-core.GetSVELaneCount(kBRegSize), x21);
+    ASSERT_EQUAL_64(core.GetSVELaneCount(kHRegSize), x22);
+    ASSERT_EQUAL_64(-core.GetSVELaneCount(kSRegSize), x23);
+    ASSERT_EQUAL_64(core.GetSVELaneCount(kDRegSize), x24);
+  }
+}
+
+TEST_SVE(sve_uqinc_uqdec_p_scalar) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int p0_inputs[] = {0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1};
+  Initialise(&masm, p0.VnB(), p0_inputs);
+
+  int p0_b_count = 9;
+  int p0_h_count = 5;
+  int p0_s_count = 3;
+  int p0_d_count = 2;
+
+  uint64_t placeholder_high = 0x1234567800000000;
+
+  // 64-bit operations preserve their high bits.
+  __ Mov(x0, placeholder_high + 42);
+  __ Uqdecp(x0, p0.VnB());
+
+  __ Mov(x1, placeholder_high + 42);
+  __ Uqincp(x1, p0.VnH());
+
+  // 32-bit operations zero-extend into their high bits.
+  __ Mov(x2, placeholder_high + 42);
+  __ Uqdecp(x2, p0.VnS(), w2);
+
+  __ Mov(x3, placeholder_high + 42);
+  __ Uqincp(x3, p0.VnD(), w3);
+
+  __ Mov(x4, placeholder_high + 0x80000001);
+  __ Uqdecp(x4, p0.VnS(), w4);
+
+  __ Mov(x5, placeholder_high + 0x7fffffff);
+  __ Uqincp(x5, p0.VnD(), w5);
+
+  // Check that saturation behaves correctly.
+  __ Mov(x10, 1);
+  __ Uqdecp(x10, p0.VnB(), x10);
+
+  __ Mov(x11, placeholder_high + 1);
+  __ Uqdecp(x11, p0.VnH(), w11);
+
+  __ Mov(x12, 0x8000000000000000);  // INT64_MAX + 1
+  __ Uqdecp(x12, p0.VnS(), x12);
+
+  __ Mov(x13, placeholder_high + 0x80000000);  // INT32_MAX + 1
+  __ Uqdecp(x13, p0.VnD(), w13);
+
+  __ Mov(x14, 0xfffffffffffffffe);  // UINT64_MAX - 1
+  __ Uqincp(x14, p0.VnB(), x14);
+
+  __ Mov(x15, placeholder_high + 0xfffffffe);  // UINT32_MAX - 1
+  __ Uqincp(x15, p0.VnH(), w15);
+
+  // Don't use x16 and x17 since they are scratch registers by default.
+
+  __ Mov(x18, 0x7ffffffffffffffe);  // INT64_MAX - 1
+  __ Uqincp(x18, p0.VnS(), x18);
+
+  __ Mov(x19, placeholder_high + 0x7ffffffe);  // INT32_MAX - 1
+  __ Uqincp(x19, p0.VnD(), w19);
+
+  // With an all-true predicate, these instructions increment or decrement by
+  // the vector length.
+  __ Ptrue(p15.VnB());
+
+  __ Mov(x20, 0x4000000000000000);
+  __ Uqdecp(x20, p15.VnB(), x20);
+
+  __ Mov(x21, 0x4000000000000000);
+  __ Uqincp(x21, p15.VnH(), x21);
+
+  __ Mov(x22, placeholder_high + 0x40000000);
+  __ Uqdecp(x22, p15.VnS(), w22);
+
+  __ Mov(x23, placeholder_high + 0x40000000);
+  __ Uqincp(x23, p15.VnD(), w23);
+
+  END();
+  if (CAN_RUN()) {
+    RUN();
+
+    // 64-bit operations preserve their high bits.
+    ASSERT_EQUAL_64(placeholder_high + 42 - p0_b_count, x0);
+    ASSERT_EQUAL_64(placeholder_high + 42 + p0_h_count, x1);
+
+    // 32-bit operations zero-extend into their high bits.
+    ASSERT_EQUAL_64(42 - p0_s_count, x2);
+    ASSERT_EQUAL_64(42 + p0_d_count, x3);
+    ASSERT_EQUAL_64(UINT64_C(0x80000001) - p0_s_count, x4);
+    ASSERT_EQUAL_64(UINT64_C(0x7fffffff) + p0_d_count, x5);
+
+    // Check that saturation behaves correctly.
+    ASSERT_EQUAL_64(0, x10);
+    ASSERT_EQUAL_64(0, x11);
+    ASSERT_EQUAL_64(0x8000000000000000 - p0_s_count, x12);
+    ASSERT_EQUAL_64(UINT64_C(0x80000000) - p0_d_count, x13);
+    ASSERT_EQUAL_64(UINT64_MAX, x14);
+    ASSERT_EQUAL_64(UINT32_MAX, x15);
+    ASSERT_EQUAL_64(0x7ffffffffffffffe + p0_s_count, x18);
+    ASSERT_EQUAL_64(UINT64_C(0x7ffffffe) + p0_d_count, x19);
+
+    // Check all-true predicates.
+    ASSERT_EQUAL_64(0x4000000000000000 - core.GetSVELaneCount(kBRegSize), x20);
+    ASSERT_EQUAL_64(0x4000000000000000 + core.GetSVELaneCount(kHRegSize), x21);
+    ASSERT_EQUAL_64(0x40000000 - core.GetSVELaneCount(kSRegSize), x22);
+    ASSERT_EQUAL_64(0x40000000 + core.GetSVELaneCount(kDRegSize), x23);
+  }
+}
+
+TEST_SVE(sve_inc_dec_p_vector) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // There are {5, 3, 2} active {H, S, D} lanes. B-sized lanes are ignored.
+  int p0_inputs[] = {0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1};
+  Initialise(&masm, p0.VnB(), p0_inputs);
+
+  // Check that saturation does not occur.
+
+  int64_t z0_inputs[] = {0x1234567800000042, 0, 1, INT64_MIN};
+  InsrHelper(&masm, z0.VnD(), z0_inputs);
+
+  int64_t z1_inputs[] = {0x12345678ffffff2a, 0, -1, INT64_MAX};
+  InsrHelper(&masm, z1.VnD(), z1_inputs);
+
+  int32_t z2_inputs[] = {0x12340042, 0, -1, 1, INT32_MAX, INT32_MIN};
+  InsrHelper(&masm, z2.VnS(), z2_inputs);
+
+  int16_t z3_inputs[] = {0x122a, 0, 1, -1, INT16_MIN, INT16_MAX};
+  InsrHelper(&masm, z3.VnH(), z3_inputs);
+
+  // The MacroAssembler implements non-destructive operations using movprfx.
+  __ Decp(z10.VnD(), p0, z0.VnD());
+  __ Decp(z11.VnD(), p0, z1.VnD());
+  __ Decp(z12.VnS(), p0, z2.VnS());
+  __ Decp(z13.VnH(), p0, z3.VnH());
+
+  __ Incp(z14.VnD(), p0, z0.VnD());
+  __ Incp(z15.VnD(), p0, z1.VnD());
+  __ Incp(z16.VnS(), p0, z2.VnS());
+  __ Incp(z17.VnH(), p0, z3.VnH());
+
+  // Also test destructive forms.
+  __ Mov(z4, z0);
+  __ Mov(z5, z1);
+  __ Mov(z6, z2);
+  __ Mov(z7, z3);
+
+  __ Decp(z0.VnD(), p0);
+  __ Decp(z1.VnD(), p0);
+  __ Decp(z2.VnS(), p0);
+  __ Decp(z3.VnH(), p0);
+
+  __ Incp(z4.VnD(), p0);
+  __ Incp(z5.VnD(), p0);
+  __ Incp(z6.VnS(), p0);
+  __ Incp(z7.VnH(), p0);
+
+  END();
+  if (CAN_RUN()) {
+    RUN();
+
+    // z0_inputs[...] - number of active D lanes (2)
+    int64_t z0_expected[] = {0x1234567800000040, -2, -1, 0x7ffffffffffffffe};
+    ASSERT_EQUAL_SVE(z0_expected, z0.VnD());
+
+    // z1_inputs[...] - number of active D lanes (2)
+    int64_t z1_expected[] = {0x12345678ffffff28, -2, -3, 0x7ffffffffffffffd};
+    ASSERT_EQUAL_SVE(z1_expected, z1.VnD());
+
+    // z2_inputs[...] - number of active S lanes (3)
+    int32_t z2_expected[] = {0x1234003f, -3, -4, -2, 0x7ffffffc, 0x7ffffffd};
+    ASSERT_EQUAL_SVE(z2_expected, z2.VnS());
+
+    // z3_inputs[...] - number of active H lanes (5)
+    int16_t z3_expected[] = {0x1225, -5, -4, -6, 0x7ffb, 0x7ffa};
+    ASSERT_EQUAL_SVE(z3_expected, z3.VnH());
+
+    // z0_inputs[...] + number of active D lanes (2)
+    uint64_t z4_expected[] = {0x1234567800000044, 2, 3, 0x8000000000000002};
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+
+    // z1_inputs[...] + number of active D lanes (2)
+    uint64_t z5_expected[] = {0x12345678ffffff2c, 2, 1, 0x8000000000000001};
+    ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+
+    // z2_inputs[...] + number of active S lanes (3)
+    uint32_t z6_expected[] = {0x12340045, 3, 2, 4, 0x80000002, 0x80000003};
+    ASSERT_EQUAL_SVE(z6_expected, z6.VnS());
+
+    // z3_inputs[...] + number of active H lanes (5)
+    uint16_t z7_expected[] = {0x122f, 5, 6, 4, 0x8005, 0x8004};
+    ASSERT_EQUAL_SVE(z7_expected, z7.VnH());
+
+    // Check that the non-destructive macros produced the same results.
+    ASSERT_EQUAL_SVE(z0_expected, z10.VnD());
+    ASSERT_EQUAL_SVE(z1_expected, z11.VnD());
+    ASSERT_EQUAL_SVE(z2_expected, z12.VnS());
+    ASSERT_EQUAL_SVE(z3_expected, z13.VnH());
+    ASSERT_EQUAL_SVE(z4_expected, z14.VnD());
+    ASSERT_EQUAL_SVE(z5_expected, z15.VnD());
+    ASSERT_EQUAL_SVE(z6_expected, z16.VnS());
+    ASSERT_EQUAL_SVE(z7_expected, z17.VnH());
+  }
+}
+
+TEST_SVE(sve_inc_dec_ptrue_vector) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // With an all-true predicate, these instructions increment or decrement by
+  // the vector length.
+  __ Ptrue(p15.VnB());
+
+  __ Dup(z0.VnD(), 0);
+  __ Decp(z0.VnD(), p15);
+
+  __ Dup(z1.VnS(), 0);
+  __ Decp(z1.VnS(), p15);
+
+  __ Dup(z2.VnH(), 0);
+  __ Decp(z2.VnH(), p15);
+
+  __ Dup(z3.VnD(), 0);
+  __ Incp(z3.VnD(), p15);
+
+  __ Dup(z4.VnS(), 0);
+  __ Incp(z4.VnS(), p15);
+
+  __ Dup(z5.VnH(), 0);
+  __ Incp(z5.VnH(), p15);
+
+  END();
+  if (CAN_RUN()) {
+    RUN();
+
+    int d_lane_count = core.GetSVELaneCount(kDRegSize);
+    int s_lane_count = core.GetSVELaneCount(kSRegSize);
+    int h_lane_count = core.GetSVELaneCount(kHRegSize);
+
+    for (int i = 0; i < d_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(-d_lane_count, z0.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(d_lane_count, z3.VnD(), i);
+    }
+
+    for (int i = 0; i < s_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(-s_lane_count, z1.VnS(), i);
+      ASSERT_EQUAL_SVE_LANE(s_lane_count, z4.VnS(), i);
+    }
+
+    for (int i = 0; i < h_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(-h_lane_count, z2.VnH(), i);
+      ASSERT_EQUAL_SVE_LANE(h_lane_count, z5.VnH(), i);
+    }
+  }
+}
+
+TEST_SVE(sve_sqinc_sqdec_p_vector) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // There are {5, 3, 2} active {H, S, D} lanes. B-sized lanes are ignored.
+  int p0_inputs[] = {0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1};
+  Initialise(&masm, p0.VnB(), p0_inputs);
+
+  // Check that saturation behaves correctly.
+
+  int64_t z0_inputs[] = {0x1234567800000042, 0, 1, INT64_MIN};
+  InsrHelper(&masm, z0.VnD(), z0_inputs);
+
+  int64_t z1_inputs[] = {0x12345678ffffff2a, 0, -1, INT64_MAX};
+  InsrHelper(&masm, z1.VnD(), z1_inputs);
+
+  int32_t z2_inputs[] = {0x12340042, 0, -1, 1, INT32_MAX, INT32_MIN};
+  InsrHelper(&masm, z2.VnS(), z2_inputs);
+
+  int16_t z3_inputs[] = {0x122a, 0, 1, -1, INT16_MIN, INT16_MAX};
+  InsrHelper(&masm, z3.VnH(), z3_inputs);
+
+  // The MacroAssembler implements non-destructive operations using movprfx.
+  __ Sqdecp(z10.VnD(), p0, z0.VnD());
+  __ Sqdecp(z11.VnD(), p0, z1.VnD());
+  __ Sqdecp(z12.VnS(), p0, z2.VnS());
+  __ Sqdecp(z13.VnH(), p0, z3.VnH());
+
+  __ Sqincp(z14.VnD(), p0, z0.VnD());
+  __ Sqincp(z15.VnD(), p0, z1.VnD());
+  __ Sqincp(z16.VnS(), p0, z2.VnS());
+  __ Sqincp(z17.VnH(), p0, z3.VnH());
+
+  // Also test destructive forms.
+  __ Mov(z4, z0);
+  __ Mov(z5, z1);
+  __ Mov(z6, z2);
+  __ Mov(z7, z3);
+
+  __ Sqdecp(z0.VnD(), p0);
+  __ Sqdecp(z1.VnD(), p0);
+  __ Sqdecp(z2.VnS(), p0);
+  __ Sqdecp(z3.VnH(), p0);
+
+  __ Sqincp(z4.VnD(), p0);
+  __ Sqincp(z5.VnD(), p0);
+  __ Sqincp(z6.VnS(), p0);
+  __ Sqincp(z7.VnH(), p0);
+
+  END();
+  if (CAN_RUN()) {
+    RUN();
+
+    // z0_inputs[...] - number of active D lanes (2)
+    int64_t z0_expected[] = {0x1234567800000040, -2, -1, INT64_MIN};
+    ASSERT_EQUAL_SVE(z0_expected, z0.VnD());
+
+    // z1_inputs[...] - number of active D lanes (2)
+    int64_t z1_expected[] = {0x12345678ffffff28, -2, -3, 0x7ffffffffffffffd};
+    ASSERT_EQUAL_SVE(z1_expected, z1.VnD());
+
+    // z2_inputs[...] - number of active S lanes (3)
+    int32_t z2_expected[] = {0x1234003f, -3, -4, -2, 0x7ffffffc, INT32_MIN};
+    ASSERT_EQUAL_SVE(z2_expected, z2.VnS());
+
+    // z3_inputs[...] - number of active H lanes (5)
+    int16_t z3_expected[] = {0x1225, -5, -4, -6, INT16_MIN, 0x7ffa};
+    ASSERT_EQUAL_SVE(z3_expected, z3.VnH());
+
+    // z0_inputs[...] + number of active D lanes (2)
+    uint64_t z4_expected[] = {0x1234567800000044, 2, 3, 0x8000000000000002};
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+
+    // z1_inputs[...] + number of active D lanes (2)
+    uint64_t z5_expected[] = {0x12345678ffffff2c, 2, 1, INT64_MAX};
+    ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+
+    // z2_inputs[...] + number of active S lanes (3)
+    uint32_t z6_expected[] = {0x12340045, 3, 2, 4, INT32_MAX, 0x80000003};
+    ASSERT_EQUAL_SVE(z6_expected, z6.VnS());
+
+    // z3_inputs[...] + number of active H lanes (5)
+    uint16_t z7_expected[] = {0x122f, 5, 6, 4, 0x8005, INT16_MAX};
+    ASSERT_EQUAL_SVE(z7_expected, z7.VnH());
+
+    // Check that the non-destructive macros produced the same results.
+    ASSERT_EQUAL_SVE(z0_expected, z10.VnD());
+    ASSERT_EQUAL_SVE(z1_expected, z11.VnD());
+    ASSERT_EQUAL_SVE(z2_expected, z12.VnS());
+    ASSERT_EQUAL_SVE(z3_expected, z13.VnH());
+    ASSERT_EQUAL_SVE(z4_expected, z14.VnD());
+    ASSERT_EQUAL_SVE(z5_expected, z15.VnD());
+    ASSERT_EQUAL_SVE(z6_expected, z16.VnS());
+    ASSERT_EQUAL_SVE(z7_expected, z17.VnH());
+  }
+}
+
+TEST_SVE(sve_sqinc_sqdec_ptrue_vector) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // With an all-true predicate, these instructions increment or decrement by
+  // the vector length.
+  __ Ptrue(p15.VnB());
+
+  __ Dup(z0.VnD(), 0);
+  __ Sqdecp(z0.VnD(), p15);
+
+  __ Dup(z1.VnS(), 0);
+  __ Sqdecp(z1.VnS(), p15);
+
+  __ Dup(z2.VnH(), 0);
+  __ Sqdecp(z2.VnH(), p15);
+
+  __ Dup(z3.VnD(), 0);
+  __ Sqincp(z3.VnD(), p15);
+
+  __ Dup(z4.VnS(), 0);
+  __ Sqincp(z4.VnS(), p15);
+
+  __ Dup(z5.VnH(), 0);
+  __ Sqincp(z5.VnH(), p15);
+
+  END();
+  if (CAN_RUN()) {
+    RUN();
+
+    int d_lane_count = core.GetSVELaneCount(kDRegSize);
+    int s_lane_count = core.GetSVELaneCount(kSRegSize);
+    int h_lane_count = core.GetSVELaneCount(kHRegSize);
+
+    for (int i = 0; i < d_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(-d_lane_count, z0.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(d_lane_count, z3.VnD(), i);
+    }
+
+    for (int i = 0; i < s_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(-s_lane_count, z1.VnS(), i);
+      ASSERT_EQUAL_SVE_LANE(s_lane_count, z4.VnS(), i);
+    }
+
+    for (int i = 0; i < h_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(-h_lane_count, z2.VnH(), i);
+      ASSERT_EQUAL_SVE_LANE(h_lane_count, z5.VnH(), i);
+    }
+  }
+}
+
+TEST_SVE(sve_uqinc_uqdec_p_vector) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // There are {5, 3, 2} active {H, S, D} lanes. B-sized lanes are ignored.
+  int p0_inputs[] = {0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1};
+  Initialise(&masm, p0.VnB(), p0_inputs);
+
+  // Check that saturation behaves correctly.
+
+  uint64_t z0_inputs[] = {0x1234567800000042, 0, 1, 0x8000000000000000};
+  InsrHelper(&masm, z0.VnD(), z0_inputs);
+
+  uint64_t z1_inputs[] = {0x12345678ffffff2a, 0, UINT64_MAX, INT64_MAX};
+  InsrHelper(&masm, z1.VnD(), z1_inputs);
+
+  uint32_t z2_inputs[] = {0x12340042, 0, UINT32_MAX, 1, INT32_MAX, 0x80000000};
+  InsrHelper(&masm, z2.VnS(), z2_inputs);
+
+  uint16_t z3_inputs[] = {0x122a, 0, 1, UINT16_MAX, 0x8000, INT16_MAX};
+  InsrHelper(&masm, z3.VnH(), z3_inputs);
+
+  // The MacroAssembler implements non-destructive operations using movprfx.
+  __ Uqdecp(z10.VnD(), p0, z0.VnD());
+  __ Uqdecp(z11.VnD(), p0, z1.VnD());
+  __ Uqdecp(z12.VnS(), p0, z2.VnS());
+  __ Uqdecp(z13.VnH(), p0, z3.VnH());
+
+  __ Uqincp(z14.VnD(), p0, z0.VnD());
+  __ Uqincp(z15.VnD(), p0, z1.VnD());
+  __ Uqincp(z16.VnS(), p0, z2.VnS());
+  __ Uqincp(z17.VnH(), p0, z3.VnH());
+
+  // Also test destructive forms.
+  __ Mov(z4, z0);
+  __ Mov(z5, z1);
+  __ Mov(z6, z2);
+  __ Mov(z7, z3);
+
+  __ Uqdecp(z0.VnD(), p0);
+  __ Uqdecp(z1.VnD(), p0);
+  __ Uqdecp(z2.VnS(), p0);
+  __ Uqdecp(z3.VnH(), p0);
+
+  __ Uqincp(z4.VnD(), p0);
+  __ Uqincp(z5.VnD(), p0);
+  __ Uqincp(z6.VnS(), p0);
+  __ Uqincp(z7.VnH(), p0);
+
+  END();
+  if (CAN_RUN()) {
+    RUN();
+
+    // z0_inputs[...] - number of active D lanes (2)
+    uint64_t z0_expected[] = {0x1234567800000040, 0, 0, 0x7ffffffffffffffe};
+    ASSERT_EQUAL_SVE(z0_expected, z0.VnD());
+
+    // z1_inputs[...] - number of active D lanes (2)
+    uint64_t z1_expected[] = {0x12345678ffffff28,
+                              0,
+                              0xfffffffffffffffd,
+                              0x7ffffffffffffffd};
+    ASSERT_EQUAL_SVE(z1_expected, z1.VnD());
+
+    // z2_inputs[...] - number of active S lanes (3)
+    uint32_t z2_expected[] =
+        {0x1234003f, 0, 0xfffffffc, 0, 0x7ffffffc, 0x7ffffffd};
+    ASSERT_EQUAL_SVE(z2_expected, z2.VnS());
+
+    // z3_inputs[...] - number of active H lanes (5)
+    uint16_t z3_expected[] = {0x1225, 0, 0, 0xfffa, 0x7ffb, 0x7ffa};
+    ASSERT_EQUAL_SVE(z3_expected, z3.VnH());
+
+    // z0_inputs[...] + number of active D lanes (2)
+    uint64_t z4_expected[] = {0x1234567800000044, 2, 3, 0x8000000000000002};
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+
+    // z1_inputs[...] + number of active D lanes (2)
+    uint64_t z5_expected[] = {0x12345678ffffff2c,
+                              2,
+                              UINT64_MAX,
+                              0x8000000000000001};
+    ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+
+    // z2_inputs[...] + number of active S lanes (3)
+    uint32_t z6_expected[] =
+        {0x12340045, 3, UINT32_MAX, 4, 0x80000002, 0x80000003};
+    ASSERT_EQUAL_SVE(z6_expected, z6.VnS());
+
+    // z3_inputs[...] + number of active H lanes (5)
+    uint16_t z7_expected[] = {0x122f, 5, 6, UINT16_MAX, 0x8005, 0x8004};
+    ASSERT_EQUAL_SVE(z7_expected, z7.VnH());
+
+    // Check that the non-destructive macros produced the same results.
+    ASSERT_EQUAL_SVE(z0_expected, z10.VnD());
+    ASSERT_EQUAL_SVE(z1_expected, z11.VnD());
+    ASSERT_EQUAL_SVE(z2_expected, z12.VnS());
+    ASSERT_EQUAL_SVE(z3_expected, z13.VnH());
+    ASSERT_EQUAL_SVE(z4_expected, z14.VnD());
+    ASSERT_EQUAL_SVE(z5_expected, z15.VnD());
+    ASSERT_EQUAL_SVE(z6_expected, z16.VnS());
+    ASSERT_EQUAL_SVE(z7_expected, z17.VnH());
+  }
+}
+
+TEST_SVE(sve_uqinc_uqdec_ptrue_vector) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // With an all-true predicate, these instructions increment or decrement by
+  // the vector length.
+  __ Ptrue(p15.VnB());
+
+  __ Mov(x0, 0x1234567800000000);
+  __ Mov(x1, 0x12340000);
+  __ Mov(x2, 0x1200);
+
+  __ Dup(z0.VnD(), x0);
+  __ Uqdecp(z0.VnD(), p15);
+
+  __ Dup(z1.VnS(), x1);
+  __ Uqdecp(z1.VnS(), p15);
+
+  __ Dup(z2.VnH(), x2);
+  __ Uqdecp(z2.VnH(), p15);
+
+  __ Dup(z3.VnD(), x0);
+  __ Uqincp(z3.VnD(), p15);
+
+  __ Dup(z4.VnS(), x1);
+  __ Uqincp(z4.VnS(), p15);
+
+  __ Dup(z5.VnH(), x2);
+  __ Uqincp(z5.VnH(), p15);
+
+  END();
+  if (CAN_RUN()) {
+    RUN();
+
+    int d_lane_count = core.GetSVELaneCount(kDRegSize);
+    int s_lane_count = core.GetSVELaneCount(kSRegSize);
+    int h_lane_count = core.GetSVELaneCount(kHRegSize);
+
+    for (int i = 0; i < d_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(0x1234567800000000 - d_lane_count, z0.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0x1234567800000000 + d_lane_count, z3.VnD(), i);
+    }
+
+    for (int i = 0; i < s_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(0x12340000 - s_lane_count, z1.VnS(), i);
+      ASSERT_EQUAL_SVE_LANE(0x12340000 + s_lane_count, z4.VnS(), i);
+    }
+
+    for (int i = 0; i < h_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(0x1200 - h_lane_count, z2.VnH(), i);
+      ASSERT_EQUAL_SVE_LANE(0x1200 + h_lane_count, z5.VnH(), i);
+    }
+  }
+}
+
+TEST_SVE(sve_index) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Simple cases.
+  __ Index(z0.VnB(), 0, 1);
+  __ Index(z1.VnH(), 1, 1);
+  __ Index(z2.VnS(), 2, 1);
+  __ Index(z3.VnD(), 3, 1);
+
+  // Synthesised immediates.
+  __ Index(z4.VnB(), 42, -1);
+  __ Index(z5.VnH(), -1, 42);
+  __ Index(z6.VnS(), 42, 42);
+
+  // Register arguments.
+  __ Mov(x0, 42);
+  __ Mov(x1, -3);
+  __ Index(z10.VnD(), x0, x1);
+  __ Index(z11.VnB(), w0, w1);
+  // The register size should correspond to the lane size, but VIXL allows any
+  // register at least as big as the lane size.
+  __ Index(z12.VnB(), x0, x1);
+  __ Index(z13.VnH(), w0, x1);
+  __ Index(z14.VnS(), x0, w1);
+
+  // Integer overflow.
+  __ Index(z20.VnB(), UINT8_MAX - 2, 2);
+  __ Index(z21.VnH(), 7, -3);
+  __ Index(z22.VnS(), INT32_MAX - 2, 1);
+  __ Index(z23.VnD(), INT64_MIN + 6, -7);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int b_lane_count = core.GetSVELaneCount(kBRegSize);
+    int h_lane_count = core.GetSVELaneCount(kHRegSize);
+    int s_lane_count = core.GetSVELaneCount(kSRegSize);
+    int d_lane_count = core.GetSVELaneCount(kDRegSize);
+
+    uint64_t b_mask = GetUintMask(kBRegSize);
+    uint64_t h_mask = GetUintMask(kHRegSize);
+    uint64_t s_mask = GetUintMask(kSRegSize);
+    uint64_t d_mask = GetUintMask(kDRegSize);
+
+    // Simple cases.
+    for (int i = 0; i < b_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((0 + i) & b_mask, z0.VnB(), i);
+    }
+    for (int i = 0; i < h_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((1 + i) & h_mask, z1.VnH(), i);
+    }
+    for (int i = 0; i < s_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((2 + i) & s_mask, z2.VnS(), i);
+    }
+    for (int i = 0; i < d_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((3 + i) & d_mask, z3.VnD(), i);
+    }
+
+    // Synthesised immediates.
+    for (int i = 0; i < b_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((42 - i) & b_mask, z4.VnB(), i);
+    }
+    for (int i = 0; i < h_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((-1 + (42 * i)) & h_mask, z5.VnH(), i);
+    }
+    for (int i = 0; i < s_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((42 + (42 * i)) & s_mask, z6.VnS(), i);
+    }
+
+    // Register arguments.
+    for (int i = 0; i < d_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((42 - (3 * i)) & d_mask, z10.VnD(), i);
+    }
+    for (int i = 0; i < b_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((42 - (3 * i)) & b_mask, z11.VnB(), i);
+    }
+    for (int i = 0; i < b_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((42 - (3 * i)) & b_mask, z12.VnB(), i);
+    }
+    for (int i = 0; i < h_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((42 - (3 * i)) & h_mask, z13.VnH(), i);
+    }
+    for (int i = 0; i < s_lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE((42 - (3 * i)) & s_mask, z14.VnS(), i);
+    }
+
+    // Integer overflow.
+    uint8_t expected_z20[] = {0x05, 0x03, 0x01, 0xff, 0xfd};
+    ASSERT_EQUAL_SVE(expected_z20, z20.VnB());
+    uint16_t expected_z21[] = {0xfffb, 0xfffe, 0x0001, 0x0004, 0x0007};
+    ASSERT_EQUAL_SVE(expected_z21, z21.VnH());
+    uint32_t expected_z22[] = {0x80000000, 0x7fffffff, 0x7ffffffe, 0x7ffffffd};
+    ASSERT_EQUAL_SVE(expected_z22, z22.VnS());
+    uint64_t expected_z23[] = {0x7fffffffffffffff, 0x8000000000000006};
+    ASSERT_EQUAL_SVE(expected_z23, z23.VnD());
+  }
+}
+
+TEST(sve_int_compare_count_and_limit_scalars) {
+  SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Mov(w20, 0xfffffffd);
+  __ Mov(w21, 0xffffffff);
+
+  __ Whilele(p0.VnB(), w20, w21);
+  __ Mrs(x0, NZCV);
+  __ Whilele(p1.VnH(), w20, w21);
+  __ Mrs(x1, NZCV);
+
+  __ Mov(w20, 0xffffffff);
+  __ Mov(w21, 0x00000000);
+
+  __ Whilelt(p2.VnS(), w20, w21);
+  __ Mrs(x2, NZCV);
+  __ Whilelt(p3.VnD(), w20, w21);
+  __ Mrs(x3, NZCV);
+
+  __ Mov(w20, 0xfffffffd);
+  __ Mov(w21, 0xffffffff);
+
+  __ Whilels(p4.VnB(), w20, w21);
+  __ Mrs(x4, NZCV);
+  __ Whilels(p5.VnH(), w20, w21);
+  __ Mrs(x5, NZCV);
+
+  __ Mov(w20, 0xffffffff);
+  __ Mov(w21, 0x00000000);
+
+  __ Whilelo(p6.VnS(), w20, w21);
+  __ Mrs(x6, NZCV);
+  __ Whilelo(p7.VnD(), w20, w21);
+  __ Mrs(x7, NZCV);
+
+  __ Mov(x20, 0xfffffffffffffffd);
+  __ Mov(x21, 0xffffffffffffffff);
+
+  __ Whilele(p8.VnB(), x20, x21);
+  __ Mrs(x8, NZCV);
+  __ Whilele(p9.VnH(), x20, x21);
+  __ Mrs(x9, NZCV);
+
+  __ Mov(x20, 0xffffffffffffffff);
+  __ Mov(x21, 0x0000000000000000);
+
+  __ Whilelt(p10.VnS(), x20, x21);
+  __ Mrs(x10, NZCV);
+  __ Whilelt(p11.VnD(), x20, x21);
+  __ Mrs(x11, NZCV);
+
+  __ Mov(x20, 0xfffffffffffffffd);
+  __ Mov(x21, 0xffffffffffffffff);
+
+  __ Whilels(p12.VnB(), x20, x21);
+  __ Mrs(x12, NZCV);
+  __ Whilels(p13.VnH(), x20, x21);
+  __ Mrs(x13, NZCV);
+
+  __ Mov(x20, 0xffffffffffffffff);
+  __ Mov(x21, 0x0000000000000000);
+
+  __ Whilelo(p14.VnS(), x20, x21);
+  __ Mrs(x14, NZCV);
+  __ Whilelo(p15.VnD(), x20, x21);
+  __ Mrs(x15, NZCV);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // 0b...00000000'00000111
+    int p0_expected[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p0_expected, p0.VnB());
+
+    // 0b...00000000'00010101
+    int p1_expected[] = {0, 0, 0, 0, 0, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p1_expected, p1.VnH());
+
+    int p2_expected[] = {0x0, 0x0, 0x0, 0x1};
+    ASSERT_EQUAL_SVE(p2_expected, p2.VnS());
+
+    int p3_expected[] = {0x00, 0x01};
+    ASSERT_EQUAL_SVE(p3_expected, p3.VnD());
+
+    // 0b...11111111'11111111
+    int p4_expected[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p4_expected, p4.VnB());
+
+    // 0b...01010101'01010101
+    int p5_expected[] = {1, 1, 1, 1, 1, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p5_expected, p5.VnH());
+
+    int p6_expected[] = {0x0, 0x0, 0x0, 0x0};
+    ASSERT_EQUAL_SVE(p6_expected, p6.VnS());
+
+    int p7_expected[] = {0x00, 0x00};
+    ASSERT_EQUAL_SVE(p7_expected, p7.VnD());
+
+    // 0b...00000000'00000111
+    int p8_expected[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p8_expected, p8.VnB());
+
+    // 0b...00000000'00010101
+    int p9_expected[] = {0, 0, 0, 0, 0, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p9_expected, p9.VnH());
+
+    int p10_expected[] = {0x0, 0x0, 0x0, 0x1};
+    ASSERT_EQUAL_SVE(p10_expected, p10.VnS());
+
+    int p11_expected[] = {0x00, 0x01};
+    ASSERT_EQUAL_SVE(p11_expected, p11.VnD());
+
+    // 0b...11111111'11111111
+    int p12_expected[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p12_expected, p12.VnB());
+
+    // 0b...01010101'01010101
+    int p13_expected[] = {1, 1, 1, 1, 1, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p13_expected, p13.VnH());
+
+    int p14_expected[] = {0x0, 0x0, 0x0, 0x0};
+    ASSERT_EQUAL_SVE(p14_expected, p14.VnS());
+
+    int p15_expected[] = {0x00, 0x00};
+    ASSERT_EQUAL_SVE(p15_expected, p15.VnD());
+
+    ASSERT_EQUAL_32(SVEFirstFlag | SVENotLastFlag, w0);
+    ASSERT_EQUAL_32(SVEFirstFlag | SVENotLastFlag, w1);
+    ASSERT_EQUAL_32(SVEFirstFlag | SVENotLastFlag, w2);
+    ASSERT_EQUAL_32(SVEFirstFlag | SVENotLastFlag, w3);
+    ASSERT_EQUAL_32(SVEFirstFlag, w4);
+    ASSERT_EQUAL_32(SVEFirstFlag, w5);
+    ASSERT_EQUAL_32(SVENoneFlag | SVENotLastFlag, w6);
+    ASSERT_EQUAL_32(SVENoneFlag | SVENotLastFlag, w7);
+    ASSERT_EQUAL_32(SVEFirstFlag | SVENotLastFlag, w8);
+    ASSERT_EQUAL_32(SVEFirstFlag | SVENotLastFlag, w9);
+    ASSERT_EQUAL_32(SVEFirstFlag | SVENotLastFlag, w10);
+    ASSERT_EQUAL_32(SVEFirstFlag | SVENotLastFlag, w11);
+    ASSERT_EQUAL_32(SVEFirstFlag, w12);
+    ASSERT_EQUAL_32(SVEFirstFlag, w13);
+    ASSERT_EQUAL_32(SVENoneFlag | SVENotLastFlag, w14);
+    ASSERT_EQUAL_32(SVENoneFlag | SVENotLastFlag, w15);
+  }
+}
+
+TEST(sve_int_compare_vectors_signed_imm) {
+  SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int z13_inputs[] = {0, 1, -1, -15, 126, -127, -126, -15};
+  int mask_inputs1[] = {1, 1, 1, 0, 1, 1, 1, 1};
+  InsrHelper(&masm, z13.VnB(), z13_inputs);
+  Initialise(&masm, p0.VnB(), mask_inputs1);
+
+  __ Cmpeq(p2.VnB(), p0.Zeroing(), z13.VnB(), -15);
+  __ Mrs(x2, NZCV);
+  __ Cmpeq(p3.VnB(), p0.Zeroing(), z13.VnB(), -127);
+
+  int z14_inputs[] = {0, 1, -1, -32767, -32766, 32767, 32766, 0};
+  int mask_inputs2[] = {1, 1, 1, 0, 1, 1, 1, 1};
+  InsrHelper(&masm, z14.VnH(), z14_inputs);
+  Initialise(&masm, p0.VnH(), mask_inputs2);
+
+  __ Cmpge(p4.VnH(), p0.Zeroing(), z14.VnH(), -1);
+  __ Mrs(x4, NZCV);
+  __ Cmpge(p5.VnH(), p0.Zeroing(), z14.VnH(), -32767);
+
+  int z15_inputs[] = {0, 1, -1, INT_MIN};
+  int mask_inputs3[] = {0, 1, 1, 1};
+  InsrHelper(&masm, z15.VnS(), z15_inputs);
+  Initialise(&masm, p0.VnS(), mask_inputs3);
+
+  __ Cmpgt(p6.VnS(), p0.Zeroing(), z15.VnS(), 0);
+  __ Mrs(x6, NZCV);
+  __ Cmpgt(p7.VnS(), p0.Zeroing(), z15.VnS(), INT_MIN + 1);
+
+  __ Cmplt(p8.VnS(), p0.Zeroing(), z15.VnS(), 0);
+  __ Mrs(x8, NZCV);
+  __ Cmplt(p9.VnS(), p0.Zeroing(), z15.VnS(), INT_MIN + 1);
+
+  int64_t z16_inputs[] = {0, -1};
+  int mask_inputs4[] = {1, 1};
+  InsrHelper(&masm, z16.VnD(), z16_inputs);
+  Initialise(&masm, p0.VnD(), mask_inputs4);
+
+  __ Cmple(p10.VnD(), p0.Zeroing(), z16.VnD(), -1);
+  __ Mrs(x10, NZCV);
+  __ Cmple(p11.VnD(), p0.Zeroing(), z16.VnD(), LLONG_MIN);
+
+  __ Cmpne(p12.VnD(), p0.Zeroing(), z16.VnD(), -1);
+  __ Mrs(x12, NZCV);
+  __ Cmpne(p13.VnD(), p0.Zeroing(), z16.VnD(), LLONG_MAX);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int p2_expected[] = {0, 0, 0, 0, 0, 0, 0, 1};
+    ASSERT_EQUAL_SVE(p2_expected, p2.VnB());
+
+    int p3_expected[] = {0, 0, 0, 0, 0, 1, 0, 0};
+    ASSERT_EQUAL_SVE(p3_expected, p3.VnB());
+
+    int p4_expected[] = {0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1};
+    ASSERT_EQUAL_SVE(p4_expected, p4.VnH());
+
+    int p5_expected[] = {0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1};
+    ASSERT_EQUAL_SVE(p5_expected, p5.VnH());
+
+    int p6_expected[] = {0x0, 0x1, 0x0, 0x0};
+    ASSERT_EQUAL_SVE(p6_expected, p6.VnS());
+
+    int p7_expected[] = {0x0, 0x1, 0x1, 0x0};
+    ASSERT_EQUAL_SVE(p7_expected, p7.VnS());
+
+    int p8_expected[] = {0x0, 0x0, 0x1, 0x1};
+    ASSERT_EQUAL_SVE(p8_expected, p8.VnS());
+
+    int p9_expected[] = {0x0, 0x0, 0x0, 0x1};
+    ASSERT_EQUAL_SVE(p9_expected, p9.VnS());
+
+    int p10_expected[] = {0x00, 0x01};
+    ASSERT_EQUAL_SVE(p10_expected, p10.VnD());
+
+    int p11_expected[] = {0x00, 0x00};
+    ASSERT_EQUAL_SVE(p11_expected, p11.VnD());
+
+    int p12_expected[] = {0x01, 0x00};
+    ASSERT_EQUAL_SVE(p12_expected, p12.VnD());
+
+    int p13_expected[] = {0x01, 0x01};
+    ASSERT_EQUAL_SVE(p13_expected, p13.VnD());
+
+    ASSERT_EQUAL_32(SVENotLastFlag | SVEFirstFlag, w2);
+    ASSERT_EQUAL_32(SVEFirstFlag, w4);
+    ASSERT_EQUAL_32(NoFlag, w6);
+    ASSERT_EQUAL_32(SVENotLastFlag | SVEFirstFlag, w8);
+    ASSERT_EQUAL_32(SVENotLastFlag | SVEFirstFlag, w10);
+    ASSERT_EQUAL_32(NoFlag, w12);
+  }
+}
+
+TEST(sve_int_compare_vectors_unsigned_imm) {
+  SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint32_t src1_inputs[] = {0xf7, 0x0f, 0x8f, 0x1f, 0x83, 0x12, 0x00, 0xf1};
+  int mask_inputs1[] = {1, 1, 1, 0, 1, 1, 0, 1};
+  InsrHelper(&masm, z13.VnB(), src1_inputs);
+  Initialise(&masm, p0.VnB(), mask_inputs1);
+
+  __ Cmphi(p2.VnB(), p0.Zeroing(), z13.VnB(), 0x0f);
+  __ Mrs(x2, NZCV);
+  __ Cmphi(p3.VnB(), p0.Zeroing(), z13.VnB(), 0xf0);
+
+  uint32_t src2_inputs[] = {0xffff, 0x8000, 0x1fff, 0x0000, 0x1234};
+  int mask_inputs2[] = {1, 1, 1, 1, 0};
+  InsrHelper(&masm, z13.VnH(), src2_inputs);
+  Initialise(&masm, p0.VnH(), mask_inputs2);
+
+  __ Cmphs(p4.VnH(), p0.Zeroing(), z13.VnH(), 0x1f);
+  __ Mrs(x4, NZCV);
+  __ Cmphs(p5.VnH(), p0.Zeroing(), z13.VnH(), 0x1fff);
+
+  uint32_t src3_inputs[] = {0xffffffff, 0xfedcba98, 0x0000ffff, 0x00000000};
+  int mask_inputs3[] = {1, 1, 1, 1};
+  InsrHelper(&masm, z13.VnS(), src3_inputs);
+  Initialise(&masm, p0.VnS(), mask_inputs3);
+
+  __ Cmplo(p6.VnS(), p0.Zeroing(), z13.VnS(), 0x3f);
+  __ Mrs(x6, NZCV);
+  __ Cmplo(p7.VnS(), p0.Zeroing(), z13.VnS(), 0x3f3f3f3f);
+
+  uint64_t src4_inputs[] = {0xffffffffffffffff, 0x0000000000000000};
+  int mask_inputs4[] = {1, 1};
+  InsrHelper(&masm, z13.VnD(), src4_inputs);
+  Initialise(&masm, p0.VnD(), mask_inputs4);
+
+  __ Cmpls(p8.VnD(), p0.Zeroing(), z13.VnD(), 0x2f);
+  __ Mrs(x8, NZCV);
+  __ Cmpls(p9.VnD(), p0.Zeroing(), z13.VnD(), 0x800000000000000);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int p2_expected[] = {1, 0, 1, 0, 1, 1, 0, 1};
+    ASSERT_EQUAL_SVE(p2_expected, p2.VnB());
+
+    int p3_expected[] = {1, 0, 0, 0, 0, 0, 0, 1};
+    ASSERT_EQUAL_SVE(p3_expected, p3.VnB());
+
+    int p4_expected[] = {0x1, 0x1, 0x1, 0x0, 0x0};
+    ASSERT_EQUAL_SVE(p4_expected, p4.VnH());
+
+    int p5_expected[] = {0x1, 0x1, 0x1, 0x0, 0x0};
+    ASSERT_EQUAL_SVE(p5_expected, p5.VnH());
+
+    int p6_expected[] = {0x0, 0x0, 0x0, 0x1};
+    ASSERT_EQUAL_SVE(p6_expected, p6.VnS());
+
+    int p7_expected[] = {0x0, 0x0, 0x1, 0x1};
+    ASSERT_EQUAL_SVE(p7_expected, p7.VnS());
+
+    int p8_expected[] = {0x00, 0x01};
+    ASSERT_EQUAL_SVE(p8_expected, p8.VnD());
+
+    int p9_expected[] = {0x00, 0x01};
+    ASSERT_EQUAL_SVE(p9_expected, p9.VnD());
+
+    ASSERT_EQUAL_32(SVEFirstFlag, w2);
+    ASSERT_EQUAL_32(NoFlag, w4);
+    ASSERT_EQUAL_32(SVENotLastFlag | SVEFirstFlag, w6);
+    ASSERT_EQUAL_32(SVENotLastFlag | SVEFirstFlag, w8);
+  }
+}
+
+TEST(sve_int_compare_conditionally_terminate_scalars) {
+  SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Mov(x0, 0xfedcba9887654321);
+  __ Mov(x1, 0x1000100010001000);
+
+  // Initialise Z and C. These are preserved by cterm*, and the V flag is set to
+  // !C if the condition does not hold.
+  __ Mov(x10, NoFlag);
+  __ Msr(NZCV, x10);
+
+  __ Ctermeq(w0, w0);
+  __ Mrs(x2, NZCV);
+  __ Ctermeq(x0, x1);
+  __ Mrs(x3, NZCV);
+  __ Ctermne(x0, x0);
+  __ Mrs(x4, NZCV);
+  __ Ctermne(w0, w1);
+  __ Mrs(x5, NZCV);
+
+  // As above, but with all flags initially set.
+  __ Mov(x10, NZCVFlag);
+  __ Msr(NZCV, x10);
+
+  __ Ctermeq(w0, w0);
+  __ Mrs(x6, NZCV);
+  __ Ctermeq(x0, x1);
+  __ Mrs(x7, NZCV);
+  __ Ctermne(x0, x0);
+  __ Mrs(x8, NZCV);
+  __ Ctermne(w0, w1);
+  __ Mrs(x9, NZCV);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_32(SVEFirstFlag, w2);
+    ASSERT_EQUAL_32(VFlag, w3);
+    ASSERT_EQUAL_32(VFlag, w4);
+    ASSERT_EQUAL_32(SVEFirstFlag, w5);
+
+    ASSERT_EQUAL_32(SVEFirstFlag | ZCFlag, w6);
+    ASSERT_EQUAL_32(ZCFlag, w7);
+    ASSERT_EQUAL_32(ZCFlag, w8);
+    ASSERT_EQUAL_32(SVEFirstFlag | ZCFlag, w9);
+  }
+}
+
+// Work out what the architectural `PredTest` pseudocode should produce for the
+// given result and governing predicate.
+template <typename Tg, typename Td, int N>
+static StatusFlags GetPredTestFlags(const Td (&pd)[N],
+                                    const Tg (&pg)[N],
+                                    int vl) {
+  int first = -1;
+  int last = -1;
+  bool any_active = false;
+
+  // Only consider potentially-active lanes.
+  int start = (N > vl) ? (N - vl) : 0;
+  for (int i = start; i < N; i++) {
+    if ((pg[i] & 1) == 1) {
+      // Look for the first and last active lanes.
+      // Note that the 'first' lane is the one with the highest index.
+      if (last < 0) last = i;
+      first = i;
+      // Look for any active lanes that are also active in pd.
+      if ((pd[i] & 1) == 1) any_active = true;
+    }
+  }
+
+  uint32_t flags = 0;
+  if ((first >= 0) && ((pd[first] & 1) == 1)) flags |= SVEFirstFlag;
+  if (!any_active) flags |= SVENoneFlag;
+  if ((last < 0) || ((pd[last] & 1) == 0)) flags |= SVENotLastFlag;
+  return static_cast<StatusFlags>(flags);
+}
+
+typedef void (MacroAssembler::*PfirstPnextFn)(const PRegisterWithLaneSize& pd,
+                                              const PRegister& pg,
+                                              const PRegisterWithLaneSize& pn);
+template <typename Tg, typename Tn, typename Td>
+static void PfirstPnextHelper(Test* config,
+                              PfirstPnextFn macro,
+                              unsigned lane_size_in_bits,
+                              const Tg& pg_inputs,
+                              const Tn& pn_inputs,
+                              const Td& pd_expected) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  PRegister pg = p15;
+  PRegister pn = p14;
+  Initialise(&masm, pg.WithLaneSize(lane_size_in_bits), pg_inputs);
+  Initialise(&masm, pn.WithLaneSize(lane_size_in_bits), pn_inputs);
+
+  // Initialise NZCV to an impossible value, to check that we actually write it.
+  __ Mov(x10, NZCVFlag);
+
+  // If pd.Is(pn), the MacroAssembler simply passes the arguments directly to
+  // the Assembler.
+  __ Msr(NZCV, x10);
+  __ Mov(p0, pn);
+  (masm.*macro)(p0.WithLaneSize(lane_size_in_bits),
+                pg,
+                p0.WithLaneSize(lane_size_in_bits));
+  __ Mrs(x0, NZCV);
+
+  // The MacroAssembler supports non-destructive use.
+  __ Msr(NZCV, x10);
+  (masm.*macro)(p1.WithLaneSize(lane_size_in_bits),
+                pg,
+                pn.WithLaneSize(lane_size_in_bits));
+  __ Mrs(x1, NZCV);
+
+  // If pd.Aliases(pg) the macro requires a scratch register.
+  {
+    UseScratchRegisterScope temps(&masm);
+    temps.Include(p13);
+    __ Msr(NZCV, x10);
+    __ Mov(p2, p15);
+    (masm.*macro)(p2.WithLaneSize(lane_size_in_bits),
+                  p2,
+                  pn.WithLaneSize(lane_size_in_bits));
+    __ Mrs(x2, NZCV);
+  }
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Check that the inputs weren't modified.
+    ASSERT_EQUAL_SVE(pn_inputs, pn.WithLaneSize(lane_size_in_bits));
+    ASSERT_EQUAL_SVE(pg_inputs, pg.WithLaneSize(lane_size_in_bits));
+
+    // Check the primary operation.
+    ASSERT_EQUAL_SVE(pd_expected, p0.WithLaneSize(lane_size_in_bits));
+    ASSERT_EQUAL_SVE(pd_expected, p1.WithLaneSize(lane_size_in_bits));
+    ASSERT_EQUAL_SVE(pd_expected, p2.WithLaneSize(lane_size_in_bits));
+
+    // Check that the flags were properly set.
+    StatusFlags nzcv_expected =
+        GetPredTestFlags(pd_expected,
+                         pg_inputs,
+                         core.GetSVELaneCount(kBRegSize));
+    ASSERT_EQUAL_64(nzcv_expected, x0);
+    ASSERT_EQUAL_64(nzcv_expected, x1);
+    ASSERT_EQUAL_64(nzcv_expected, x2);
+  }
+}
+
+template <typename Tg, typename Tn, typename Td>
+static void PfirstHelper(Test* config,
+                         const Tg& pg_inputs,
+                         const Tn& pn_inputs,
+                         const Td& pd_expected) {
+  PfirstPnextHelper(config,
+                    &MacroAssembler::Pfirst,
+                    kBRegSize,  // pfirst only accepts B-sized lanes.
+                    pg_inputs,
+                    pn_inputs,
+                    pd_expected);
+}
+
+template <typename Tg, typename Tn, typename Td>
+static void PnextHelper(Test* config,
+                        unsigned lane_size_in_bits,
+                        const Tg& pg_inputs,
+                        const Tn& pn_inputs,
+                        const Td& pd_expected) {
+  PfirstPnextHelper(config,
+                    &MacroAssembler::Pnext,
+                    lane_size_in_bits,
+                    pg_inputs,
+                    pn_inputs,
+                    pd_expected);
+}
+
+TEST_SVE(sve_pfirst) {
+  // Provide more lanes than kPRegMinSize (to check propagation if we have a
+  // large VL), but few enough to make the test easy to read.
+  int in0[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int in1[] = {1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0};
+  int in2[] = {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0};
+  int in3[] = {0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1};
+  int in4[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  VIXL_ASSERT(ArrayLength(in0) > kPRegMinSize);
+
+  // Pfirst finds the first active lane in pg, and activates the corresponding
+  // lane in pn (if it isn't already active).
+
+  //                             The first active lane in in1 is here. |
+  //                                                                   v
+  int exp10[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0};
+  int exp12[] = {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0};
+  int exp13[] = {0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1};
+  int exp14[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0};
+  PfirstHelper(config, in1, in0, exp10);
+  PfirstHelper(config, in1, in2, exp12);
+  PfirstHelper(config, in1, in3, exp13);
+  PfirstHelper(config, in1, in4, exp14);
+
+  //                          The first active lane in in2 is here. |
+  //                                                                v
+  int exp20[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0};
+  int exp21[] = {1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0};
+  int exp23[] = {0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1};
+  int exp24[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0};
+  PfirstHelper(config, in2, in0, exp20);
+  PfirstHelper(config, in2, in1, exp21);
+  PfirstHelper(config, in2, in3, exp23);
+  PfirstHelper(config, in2, in4, exp24);
+
+  //                                   The first active lane in in3 is here. |
+  //                                                                         v
+  int exp30[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
+  int exp31[] = {1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1};
+  int exp32[] = {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1};
+  int exp34[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
+  PfirstHelper(config, in3, in0, exp30);
+  PfirstHelper(config, in3, in1, exp31);
+  PfirstHelper(config, in3, in2, exp32);
+  PfirstHelper(config, in3, in4, exp34);
+
+  //             | The first active lane in in4 is here.
+  //             v
+  int exp40[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp41[] = {1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0};
+  int exp42[] = {1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0};
+  int exp43[] = {1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1};
+  PfirstHelper(config, in4, in0, exp40);
+  PfirstHelper(config, in4, in1, exp41);
+  PfirstHelper(config, in4, in2, exp42);
+  PfirstHelper(config, in4, in3, exp43);
+
+  // If pg is all inactive, the input is passed through unchanged.
+  PfirstHelper(config, in0, in0, in0);
+  PfirstHelper(config, in0, in1, in1);
+  PfirstHelper(config, in0, in2, in2);
+  PfirstHelper(config, in0, in3, in3);
+
+  // If the values of pg and pn match, the value is passed through unchanged.
+  PfirstHelper(config, in0, in0, in0);
+  PfirstHelper(config, in1, in1, in1);
+  PfirstHelper(config, in2, in2, in2);
+  PfirstHelper(config, in3, in3, in3);
+}
+
+TEST_SVE(sve_pfirst_alias) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Check that the Simulator behaves correctly when all arguments are aliased.
+  int in_b[] = {0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0};
+  int in_h[] = {0, 0, 0, 0, 1, 1, 0, 0};
+  int in_s[] = {0, 1, 1, 0};
+  int in_d[] = {1, 1};
+
+  Initialise(&masm, p0.VnB(), in_b);
+  Initialise(&masm, p1.VnH(), in_h);
+  Initialise(&masm, p2.VnS(), in_s);
+  Initialise(&masm, p3.VnD(), in_d);
+
+  // Initialise NZCV to an impossible value, to check that we actually write it.
+  __ Mov(x10, NZCVFlag);
+
+  __ Msr(NZCV, x10);
+  __ Pfirst(p0.VnB(), p0, p0.VnB());
+  __ Mrs(x0, NZCV);
+
+  __ Msr(NZCV, x10);
+  __ Pfirst(p1.VnB(), p1, p1.VnB());
+  __ Mrs(x1, NZCV);
+
+  __ Msr(NZCV, x10);
+  __ Pfirst(p2.VnB(), p2, p2.VnB());
+  __ Mrs(x2, NZCV);
+
+  __ Msr(NZCV, x10);
+  __ Pfirst(p3.VnB(), p3, p3.VnB());
+  __ Mrs(x3, NZCV);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // The first lane from pg is already active in pdn, so the P register should
+    // be unchanged.
+    ASSERT_EQUAL_SVE(in_b, p0.VnB());
+    ASSERT_EQUAL_SVE(in_h, p1.VnH());
+    ASSERT_EQUAL_SVE(in_s, p2.VnS());
+    ASSERT_EQUAL_SVE(in_d, p3.VnD());
+
+    ASSERT_EQUAL_64(SVEFirstFlag, x0);
+    ASSERT_EQUAL_64(SVEFirstFlag, x1);
+    ASSERT_EQUAL_64(SVEFirstFlag, x2);
+    ASSERT_EQUAL_64(SVEFirstFlag, x3);
+  }
+}
+
+TEST_SVE(sve_pnext_b) {
+  // TODO: Once we have the infrastructure, provide more lanes than kPRegMinSize
+  // (to check propagation if we have a large VL), but few enough to make the
+  // test easy to read.
+  // For now, we just use kPRegMinSize so that the test works anywhere.
+  int in0[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int in1[] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0};
+  int in2[] = {0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0};
+  int in3[] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1};
+  int in4[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+  // Pnext activates the next element that is true in pg, after the last-active
+  // element in pn. If all pn elements are false (as in in0), it starts looking
+  // at element 0.
+
+  // There are no active lanes in in0, so the result is simply the first active
+  // lane from pg.
+  int exp00[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp10[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0};
+  int exp20[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0};
+  int exp30[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
+  int exp40[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+  //      The last active lane in in1 is here. |
+  //                                           v
+  int exp01[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp11[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp21[] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp31[] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp41[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+  //                | The last active lane in in2 is here.
+  //                v
+  int exp02[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp12[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp22[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp32[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp42[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+  //                               | The last active lane in in3 is here.
+  //                               v
+  int exp03[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp13[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp23[] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp33[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp43[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+  //             | The last active lane in in4 is here.
+  //             v
+  int exp04[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp14[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp24[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp34[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp44[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+  PnextHelper(config, kBRegSize, in0, in0, exp00);
+  PnextHelper(config, kBRegSize, in1, in0, exp10);
+  PnextHelper(config, kBRegSize, in2, in0, exp20);
+  PnextHelper(config, kBRegSize, in3, in0, exp30);
+  PnextHelper(config, kBRegSize, in4, in0, exp40);
+
+  PnextHelper(config, kBRegSize, in0, in1, exp01);
+  PnextHelper(config, kBRegSize, in1, in1, exp11);
+  PnextHelper(config, kBRegSize, in2, in1, exp21);
+  PnextHelper(config, kBRegSize, in3, in1, exp31);
+  PnextHelper(config, kBRegSize, in4, in1, exp41);
+
+  PnextHelper(config, kBRegSize, in0, in2, exp02);
+  PnextHelper(config, kBRegSize, in1, in2, exp12);
+  PnextHelper(config, kBRegSize, in2, in2, exp22);
+  PnextHelper(config, kBRegSize, in3, in2, exp32);
+  PnextHelper(config, kBRegSize, in4, in2, exp42);
+
+  PnextHelper(config, kBRegSize, in0, in3, exp03);
+  PnextHelper(config, kBRegSize, in1, in3, exp13);
+  PnextHelper(config, kBRegSize, in2, in3, exp23);
+  PnextHelper(config, kBRegSize, in3, in3, exp33);
+  PnextHelper(config, kBRegSize, in4, in3, exp43);
+
+  PnextHelper(config, kBRegSize, in0, in4, exp04);
+  PnextHelper(config, kBRegSize, in1, in4, exp14);
+  PnextHelper(config, kBRegSize, in2, in4, exp24);
+  PnextHelper(config, kBRegSize, in3, in4, exp34);
+  PnextHelper(config, kBRegSize, in4, in4, exp44);
+}
+
+TEST_SVE(sve_pnext_h) {
+  // TODO: Once we have the infrastructure, provide more lanes than kPRegMinSize
+  // (to check propagation if we have a large VL), but few enough to make the
+  // test easy to read.
+  // For now, we just use kPRegMinSize so that the test works anywhere.
+  int in0[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int in1[] = {0, 0, 0, 1, 0, 2, 1, 0};
+  int in2[] = {0, 1, 2, 0, 2, 0, 2, 0};
+  int in3[] = {0, 0, 0, 3, 0, 0, 0, 3};
+  int in4[] = {3, 0, 0, 0, 0, 0, 0, 0};
+
+  // Pnext activates the next element that is true in pg, after the last-active
+  // element in pn. If all pn elements are false (as in in0), it starts looking
+  // at element 0.
+  //
+  // As for other SVE instructions, elements are only considered to be active if
+  // the _first_ bit in each field is one. Other bits are ignored.
+
+  // There are no active lanes in in0, so the result is simply the first active
+  // lane from pg.
+  int exp00[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp10[] = {0, 0, 0, 0, 0, 0, 1, 0};
+  int exp20[] = {0, 1, 0, 0, 0, 0, 0, 0};
+  int exp30[] = {0, 0, 0, 0, 0, 0, 0, 1};
+  int exp40[] = {1, 0, 0, 0, 0, 0, 0, 0};
+
+  //                      | The last active lane in in1 is here.
+  //                      v
+  int exp01[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp11[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp21[] = {0, 1, 0, 0, 0, 0, 0, 0};
+  int exp31[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp41[] = {1, 0, 0, 0, 0, 0, 0, 0};
+
+  //                | The last active lane in in2 is here.
+  //                v
+  int exp02[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp12[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp22[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp32[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp42[] = {1, 0, 0, 0, 0, 0, 0, 0};
+
+  //                      | The last active lane in in3 is here.
+  //                      v
+  int exp03[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp13[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp23[] = {0, 1, 0, 0, 0, 0, 0, 0};
+  int exp33[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp43[] = {1, 0, 0, 0, 0, 0, 0, 0};
+
+  //             | The last active lane in in4 is here.
+  //             v
+  int exp04[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp14[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp24[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp34[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int exp44[] = {0, 0, 0, 0, 0, 0, 0, 0};
+
+  PnextHelper(config, kHRegSize, in0, in0, exp00);
+  PnextHelper(config, kHRegSize, in1, in0, exp10);
+  PnextHelper(config, kHRegSize, in2, in0, exp20);
+  PnextHelper(config, kHRegSize, in3, in0, exp30);
+  PnextHelper(config, kHRegSize, in4, in0, exp40);
+
+  PnextHelper(config, kHRegSize, in0, in1, exp01);
+  PnextHelper(config, kHRegSize, in1, in1, exp11);
+  PnextHelper(config, kHRegSize, in2, in1, exp21);
+  PnextHelper(config, kHRegSize, in3, in1, exp31);
+  PnextHelper(config, kHRegSize, in4, in1, exp41);
+
+  PnextHelper(config, kHRegSize, in0, in2, exp02);
+  PnextHelper(config, kHRegSize, in1, in2, exp12);
+  PnextHelper(config, kHRegSize, in2, in2, exp22);
+  PnextHelper(config, kHRegSize, in3, in2, exp32);
+  PnextHelper(config, kHRegSize, in4, in2, exp42);
+
+  PnextHelper(config, kHRegSize, in0, in3, exp03);
+  PnextHelper(config, kHRegSize, in1, in3, exp13);
+  PnextHelper(config, kHRegSize, in2, in3, exp23);
+  PnextHelper(config, kHRegSize, in3, in3, exp33);
+  PnextHelper(config, kHRegSize, in4, in3, exp43);
+
+  PnextHelper(config, kHRegSize, in0, in4, exp04);
+  PnextHelper(config, kHRegSize, in1, in4, exp14);
+  PnextHelper(config, kHRegSize, in2, in4, exp24);
+  PnextHelper(config, kHRegSize, in3, in4, exp34);
+  PnextHelper(config, kHRegSize, in4, in4, exp44);
+}
+
+TEST_SVE(sve_pnext_s) {
+  // TODO: Once we have the infrastructure, provide more lanes than kPRegMinSize
+  // (to check propagation if we have a large VL), but few enough to make the
+  // test easy to read.
+  // For now, we just use kPRegMinSize so that the test works anywhere.
+  int in0[] = {0xe, 0xc, 0x8, 0x0};
+  int in1[] = {0x0, 0x2, 0x0, 0x1};
+  int in2[] = {0x0, 0x1, 0xf, 0x0};
+  int in3[] = {0xf, 0x0, 0x0, 0x0};
+
+  // Pnext activates the next element that is true in pg, after the last-active
+  // element in pn. If all pn elements are false (as in in0), it starts looking
+  // at element 0.
+  //
+  // As for other SVE instructions, elements are only considered to be active if
+  // the _first_ bit in each field is one. Other bits are ignored.
+
+  // There are no active lanes in in0, so the result is simply the first active
+  // lane from pg.
+  int exp00[] = {0, 0, 0, 0};
+  int exp10[] = {0, 0, 0, 1};
+  int exp20[] = {0, 0, 1, 0};
+  int exp30[] = {1, 0, 0, 0};
+
+  //                      | The last active lane in in1 is here.
+  //                      v
+  int exp01[] = {0, 0, 0, 0};
+  int exp11[] = {0, 0, 0, 0};
+  int exp21[] = {0, 0, 1, 0};
+  int exp31[] = {1, 0, 0, 0};
+
+  //                | The last active lane in in2 is here.
+  //                v
+  int exp02[] = {0, 0, 0, 0};
+  int exp12[] = {0, 0, 0, 0};
+  int exp22[] = {0, 0, 0, 0};
+  int exp32[] = {1, 0, 0, 0};
+
+  //             | The last active lane in in3 is here.
+  //             v
+  int exp03[] = {0, 0, 0, 0};
+  int exp13[] = {0, 0, 0, 0};
+  int exp23[] = {0, 0, 0, 0};
+  int exp33[] = {0, 0, 0, 0};
+
+  PnextHelper(config, kSRegSize, in0, in0, exp00);
+  PnextHelper(config, kSRegSize, in1, in0, exp10);
+  PnextHelper(config, kSRegSize, in2, in0, exp20);
+  PnextHelper(config, kSRegSize, in3, in0, exp30);
+
+  PnextHelper(config, kSRegSize, in0, in1, exp01);
+  PnextHelper(config, kSRegSize, in1, in1, exp11);
+  PnextHelper(config, kSRegSize, in2, in1, exp21);
+  PnextHelper(config, kSRegSize, in3, in1, exp31);
+
+  PnextHelper(config, kSRegSize, in0, in2, exp02);
+  PnextHelper(config, kSRegSize, in1, in2, exp12);
+  PnextHelper(config, kSRegSize, in2, in2, exp22);
+  PnextHelper(config, kSRegSize, in3, in2, exp32);
+
+  PnextHelper(config, kSRegSize, in0, in3, exp03);
+  PnextHelper(config, kSRegSize, in1, in3, exp13);
+  PnextHelper(config, kSRegSize, in2, in3, exp23);
+  PnextHelper(config, kSRegSize, in3, in3, exp33);
+}
+
+TEST_SVE(sve_pnext_d) {
+  // TODO: Once we have the infrastructure, provide more lanes than kPRegMinSize
+  // (to check propagation if we have a large VL), but few enough to make the
+  // test easy to read.
+  // For now, we just use kPRegMinSize so that the test works anywhere.
+  int in0[] = {0xfe, 0xf0};
+  int in1[] = {0x00, 0x55};
+  int in2[] = {0x33, 0xff};
+
+  // Pnext activates the next element that is true in pg, after the last-active
+  // element in pn. If all pn elements are false (as in in0), it starts looking
+  // at element 0.
+  //
+  // As for other SVE instructions, elements are only considered to be active if
+  // the _first_ bit in each field is one. Other bits are ignored.
+
+  // There are no active lanes in in0, so the result is simply the first active
+  // lane from pg.
+  int exp00[] = {0, 0};
+  int exp10[] = {0, 1};
+  int exp20[] = {0, 1};
+
+  //                | The last active lane in in1 is here.
+  //                v
+  int exp01[] = {0, 0};
+  int exp11[] = {0, 0};
+  int exp21[] = {1, 0};
+
+  //             | The last active lane in in2 is here.
+  //             v
+  int exp02[] = {0, 0};
+  int exp12[] = {0, 0};
+  int exp22[] = {0, 0};
+
+  PnextHelper(config, kDRegSize, in0, in0, exp00);
+  PnextHelper(config, kDRegSize, in1, in0, exp10);
+  PnextHelper(config, kDRegSize, in2, in0, exp20);
+
+  PnextHelper(config, kDRegSize, in0, in1, exp01);
+  PnextHelper(config, kDRegSize, in1, in1, exp11);
+  PnextHelper(config, kDRegSize, in2, in1, exp21);
+
+  PnextHelper(config, kDRegSize, in0, in2, exp02);
+  PnextHelper(config, kDRegSize, in1, in2, exp12);
+  PnextHelper(config, kDRegSize, in2, in2, exp22);
+}
+
+TEST_SVE(sve_pnext_alias) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Check that the Simulator behaves correctly when all arguments are aliased.
+  int in_b[] = {0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0};
+  int in_h[] = {0, 0, 0, 0, 1, 1, 0, 0};
+  int in_s[] = {0, 1, 1, 0};
+  int in_d[] = {1, 1};
+
+  Initialise(&masm, p0.VnB(), in_b);
+  Initialise(&masm, p1.VnH(), in_h);
+  Initialise(&masm, p2.VnS(), in_s);
+  Initialise(&masm, p3.VnD(), in_d);
+
+  // Initialise NZCV to an impossible value, to check that we actually write it.
+  __ Mov(x10, NZCVFlag);
+
+  __ Msr(NZCV, x10);
+  __ Pnext(p0.VnB(), p0, p0.VnB());
+  __ Mrs(x0, NZCV);
+
+  __ Msr(NZCV, x10);
+  __ Pnext(p1.VnB(), p1, p1.VnB());
+  __ Mrs(x1, NZCV);
+
+  __ Msr(NZCV, x10);
+  __ Pnext(p2.VnB(), p2, p2.VnB());
+  __ Mrs(x2, NZCV);
+
+  __ Msr(NZCV, x10);
+  __ Pnext(p3.VnB(), p3, p3.VnB());
+  __ Mrs(x3, NZCV);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Since pg.Is(pdn), there can be no active lanes in pg above the last
+    // active lane in pdn, so the result should always be zero.
+    ASSERT_EQUAL_SVE(0, p0.VnB());
+    ASSERT_EQUAL_SVE(0, p1.VnH());
+    ASSERT_EQUAL_SVE(0, p2.VnS());
+    ASSERT_EQUAL_SVE(0, p3.VnD());
+
+    ASSERT_EQUAL_64(SVENoneFlag | SVENotLastFlag, x0);
+    ASSERT_EQUAL_64(SVENoneFlag | SVENotLastFlag, x1);
+    ASSERT_EQUAL_64(SVENoneFlag | SVENotLastFlag, x2);
+    ASSERT_EQUAL_64(SVENoneFlag | SVENotLastFlag, x3);
+  }
+}
+
+static void PtrueHelper(Test* config,
+                        unsigned lane_size_in_bits,
+                        FlagsUpdate s = LeaveFlags) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  PRegisterWithLaneSize p[kNumberOfPRegisters];
+  for (unsigned i = 0; i < kNumberOfPRegisters; i++) {
+    p[i] = PRegister(i).WithLaneSize(lane_size_in_bits);
+  }
+
+  // Initialise NZCV to an impossible value, to check that we actually write it.
+  StatusFlags nzcv_unmodified = NZCVFlag;
+  __ Mov(x20, nzcv_unmodified);
+
+  // We don't have enough registers to conveniently test every pattern, so take
+  // samples from each group.
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[0], SVE_POW2, s);
+  __ Mrs(x0, NZCV);
+
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[1], SVE_VL1, s);
+  __ Mrs(x1, NZCV);
+
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[2], SVE_VL2, s);
+  __ Mrs(x2, NZCV);
+
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[3], SVE_VL5, s);
+  __ Mrs(x3, NZCV);
+
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[4], SVE_VL6, s);
+  __ Mrs(x4, NZCV);
+
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[5], SVE_VL8, s);
+  __ Mrs(x5, NZCV);
+
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[6], SVE_VL16, s);
+  __ Mrs(x6, NZCV);
+
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[7], SVE_VL64, s);
+  __ Mrs(x7, NZCV);
+
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[8], SVE_VL256, s);
+  __ Mrs(x8, NZCV);
+
+  {
+    // We have to use the Assembler to use values not defined by
+    // SVEPredicateConstraint, so call `ptrues` directly..
+    typedef void (
+        MacroAssembler::*AssemblePtrueFn)(const PRegisterWithLaneSize& pd,
+                                          int pattern);
+    AssemblePtrueFn assemble =
+        (s == SetFlags) ? &MacroAssembler::ptrues : &MacroAssembler::ptrue;
+
+    ExactAssemblyScope guard(&masm, 12 * kInstructionSize);
+    __ msr(NZCV, x20);
+    (masm.*assemble)(p[9], 0xe);
+    __ mrs(x9, NZCV);
+
+    __ msr(NZCV, x20);
+    (masm.*assemble)(p[10], 0x16);
+    __ mrs(x10, NZCV);
+
+    __ msr(NZCV, x20);
+    (masm.*assemble)(p[11], 0x1a);
+    __ mrs(x11, NZCV);
+
+    __ msr(NZCV, x20);
+    (masm.*assemble)(p[12], 0x1c);
+    __ mrs(x12, NZCV);
+  }
+
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[13], SVE_MUL4, s);
+  __ Mrs(x13, NZCV);
+
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[14], SVE_MUL3, s);
+  __ Mrs(x14, NZCV);
+
+  __ Msr(NZCV, x20);
+  __ Ptrue(p[15], SVE_ALL, s);
+  __ Mrs(x15, NZCV);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int all = core.GetSVELaneCount(lane_size_in_bits);
+    int pow2 = 1 << HighestSetBitPosition(all);
+    int mul4 = all - (all % 4);
+    int mul3 = all - (all % 3);
+
+    // Check P register results.
+    for (int i = 0; i < all; i++) {
+      ASSERT_EQUAL_SVE_LANE(i < pow2, p[0], i);
+      ASSERT_EQUAL_SVE_LANE((all >= 1) && (i < 1), p[1], i);
+      ASSERT_EQUAL_SVE_LANE((all >= 2) && (i < 2), p[2], i);
+      ASSERT_EQUAL_SVE_LANE((all >= 5) && (i < 5), p[3], i);
+      ASSERT_EQUAL_SVE_LANE((all >= 6) && (i < 6), p[4], i);
+      ASSERT_EQUAL_SVE_LANE((all >= 8) && (i < 8), p[5], i);
+      ASSERT_EQUAL_SVE_LANE((all >= 16) && (i < 16), p[6], i);
+      ASSERT_EQUAL_SVE_LANE((all >= 64) && (i < 64), p[7], i);
+      ASSERT_EQUAL_SVE_LANE((all >= 256) && (i < 256), p[8], i);
+      ASSERT_EQUAL_SVE_LANE(false, p[9], i);
+      ASSERT_EQUAL_SVE_LANE(false, p[10], i);
+      ASSERT_EQUAL_SVE_LANE(false, p[11], i);
+      ASSERT_EQUAL_SVE_LANE(false, p[12], i);
+      ASSERT_EQUAL_SVE_LANE(i < mul4, p[13], i);
+      ASSERT_EQUAL_SVE_LANE(i < mul3, p[14], i);
+      ASSERT_EQUAL_SVE_LANE(true, p[15], i);
+    }
+
+    // Check NZCV results.
+    if (s == LeaveFlags) {
+      // No flags should have been updated.
+      for (int i = 0; i <= 15; i++) {
+        ASSERT_EQUAL_64(nzcv_unmodified, XRegister(i));
+      }
+    } else {
+      StatusFlags zero = static_cast<StatusFlags>(SVENoneFlag | SVENotLastFlag);
+      StatusFlags nonzero = SVEFirstFlag;
+
+      // POW2
+      ASSERT_EQUAL_64(nonzero, x0);
+      // VL*
+      ASSERT_EQUAL_64((all >= 1) ? nonzero : zero, x1);
+      ASSERT_EQUAL_64((all >= 2) ? nonzero : zero, x2);
+      ASSERT_EQUAL_64((all >= 5) ? nonzero : zero, x3);
+      ASSERT_EQUAL_64((all >= 6) ? nonzero : zero, x4);
+      ASSERT_EQUAL_64((all >= 8) ? nonzero : zero, x5);
+      ASSERT_EQUAL_64((all >= 16) ? nonzero : zero, x6);
+      ASSERT_EQUAL_64((all >= 64) ? nonzero : zero, x7);
+      ASSERT_EQUAL_64((all >= 256) ? nonzero : zero, x8);
+      // #uimm5
+      ASSERT_EQUAL_64(zero, x9);
+      ASSERT_EQUAL_64(zero, x10);
+      ASSERT_EQUAL_64(zero, x11);
+      ASSERT_EQUAL_64(zero, x12);
+      // MUL*
+      ASSERT_EQUAL_64((all >= 4) ? nonzero : zero, x13);
+      ASSERT_EQUAL_64((all >= 3) ? nonzero : zero, x14);
+      // ALL
+      ASSERT_EQUAL_64(nonzero, x15);
+    }
+  }
+}
+
+TEST_SVE(sve_ptrue_b) { PtrueHelper(config, kBRegSize, LeaveFlags); }
+TEST_SVE(sve_ptrue_h) { PtrueHelper(config, kHRegSize, LeaveFlags); }
+TEST_SVE(sve_ptrue_s) { PtrueHelper(config, kSRegSize, LeaveFlags); }
+TEST_SVE(sve_ptrue_d) { PtrueHelper(config, kDRegSize, LeaveFlags); }
+
+TEST_SVE(sve_ptrues_b) { PtrueHelper(config, kBRegSize, SetFlags); }
+TEST_SVE(sve_ptrues_h) { PtrueHelper(config, kHRegSize, SetFlags); }
+TEST_SVE(sve_ptrues_s) { PtrueHelper(config, kSRegSize, SetFlags); }
+TEST_SVE(sve_ptrues_d) { PtrueHelper(config, kDRegSize, SetFlags); }
+
+TEST_SVE(sve_pfalse) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Initialise non-zero inputs.
+  __ Ptrue(p0.VnB());
+  __ Ptrue(p1.VnH());
+  __ Ptrue(p2.VnS());
+  __ Ptrue(p3.VnD());
+
+  // The instruction only supports B-sized lanes, but the lane size has no
+  // logical effect, so the MacroAssembler accepts anything.
+  __ Pfalse(p0.VnB());
+  __ Pfalse(p1.VnH());
+  __ Pfalse(p2.VnS());
+  __ Pfalse(p3.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(0, p0.VnB());
+    ASSERT_EQUAL_SVE(0, p1.VnB());
+    ASSERT_EQUAL_SVE(0, p2.VnB());
+    ASSERT_EQUAL_SVE(0, p3.VnB());
+  }
+}
+
+TEST_SVE(sve_ptest) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Initialise NZCV to a known (impossible) value.
+  StatusFlags nzcv_unmodified = NZCVFlag;
+  __ Mov(x0, nzcv_unmodified);
+  __ Msr(NZCV, x0);
+
+  // Construct some test inputs.
+  int in2[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0};
+  int in3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0};
+  int in4[] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+  __ Pfalse(p0.VnB());
+  __ Ptrue(p1.VnB());
+  Initialise(&masm, p2.VnB(), in2);
+  Initialise(&masm, p3.VnB(), in3);
+  Initialise(&masm, p4.VnB(), in4);
+
+  // All-inactive pg.
+  __ Ptest(p0, p0.VnB());
+  __ Mrs(x0, NZCV);
+  __ Ptest(p0, p1.VnB());
+  __ Mrs(x1, NZCV);
+  __ Ptest(p0, p2.VnB());
+  __ Mrs(x2, NZCV);
+  __ Ptest(p0, p3.VnB());
+  __ Mrs(x3, NZCV);
+  __ Ptest(p0, p4.VnB());
+  __ Mrs(x4, NZCV);
+
+  // All-active pg.
+  __ Ptest(p1, p0.VnB());
+  __ Mrs(x5, NZCV);
+  __ Ptest(p1, p1.VnB());
+  __ Mrs(x6, NZCV);
+  __ Ptest(p1, p2.VnB());
+  __ Mrs(x7, NZCV);
+  __ Ptest(p1, p3.VnB());
+  __ Mrs(x8, NZCV);
+  __ Ptest(p1, p4.VnB());
+  __ Mrs(x9, NZCV);
+
+  // Combinations of other inputs.
+  __ Ptest(p2, p2.VnB());
+  __ Mrs(x20, NZCV);
+  __ Ptest(p2, p3.VnB());
+  __ Mrs(x21, NZCV);
+  __ Ptest(p2, p4.VnB());
+  __ Mrs(x22, NZCV);
+  __ Ptest(p3, p2.VnB());
+  __ Mrs(x23, NZCV);
+  __ Ptest(p3, p3.VnB());
+  __ Mrs(x24, NZCV);
+  __ Ptest(p3, p4.VnB());
+  __ Mrs(x25, NZCV);
+  __ Ptest(p4, p2.VnB());
+  __ Mrs(x26, NZCV);
+  __ Ptest(p4, p3.VnB());
+  __ Mrs(x27, NZCV);
+  __ Ptest(p4, p4.VnB());
+  __ Mrs(x28, NZCV);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    StatusFlags zero = static_cast<StatusFlags>(SVENoneFlag | SVENotLastFlag);
+
+    // If pg is all inactive, the value of pn is irrelevant.
+    ASSERT_EQUAL_64(zero, x0);
+    ASSERT_EQUAL_64(zero, x1);
+    ASSERT_EQUAL_64(zero, x2);
+    ASSERT_EQUAL_64(zero, x3);
+    ASSERT_EQUAL_64(zero, x4);
+
+    // All-active pg.
+    ASSERT_EQUAL_64(zero, x5);          // All-inactive pn.
+    ASSERT_EQUAL_64(SVEFirstFlag, x6);  // All-active pn.
+    // Other pn inputs are non-zero, but the first and last lanes are inactive.
+    ASSERT_EQUAL_64(SVENotLastFlag, x7);
+    ASSERT_EQUAL_64(SVENotLastFlag, x8);
+    ASSERT_EQUAL_64(SVENotLastFlag, x9);
+
+    // Other inputs.
+    ASSERT_EQUAL_64(SVEFirstFlag, x20);  // pg: in2, pn: in2
+    ASSERT_EQUAL_64(NoFlag, x21);        // pg: in2, pn: in3
+    ASSERT_EQUAL_64(zero, x22);          // pg: in2, pn: in4
+    ASSERT_EQUAL_64(static_cast<StatusFlags>(SVEFirstFlag | SVENotLastFlag),
+                    x23);                // pg: in3, pn: in2
+    ASSERT_EQUAL_64(SVEFirstFlag, x24);  // pg: in3, pn: in3
+    ASSERT_EQUAL_64(zero, x25);          // pg: in3, pn: in4
+    ASSERT_EQUAL_64(zero, x26);          // pg: in4, pn: in2
+    ASSERT_EQUAL_64(zero, x27);          // pg: in4, pn: in3
+    ASSERT_EQUAL_64(SVEFirstFlag, x28);  // pg: in4, pn: in4
+  }
+}
+
+TEST_SVE(sve_cntp) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // There are {7, 5, 2, 1} active {B, H, S, D} lanes.
+  int p0_inputs[] = {0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0};
+  Initialise(&masm, p0.VnB(), p0_inputs);
+
+  // With an all-true predicate, these instructions measure the vector length.
+  __ Ptrue(p10.VnB());
+  __ Ptrue(p11.VnH());
+  __ Ptrue(p12.VnS());
+  __ Ptrue(p13.VnD());
+
+  // `ptrue p10.b` provides an all-active pg.
+  __ Cntp(x10, p10, p10.VnB());
+  __ Cntp(x11, p10, p11.VnH());
+  __ Cntp(x12, p10, p12.VnS());
+  __ Cntp(x13, p10, p13.VnD());
+
+  // Check that the predicate mask is applied properly.
+  __ Cntp(x14, p10, p10.VnB());
+  __ Cntp(x15, p11, p10.VnB());
+  __ Cntp(x16, p12, p10.VnB());
+  __ Cntp(x17, p13, p10.VnB());
+
+  // Check other patterns (including some ignored bits).
+  __ Cntp(x0, p10, p0.VnB());
+  __ Cntp(x1, p10, p0.VnH());
+  __ Cntp(x2, p10, p0.VnS());
+  __ Cntp(x3, p10, p0.VnD());
+  __ Cntp(x4, p0, p10.VnB());
+  __ Cntp(x5, p0, p10.VnH());
+  __ Cntp(x6, p0, p10.VnS());
+  __ Cntp(x7, p0, p10.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int vl_b = core.GetSVELaneCount(kBRegSize);
+    int vl_h = core.GetSVELaneCount(kHRegSize);
+    int vl_s = core.GetSVELaneCount(kSRegSize);
+    int vl_d = core.GetSVELaneCount(kDRegSize);
+
+    // Check all-active predicates in various combinations.
+    ASSERT_EQUAL_64(vl_b, x10);
+    ASSERT_EQUAL_64(vl_h, x11);
+    ASSERT_EQUAL_64(vl_s, x12);
+    ASSERT_EQUAL_64(vl_d, x13);
+
+    ASSERT_EQUAL_64(vl_b, x14);
+    ASSERT_EQUAL_64(vl_h, x15);
+    ASSERT_EQUAL_64(vl_s, x16);
+    ASSERT_EQUAL_64(vl_d, x17);
+
+    // Check that irrelevant bits are properly ignored.
+    ASSERT_EQUAL_64(7, x0);
+    ASSERT_EQUAL_64(5, x1);
+    ASSERT_EQUAL_64(2, x2);
+    ASSERT_EQUAL_64(1, x3);
+
+    ASSERT_EQUAL_64(7, x4);
+    ASSERT_EQUAL_64(5, x5);
+    ASSERT_EQUAL_64(2, x6);
+    ASSERT_EQUAL_64(1, x7);
+  }
+}
+
+typedef void (MacroAssembler::*CntFn)(const Register& dst,
+                                      int pattern,
+                                      int multiplier);
+
+template <typename T>
+void GenerateCntSequence(MacroAssembler* masm,
+                         CntFn cnt,
+                         T acc_value,
+                         int multiplier) {
+  // Initialise accumulators.
+  masm->Mov(x0, acc_value);
+  masm->Mov(x1, acc_value);
+  masm->Mov(x2, acc_value);
+  masm->Mov(x3, acc_value);
+  masm->Mov(x4, acc_value);
+  masm->Mov(x5, acc_value);
+  masm->Mov(x6, acc_value);
+  masm->Mov(x7, acc_value);
+  masm->Mov(x8, acc_value);
+  masm->Mov(x9, acc_value);
+  masm->Mov(x10, acc_value);
+  masm->Mov(x11, acc_value);
+  masm->Mov(x12, acc_value);
+  masm->Mov(x13, acc_value);
+  masm->Mov(x14, acc_value);
+  masm->Mov(x15, acc_value);
+  masm->Mov(x18, acc_value);
+  masm->Mov(x19, acc_value);
+  masm->Mov(x20, acc_value);
+  masm->Mov(x21, acc_value);
+
+  (masm->*cnt)(Register(0, sizeof(T) * kBitsPerByte), SVE_POW2, multiplier);
+  (masm->*cnt)(Register(1, sizeof(T) * kBitsPerByte), SVE_VL1, multiplier);
+  (masm->*cnt)(Register(2, sizeof(T) * kBitsPerByte), SVE_VL2, multiplier);
+  (masm->*cnt)(Register(3, sizeof(T) * kBitsPerByte), SVE_VL3, multiplier);
+  (masm->*cnt)(Register(4, sizeof(T) * kBitsPerByte), SVE_VL4, multiplier);
+  (masm->*cnt)(Register(5, sizeof(T) * kBitsPerByte), SVE_VL5, multiplier);
+  (masm->*cnt)(Register(6, sizeof(T) * kBitsPerByte), SVE_VL6, multiplier);
+  (masm->*cnt)(Register(7, sizeof(T) * kBitsPerByte), SVE_VL7, multiplier);
+  (masm->*cnt)(Register(8, sizeof(T) * kBitsPerByte), SVE_VL8, multiplier);
+  (masm->*cnt)(Register(9, sizeof(T) * kBitsPerByte), SVE_VL16, multiplier);
+  (masm->*cnt)(Register(10, sizeof(T) * kBitsPerByte), SVE_VL32, multiplier);
+  (masm->*cnt)(Register(11, sizeof(T) * kBitsPerByte), SVE_VL64, multiplier);
+  (masm->*cnt)(Register(12, sizeof(T) * kBitsPerByte), SVE_VL128, multiplier);
+  (masm->*cnt)(Register(13, sizeof(T) * kBitsPerByte), SVE_VL256, multiplier);
+  (masm->*cnt)(Register(14, sizeof(T) * kBitsPerByte), 16, multiplier);
+  (masm->*cnt)(Register(15, sizeof(T) * kBitsPerByte), 23, multiplier);
+  (masm->*cnt)(Register(18, sizeof(T) * kBitsPerByte), 28, multiplier);
+  (masm->*cnt)(Register(19, sizeof(T) * kBitsPerByte), SVE_MUL4, multiplier);
+  (masm->*cnt)(Register(20, sizeof(T) * kBitsPerByte), SVE_MUL3, multiplier);
+  (masm->*cnt)(Register(21, sizeof(T) * kBitsPerByte), SVE_ALL, multiplier);
+}
+
+int FixedVL(int fixed, int length) {
+  VIXL_ASSERT(((fixed >= 1) && (fixed <= 8)) || (fixed == 16) ||
+              (fixed == 32) || (fixed == 64) || (fixed == 128) ||
+              (fixed = 256));
+  return (length >= fixed) ? fixed : 0;
+}
+
+static void CntHelper(Test* config,
+                      CntFn cnt,
+                      int multiplier,
+                      int lane_size_in_bits,
+                      int64_t acc_value = 0,
+                      bool is_increment = true) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+  GenerateCntSequence(&masm, cnt, acc_value, multiplier);
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int all = core.GetSVELaneCount(lane_size_in_bits);
+    int pow2 = 1 << HighestSetBitPosition(all);
+    int mul4 = all - (all % 4);
+    int mul3 = all - (all % 3);
+
+    multiplier = is_increment ? multiplier : -multiplier;
+
+    ASSERT_EQUAL_64(acc_value + (multiplier * pow2), x0);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(1, all)), x1);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(2, all)), x2);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(3, all)), x3);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(4, all)), x4);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(5, all)), x5);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(6, all)), x6);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(7, all)), x7);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(8, all)), x8);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(16, all)), x9);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(32, all)), x10);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(64, all)), x11);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(128, all)), x12);
+    ASSERT_EQUAL_64(acc_value + (multiplier * FixedVL(256, all)), x13);
+    ASSERT_EQUAL_64(acc_value, x14);
+    ASSERT_EQUAL_64(acc_value, x15);
+    ASSERT_EQUAL_64(acc_value, x18);
+    ASSERT_EQUAL_64(acc_value + (multiplier * mul4), x19);
+    ASSERT_EQUAL_64(acc_value + (multiplier * mul3), x20);
+    ASSERT_EQUAL_64(acc_value + (multiplier * all), x21);
+  }
+}
+
+static void IncHelper(Test* config,
+                      CntFn cnt,
+                      int multiplier,
+                      int lane_size_in_bits,
+                      int64_t acc_value) {
+  CntHelper(config, cnt, multiplier, lane_size_in_bits, acc_value, true);
+}
+
+static void DecHelper(Test* config,
+                      CntFn cnt,
+                      int multiplier,
+                      int lane_size_in_bits,
+                      int64_t acc_value) {
+  CntHelper(config, cnt, multiplier, lane_size_in_bits, acc_value, false);
+}
+
+TEST_SVE(sve_cntb) {
+  CntHelper(config, &MacroAssembler::Cntb, 1, kBRegSize);
+  CntHelper(config, &MacroAssembler::Cntb, 2, kBRegSize);
+  CntHelper(config, &MacroAssembler::Cntb, 15, kBRegSize);
+  CntHelper(config, &MacroAssembler::Cntb, 16, kBRegSize);
+}
+
+TEST_SVE(sve_cnth) {
+  CntHelper(config, &MacroAssembler::Cnth, 1, kHRegSize);
+  CntHelper(config, &MacroAssembler::Cnth, 2, kHRegSize);
+  CntHelper(config, &MacroAssembler::Cnth, 15, kHRegSize);
+  CntHelper(config, &MacroAssembler::Cnth, 16, kHRegSize);
+}
+
+TEST_SVE(sve_cntw) {
+  CntHelper(config, &MacroAssembler::Cntw, 1, kWRegSize);
+  CntHelper(config, &MacroAssembler::Cntw, 2, kWRegSize);
+  CntHelper(config, &MacroAssembler::Cntw, 15, kWRegSize);
+  CntHelper(config, &MacroAssembler::Cntw, 16, kWRegSize);
+}
+
+TEST_SVE(sve_cntd) {
+  CntHelper(config, &MacroAssembler::Cntd, 1, kDRegSize);
+  CntHelper(config, &MacroAssembler::Cntd, 2, kDRegSize);
+  CntHelper(config, &MacroAssembler::Cntd, 15, kDRegSize);
+  CntHelper(config, &MacroAssembler::Cntd, 16, kDRegSize);
+}
+
+TEST_SVE(sve_decb) {
+  DecHelper(config, &MacroAssembler::Decb, 1, kBRegSize, 42);
+  DecHelper(config, &MacroAssembler::Decb, 2, kBRegSize, -1);
+  DecHelper(config, &MacroAssembler::Decb, 15, kBRegSize, INT64_MIN);
+  DecHelper(config, &MacroAssembler::Decb, 16, kBRegSize, -42);
+}
+
+TEST_SVE(sve_dech) {
+  DecHelper(config, &MacroAssembler::Dech, 1, kHRegSize, 42);
+  DecHelper(config, &MacroAssembler::Dech, 2, kHRegSize, -1);
+  DecHelper(config, &MacroAssembler::Dech, 15, kHRegSize, INT64_MIN);
+  DecHelper(config, &MacroAssembler::Dech, 16, kHRegSize, -42);
+}
+
+TEST_SVE(sve_decw) {
+  DecHelper(config, &MacroAssembler::Decw, 1, kWRegSize, 42);
+  DecHelper(config, &MacroAssembler::Decw, 2, kWRegSize, -1);
+  DecHelper(config, &MacroAssembler::Decw, 15, kWRegSize, INT64_MIN);
+  DecHelper(config, &MacroAssembler::Decw, 16, kWRegSize, -42);
+}
+
+TEST_SVE(sve_decd) {
+  DecHelper(config, &MacroAssembler::Decd, 1, kDRegSize, 42);
+  DecHelper(config, &MacroAssembler::Decd, 2, kDRegSize, -1);
+  DecHelper(config, &MacroAssembler::Decd, 15, kDRegSize, INT64_MIN);
+  DecHelper(config, &MacroAssembler::Decd, 16, kDRegSize, -42);
+}
+
+TEST_SVE(sve_incb) {
+  IncHelper(config, &MacroAssembler::Incb, 1, kBRegSize, 42);
+  IncHelper(config, &MacroAssembler::Incb, 2, kBRegSize, -1);
+  IncHelper(config, &MacroAssembler::Incb, 15, kBRegSize, INT64_MAX);
+  IncHelper(config, &MacroAssembler::Incb, 16, kBRegSize, -42);
+}
+
+TEST_SVE(sve_inch) {
+  IncHelper(config, &MacroAssembler::Inch, 1, kHRegSize, 42);
+  IncHelper(config, &MacroAssembler::Inch, 2, kHRegSize, -1);
+  IncHelper(config, &MacroAssembler::Inch, 15, kHRegSize, INT64_MAX);
+  IncHelper(config, &MacroAssembler::Inch, 16, kHRegSize, -42);
+}
+
+TEST_SVE(sve_incw) {
+  IncHelper(config, &MacroAssembler::Incw, 1, kWRegSize, 42);
+  IncHelper(config, &MacroAssembler::Incw, 2, kWRegSize, -1);
+  IncHelper(config, &MacroAssembler::Incw, 15, kWRegSize, INT64_MAX);
+  IncHelper(config, &MacroAssembler::Incw, 16, kWRegSize, -42);
+}
+
+TEST_SVE(sve_incd) {
+  IncHelper(config, &MacroAssembler::Incd, 1, kDRegSize, 42);
+  IncHelper(config, &MacroAssembler::Incd, 2, kDRegSize, -1);
+  IncHelper(config, &MacroAssembler::Incd, 15, kDRegSize, INT64_MAX);
+  IncHelper(config, &MacroAssembler::Incd, 16, kDRegSize, -42);
+}
+
+template <typename T>
+static T QAdd(T x, int y) {
+  VIXL_ASSERT(y > INT_MIN);
+  T result;
+  T min = std::numeric_limits<T>::min();
+  T max = std::numeric_limits<T>::max();
+  if ((x >= 0) && (y >= 0)) {
+    // For positive a and b, saturate at max.
+    result = (max - x) < static_cast<T>(y) ? max : x + y;
+  } else if ((y < 0) && ((x < 0) || (min == 0))) {
+    // For negative b, where either a negative or T unsigned.
+    result = (x - min) < static_cast<T>(-y) ? min : x + y;
+  } else {
+    result = x + y;
+  }
+  return result;
+}
+
+template <typename T>
+static void QIncDecHelper(Test* config,
+                          CntFn cnt,
+                          int multiplier,
+                          int lane_size_in_bits,
+                          T acc_value,
+                          bool is_increment) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+  GenerateCntSequence(&masm, cnt, acc_value, multiplier);
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int all = core.GetSVELaneCount(lane_size_in_bits);
+    int pow2 = 1 << HighestSetBitPosition(all);
+    int mul4 = all - (all % 4);
+    int mul3 = all - (all % 3);
+
+    multiplier = is_increment ? multiplier : -multiplier;
+
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * pow2), x0);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(1, all)), x1);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(2, all)), x2);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(3, all)), x3);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(4, all)), x4);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(5, all)), x5);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(6, all)), x6);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(7, all)), x7);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(8, all)), x8);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(16, all)), x9);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(32, all)), x10);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(64, all)), x11);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(128, all)), x12);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(256, all)), x13);
+    ASSERT_EQUAL_64(acc_value, x14);
+    ASSERT_EQUAL_64(acc_value, x15);
+    ASSERT_EQUAL_64(acc_value, x18);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * mul4), x19);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * mul3), x20);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * all), x21);
+  }
+}
+
+template <typename T>
+static void QIncHelper(Test* config,
+                       CntFn cnt,
+                       int multiplier,
+                       int lane_size_in_bits,
+                       T acc_value) {
+  QIncDecHelper<T>(config, cnt, multiplier, lane_size_in_bits, acc_value, true);
+}
+
+template <typename T>
+static void QDecHelper(Test* config,
+                       CntFn cnt,
+                       int multiplier,
+                       int lane_size_in_bits,
+                       T acc_value) {
+  QIncDecHelper<T>(config,
+                   cnt,
+                   multiplier,
+                   lane_size_in_bits,
+                   acc_value,
+                   false);
+}
+
+TEST_SVE(sve_sqdecb) {
+  int64_t bigneg = INT64_MIN + 42;
+  int64_t bigpos = INT64_MAX - 42;
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecb, 1, kBRegSize, 1);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecb, 2, kBRegSize, bigneg);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecb, 15, kBRegSize, 999);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecb, 16, kBRegSize, bigpos);
+}
+
+TEST_SVE(sve_sqdech) {
+  int64_t bigneg = INT64_MIN + 42;
+  int64_t bigpos = INT64_MAX - 42;
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdech, 1, kHRegSize, 1);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdech, 2, kHRegSize, bigneg);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdech, 15, kHRegSize, 999);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdech, 16, kHRegSize, bigpos);
+}
+
+TEST_SVE(sve_sqdecw) {
+  int64_t bigneg = INT64_MIN + 42;
+  int64_t bigpos = INT64_MAX - 42;
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecw, 1, kWRegSize, 1);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecw, 2, kWRegSize, bigneg);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecw, 15, kWRegSize, 999);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecw, 16, kWRegSize, bigpos);
+}
+
+TEST_SVE(sve_sqdecd) {
+  int64_t bigneg = INT64_MIN + 42;
+  int64_t bigpos = INT64_MAX - 42;
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecd, 1, kDRegSize, 1);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecd, 2, kDRegSize, bigneg);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecd, 15, kDRegSize, 999);
+  QDecHelper<int64_t>(config, &MacroAssembler::Sqdecd, 16, kDRegSize, bigpos);
+}
+
+TEST_SVE(sve_sqincb) {
+  int64_t bigneg = INT64_MIN + 42;
+  int64_t bigpos = INT64_MAX - 42;
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincb, 1, kBRegSize, 1);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincb, 2, kBRegSize, bigneg);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincb, 15, kBRegSize, 999);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincb, 16, kBRegSize, bigpos);
+}
+
+TEST_SVE(sve_sqinch) {
+  int64_t bigneg = INT64_MIN + 42;
+  int64_t bigpos = INT64_MAX - 42;
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqinch, 1, kHRegSize, 1);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqinch, 2, kHRegSize, bigneg);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqinch, 15, kHRegSize, 999);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqinch, 16, kHRegSize, bigpos);
+}
+
+TEST_SVE(sve_sqincw) {
+  int64_t bigneg = INT64_MIN + 42;
+  int64_t bigpos = INT64_MAX - 42;
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincw, 1, kWRegSize, 1);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincw, 2, kWRegSize, bigneg);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincw, 15, kWRegSize, 999);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincw, 16, kWRegSize, bigpos);
+}
+
+TEST_SVE(sve_sqincd) {
+  int64_t bigneg = INT64_MIN + 42;
+  int64_t bigpos = INT64_MAX - 42;
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincd, 1, kDRegSize, 1);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincd, 2, kDRegSize, bigneg);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincd, 15, kDRegSize, 999);
+  QIncHelper<int64_t>(config, &MacroAssembler::Sqincd, 16, kDRegSize, bigpos);
+}
+
+TEST_SVE(sve_uqdecb) {
+  int32_t big32 = UINT32_MAX - 42;
+  int64_t big64 = UINT64_MAX - 42;
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecb, 1, kBRegSize, 1);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecb, 2, kBRegSize, 42);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecb, 15, kBRegSize, 999);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecb, 16, kBRegSize, big32);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecb, 1, kBRegSize, 1);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecb, 2, kBRegSize, 42);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecb, 15, kBRegSize, 999);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecb, 16, kBRegSize, big64);
+}
+
+TEST_SVE(sve_uqdech) {
+  int32_t big32 = UINT32_MAX - 42;
+  int64_t big64 = UINT64_MAX - 42;
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdech, 1, kHRegSize, 1);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdech, 2, kHRegSize, 42);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdech, 15, kHRegSize, 999);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdech, 16, kHRegSize, big32);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdech, 1, kHRegSize, 1);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdech, 2, kHRegSize, 42);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdech, 15, kHRegSize, 999);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdech, 16, kHRegSize, big64);
+}
+
+TEST_SVE(sve_uqdecw) {
+  int32_t big32 = UINT32_MAX - 42;
+  int64_t big64 = UINT64_MAX - 42;
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecw, 1, kWRegSize, 1);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecw, 2, kWRegSize, 42);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecw, 15, kWRegSize, 999);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecw, 16, kWRegSize, big32);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecw, 1, kWRegSize, 1);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecw, 2, kWRegSize, 42);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecw, 15, kWRegSize, 999);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecw, 16, kWRegSize, big64);
+}
+
+TEST_SVE(sve_uqdecd) {
+  int32_t big32 = UINT32_MAX - 42;
+  int64_t big64 = UINT64_MAX - 42;
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecd, 1, kDRegSize, 1);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecd, 2, kDRegSize, 42);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecd, 15, kDRegSize, 999);
+  QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecd, 16, kDRegSize, big32);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecd, 1, kDRegSize, 1);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecd, 2, kDRegSize, 42);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecd, 15, kDRegSize, 999);
+  QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecd, 16, kDRegSize, big64);
+}
+
+TEST_SVE(sve_uqincb) {
+  int32_t big32 = UINT32_MAX - 42;
+  int64_t big64 = UINT64_MAX - 42;
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincb, 1, kBRegSize, 1);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincb, 2, kBRegSize, 42);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincb, 15, kBRegSize, 999);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincb, 16, kBRegSize, big32);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincb, 1, kBRegSize, 1);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincb, 2, kBRegSize, 42);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincb, 15, kBRegSize, 999);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincb, 16, kBRegSize, big64);
+}
+
+TEST_SVE(sve_uqinch) {
+  int32_t big32 = UINT32_MAX - 42;
+  int64_t big64 = UINT64_MAX - 42;
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqinch, 1, kHRegSize, 1);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqinch, 2, kHRegSize, 42);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqinch, 15, kHRegSize, 999);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqinch, 16, kHRegSize, big32);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqinch, 1, kHRegSize, 1);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqinch, 2, kHRegSize, 42);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqinch, 15, kHRegSize, 999);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqinch, 16, kHRegSize, big64);
+}
+
+TEST_SVE(sve_uqincw) {
+  int32_t big32 = UINT32_MAX - 42;
+  int64_t big64 = UINT64_MAX - 42;
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincw, 1, kWRegSize, 1);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincw, 2, kWRegSize, 42);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincw, 15, kWRegSize, 999);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincw, 16, kWRegSize, big32);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincw, 1, kWRegSize, 1);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincw, 2, kWRegSize, 42);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincw, 15, kWRegSize, 999);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincw, 16, kWRegSize, big64);
+}
+
+TEST_SVE(sve_uqincd) {
+  int32_t big32 = UINT32_MAX - 42;
+  int64_t big64 = UINT64_MAX - 42;
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincd, 1, kDRegSize, 1);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincd, 2, kDRegSize, 42);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincd, 15, kDRegSize, 999);
+  QIncHelper<uint32_t>(config, &MacroAssembler::Uqincd, 16, kDRegSize, big32);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincd, 1, kDRegSize, 1);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincd, 2, kDRegSize, 42);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincd, 15, kDRegSize, 999);
+  QIncHelper<uint64_t>(config, &MacroAssembler::Uqincd, 16, kDRegSize, big64);
+}
+
+typedef void (MacroAssembler::*QIncDecXWFn)(const Register& dst,
+                                            const Register& src,
+                                            int pattern,
+                                            int multiplier);
+
+static void QIncDecXWHelper(Test* config,
+                            QIncDecXWFn cnt,
+                            int multiplier,
+                            int lane_size_in_bits,
+                            int32_t acc_value,
+                            bool is_increment) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Initialise accumulators.
+  __ Mov(x0, acc_value);
+  __ Mov(x1, acc_value);
+  __ Mov(x2, acc_value);
+  __ Mov(x3, acc_value);
+  __ Mov(x4, acc_value);
+  __ Mov(x5, acc_value);
+  __ Mov(x6, acc_value);
+  __ Mov(x7, acc_value);
+  __ Mov(x8, acc_value);
+  __ Mov(x9, acc_value);
+  __ Mov(x10, acc_value);
+  __ Mov(x11, acc_value);
+  __ Mov(x12, acc_value);
+  __ Mov(x13, acc_value);
+  __ Mov(x14, acc_value);
+  __ Mov(x15, acc_value);
+  __ Mov(x18, acc_value);
+  __ Mov(x19, acc_value);
+  __ Mov(x20, acc_value);
+  __ Mov(x21, acc_value);
+
+  (masm.*cnt)(x0, w0, SVE_POW2, multiplier);
+  (masm.*cnt)(x1, w1, SVE_VL1, multiplier);
+  (masm.*cnt)(x2, w2, SVE_VL2, multiplier);
+  (masm.*cnt)(x3, w3, SVE_VL3, multiplier);
+  (masm.*cnt)(x4, w4, SVE_VL4, multiplier);
+  (masm.*cnt)(x5, w5, SVE_VL5, multiplier);
+  (masm.*cnt)(x6, w6, SVE_VL6, multiplier);
+  (masm.*cnt)(x7, w7, SVE_VL7, multiplier);
+  (masm.*cnt)(x8, w8, SVE_VL8, multiplier);
+  (masm.*cnt)(x9, w9, SVE_VL16, multiplier);
+  (masm.*cnt)(x10, w10, SVE_VL32, multiplier);
+  (masm.*cnt)(x11, w11, SVE_VL64, multiplier);
+  (masm.*cnt)(x12, w12, SVE_VL128, multiplier);
+  (masm.*cnt)(x13, w13, SVE_VL256, multiplier);
+  (masm.*cnt)(x14, w14, 16, multiplier);
+  (masm.*cnt)(x15, w15, 23, multiplier);
+  (masm.*cnt)(x18, w18, 28, multiplier);
+  (masm.*cnt)(x19, w19, SVE_MUL4, multiplier);
+  (masm.*cnt)(x20, w20, SVE_MUL3, multiplier);
+  (masm.*cnt)(x21, w21, SVE_ALL, multiplier);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int all = core.GetSVELaneCount(lane_size_in_bits);
+    int pow2 = 1 << HighestSetBitPosition(all);
+    int mul4 = all - (all % 4);
+    int mul3 = all - (all % 3);
+
+    multiplier = is_increment ? multiplier : -multiplier;
+
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * pow2), x0);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(1, all)), x1);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(2, all)), x2);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(3, all)), x3);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(4, all)), x4);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(5, all)), x5);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(6, all)), x6);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(7, all)), x7);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(8, all)), x8);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(16, all)), x9);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(32, all)), x10);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(64, all)), x11);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(128, all)), x12);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * FixedVL(256, all)), x13);
+    ASSERT_EQUAL_64(acc_value, x14);
+    ASSERT_EQUAL_64(acc_value, x15);
+    ASSERT_EQUAL_64(acc_value, x18);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * mul4), x19);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * mul3), x20);
+    ASSERT_EQUAL_64(QAdd(acc_value, multiplier * all), x21);
+  }
+}
+
+static void QIncXWHelper(Test* config,
+                         QIncDecXWFn cnt,
+                         int multiplier,
+                         int lane_size_in_bits,
+                         int32_t acc_value) {
+  QIncDecXWHelper(config, cnt, multiplier, lane_size_in_bits, acc_value, true);
+}
+
+static void QDecXWHelper(Test* config,
+                         QIncDecXWFn cnt,
+                         int multiplier,
+                         int lane_size_in_bits,
+                         int32_t acc_value) {
+  QIncDecXWHelper(config, cnt, multiplier, lane_size_in_bits, acc_value, false);
+}
+
+TEST_SVE(sve_sqdecb_xw) {
+  QDecXWHelper(config, &MacroAssembler::Sqdecb, 1, kBRegSize, 1);
+  QDecXWHelper(config, &MacroAssembler::Sqdecb, 2, kBRegSize, INT32_MIN + 42);
+  QDecXWHelper(config, &MacroAssembler::Sqdecb, 15, kBRegSize, 999);
+  QDecXWHelper(config, &MacroAssembler::Sqdecb, 16, kBRegSize, INT32_MAX - 42);
+}
+
+TEST_SVE(sve_sqdech_xw) {
+  QDecXWHelper(config, &MacroAssembler::Sqdech, 1, kHRegSize, 1);
+  QDecXWHelper(config, &MacroAssembler::Sqdech, 2, kHRegSize, INT32_MIN + 42);
+  QDecXWHelper(config, &MacroAssembler::Sqdech, 15, kHRegSize, 999);
+  QDecXWHelper(config, &MacroAssembler::Sqdech, 16, kHRegSize, INT32_MAX - 42);
+}
+
+TEST_SVE(sve_sqdecw_xw) {
+  QDecXWHelper(config, &MacroAssembler::Sqdecw, 1, kWRegSize, 1);
+  QDecXWHelper(config, &MacroAssembler::Sqdecw, 2, kWRegSize, INT32_MIN + 42);
+  QDecXWHelper(config, &MacroAssembler::Sqdecw, 15, kWRegSize, 999);
+  QDecXWHelper(config, &MacroAssembler::Sqdecw, 16, kWRegSize, INT32_MAX - 42);
+}
+
+TEST_SVE(sve_sqdecd_xw) {
+  QDecXWHelper(config, &MacroAssembler::Sqdecd, 1, kDRegSize, 1);
+  QDecXWHelper(config, &MacroAssembler::Sqdecd, 2, kDRegSize, INT32_MIN + 42);
+  QDecXWHelper(config, &MacroAssembler::Sqdecd, 15, kDRegSize, 999);
+  QDecXWHelper(config, &MacroAssembler::Sqdecd, 16, kDRegSize, INT32_MAX - 42);
+}
+
+TEST_SVE(sve_sqincb_xw) {
+  QIncXWHelper(config, &MacroAssembler::Sqincb, 1, kBRegSize, 1);
+  QIncXWHelper(config, &MacroAssembler::Sqincb, 2, kBRegSize, INT32_MIN + 42);
+  QIncXWHelper(config, &MacroAssembler::Sqincb, 15, kBRegSize, 999);
+  QIncXWHelper(config, &MacroAssembler::Sqincb, 16, kBRegSize, INT32_MAX - 42);
+}
+
+TEST_SVE(sve_sqinch_xw) {
+  QIncXWHelper(config, &MacroAssembler::Sqinch, 1, kHRegSize, 1);
+  QIncXWHelper(config, &MacroAssembler::Sqinch, 2, kHRegSize, INT32_MIN + 42);
+  QIncXWHelper(config, &MacroAssembler::Sqinch, 15, kHRegSize, 999);
+  QIncXWHelper(config, &MacroAssembler::Sqinch, 16, kHRegSize, INT32_MAX - 42);
+}
+
+TEST_SVE(sve_sqincw_xw) {
+  QIncXWHelper(config, &MacroAssembler::Sqincw, 1, kWRegSize, 1);
+  QIncXWHelper(config, &MacroAssembler::Sqincw, 2, kWRegSize, INT32_MIN + 42);
+  QIncXWHelper(config, &MacroAssembler::Sqincw, 15, kWRegSize, 999);
+  QIncXWHelper(config, &MacroAssembler::Sqincw, 16, kWRegSize, INT32_MAX - 42);
+}
+
+TEST_SVE(sve_sqincd_xw) {
+  QIncXWHelper(config, &MacroAssembler::Sqincd, 1, kDRegSize, 1);
+  QIncXWHelper(config, &MacroAssembler::Sqincd, 2, kDRegSize, INT32_MIN + 42);
+  QIncXWHelper(config, &MacroAssembler::Sqincd, 15, kDRegSize, 999);
+  QIncXWHelper(config, &MacroAssembler::Sqincd, 16, kDRegSize, INT32_MAX - 42);
+}
+
+typedef void (MacroAssembler::*IncDecZFn)(const ZRegister& dst,
+                                          int pattern,
+                                          int multiplier);
+typedef void (MacroAssembler::*AddSubFn)(const ZRegister& dst,
+                                         const ZRegister& src1,
+                                         const ZRegister& src2);
+
+static void IncDecZHelper(Test* config,
+                          IncDecZFn fn,
+                          CntFn cnt,
+                          AddSubFn addsub,
+                          int multiplier,
+                          int lane_size_in_bits) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t acc_inputs[] = {0x7766554433221100,
+                           0xffffffffffffffff,
+                           0x0000000000000000,
+                           0xffffffff0000ffff,
+                           0x7fffffffffffffff,
+                           0x8000000000000000,
+                           0x7fffffff7fff7fff,
+                           0x8000000080008000};
+
+  for (unsigned i = 0; i < kNumberOfZRegisters; i++) {
+    for (int j = 0; j < 4; j++) {
+      InsrHelper(&masm, ZRegister(i, kDRegSize), acc_inputs);
+    }
+  }
+  for (unsigned i = 0; i < 15; i++) {
+    __ Mov(XRegister(i), 0);
+  }
+
+  (masm.*fn)(z16.WithLaneSize(lane_size_in_bits), SVE_POW2, multiplier);
+  (masm.*fn)(z17.WithLaneSize(lane_size_in_bits), SVE_VL1, multiplier);
+  (masm.*fn)(z18.WithLaneSize(lane_size_in_bits), SVE_VL2, multiplier);
+  (masm.*fn)(z19.WithLaneSize(lane_size_in_bits), SVE_VL3, multiplier);
+  (masm.*fn)(z20.WithLaneSize(lane_size_in_bits), SVE_VL4, multiplier);
+  (masm.*fn)(z21.WithLaneSize(lane_size_in_bits), SVE_VL7, multiplier);
+  (masm.*fn)(z22.WithLaneSize(lane_size_in_bits), SVE_VL8, multiplier);
+  (masm.*fn)(z23.WithLaneSize(lane_size_in_bits), SVE_VL16, multiplier);
+  (masm.*fn)(z24.WithLaneSize(lane_size_in_bits), SVE_VL64, multiplier);
+  (masm.*fn)(z25.WithLaneSize(lane_size_in_bits), SVE_VL256, multiplier);
+  (masm.*fn)(z26.WithLaneSize(lane_size_in_bits), 16, multiplier);
+  (masm.*fn)(z27.WithLaneSize(lane_size_in_bits), 28, multiplier);
+  (masm.*fn)(z28.WithLaneSize(lane_size_in_bits), SVE_MUL3, multiplier);
+  (masm.*fn)(z29.WithLaneSize(lane_size_in_bits), SVE_MUL4, multiplier);
+  (masm.*fn)(z30.WithLaneSize(lane_size_in_bits), SVE_ALL, multiplier);
+
+  // Perform computation using alternative instructions.
+  (masm.*cnt)(x0, SVE_POW2, multiplier);
+  (masm.*cnt)(x1, SVE_VL1, multiplier);
+  (masm.*cnt)(x2, SVE_VL2, multiplier);
+  (masm.*cnt)(x3, SVE_VL3, multiplier);
+  (masm.*cnt)(x4, SVE_VL4, multiplier);
+  (masm.*cnt)(x5, SVE_VL7, multiplier);
+  (masm.*cnt)(x6, SVE_VL8, multiplier);
+  (masm.*cnt)(x7, SVE_VL16, multiplier);
+  (masm.*cnt)(x8, SVE_VL64, multiplier);
+  (masm.*cnt)(x9, SVE_VL256, multiplier);
+  (masm.*cnt)(x10, 16, multiplier);
+  (masm.*cnt)(x11, 28, multiplier);
+  (masm.*cnt)(x12, SVE_MUL3, multiplier);
+  (masm.*cnt)(x13, SVE_MUL4, multiplier);
+  (masm.*cnt)(x14, SVE_ALL, multiplier);
+
+  ZRegister zscratch = z15.WithLaneSize(lane_size_in_bits);
+  for (unsigned i = 0; i < 15; i++) {
+    ZRegister zsrcdst = ZRegister(i, lane_size_in_bits);
+    Register x = Register(i, kXRegSize);
+    __ Dup(zscratch, x);
+    (masm.*addsub)(zsrcdst, zsrcdst, zscratch);
+  }
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(z0, z16);
+    ASSERT_EQUAL_SVE(z1, z17);
+    ASSERT_EQUAL_SVE(z2, z18);
+    ASSERT_EQUAL_SVE(z3, z19);
+    ASSERT_EQUAL_SVE(z4, z20);
+    ASSERT_EQUAL_SVE(z5, z21);
+    ASSERT_EQUAL_SVE(z6, z22);
+    ASSERT_EQUAL_SVE(z7, z23);
+    ASSERT_EQUAL_SVE(z8, z24);
+    ASSERT_EQUAL_SVE(z9, z25);
+    ASSERT_EQUAL_SVE(z10, z26);
+    ASSERT_EQUAL_SVE(z11, z27);
+    ASSERT_EQUAL_SVE(z12, z28);
+    ASSERT_EQUAL_SVE(z13, z29);
+    ASSERT_EQUAL_SVE(z14, z30);
+  }
+}
+
+TEST_SVE(sve_inc_dec_vec) {
+  CntFn cnth = &MacroAssembler::Cnth;
+  CntFn cntw = &MacroAssembler::Cntw;
+  CntFn cntd = &MacroAssembler::Cntd;
+  AddSubFn sub = &MacroAssembler::Sub;
+  AddSubFn add = &MacroAssembler::Add;
+  for (int mult = 1; mult <= 16; mult += 5) {
+    IncDecZHelper(config, &MacroAssembler::Dech, cnth, sub, mult, kHRegSize);
+    IncDecZHelper(config, &MacroAssembler::Decw, cntw, sub, mult, kSRegSize);
+    IncDecZHelper(config, &MacroAssembler::Decd, cntd, sub, mult, kDRegSize);
+    IncDecZHelper(config, &MacroAssembler::Inch, cnth, add, mult, kHRegSize);
+    IncDecZHelper(config, &MacroAssembler::Incw, cntw, add, mult, kSRegSize);
+    IncDecZHelper(config, &MacroAssembler::Incd, cntd, add, mult, kDRegSize);
+  }
+}
+
+TEST_SVE(sve_unsigned_sat_inc_dec_vec) {
+  CntFn cnth = &MacroAssembler::Cnth;
+  CntFn cntw = &MacroAssembler::Cntw;
+  CntFn cntd = &MacroAssembler::Cntd;
+  AddSubFn sub = &MacroAssembler::Uqsub;
+  AddSubFn add = &MacroAssembler::Uqadd;
+  for (int mult = 1; mult <= 16; mult += 5) {
+    IncDecZHelper(config, &MacroAssembler::Uqdech, cnth, sub, mult, kHRegSize);
+    IncDecZHelper(config, &MacroAssembler::Uqdecw, cntw, sub, mult, kSRegSize);
+    IncDecZHelper(config, &MacroAssembler::Uqdecd, cntd, sub, mult, kDRegSize);
+    IncDecZHelper(config, &MacroAssembler::Uqinch, cnth, add, mult, kHRegSize);
+    IncDecZHelper(config, &MacroAssembler::Uqincw, cntw, add, mult, kSRegSize);
+    IncDecZHelper(config, &MacroAssembler::Uqincd, cntd, add, mult, kDRegSize);
+  }
+}
+
+TEST_SVE(sve_signed_sat_inc_dec_vec) {
+  CntFn cnth = &MacroAssembler::Cnth;
+  CntFn cntw = &MacroAssembler::Cntw;
+  CntFn cntd = &MacroAssembler::Cntd;
+  AddSubFn sub = &MacroAssembler::Sqsub;
+  AddSubFn add = &MacroAssembler::Sqadd;
+  for (int mult = 1; mult <= 16; mult += 5) {
+    IncDecZHelper(config, &MacroAssembler::Sqdech, cnth, sub, mult, kHRegSize);
+    IncDecZHelper(config, &MacroAssembler::Sqdecw, cntw, sub, mult, kSRegSize);
+    IncDecZHelper(config, &MacroAssembler::Sqdecd, cntd, sub, mult, kDRegSize);
+    IncDecZHelper(config, &MacroAssembler::Sqinch, cnth, add, mult, kHRegSize);
+    IncDecZHelper(config, &MacroAssembler::Sqincw, cntw, add, mult, kSRegSize);
+    IncDecZHelper(config, &MacroAssembler::Sqincd, cntd, add, mult, kDRegSize);
+  }
+}
+
+typedef void (MacroAssembler::*ArithPredicatedFn)(const ZRegister& zd,
+                                                  const PRegisterM& pg,
+                                                  const ZRegister& zn,
+                                                  const ZRegister& zm);
+
+template <typename Td, typename Tg, typename Tn>
+static void IntBinArithHelper(Test* config,
+                              ArithPredicatedFn macro,
+                              unsigned lane_size_in_bits,
+                              const Tg& pg_inputs,
+                              const Tn& zn_inputs,
+                              const Tn& zm_inputs,
+                              const Td& zd_expected) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  ZRegister src_a = z31.WithLaneSize(lane_size_in_bits);
+  ZRegister src_b = z27.WithLaneSize(lane_size_in_bits);
+  InsrHelper(&masm, src_a, zn_inputs);
+  InsrHelper(&masm, src_b, zm_inputs);
+
+  Initialise(&masm, p0.WithLaneSize(lane_size_in_bits), pg_inputs);
+
+  ZRegister zd_1 = z0.WithLaneSize(lane_size_in_bits);
+  ZRegister zd_2 = z1.WithLaneSize(lane_size_in_bits);
+  ZRegister zd_3 = z2.WithLaneSize(lane_size_in_bits);
+
+  // `instr` zd(dst), zd(src_a), zn(src_b)
+  __ Mov(zd_1, src_a);
+  (masm.*macro)(zd_1, p0.Merging(), zd_1, src_b);
+
+  // `instr` zd(dst), zm(src_a), zd(src_b)
+  // Based on whether zd and zm registers are aliased, the macro of instructions
+  // (`Instr`) swaps the order of operands if it has the commutative property,
+  // otherwise, transfer to the reversed `Instr`, such as subr and divr.
+  __ Mov(zd_2, src_b);
+  (masm.*macro)(zd_2, p0.Merging(), src_a, zd_2);
+
+  // `instr` zd(dst), zm(src_a), zn(src_b)
+  // The macro of instructions (`Instr`) automatically selects between `instr`
+  // and movprfx + `instr` based on whether zd and zn registers are aliased.
+  // A generated movprfx instruction is predicated that using the same
+  // governing predicate register. In order to keep the result constant,
+  // initialize the destination register first.
+  __ Mov(zd_3, src_a);
+  (masm.*macro)(zd_3, p0.Merging(), src_a, src_b);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    ASSERT_EQUAL_SVE(zd_expected, zd_1);
+
+    for (size_t i = 0; i < ArrayLength(zd_expected); i++) {
+      int lane = static_cast<int>(ArrayLength(zd_expected) - i - 1);
+      if (!core.HasSVELane(zd_1, lane)) break;
+      if ((pg_inputs[i] & 1) != 0) {
+        ASSERT_EQUAL_SVE_LANE(zd_expected[i], zd_1, lane);
+      } else {
+        ASSERT_EQUAL_SVE_LANE(zn_inputs[i], zd_1, lane);
+      }
+    }
+
+    ASSERT_EQUAL_SVE(zd_expected, zd_3);
+  }
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_add) {
+  // clang-format off
+  unsigned zn_b[] = {0x00, 0x01, 0x10, 0x81, 0xff, 0x0f, 0x01, 0x7f};
+
+  unsigned zm_b[] = {0x00, 0x01, 0x10, 0x00, 0x81, 0x80, 0xff, 0xff};
+
+  unsigned zn_h[] = {0x0000, 0x0123, 0x1010, 0x8181, 0xffff, 0x0f0f, 0x0101, 0x7f7f};
+
+  unsigned zm_h[] = {0x0000, 0x0123, 0x1010, 0x0000, 0x8181, 0x8080, 0xffff, 0xffff};
+
+  unsigned zn_s[] = {0x00000000, 0x01234567, 0x10101010, 0x81818181,
+                     0xffffffff, 0x0f0f0f0f, 0x01010101, 0x7f7f7f7f};
+
+  unsigned zm_s[] = {0x00000000, 0x01234567, 0x10101010, 0x00000000,
+                     0x81818181, 0x80808080, 0xffffffff, 0xffffffff};
+
+  uint64_t zn_d[] = {0x0000000000000000, 0x0123456789abcdef,
+                     0x1010101010101010, 0x8181818181818181,
+                     0xffffffffffffffff, 0x0f0f0f0f0f0f0f0f,
+                     0x0101010101010101, 0x7f7f7f7fffffffff};
+
+  uint64_t zm_d[] = {0x0000000000000000, 0x0123456789abcdef,
+                     0x1010101010101010, 0x0000000000000000,
+                     0x8181818181818181, 0x8080808080808080,
+                     0xffffffffffffffff, 0xffffffffffffffff};
+
+  int pg_b[] = {1, 1, 1, 0, 1, 1, 1, 0};
+  int pg_h[] = {1, 1, 0, 1, 1, 1, 0, 1};
+  int pg_s[] = {1, 0, 1, 1, 1, 0, 1, 1};
+  int pg_d[] = {0, 1, 1, 1, 0, 1, 1, 1};
+
+  unsigned add_exp_b[] = {0x00, 0x02, 0x20, 0x81, 0x80, 0x8f, 0x00, 0x7f};
+
+  unsigned add_exp_h[] = {0x0000, 0x0246, 0x1010, 0x8181,
+                          0x8180, 0x8f8f, 0x0101, 0x7f7e};
+
+  unsigned add_exp_s[] = {0x00000000, 0x01234567, 0x20202020, 0x81818181,
+                          0x81818180, 0x0f0f0f0f, 0x01010100, 0x7f7f7f7e};
+
+  uint64_t add_exp_d[] = {0x0000000000000000, 0x02468acf13579bde,
+                          0x2020202020202020, 0x8181818181818181,
+                          0xffffffffffffffff, 0x8f8f8f8f8f8f8f8f,
+                          0x0101010101010100, 0x7f7f7f7ffffffffe};
+
+  ArithPredicatedFn fn = &MacroAssembler::Add;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, add_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, add_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, add_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, add_exp_d);
+
+  unsigned sub_exp_b[] = {0x00, 0x00, 0x00, 0x81, 0x7e, 0x8f, 0x02, 0x7f};
+
+  unsigned sub_exp_h[] = {0x0000, 0x0000, 0x1010, 0x8181,
+                          0x7e7e, 0x8e8f, 0x0101, 0x7f80};
+
+  unsigned sub_exp_s[] = {0x00000000, 0x01234567, 0x00000000, 0x81818181,
+                          0x7e7e7e7e, 0x0f0f0f0f, 0x01010102, 0x7f7f7f80};
+
+  uint64_t sub_exp_d[] = {0x0000000000000000, 0x0000000000000000,
+                          0x0000000000000000, 0x8181818181818181,
+                          0xffffffffffffffff, 0x8e8e8e8e8e8e8e8f,
+                          0x0101010101010102, 0x7f7f7f8000000000};
+
+  fn = &MacroAssembler::Sub;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, sub_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, sub_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, sub_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, sub_exp_d);
+  // clang-format on
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_umin_umax_uabd) {
+  // clang-format off
+  unsigned zn_b[] = {0x00, 0xff, 0x0f, 0xff, 0xf0, 0x98, 0x55, 0x67};
+
+  unsigned zm_b[] = {0x01, 0x00, 0x0e, 0xfe, 0xfe, 0xab, 0xcd, 0x78};
+
+  unsigned zn_h[] = {0x0000, 0xffff, 0x00ff, 0xffff,
+                     0xff00, 0xba98, 0x5555, 0x4567};
+
+  unsigned zm_h[] = {0x0001, 0x0000, 0x00ee, 0xfffe,
+                     0xfe00, 0xabab, 0xcdcd, 0x5678};
+
+  unsigned zn_s[] = {0x00000000, 0xffffffff, 0x0000ffff, 0xffffffff,
+                     0xffff0000, 0xfedcba98, 0x55555555, 0x01234567};
+
+  unsigned zm_s[] = {0x00000001, 0x00000000, 0x0000eeee, 0xfffffffe,
+                     0xfffe0000, 0xabababab, 0xcdcdcdcd, 0x12345678};
+
+  uint64_t zn_d[] = {0x0000000000000000, 0xffffffffffffffff,
+                     0x5555555555555555, 0x0000000001234567};
+
+  uint64_t zm_d[] = {0x0000000000000001, 0x0000000000000000,
+                     0xcdcdcdcdcdcdcdcd, 0x0000000012345678};
+
+  int pg_b[] = {1, 1, 1, 0, 1, 1, 1, 0};
+  int pg_h[] = {1, 1, 0, 1, 1, 1, 0, 1};
+  int pg_s[] = {1, 0, 1, 1, 1, 0, 1, 1};
+  int pg_d[] = {1, 0, 1, 1};
+
+  unsigned umax_exp_b[] = {0x01, 0xff, 0x0f, 0xff, 0xfe, 0xab, 0xcd, 0x67};
+
+  unsigned umax_exp_h[] = {0x0001, 0xffff, 0x00ff, 0xffff,
+                           0xff00, 0xba98, 0x5555, 0x5678};
+
+  unsigned umax_exp_s[] = {0x00000001, 0xffffffff, 0x0000ffff, 0xffffffff,
+                           0xffff0000, 0xfedcba98, 0xcdcdcdcd, 0x12345678};
+
+  uint64_t umax_exp_d[] = {0x0000000000000001, 0xffffffffffffffff,
+                           0xcdcdcdcdcdcdcdcd, 0x0000000012345678};
+
+  ArithPredicatedFn fn = &MacroAssembler::Umax;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, umax_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, umax_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, umax_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, umax_exp_d);
+
+  unsigned umin_exp_b[] = {0x00, 0x00, 0x0e, 0xff, 0xf0, 0x98, 0x55, 0x67};
+
+  unsigned umin_exp_h[] = {0x0000, 0x0000, 0x00ff, 0xfffe,
+                           0xfe00, 0xabab, 0x5555, 0x4567};
+
+  unsigned umin_exp_s[] = {0x00000000, 0xffffffff, 0x0000eeee, 0xfffffffe,
+                           0xfffe0000, 0xfedcba98, 0x55555555, 0x01234567};
+
+  uint64_t umin_exp_d[] = {0x0000000000000000, 0xffffffffffffffff,
+                           0x5555555555555555, 0x0000000001234567};
+  fn = &MacroAssembler::Umin;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, umin_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, umin_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, umin_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, umin_exp_d);
+
+  unsigned uabd_exp_b[] = {0x01, 0xff, 0x01, 0xff, 0x0e, 0x13, 0x78, 0x67};
+
+  unsigned uabd_exp_h[] = {0x0001, 0xffff, 0x00ff, 0x0001,
+                           0x0100, 0x0eed, 0x5555, 0x1111};
+
+  unsigned uabd_exp_s[] = {0x00000001, 0xffffffff, 0x00001111, 0x00000001,
+                           0x00010000, 0xfedcba98, 0x78787878, 0x11111111};
+
+  uint64_t uabd_exp_d[] = {0x0000000000000001, 0xffffffffffffffff,
+                           0x7878787878787878, 0x0000000011111111};
+
+  fn = &MacroAssembler::Uabd;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, uabd_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, uabd_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, uabd_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, uabd_exp_d);
+  // clang-format on
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_smin_smax_sabd) {
+  // clang-format off
+  int zn_b[] = {0, -128, -128, -128, -128, 127, 127, 1};
+
+  int zm_b[] = {-1, 0, -1, -127, 127, 126, -1, 0};
+
+  int zn_h[] = {0, INT16_MIN, INT16_MIN, INT16_MIN,
+                INT16_MIN, INT16_MAX, INT16_MAX, 1};
+
+  int zm_h[] = {-1, 0, -1, INT16_MIN + 1,
+                INT16_MAX, INT16_MAX - 1, -1, 0};
+
+  int zn_s[] = {0, INT32_MIN, INT32_MIN, INT32_MIN,
+                INT32_MIN, INT32_MAX, INT32_MAX, 1};
+
+  int zm_s[] = {-1, 0, -1, -INT32_MAX,
+                INT32_MAX, INT32_MAX - 1, -1, 0};
+
+  int64_t zn_d[] = {0, INT64_MIN, INT64_MIN, INT64_MIN,
+                    INT64_MIN, INT64_MAX, INT64_MAX, 1};
+
+  int64_t zm_d[] = {-1, 0, -1, INT64_MIN + 1,
+                    INT64_MAX, INT64_MAX - 1, -1, 0};
+
+  int pg_b[] = {1, 1, 1, 0, 1, 1, 1, 0};
+  int pg_h[] = {1, 1, 0, 1, 1, 1, 0, 1};
+  int pg_s[] = {1, 0, 1, 1, 1, 0, 1, 1};
+  int pg_d[] = {0, 1, 1, 1, 0, 1, 1, 1};
+
+  int smax_exp_b[] = {0, 0, -1, -128, 127, 127, 127, 1};
+
+  int smax_exp_h[] = {0, 0, INT16_MIN, INT16_MIN + 1,
+                      INT16_MAX, INT16_MAX, INT16_MAX, 1};
+
+  int smax_exp_s[] = {0, INT32_MIN, -1, INT32_MIN + 1,
+                      INT32_MAX, INT32_MAX, INT32_MAX, 1};
+
+  int64_t smax_exp_d[] = {0, 0, -1, INT64_MIN + 1,
+                          INT64_MIN, INT64_MAX, INT64_MAX, 1};
+
+  ArithPredicatedFn fn = &MacroAssembler::Smax;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, smax_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, smax_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, smax_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, smax_exp_d);
+
+  int smin_exp_b[] = {-1, -128, -128, -128, -128, 126, -1, 1};
+
+  int smin_exp_h[] = {-1, INT16_MIN, INT16_MIN, INT16_MIN,
+                      INT16_MIN, INT16_MAX - 1, INT16_MAX, 0};
+
+  int smin_exp_s[] = {-1, INT32_MIN, INT32_MIN, INT32_MIN,
+                      INT32_MIN, INT32_MAX, -1, 0};
+
+  int64_t smin_exp_d[] = {0, INT64_MIN, INT64_MIN, INT64_MIN,
+                          INT64_MIN, INT64_MAX - 1, -1, 0};
+
+  fn = &MacroAssembler::Smin;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, smin_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, smin_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, smin_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, smin_exp_d);
+
+  unsigned sabd_exp_b[] = {1, 128, 127, 128, 255, 1, 128, 1};
+
+  unsigned sabd_exp_h[] = {1, 0x8000, 0x8000, 1, 0xffff, 1, 0x7fff, 1};
+
+  unsigned sabd_exp_s[] = {1, 0x80000000, 0x7fffffff, 1,
+                           0xffffffff, 0x7fffffff, 0x80000000, 1};
+
+  uint64_t sabd_exp_d[] = {0, 0x8000000000000000, 0x7fffffffffffffff, 1,
+                           0x8000000000000000, 1, 0x8000000000000000, 1};
+
+  fn = &MacroAssembler::Sabd;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, sabd_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, sabd_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, sabd_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, sabd_exp_d);
+  // clang-format on
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_mul_umulh) {
+  // clang-format off
+  unsigned zn_b[] = {0x00, 0x01, 0x20, 0x08, 0x80, 0xff, 0x55, 0xaa};
+
+  unsigned zm_b[] = {0x7f, 0xcd, 0x80, 0xff, 0x55, 0xaa, 0x00, 0x08};
+
+  unsigned zn_h[] = {0x0000, 0x0001, 0x0020, 0x0800,
+                     0x8000, 0xff00, 0x5555, 0xaaaa};
+
+  unsigned zm_h[] = {0x007f, 0x00cd, 0x0800, 0xffff,
+                     0x5555, 0xaaaa, 0x0001, 0x1234};
+
+  unsigned zn_s[] = {0x00000000, 0x00000001, 0x00200020, 0x08000800,
+                     0x12345678, 0xffffffff, 0x55555555, 0xaaaaaaaa};
+
+  unsigned zm_s[] = {0x00000000, 0x00000001, 0x00200020, 0x08000800,
+                     0x12345678, 0x22223333, 0x55556666, 0x77778888};
+
+  uint64_t zn_d[] = {0x0000000000000000, 0x5555555555555555,
+                     0xffffffffffffffff, 0xaaaaaaaaaaaaaaaa};
+
+  uint64_t zm_d[] = {0x0000000000000000, 0x1111111133333333,
+                     0xddddddddeeeeeeee, 0xaaaaaaaaaaaaaaaa};
+
+  int pg_b[] = {0, 1, 1, 1, 0, 1, 1, 1};
+  int pg_h[] = {1, 0, 1, 1, 1, 0, 1, 1};
+  int pg_s[] = {1, 1, 0, 1, 1, 1, 0, 1};
+  int pg_d[] = {1, 1, 0, 1};
+
+  unsigned mul_exp_b[] = {0x00, 0xcd, 0x00, 0xf8, 0x80, 0x56, 0x00, 0x50};
+
+  unsigned mul_exp_h[] = {0x0000, 0x0001, 0x0000, 0xf800,
+                          0x8000, 0xff00, 0x5555, 0x9e88};
+
+  unsigned mul_exp_s[] = {0x00000000, 0x00000001, 0x00200020, 0x00400000,
+                          0x1df4d840, 0xddddcccd, 0x55555555, 0xb05afa50};
+
+  uint64_t mul_exp_d[] = {0x0000000000000000, 0xa4fa4fa4eeeeeeef,
+                          0xffffffffffffffff, 0x38e38e38e38e38e4};
+
+  ArithPredicatedFn fn = &MacroAssembler::Mul;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, mul_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, mul_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, mul_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, mul_exp_d);
+
+  unsigned umulh_exp_b[] = {0x00, 0x00, 0x10, 0x07, 0x80, 0xa9, 0x00, 0x05};
+
+  unsigned umulh_exp_h[] = {0x0000, 0x0001, 0x0001, 0x07ff,
+                            0x2aaa, 0xff00, 0x0000, 0x0c22};
+
+  unsigned umulh_exp_s[] = {0x00000000, 0x00000000, 0x00200020, 0x00400080,
+                            0x014b66dc, 0x22223332, 0x55555555, 0x4fa505af};
+
+  uint64_t umulh_exp_d[] = {0x0000000000000000, 0x05b05b05bbbbbbbb,
+                            0xffffffffffffffff, 0x71c71c71c71c71c6};
+
+  fn = &MacroAssembler::Umulh;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, umulh_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, umulh_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, umulh_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, umulh_exp_d);
+  // clang-format on
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_smulh) {
+  // clang-format off
+  int zn_b[] = {0, 1, -1, INT8_MIN, INT8_MAX, -1, 100, -3};
+
+  int zm_b[] = {0, INT8_MIN, INT8_MIN, INT8_MAX, INT8_MAX, -1, 2, 66};
+
+  int zn_h[] = {0, 1, -1, INT16_MIN, INT16_MAX, -1, 10000, -3};
+
+  int zm_h[] = {0, INT16_MIN, INT16_MIN, INT16_MAX, INT16_MAX, -1, 2, 6666};
+
+  int zn_s[] = {0, 1, -1, INT32_MIN, INT32_MAX, -1, 100000000, -3};
+
+  int zm_s[] = {0, INT32_MIN, INT32_MIN, INT32_MAX, INT32_MAX, -1, 2, 66666666};
+
+  int64_t zn_d[] = {0, -1, INT64_MIN, INT64_MAX};
+
+  int64_t zm_d[] = {INT64_MIN, INT64_MAX, INT64_MIN, INT64_MAX};
+
+  int pg_b[] = {0, 1, 1, 1, 0, 1, 1, 1};
+  int pg_h[] = {1, 0, 1, 1, 1, 0, 1, 1};
+  int pg_s[] = {1, 1, 0, 1, 1, 1, 0, 1};
+  int pg_d[] = {1, 1, 0, 1};
+
+  int exp_b[] = {0, -1, 0, -64, INT8_MAX, 0, 0, -1};
+
+  int exp_h[] = {0, 1, 0, -16384, 16383, -1, 0, -1};
+
+  int exp_s[] = {0, -1, -1, -1073741824, 1073741823, 0, 100000000, -1};
+
+  int64_t exp_d[] = {0, -1, INT64_MIN, 4611686018427387903};
+
+  ArithPredicatedFn fn = &MacroAssembler::Smulh;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, exp_d);
+  // clang-format on
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_logical) {
+  // clang-format off
+  unsigned zn_b[] = {0x00, 0x01, 0x20, 0x08, 0x80, 0xff, 0x55, 0xaa};
+  unsigned zm_b[] = {0x7f, 0xcd, 0x80, 0xff, 0x55, 0xaa, 0x00, 0x08};
+
+  unsigned zn_h[] = {0x0000, 0x0001, 0x2020, 0x0008,
+                     0x8000, 0xffff, 0x5555, 0xaaaa};
+  unsigned zm_h[] = {0x7fff, 0xabcd, 0x8000, 0xffff,
+                     0x5555, 0xaaaa, 0x0000, 0x0800};
+
+  unsigned zn_s[] = {0x00000001, 0x20200008, 0x8000ffff, 0x5555aaaa};
+  unsigned zm_s[] = {0x7fffabcd, 0x8000ffff, 0x5555aaaa, 0x00000800};
+
+  uint64_t zn_d[] = {0xfedcba9876543210, 0x0123456789abcdef,
+                     0x0001200880ff55aa, 0x0022446688aaccee};
+  uint64_t zm_d[] = {0xffffeeeeddddcccc, 0xccccddddeeeeffff,
+                     0x7fcd80ff55aa0008, 0x1133557799bbddff};
+
+  int pg_b[] = {0, 1, 1, 1, 0, 1, 1, 1};
+  int pg_h[] = {1, 0, 1, 1, 1, 0, 1, 1};
+  int pg_s[] = {1, 1, 1, 0};
+  int pg_d[] = {1, 1, 0, 1};
+
+  unsigned and_exp_b[] = {0x00, 0x01, 0x00, 0x08, 0x80, 0xaa, 0x00, 0x08};
+
+  unsigned and_exp_h[] = {0x0000, 0x0001, 0x0000, 0x0008,
+                          0x0000, 0xffff, 0x0000, 0x0800};
+
+  unsigned and_exp_s[] = {0x00000001, 0x00000008, 0x0000aaaa, 0x5555aaaa};
+
+  uint64_t and_exp_d[] = {0xfedcaa8854540000, 0x0000454588aacdef,
+                          0x0001200880ff55aa, 0x0022446688aaccee};
+
+  ArithPredicatedFn fn = &MacroAssembler::And;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, and_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, and_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, and_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, and_exp_d);
+
+  unsigned bic_exp_b[] = {0x00, 0x00, 0x20, 0x00, 0x80, 0x55, 0x55, 0xa2};
+
+  unsigned bic_exp_h[] = {0x0000, 0x0001, 0x2020, 0x0000,
+                          0x8000, 0xffff, 0x5555, 0xa2aa};
+
+  unsigned bic_exp_s[] = {0x00000000, 0x20200000, 0x80005555, 0x5555aaaa};
+
+  uint64_t bic_exp_d[] = {0x0000101022003210, 0x0123002201010000,
+                          0x0001200880ff55aa, 0x0000000000000000};
+
+  fn = &MacroAssembler::Bic;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, bic_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, bic_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, bic_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, bic_exp_d);
+
+  unsigned eor_exp_b[] = {0x00, 0xcc, 0xa0, 0xf7, 0x80, 0x55, 0x55, 0xa2};
+
+  unsigned eor_exp_h[] = {0x7fff, 0x0001, 0xa020, 0xfff7,
+                          0xd555, 0xffff, 0x5555, 0xa2aa};
+
+  unsigned eor_exp_s[] = {0x7fffabcc, 0xa020fff7, 0xd5555555, 0x5555aaaa};
+
+  uint64_t eor_exp_d[] = {0x01235476ab89fedc, 0xcdef98ba67453210,
+                          0x0001200880ff55aa, 0x1111111111111111};
+
+  fn = &MacroAssembler::Eor;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, eor_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, eor_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, eor_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, eor_exp_d);
+
+  unsigned orr_exp_b[] = {0x00, 0xcd, 0xa0, 0xff, 0x80, 0xff, 0x55, 0xaa};
+
+  unsigned orr_exp_h[] = {0x7fff, 0x0001, 0xa020, 0xffff,
+                          0xd555, 0xffff, 0x5555, 0xaaaa};
+
+  unsigned orr_exp_s[] = {0x7fffabcd, 0xa020ffff, 0xd555ffff, 0x5555aaaa};
+
+  uint64_t orr_exp_d[] = {0xfffffefeffddfedc, 0xcdefddffefefffff,
+                          0x0001200880ff55aa, 0x1133557799bbddff};
+
+  fn = &MacroAssembler::Orr;
+  IntBinArithHelper(config, fn, kBRegSize, pg_b, zn_b, zm_b, orr_exp_b);
+  IntBinArithHelper(config, fn, kHRegSize, pg_h, zn_h, zm_h, orr_exp_h);
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, orr_exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, orr_exp_d);
+  // clang-format on
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_sdiv) {
+  // clang-format off
+  int zn_s[] = {0, 1, -1, 2468,
+                INT32_MIN, INT32_MAX, INT32_MIN, INT32_MAX,
+                -11111111, 87654321, 0, 0};
+
+  int zm_s[] = {1, -1, 1, 1234,
+                -1, INT32_MIN, 1, -1,
+                22222222, 80000000, -1, 0};
+
+  int64_t zn_d[] = {0, 1, -1, 2468,
+                    INT64_MIN, INT64_MAX, INT64_MIN, INT64_MAX,
+                    -11111111, 87654321, 0, 0};
+
+  int64_t zm_d[] = {1, -1, 1, 1234,
+                    -1, INT64_MIN, 1, -1,
+                    22222222, 80000000, -1, 0};
+
+  int pg_s[] = {1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0};
+  int pg_d[] = {0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1};
+
+  int exp_s[] = {0, 1, -1, 2,
+                 INT32_MIN, 0, INT32_MIN, -INT32_MAX,
+                 0, 1, 0, 0};
+
+  int64_t exp_d[] = {0, -1, -1, 2,
+                     INT64_MIN, INT64_MAX, INT64_MIN, -INT64_MAX,
+                     0, 1, 0, 0};
+
+  ArithPredicatedFn fn = &MacroAssembler::Sdiv;
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, exp_d);
+  // clang-format on
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_udiv) {
+  // clang-format off
+  unsigned zn_s[] = {0x00000000, 0x00000001, 0xffffffff, 0x80000000,
+                     0xffffffff, 0x80000000, 0xffffffff, 0x0000f000};
+
+  unsigned zm_s[] = {0x00000001, 0xffffffff, 0x80000000, 0x00000002,
+                     0x00000000, 0x00000001, 0x00008000, 0xf0000000};
+
+  uint64_t zn_d[] = {0x0000000000000000, 0x0000000000000001,
+                     0xffffffffffffffff, 0x8000000000000000,
+                     0xffffffffffffffff, 0x8000000000000000,
+                     0xffffffffffffffff, 0xf0000000f0000000};
+
+  uint64_t zm_d[] = {0x0000000000000001, 0xffffffff00000000,
+                     0x8000000000000000, 0x0000000000000002,
+                     0x8888888888888888, 0x0000000000000001,
+                     0x0000000080000000, 0x00000000f0000000};
+
+  int pg_s[] = {1, 1, 0, 1, 1, 0, 1, 1};
+  int pg_d[] = {1, 0, 1, 1, 1, 1, 0, 1};
+
+  unsigned exp_s[] = {0x00000000, 0x00000000, 0xffffffff, 0x40000000,
+                      0x00000000, 0x80000000, 0x0001ffff, 0x00000000};
+
+  uint64_t exp_d[] = {0x0000000000000000, 0x0000000000000001,
+                      0x0000000000000001, 0x4000000000000000,
+                      0x0000000000000001, 0x8000000000000000,
+                      0xffffffffffffffff, 0x0000000100000001};
+
+  ArithPredicatedFn fn = &MacroAssembler::Udiv;
+  IntBinArithHelper(config, fn, kSRegSize, pg_s, zn_s, zm_s, exp_s);
+  IntBinArithHelper(config, fn, kDRegSize, pg_d, zn_d, zm_d, exp_d);
+  // clang-format on
+}
+
+typedef void (MacroAssembler::*ArithFn)(const ZRegister& zd,
+                                        const ZRegister& zn,
+                                        const ZRegister& zm);
+
+template <typename T>
+static void IntArithHelper(Test* config,
+                           ArithFn macro,
+                           unsigned lane_size_in_bits,
+                           const T& zn_inputs,
+                           const T& zm_inputs,
+                           const T& zd_expected) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  ZRegister zn = z31.WithLaneSize(lane_size_in_bits);
+  ZRegister zm = z27.WithLaneSize(lane_size_in_bits);
+  InsrHelper(&masm, zn, zn_inputs);
+  InsrHelper(&masm, zm, zm_inputs);
+
+  ZRegister zd = z0.WithLaneSize(lane_size_in_bits);
+  (masm.*macro)(zd, zn, zm);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    ASSERT_EQUAL_SVE(zd_expected, zd);
+  }
+}
+
+TEST_SVE(sve_arithmetic_unpredicated_add_sqadd_uqadd) {
+  // clang-format off
+  unsigned in_b[] = {0x81, 0x7f, 0x10, 0xaa, 0x55, 0xff, 0xf0};
+  unsigned in_h[] = {0x8181, 0x7f7f, 0x1010, 0xaaaa, 0x5555, 0xffff, 0xf0f0};
+  unsigned in_s[] = {0x80018181, 0x7fff7f7f, 0x10001010, 0xaaaaaaaa, 0xf000f0f0};
+  uint64_t in_d[] = {0x8000000180018181, 0x7fffffff7fff7f7f,
+                      0x1000000010001010, 0xf0000000f000f0f0};
+
+  ArithFn fn = &MacroAssembler::Add;
+
+  unsigned add_exp_b[] = {0x02, 0xfe, 0x20, 0x54, 0xaa, 0xfe, 0xe0};
+  unsigned add_exp_h[] = {0x0302, 0xfefe, 0x2020, 0x5554, 0xaaaa, 0xfffe, 0xe1e0};
+  unsigned add_exp_s[] = {0x00030302, 0xfffefefe, 0x20002020, 0x55555554, 0xe001e1e0};
+  uint64_t add_exp_d[] = {0x0000000300030302, 0xfffffffefffefefe,
+                          0x2000000020002020, 0xe0000001e001e1e0};
+
+  IntArithHelper(config, fn, kBRegSize, in_b, in_b, add_exp_b);
+  IntArithHelper(config, fn, kHRegSize, in_h, in_h, add_exp_h);
+  IntArithHelper(config, fn, kSRegSize, in_s, in_s, add_exp_s);
+  IntArithHelper(config, fn, kDRegSize, in_d, in_d, add_exp_d);
+
+  fn = &MacroAssembler::Sqadd;
+
+  unsigned sqadd_exp_b[] = {0x80, 0x7f, 0x20, 0x80, 0x7f, 0xfe, 0xe0};
+  unsigned sqadd_exp_h[] = {0x8000, 0x7fff, 0x2020, 0x8000, 0x7fff, 0xfffe, 0xe1e0};
+  unsigned sqadd_exp_s[] = {0x80000000, 0x7fffffff, 0x20002020, 0x80000000, 0xe001e1e0};
+  uint64_t sqadd_exp_d[] = {0x8000000000000000, 0x7fffffffffffffff,
+                            0x2000000020002020, 0xe0000001e001e1e0};
+
+  IntArithHelper(config, fn, kBRegSize, in_b, in_b, sqadd_exp_b);
+  IntArithHelper(config, fn, kHRegSize, in_h, in_h, sqadd_exp_h);
+  IntArithHelper(config, fn, kSRegSize, in_s, in_s, sqadd_exp_s);
+  IntArithHelper(config, fn, kDRegSize, in_d, in_d, sqadd_exp_d);
+
+  fn = &MacroAssembler::Uqadd;
+
+  unsigned uqadd_exp_b[] = {0xff, 0xfe, 0x20, 0xff, 0xaa, 0xff, 0xff};
+  unsigned uqadd_exp_h[] = {0xffff, 0xfefe, 0x2020, 0xffff, 0xaaaa, 0xffff, 0xffff};
+  unsigned uqadd_exp_s[] = {0xffffffff, 0xfffefefe, 0x20002020, 0xffffffff, 0xffffffff};
+  uint64_t uqadd_exp_d[] = {0xffffffffffffffff, 0xfffffffefffefefe,
+                            0x2000000020002020, 0xffffffffffffffff};
+
+  IntArithHelper(config, fn, kBRegSize, in_b, in_b, uqadd_exp_b);
+  IntArithHelper(config, fn, kHRegSize, in_h, in_h, uqadd_exp_h);
+  IntArithHelper(config, fn, kSRegSize, in_s, in_s, uqadd_exp_s);
+  IntArithHelper(config, fn, kDRegSize, in_d, in_d, uqadd_exp_d);
+  // clang-format on
+}
+
+TEST_SVE(sve_arithmetic_unpredicated_sub_sqsub_uqsub) {
+  // clang-format off
+
+  unsigned ins1_b[] = {0x81, 0x7f, 0x7e, 0xaa};
+  unsigned ins2_b[] = {0x10, 0xf0, 0xf0, 0x55};
+
+  unsigned ins1_h[] = {0x8181, 0x7f7f, 0x7e7e, 0xaaaa};
+  unsigned ins2_h[] = {0x1010, 0xf0f0, 0xf0f0, 0x5555};
+
+  unsigned ins1_s[] = {0x80018181, 0x7fff7f7f, 0x7eee7e7e, 0xaaaaaaaa};
+  unsigned ins2_s[] = {0x10001010, 0xf000f0f0, 0xf000f0f0, 0x55555555};
+
+  uint64_t ins1_d[] = {0x8000000180018181, 0x7fffffff7fff7f7f,
+                       0x7eeeeeee7eee7e7e, 0xaaaaaaaaaaaaaaaa};
+  uint64_t ins2_d[] = {0x1000000010001010, 0xf0000000f000f0f0,
+                       0xf0000000f000f0f0, 0x5555555555555555};
+
+  ArithFn fn = &MacroAssembler::Sub;
+
+  unsigned ins1_sub_ins2_exp_b[] = {0x71, 0x8f, 0x8e, 0x55};
+  unsigned ins1_sub_ins2_exp_h[] = {0x7171, 0x8e8f, 0x8d8e, 0x5555};
+  unsigned ins1_sub_ins2_exp_s[] = {0x70017171, 0x8ffe8e8f, 0x8eed8d8e, 0x55555555};
+  uint64_t ins1_sub_ins2_exp_d[] = {0x7000000170017171, 0x8ffffffe8ffe8e8f,
+                                    0x8eeeeeed8eed8d8e, 0x5555555555555555};
+
+  IntArithHelper(config, fn, kBRegSize, ins1_b, ins2_b, ins1_sub_ins2_exp_b);
+  IntArithHelper(config, fn, kHRegSize, ins1_h, ins2_h, ins1_sub_ins2_exp_h);
+  IntArithHelper(config, fn, kSRegSize, ins1_s, ins2_s, ins1_sub_ins2_exp_s);
+  IntArithHelper(config, fn, kDRegSize, ins1_d, ins2_d, ins1_sub_ins2_exp_d);
+
+  unsigned ins2_sub_ins1_exp_b[] = {0x8f, 0x71, 0x72, 0xab};
+  unsigned ins2_sub_ins1_exp_h[] = {0x8e8f, 0x7171, 0x7272, 0xaaab};
+  unsigned ins2_sub_ins1_exp_s[] = {0x8ffe8e8f, 0x70017171, 0x71127272, 0xaaaaaaab};
+  uint64_t ins2_sub_ins1_exp_d[] = {0x8ffffffe8ffe8e8f, 0x7000000170017171,
+                                    0x7111111271127272, 0xaaaaaaaaaaaaaaab};
+
+  IntArithHelper(config, fn, kBRegSize, ins2_b, ins1_b, ins2_sub_ins1_exp_b);
+  IntArithHelper(config, fn, kHRegSize, ins2_h, ins1_h, ins2_sub_ins1_exp_h);
+  IntArithHelper(config, fn, kSRegSize, ins2_s, ins1_s, ins2_sub_ins1_exp_s);
+  IntArithHelper(config, fn, kDRegSize, ins2_d, ins1_d, ins2_sub_ins1_exp_d);
+
+  fn = &MacroAssembler::Sqsub;
+
+  unsigned ins1_sqsub_ins2_exp_b[] = {0x80, 0x7f, 0x7f, 0x80};
+  unsigned ins1_sqsub_ins2_exp_h[] = {0x8000, 0x7fff, 0x7fff, 0x8000};
+  unsigned ins1_sqsub_ins2_exp_s[] = {0x80000000, 0x7fffffff, 0x7fffffff, 0x80000000};
+  uint64_t ins1_sqsub_ins2_exp_d[] = {0x8000000000000000, 0x7fffffffffffffff,
+                                      0x7fffffffffffffff, 0x8000000000000000};
+
+  IntArithHelper(config, fn, kBRegSize, ins1_b, ins2_b, ins1_sqsub_ins2_exp_b);
+  IntArithHelper(config, fn, kHRegSize, ins1_h, ins2_h, ins1_sqsub_ins2_exp_h);
+  IntArithHelper(config, fn, kSRegSize, ins1_s, ins2_s, ins1_sqsub_ins2_exp_s);
+  IntArithHelper(config, fn, kDRegSize, ins1_d, ins2_d, ins1_sqsub_ins2_exp_d);
+
+  unsigned ins2_sqsub_ins1_exp_b[] = {0x7f, 0x80, 0x80, 0x7f};
+  unsigned ins2_sqsub_ins1_exp_h[] = {0x7fff, 0x8000, 0x8000, 0x7fff};
+  unsigned ins2_sqsub_ins1_exp_s[] = {0x7fffffff, 0x80000000, 0x80000000, 0x7fffffff};
+  uint64_t ins2_sqsub_ins1_exp_d[] = {0x7fffffffffffffff, 0x8000000000000000,
+                                      0x8000000000000000, 0x7fffffffffffffff};
+
+  IntArithHelper(config, fn, kBRegSize, ins2_b, ins1_b, ins2_sqsub_ins1_exp_b);
+  IntArithHelper(config, fn, kHRegSize, ins2_h, ins1_h, ins2_sqsub_ins1_exp_h);
+  IntArithHelper(config, fn, kSRegSize, ins2_s, ins1_s, ins2_sqsub_ins1_exp_s);
+  IntArithHelper(config, fn, kDRegSize, ins2_d, ins1_d, ins2_sqsub_ins1_exp_d);
+
+  fn = &MacroAssembler::Uqsub;
+
+  unsigned ins1_uqsub_ins2_exp_b[] = {0x71, 0x00, 0x00, 0x55};
+  unsigned ins1_uqsub_ins2_exp_h[] = {0x7171, 0x0000, 0x0000, 0x5555};
+  unsigned ins1_uqsub_ins2_exp_s[] = {0x70017171, 0x00000000, 0x00000000, 0x55555555};
+  uint64_t ins1_uqsub_ins2_exp_d[] = {0x7000000170017171, 0x0000000000000000,
+                                      0x0000000000000000, 0x5555555555555555};
+
+  IntArithHelper(config, fn, kBRegSize, ins1_b, ins2_b, ins1_uqsub_ins2_exp_b);
+  IntArithHelper(config, fn, kHRegSize, ins1_h, ins2_h, ins1_uqsub_ins2_exp_h);
+  IntArithHelper(config, fn, kSRegSize, ins1_s, ins2_s, ins1_uqsub_ins2_exp_s);
+  IntArithHelper(config, fn, kDRegSize, ins1_d, ins2_d, ins1_uqsub_ins2_exp_d);
+
+  unsigned ins2_uqsub_ins1_exp_b[] = {0x00, 0x71, 0x72, 0x00};
+  unsigned ins2_uqsub_ins1_exp_h[] = {0x0000, 0x7171, 0x7272, 0x0000};
+  unsigned ins2_uqsub_ins1_exp_s[] = {0x00000000, 0x70017171, 0x71127272, 0x00000000};
+  uint64_t ins2_uqsub_ins1_exp_d[] = {0x0000000000000000, 0x7000000170017171,
+                                      0x7111111271127272, 0x0000000000000000};
+
+  IntArithHelper(config, fn, kBRegSize, ins2_b, ins1_b, ins2_uqsub_ins1_exp_b);
+  IntArithHelper(config, fn, kHRegSize, ins2_h, ins1_h, ins2_uqsub_ins1_exp_h);
+  IntArithHelper(config, fn, kSRegSize, ins2_s, ins1_s, ins2_uqsub_ins1_exp_s);
+  IntArithHelper(config, fn, kDRegSize, ins2_d, ins1_d, ins2_uqsub_ins1_exp_d);
+  // clang-format on
+}
+
+TEST_SVE(sve_rdvl) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Encodable multipliers.
+  __ Rdvl(x0, 0);
+  __ Rdvl(x1, 1);
+  __ Rdvl(x2, 2);
+  __ Rdvl(x3, 31);
+  __ Rdvl(x4, -1);
+  __ Rdvl(x5, -2);
+  __ Rdvl(x6, -32);
+
+  // For unencodable multipliers, the MacroAssembler uses a sequence of
+  // instructions.
+  __ Rdvl(x10, 32);
+  __ Rdvl(x11, -33);
+  __ Rdvl(x12, 42);
+  __ Rdvl(x13, -42);
+
+  // The maximum value of VL is 256 (bytes), so the multiplier is limited to the
+  // range [INT64_MIN/256, INT64_MAX/256], to ensure that no signed overflow
+  // occurs in the macro.
+  __ Rdvl(x14, 0x007fffffffffffff);
+  __ Rdvl(x15, -0x0080000000000000);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint64_t vl = config->sve_vl_in_bytes();
+
+    ASSERT_EQUAL_64(vl * 0, x0);
+    ASSERT_EQUAL_64(vl * 1, x1);
+    ASSERT_EQUAL_64(vl * 2, x2);
+    ASSERT_EQUAL_64(vl * 31, x3);
+    ASSERT_EQUAL_64(vl * -1, x4);
+    ASSERT_EQUAL_64(vl * -2, x5);
+    ASSERT_EQUAL_64(vl * -32, x6);
+
+    ASSERT_EQUAL_64(vl * 32, x10);
+    ASSERT_EQUAL_64(vl * -33, x11);
+    ASSERT_EQUAL_64(vl * 42, x12);
+    ASSERT_EQUAL_64(vl * -42, x13);
+
+    ASSERT_EQUAL_64(vl * 0x007fffffffffffff, x14);
+    ASSERT_EQUAL_64(vl * 0xff80000000000000, x15);
+  }
+}
+
+TEST_SVE(sve_rdpl) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // There is no `rdpl` instruction, so the MacroAssembler maps `Rdpl` onto
+  // Addpl(xd, xzr, ...).
+
+  // Encodable multipliers (as `addvl`).
+  __ Rdpl(x0, 0);
+  __ Rdpl(x1, 8);
+  __ Rdpl(x2, 248);
+  __ Rdpl(x3, -8);
+  __ Rdpl(x4, -256);
+
+  // Encodable multipliers (as `movz` + `addpl`).
+  __ Rdpl(x7, 31);
+  __ Rdpl(x8, -31);
+
+  // For unencodable multipliers, the MacroAssembler uses a sequence of
+  // instructions.
+  __ Rdpl(x10, 42);
+  __ Rdpl(x11, -42);
+
+  // The maximum value of VL is 256 (bytes), so the multiplier is limited to the
+  // range [INT64_MIN/256, INT64_MAX/256], to ensure that no signed overflow
+  // occurs in the macro.
+  __ Rdpl(x12, 0x007fffffffffffff);
+  __ Rdpl(x13, -0x0080000000000000);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint64_t vl = config->sve_vl_in_bytes();
+    VIXL_ASSERT((vl % kZRegBitsPerPRegBit) == 0);
+    uint64_t pl = vl / kZRegBitsPerPRegBit;
+
+    ASSERT_EQUAL_64(pl * 0, x0);
+    ASSERT_EQUAL_64(pl * 8, x1);
+    ASSERT_EQUAL_64(pl * 248, x2);
+    ASSERT_EQUAL_64(pl * -8, x3);
+    ASSERT_EQUAL_64(pl * -256, x4);
+
+    ASSERT_EQUAL_64(pl * 31, x7);
+    ASSERT_EQUAL_64(pl * -31, x8);
+
+    ASSERT_EQUAL_64(pl * 42, x10);
+    ASSERT_EQUAL_64(pl * -42, x11);
+
+    ASSERT_EQUAL_64(pl * 0x007fffffffffffff, x12);
+    ASSERT_EQUAL_64(pl * 0xff80000000000000, x13);
+  }
+}
+
+TEST_SVE(sve_addvl) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t base = 0x1234567800000000;
+  __ Mov(x30, base);
+
+  // Encodable multipliers.
+  __ Addvl(x0, x30, 0);
+  __ Addvl(x1, x30, 1);
+  __ Addvl(x2, x30, 31);
+  __ Addvl(x3, x30, -1);
+  __ Addvl(x4, x30, -32);
+
+  // For unencodable multipliers, the MacroAssembler uses `Rdvl` and `Add`.
+  __ Addvl(x5, x30, 32);
+  __ Addvl(x6, x30, -33);
+
+  // Test the limits of the multiplier supported by the `Rdvl` macro.
+  __ Addvl(x7, x30, 0x007fffffffffffff);
+  __ Addvl(x8, x30, -0x0080000000000000);
+
+  // Check that xzr behaves correctly.
+  __ Addvl(x9, xzr, 8);
+  __ Addvl(x10, xzr, 42);
+
+  // Check that sp behaves correctly with encodable and unencodable multipliers.
+  __ Addvl(sp, sp, -5);
+  __ Addvl(sp, sp, -37);
+  __ Addvl(x11, sp, -2);
+  __ Addvl(sp, x11, 2);
+  __ Addvl(x12, sp, -42);
+
+  // Restore the value of sp.
+  __ Addvl(sp, x11, 39);
+  __ Addvl(sp, sp, 5);
+
+  // Adjust x11 and x12 to make the test sp-agnostic.
+  __ Sub(x11, sp, x11);
+  __ Sub(x12, sp, x12);
+
+  // Check cases where xd.Is(xn). This stresses scratch register allocation.
+  __ Mov(x20, x30);
+  __ Mov(x21, x30);
+  __ Mov(x22, x30);
+  __ Addvl(x20, x20, 4);
+  __ Addvl(x21, x21, 42);
+  __ Addvl(x22, x22, -0x0080000000000000);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint64_t vl = config->sve_vl_in_bytes();
+
+    ASSERT_EQUAL_64(base + (vl * 0), x0);
+    ASSERT_EQUAL_64(base + (vl * 1), x1);
+    ASSERT_EQUAL_64(base + (vl * 31), x2);
+    ASSERT_EQUAL_64(base + (vl * -1), x3);
+    ASSERT_EQUAL_64(base + (vl * -32), x4);
+
+    ASSERT_EQUAL_64(base + (vl * 32), x5);
+    ASSERT_EQUAL_64(base + (vl * -33), x6);
+
+    ASSERT_EQUAL_64(base + (vl * 0x007fffffffffffff), x7);
+    ASSERT_EQUAL_64(base + (vl * 0xff80000000000000), x8);
+
+    ASSERT_EQUAL_64(vl * 8, x9);
+    ASSERT_EQUAL_64(vl * 42, x10);
+
+    ASSERT_EQUAL_64(vl * 44, x11);
+    ASSERT_EQUAL_64(vl * 84, x12);
+
+    ASSERT_EQUAL_64(base + (vl * 4), x20);
+    ASSERT_EQUAL_64(base + (vl * 42), x21);
+    ASSERT_EQUAL_64(base + (vl * 0xff80000000000000), x22);
+
+    ASSERT_EQUAL_64(base, x30);
+  }
+}
+
+TEST_SVE(sve_addpl) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t base = 0x1234567800000000;
+  __ Mov(x30, base);
+
+  // Encodable multipliers.
+  __ Addpl(x0, x30, 0);
+  __ Addpl(x1, x30, 1);
+  __ Addpl(x2, x30, 31);
+  __ Addpl(x3, x30, -1);
+  __ Addpl(x4, x30, -32);
+
+  // For unencodable multipliers, the MacroAssembler uses `Addvl` if it can, or
+  // it falls back to `Rdvl` and `Add`.
+  __ Addpl(x5, x30, 32);
+  __ Addpl(x6, x30, -33);
+
+  // Test the limits of the multiplier supported by the `Rdvl` macro.
+  __ Addpl(x7, x30, 0x007fffffffffffff);
+  __ Addpl(x8, x30, -0x0080000000000000);
+
+  // Check that xzr behaves correctly.
+  __ Addpl(x9, xzr, 8);
+  __ Addpl(x10, xzr, 42);
+
+  // Check that sp behaves correctly with encodable and unencodable multipliers.
+  __ Addpl(sp, sp, -5);
+  __ Addpl(sp, sp, -37);
+  __ Addpl(x11, sp, -2);
+  __ Addpl(sp, x11, 2);
+  __ Addpl(x12, sp, -42);
+
+  // Restore the value of sp.
+  __ Addpl(sp, x11, 39);
+  __ Addpl(sp, sp, 5);
+
+  // Adjust x11 and x12 to make the test sp-agnostic.
+  __ Sub(x11, sp, x11);
+  __ Sub(x12, sp, x12);
+
+  // Check cases where xd.Is(xn). This stresses scratch register allocation.
+  __ Mov(x20, x30);
+  __ Mov(x21, x30);
+  __ Mov(x22, x30);
+  __ Addpl(x20, x20, 4);
+  __ Addpl(x21, x21, 42);
+  __ Addpl(x22, x22, -0x0080000000000000);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint64_t vl = config->sve_vl_in_bytes();
+    VIXL_ASSERT((vl % kZRegBitsPerPRegBit) == 0);
+    uint64_t pl = vl / kZRegBitsPerPRegBit;
+
+    ASSERT_EQUAL_64(base + (pl * 0), x0);
+    ASSERT_EQUAL_64(base + (pl * 1), x1);
+    ASSERT_EQUAL_64(base + (pl * 31), x2);
+    ASSERT_EQUAL_64(base + (pl * -1), x3);
+    ASSERT_EQUAL_64(base + (pl * -32), x4);
+
+    ASSERT_EQUAL_64(base + (pl * 32), x5);
+    ASSERT_EQUAL_64(base + (pl * -33), x6);
+
+    ASSERT_EQUAL_64(base + (pl * 0x007fffffffffffff), x7);
+    ASSERT_EQUAL_64(base + (pl * 0xff80000000000000), x8);
+
+    ASSERT_EQUAL_64(pl * 8, x9);
+    ASSERT_EQUAL_64(pl * 42, x10);
+
+    ASSERT_EQUAL_64(pl * 44, x11);
+    ASSERT_EQUAL_64(pl * 84, x12);
+
+    ASSERT_EQUAL_64(base + (pl * 4), x20);
+    ASSERT_EQUAL_64(base + (pl * 42), x21);
+    ASSERT_EQUAL_64(base + (pl * 0xff80000000000000), x22);
+
+    ASSERT_EQUAL_64(base, x30);
+  }
+}
+
+TEST_SVE(sve_calculate_sve_address) {
+  // Shadow the `MacroAssembler` type so that the test macros work without
+  // modification.
+  typedef CalculateSVEAddressMacroAssembler MacroAssembler;
+
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();  // NOLINT(clang-diagnostic-local-type-template-args)
+
+  uint64_t base = 0x1234567800000000;
+  __ Mov(x28, base);
+  __ Mov(x29, 48);
+  __ Mov(x30, -48);
+
+  // Simple scalar (or equivalent) cases.
+
+  __ CalculateSVEAddress(x0, SVEMemOperand(x28));
+  __ CalculateSVEAddress(x1, SVEMemOperand(x28, 0));
+  __ CalculateSVEAddress(x2, SVEMemOperand(x28, 0, SVE_MUL_VL));
+  __ CalculateSVEAddress(x3, SVEMemOperand(x28, 0, SVE_MUL_VL), 3);
+  __ CalculateSVEAddress(x4, SVEMemOperand(x28, xzr));
+  __ CalculateSVEAddress(x5, SVEMemOperand(x28, xzr, LSL, 42));
+
+  // scalar-plus-immediate
+
+  // Unscaled immediates, handled with `Add`.
+  __ CalculateSVEAddress(x6, SVEMemOperand(x28, 42));
+  __ CalculateSVEAddress(x7, SVEMemOperand(x28, -42));
+  // Scaled immediates, handled with `Addvl` or `Addpl`.
+  __ CalculateSVEAddress(x8, SVEMemOperand(x28, 31, SVE_MUL_VL), 0);
+  __ CalculateSVEAddress(x9, SVEMemOperand(x28, -32, SVE_MUL_VL), 0);
+  // Out of `addvl` or `addpl` range.
+  __ CalculateSVEAddress(x10, SVEMemOperand(x28, 42, SVE_MUL_VL), 0);
+  __ CalculateSVEAddress(x11, SVEMemOperand(x28, -42, SVE_MUL_VL), 0);
+  // As above, for VL-based accesses smaller than a Z register.
+  VIXL_STATIC_ASSERT(kZRegBitsPerPRegBitLog2 == 3);
+  __ CalculateSVEAddress(x12, SVEMemOperand(x28, -32 * 8, SVE_MUL_VL), 3);
+  __ CalculateSVEAddress(x13, SVEMemOperand(x28, -42 * 8, SVE_MUL_VL), 3);
+  __ CalculateSVEAddress(x14, SVEMemOperand(x28, -32 * 4, SVE_MUL_VL), 2);
+  __ CalculateSVEAddress(x15, SVEMemOperand(x28, -42 * 4, SVE_MUL_VL), 2);
+  __ CalculateSVEAddress(x18, SVEMemOperand(x28, -32 * 2, SVE_MUL_VL), 1);
+  __ CalculateSVEAddress(x19, SVEMemOperand(x28, -42 * 2, SVE_MUL_VL), 1);
+
+  // scalar-plus-scalar
+
+  __ CalculateSVEAddress(x20, SVEMemOperand(x28, x29));
+  __ CalculateSVEAddress(x21, SVEMemOperand(x28, x30));
+  __ CalculateSVEAddress(x22, SVEMemOperand(x28, x29, LSL, 8));
+  __ CalculateSVEAddress(x23, SVEMemOperand(x28, x30, LSL, 8));
+
+  // In-place updates, to stress scratch register allocation.
+
+  __ Mov(x24, 0xabcd000000000000);
+  __ Mov(x25, 0xabcd101100000000);
+  __ Mov(x26, 0xabcd202200000000);
+  __ Mov(x27, 0xabcd303300000000);
+  __ Mov(x28, 0xabcd404400000000);
+  __ Mov(x29, 0xabcd505500000000);
+
+  __ CalculateSVEAddress(x24, SVEMemOperand(x24));
+  __ CalculateSVEAddress(x25, SVEMemOperand(x25, 0x42));
+  __ CalculateSVEAddress(x26, SVEMemOperand(x26, 3, SVE_MUL_VL), 0);
+  __ CalculateSVEAddress(x27, SVEMemOperand(x27, 0x42, SVE_MUL_VL), 3);
+  __ CalculateSVEAddress(x28, SVEMemOperand(x28, x30));
+  __ CalculateSVEAddress(x29, SVEMemOperand(x29, x30, LSL, 4));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint64_t vl = config->sve_vl_in_bytes();
+    VIXL_ASSERT((vl % kZRegBitsPerPRegBit) == 0);
+    uint64_t pl = vl / kZRegBitsPerPRegBit;
+
+    // Simple scalar (or equivalent) cases.
+    ASSERT_EQUAL_64(base, x0);
+    ASSERT_EQUAL_64(base, x1);
+    ASSERT_EQUAL_64(base, x2);
+    ASSERT_EQUAL_64(base, x3);
+    ASSERT_EQUAL_64(base, x4);
+    ASSERT_EQUAL_64(base, x5);
+
+    // scalar-plus-immediate
+    ASSERT_EQUAL_64(base + 42, x6);
+    ASSERT_EQUAL_64(base - 42, x7);
+    ASSERT_EQUAL_64(base + (31 * vl), x8);
+    ASSERT_EQUAL_64(base - (32 * vl), x9);
+    ASSERT_EQUAL_64(base + (42 * vl), x10);
+    ASSERT_EQUAL_64(base - (42 * vl), x11);
+    ASSERT_EQUAL_64(base - (32 * vl), x12);
+    ASSERT_EQUAL_64(base - (42 * vl), x13);
+    ASSERT_EQUAL_64(base - (32 * vl), x14);
+    ASSERT_EQUAL_64(base - (42 * vl), x15);
+    ASSERT_EQUAL_64(base - (32 * vl), x18);
+    ASSERT_EQUAL_64(base - (42 * vl), x19);
+
+    // scalar-plus-scalar
+    ASSERT_EQUAL_64(base + 48, x20);
+    ASSERT_EQUAL_64(base - 48, x21);
+    ASSERT_EQUAL_64(base + (48 << 8), x22);
+    ASSERT_EQUAL_64(base - (48 << 8), x23);
+
+    // In-place updates.
+    ASSERT_EQUAL_64(0xabcd000000000000, x24);
+    ASSERT_EQUAL_64(0xabcd101100000000 + 0x42, x25);
+    ASSERT_EQUAL_64(0xabcd202200000000 + (3 * vl), x26);
+    ASSERT_EQUAL_64(0xabcd303300000000 + (0x42 * pl), x27);
+    ASSERT_EQUAL_64(0xabcd404400000000 - 48, x28);
+    ASSERT_EQUAL_64(0xabcd505500000000 - (48 << 4), x29);
+  }
+}
+
+TEST_SVE(sve_permute_vector_unpredicated) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE, CPUFeatures::kNEON);
+  START();
+
+  // Initialise registers with known values first.
+  __ Dup(z1.VnB(), 0x11);
+  __ Dup(z2.VnB(), 0x22);
+  __ Dup(z3.VnB(), 0x33);
+  __ Dup(z4.VnB(), 0x44);
+
+  __ Mov(x0, 0x0123456789abcdef);
+  __ Fmov(d0, RawbitsToDouble(0x7ffaaaaa22223456));
+  __ Insr(z1.VnS(), w0);
+  __ Insr(z2.VnD(), x0);
+  __ Insr(z3.VnH(), h0);
+  __ Insr(z4.VnD(), d0);
+
+  uint64_t inputs[] = {0xfedcba9876543210,
+                       0x0123456789abcdef,
+                       0x8f8e8d8c8b8a8988,
+                       0x8786858483828180};
+
+  // Initialize a distinguishable value throughout the register first.
+  __ Dup(z9.VnB(), 0xff);
+  InsrHelper(&masm, z9.VnD(), inputs);
+
+  __ Rev(z5.VnB(), z9.VnB());
+  __ Rev(z6.VnH(), z9.VnH());
+  __ Rev(z7.VnS(), z9.VnS());
+  __ Rev(z8.VnD(), z9.VnD());
+
+  int index[7] = {22, 7, 7, 3, 1, 1, 63};
+  // Broadcasting an data within the input array.
+  __ Dup(z10.VnB(), z9.VnB(), index[0]);
+  __ Dup(z11.VnH(), z9.VnH(), index[1]);
+  __ Dup(z12.VnS(), z9.VnS(), index[2]);
+  __ Dup(z13.VnD(), z9.VnD(), index[3]);
+  __ Dup(z14.VnQ(), z9.VnQ(), index[4]);
+  // Test dst == src
+  __ Mov(z15, z9);
+  __ Dup(z15.VnS(), z15.VnS(), index[5]);
+  // Selecting an data beyond the input array.
+  __ Dup(z16.VnB(), z9.VnB(), index[6]);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Insr
+    uint64_t z1_expected[] = {0x1111111111111111, 0x1111111189abcdef};
+    uint64_t z2_expected[] = {0x2222222222222222, 0x0123456789abcdef};
+    uint64_t z3_expected[] = {0x3333333333333333, 0x3333333333333456};
+    uint64_t z4_expected[] = {0x4444444444444444, 0x7ffaaaaa22223456};
+    ASSERT_EQUAL_SVE(z1_expected, z1.VnD());
+    ASSERT_EQUAL_SVE(z2_expected, z2.VnD());
+    ASSERT_EQUAL_SVE(z3_expected, z3.VnD());
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+
+    // Rev
+    int lane_count = core.GetSVELaneCount(kBRegSize);
+    for (int i = 0; i < lane_count; i++) {
+      uint64_t expected =
+          core.zreg_lane(z5.GetCode(), kBRegSize, lane_count - i - 1);
+      uint64_t input = core.zreg_lane(z9.GetCode(), kBRegSize, i);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    lane_count = core.GetSVELaneCount(kHRegSize);
+    for (int i = 0; i < lane_count; i++) {
+      uint64_t expected =
+          core.zreg_lane(z6.GetCode(), kHRegSize, lane_count - i - 1);
+      uint64_t input = core.zreg_lane(z9.GetCode(), kHRegSize, i);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    lane_count = core.GetSVELaneCount(kSRegSize);
+    for (int i = 0; i < lane_count; i++) {
+      uint64_t expected =
+          core.zreg_lane(z7.GetCode(), kSRegSize, lane_count - i - 1);
+      uint64_t input = core.zreg_lane(z9.GetCode(), kSRegSize, i);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    lane_count = core.GetSVELaneCount(kDRegSize);
+    for (int i = 0; i < lane_count; i++) {
+      uint64_t expected =
+          core.zreg_lane(z8.GetCode(), kDRegSize, lane_count - i - 1);
+      uint64_t input = core.zreg_lane(z9.GetCode(), kDRegSize, i);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    // Dup
+    unsigned vl = config->sve_vl_in_bits();
+    lane_count = core.GetSVELaneCount(kBRegSize);
+    uint64_t expected_z10 = (vl > (index[0] * kBRegSize)) ? 0x23 : 0;
+    for (int i = 0; i < lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(expected_z10, z10.VnB(), i);
+    }
+
+    lane_count = core.GetSVELaneCount(kHRegSize);
+    uint64_t expected_z11 = (vl > (index[1] * kHRegSize)) ? 0x8f8e : 0;
+    for (int i = 0; i < lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(expected_z11, z11.VnH(), i);
+    }
+
+    lane_count = core.GetSVELaneCount(kSRegSize);
+    uint64_t expected_z12 = (vl > (index[2] * kSRegSize)) ? 0xfedcba98 : 0;
+    for (int i = 0; i < lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(expected_z12, z12.VnS(), i);
+    }
+
+    lane_count = core.GetSVELaneCount(kDRegSize);
+    uint64_t expected_z13 =
+        (vl > (index[3] * kDRegSize)) ? 0xfedcba9876543210 : 0;
+    for (int i = 0; i < lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(expected_z13, z13.VnD(), i);
+    }
+
+    lane_count = core.GetSVELaneCount(kDRegSize);
+    uint64_t expected_z14_lo = 0;
+    uint64_t expected_z14_hi = 0;
+    if (vl > (index[4] * kQRegSize)) {
+      expected_z14_lo = 0x0123456789abcdef;
+      expected_z14_hi = 0xfedcba9876543210;
+    }
+    for (int i = 0; i < lane_count; i += 2) {
+      ASSERT_EQUAL_SVE_LANE(expected_z14_lo, z14.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(expected_z14_hi, z14.VnD(), i + 1);
+    }
+
+    lane_count = core.GetSVELaneCount(kSRegSize);
+    uint64_t expected_z15 = (vl > (index[5] * kSRegSize)) ? 0x87868584 : 0;
+    for (int i = 0; i < lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(expected_z15, z15.VnS(), i);
+    }
+
+    lane_count = core.GetSVELaneCount(kBRegSize);
+    uint64_t expected_z16 = (vl > (index[6] * kBRegSize)) ? 0xff : 0;
+    for (int i = 0; i < lane_count; i++) {
+      ASSERT_EQUAL_SVE_LANE(expected_z16, z16.VnB(), i);
+    }
+  }
+}
+
+TEST_SVE(sve_permute_vector_unpredicated_unpack_vector_elements) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t z9_inputs[] = {0xfedcba9876543210,
+                          0x0123456789abcdef,
+                          0x8f8e8d8c8b8a8988,
+                          0x8786858483828180};
+  InsrHelper(&masm, z9.VnD(), z9_inputs);
+
+  __ Sunpkhi(z10.VnH(), z9.VnB());
+  __ Sunpkhi(z11.VnS(), z9.VnH());
+  __ Sunpkhi(z12.VnD(), z9.VnS());
+
+  __ Sunpklo(z13.VnH(), z9.VnB());
+  __ Sunpklo(z14.VnS(), z9.VnH());
+  __ Sunpklo(z15.VnD(), z9.VnS());
+
+  __ Uunpkhi(z16.VnH(), z9.VnB());
+  __ Uunpkhi(z17.VnS(), z9.VnH());
+  __ Uunpkhi(z18.VnD(), z9.VnS());
+
+  __ Uunpklo(z19.VnH(), z9.VnB());
+  __ Uunpklo(z20.VnS(), z9.VnH());
+  __ Uunpklo(z21.VnD(), z9.VnS());
+
+  // Test unpacking with same source and destination.
+  __ Mov(z22, z9);
+  __ Sunpklo(z22.VnH(), z22.VnB());
+  __ Mov(z23, z9);
+  __ Uunpklo(z23.VnH(), z23.VnB());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Suunpkhi
+    int lane_count = core.GetSVELaneCount(kHRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint16_t expected = core.zreg_lane<uint16_t>(z10.GetCode(), i);
+      uint8_t b_lane = core.zreg_lane<uint8_t>(z9.GetCode(), i + lane_count);
+      uint16_t input = SignExtend<int16_t>(b_lane, kBRegSize);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    lane_count = core.GetSVELaneCount(kSRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint32_t expected = core.zreg_lane<uint32_t>(z11.GetCode(), i);
+      uint16_t h_lane = core.zreg_lane<uint16_t>(z9.GetCode(), i + lane_count);
+      uint32_t input = SignExtend<int32_t>(h_lane, kHRegSize);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    lane_count = core.GetSVELaneCount(kDRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint64_t expected = core.zreg_lane<uint64_t>(z12.GetCode(), i);
+      uint32_t s_lane = core.zreg_lane<uint32_t>(z9.GetCode(), i + lane_count);
+      uint64_t input = SignExtend<int64_t>(s_lane, kSRegSize);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    // Suunpklo
+    lane_count = core.GetSVELaneCount(kHRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint16_t expected = core.zreg_lane<uint16_t>(z13.GetCode(), i);
+      uint8_t b_lane = core.zreg_lane<uint8_t>(z9.GetCode(), i);
+      uint16_t input = SignExtend<int16_t>(b_lane, kBRegSize);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    lane_count = core.GetSVELaneCount(kSRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint32_t expected = core.zreg_lane<uint32_t>(z14.GetCode(), i);
+      uint16_t h_lane = core.zreg_lane<uint16_t>(z9.GetCode(), i);
+      uint32_t input = SignExtend<int32_t>(h_lane, kHRegSize);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    lane_count = core.GetSVELaneCount(kDRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint64_t expected = core.zreg_lane<uint64_t>(z15.GetCode(), i);
+      uint32_t s_lane = core.zreg_lane<uint32_t>(z9.GetCode(), i);
+      uint64_t input = SignExtend<int64_t>(s_lane, kSRegSize);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    // Uuunpkhi
+    lane_count = core.GetSVELaneCount(kHRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint16_t expected = core.zreg_lane<uint16_t>(z16.GetCode(), i);
+      uint16_t input = core.zreg_lane<uint8_t>(z9.GetCode(), i + lane_count);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    lane_count = core.GetSVELaneCount(kSRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint32_t expected = core.zreg_lane<uint32_t>(z17.GetCode(), i);
+      uint32_t input = core.zreg_lane<uint16_t>(z9.GetCode(), i + lane_count);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    lane_count = core.GetSVELaneCount(kDRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint64_t expected = core.zreg_lane<uint64_t>(z18.GetCode(), i);
+      uint64_t input = core.zreg_lane<uint32_t>(z9.GetCode(), i + lane_count);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    // Uuunpklo
+    lane_count = core.GetSVELaneCount(kHRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint16_t expected = core.zreg_lane<uint16_t>(z19.GetCode(), i);
+      uint16_t input = core.zreg_lane<uint8_t>(z9.GetCode(), i);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    lane_count = core.GetSVELaneCount(kSRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint32_t expected = core.zreg_lane<uint32_t>(z20.GetCode(), i);
+      uint32_t input = core.zreg_lane<uint16_t>(z9.GetCode(), i);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    lane_count = core.GetSVELaneCount(kDRegSize);
+    for (int i = lane_count - 1; i >= 0; i--) {
+      uint64_t expected = core.zreg_lane<uint64_t>(z21.GetCode(), i);
+      uint64_t input = core.zreg_lane<uint32_t>(z9.GetCode(), i);
+      ASSERT_EQUAL_64(expected, input);
+    }
+
+    ASSERT_EQUAL_SVE(z13, z22);
+    ASSERT_EQUAL_SVE(z19, z23);
+  }
+}
+
+TEST_SVE(sve_cnot_not) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in[] = {0x0000000000000000, 0x00000000e1c30000, 0x123456789abcdef0};
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         1,                      1,                      0
+  // For S lanes:         1,          1,          1,          0,          0
+  // For H lanes:   0,    1,    0,    1,    1,    1,    0,    0,    1,    0
+  int pg_in[] = {1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0};
+  Initialise(&masm, p0.VnB(), pg_in);
+  PRegisterM pg = p0.Merging();
+
+  // These are merging operations, so we have to initialise the result register.
+  // We use a mixture of constructive and destructive operations.
+
+  InsrHelper(&masm, z31.VnD(), in);
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(z30, z31);
+
+  // For constructive operations, use a different initial result value.
+  __ Index(z29.VnB(), 0, -1);
+
+  __ Mov(z0, z31);
+  __ Cnot(z0.VnB(), pg, z0.VnB());  // destructive
+  __ Mov(z1, z29);
+  __ Cnot(z1.VnH(), pg, z31.VnH());
+  __ Mov(z2, z31);
+  __ Cnot(z2.VnS(), pg, z2.VnS());  // destructive
+  __ Mov(z3, z29);
+  __ Cnot(z3.VnD(), pg, z31.VnD());
+
+  __ Mov(z4, z29);
+  __ Not(z4.VnB(), pg, z31.VnB());
+  __ Mov(z5, z31);
+  __ Not(z5.VnH(), pg, z5.VnH());  // destructive
+  __ Mov(z6, z29);
+  __ Not(z6.VnS(), pg, z31.VnS());
+  __ Mov(z7, z31);
+  __ Not(z7.VnD(), pg, z7.VnD());  // destructive
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Check that constructive operations preserve their inputs.
+    ASSERT_EQUAL_SVE(z30, z31);
+
+    // clang-format off
+
+    // Cnot (B) destructive
+    uint64_t expected_z0[] =
+    // pg:  0 0 0 0 1 0 1 1     1 0 0 1 0 1 1 1     0 0 1 0 1 1 1 0
+        {0x0000000001000101, 0x01000001e1000101, 0x12340078000000f0};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+
+    // Cnot (H)
+    uint64_t expected_z1[] =
+    // pg:    0   0   0   1       0   1   1   1       0   0   1   0
+        {0xe9eaebecedee0001, 0xf1f2000100000001, 0xf9fafbfc0000ff00};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+
+    // Cnot (S) destructive
+    uint64_t expected_z2[] =
+    // pg:        0       1           1       1           0       0
+        {0x0000000000000001, 0x0000000100000000, 0x123456789abcdef0};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+
+    // Cnot (D)
+    uint64_t expected_z3[] =
+    // pg:                1                   1                   0
+        {0x0000000000000001, 0x0000000000000000, 0xf9fafbfcfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+
+    // Not (B)
+    uint64_t expected_z4[] =
+    // pg:  0 0 0 0 1 0 1 1     1 0 0 1 0 1 1 1     0 0 1 0 1 1 1 0
+        {0xe9eaebecffeeffff, 0xfff2f3fff53cffff, 0xf9faa9fc65432100};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+
+    // Not (H) destructive
+    uint64_t expected_z5[] =
+    // pg:    0   0   0   1       0   1   1   1       0   0   1   0
+        {0x000000000000ffff, 0x0000ffff1e3cffff, 0x123456786543def0};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+
+    // Not (S)
+    uint64_t expected_z6[] =
+    // pg:        0       1           1       1           0       0
+        {0xe9eaebecffffffff, 0xffffffff1e3cffff, 0xf9fafbfcfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+
+    // Not (D) destructive
+    uint64_t expected_z7[] =
+    // pg:                1                   1                   0
+        {0xffffffffffffffff, 0xffffffff1e3cffff, 0x123456789abcdef0};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+
+    // clang-format on
+  }
+}
+
+TEST_SVE(sve_fabs_fneg) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Include FP64, FP32 and FP16 signalling NaNs. Most FP operations quieten
+  // NaNs, but fabs and fneg do not.
+  uint64_t in[] = {0xc04500004228d140,  // Recognisable (+/-42) values.
+                   0xfff00000ff80fc01,  // Signalling NaNs.
+                   0x123456789abcdef0};
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         1,                      1,                      0
+  // For S lanes:         1,          1,          1,          0,          0
+  // For H lanes:   0,    1,    0,    1,    1,    1,    0,    0,    1,    0
+  int pg_in[] = {1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0};
+  Initialise(&masm, p0.VnB(), pg_in);
+  PRegisterM pg = p0.Merging();
+
+  // These are merging operations, so we have to initialise the result register.
+  // We use a mixture of constructive and destructive operations.
+
+  InsrHelper(&masm, z31.VnD(), in);
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(z30, z31);
+
+  // For constructive operations, use a different initial result value.
+  __ Index(z29.VnB(), 0, -1);
+
+  __ Mov(z0, z29);
+  __ Fabs(z0.VnH(), pg, z31.VnH());
+  __ Mov(z1, z31);
+  __ Fabs(z1.VnS(), pg, z1.VnS());  // destructive
+  __ Mov(z2, z29);
+  __ Fabs(z2.VnD(), pg, z31.VnD());
+
+  __ Mov(z3, z31);
+  __ Fneg(z3.VnH(), pg, z3.VnH());  // destructive
+  __ Mov(z4, z29);
+  __ Fneg(z4.VnS(), pg, z31.VnS());
+  __ Mov(z5, z31);
+  __ Fneg(z5.VnD(), pg, z5.VnD());  // destructive
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Check that constructive operations preserve their inputs.
+    ASSERT_EQUAL_SVE(z30, z31);
+
+    // clang-format off
+
+    // Fabs (H)
+    uint64_t expected_z0[] =
+    // pg:    0   0   0   1       0   1   1   1       0   0   1   0
+        {0xe9eaebecedee5140, 0xf1f200007f807c01, 0xf9fafbfc1abcff00};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+
+    // Fabs (S) destructive
+    uint64_t expected_z1[] =
+    // pg:        0       1           1       1           0       0
+        {0xc04500004228d140, 0x7ff000007f80fc01, 0x123456789abcdef0};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+
+    // Fabs (D)
+    uint64_t expected_z2[] =
+    // pg:                1                   1                   0
+        {0x404500004228d140, 0x7ff00000ff80fc01, 0xf9fafbfcfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+
+    // Fneg (H) destructive
+    uint64_t expected_z3[] =
+    // pg:    0   0   0   1       0   1   1   1       0   0   1   0
+        {0xc045000042285140, 0xfff080007f807c01, 0x123456781abcdef0};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+
+    // Fneg (S)
+    uint64_t expected_z4[] =
+    // pg:        0       1           1       1           0       0
+        {0xe9eaebecc228d140, 0x7ff000007f80fc01, 0xf9fafbfcfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+
+    // Fneg (D) destructive
+    uint64_t expected_z5[] =
+    // pg:                1                   1                   0
+        {0x404500004228d140, 0x7ff00000ff80fc01, 0x123456789abcdef0};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+
+    // clang-format on
+  }
+}
+
+TEST_SVE(sve_cls_clz_cnt) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in[] = {0x0000000000000000, 0xfefcf8f0e1c3870f, 0x123456789abcdef0};
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         1,                      1,                      0
+  // For S lanes:         1,          1,          1,          0,          0
+  // For H lanes:   0,    1,    0,    1,    1,    1,    0,    0,    1,    0
+  int pg_in[] = {1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0};
+  Initialise(&masm, p0.VnB(), pg_in);
+  PRegisterM pg = p0.Merging();
+
+  // These are merging operations, so we have to initialise the result register.
+  // We use a mixture of constructive and destructive operations.
+
+  InsrHelper(&masm, z31.VnD(), in);
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(z30, z31);
+
+  // For constructive operations, use a different initial result value.
+  __ Index(z29.VnB(), 0, -1);
+
+  __ Mov(z0, z29);
+  __ Cls(z0.VnB(), pg, z31.VnB());
+  __ Mov(z1, z31);
+  __ Clz(z1.VnH(), pg, z1.VnH());  // destructive
+  __ Mov(z2, z29);
+  __ Cnt(z2.VnS(), pg, z31.VnS());
+  __ Mov(z3, z31);
+  __ Cnt(z3.VnD(), pg, z3.VnD());  // destructive
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    // Check that non-destructive operations preserve their inputs.
+    ASSERT_EQUAL_SVE(z30, z31);
+
+    // clang-format off
+
+    // cls (B)
+    uint8_t expected_z0[] =
+    // pg:  0     0     0     0     1     0     1     1
+    // pg:  1     0     0     1     0     1     1     1
+    // pg:  0     0     1     0     1     1     1     0
+        {0xe9, 0xea, 0xeb, 0xec,    7, 0xee,    7,    7,
+            6, 0xf2, 0xf3,    3, 0xf5,    1,    0,    3,
+         0xf9, 0xfa,    0, 0xfc,    0,    0,    1, 0x00};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnB());
+
+    // clz (H) destructive
+    uint16_t expected_z1[] =
+    // pg:    0       0       0       1
+    // pg:    0       1       1       1
+    // pg:    0       0       1       0
+        {0x0000, 0x0000, 0x0000,     16,
+         0xfefc,      0,      0,      0,
+         0x1234, 0x5678,      0, 0xdef0};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnH());
+
+    // cnt (S)
+    uint32_t expected_z2[] =
+    // pg:        0           1
+    // pg:        1           1
+    // pg:        0           0
+        {0xe9eaebec,          0,
+                 22,         16,
+         0xf9fafbfc, 0xfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnS());
+
+    // cnt (D) destructive
+    uint64_t expected_z3[] =
+    // pg:                1                   1                   0
+        {                 0,                 38, 0x123456789abcdef0};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+
+    // clang-format on
+  }
+}
+
+TEST_SVE(sve_sxt) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in[] = {0x01f203f405f607f8, 0xfefcf8f0e1c3870f, 0x123456789abcdef0};
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         1,                      1,                      0
+  // For S lanes:         1,          1,          1,          0,          0
+  // For H lanes:   0,    1,    0,    1,    1,    1,    0,    0,    1,    0
+  int pg_in[] = {1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0};
+  Initialise(&masm, p0.VnB(), pg_in);
+  PRegisterM pg = p0.Merging();
+
+  // These are merging operations, so we have to initialise the result register.
+  // We use a mixture of constructive and destructive operations.
+
+  InsrHelper(&masm, z31.VnD(), in);
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(z30, z31);
+
+  // For constructive operations, use a different initial result value.
+  __ Index(z29.VnB(), 0, -1);
+
+  __ Mov(z0, z31);
+  __ Sxtb(z0.VnH(), pg, z0.VnH());  // destructive
+  __ Mov(z1, z29);
+  __ Sxtb(z1.VnS(), pg, z31.VnS());
+  __ Mov(z2, z31);
+  __ Sxtb(z2.VnD(), pg, z2.VnD());  // destructive
+  __ Mov(z3, z29);
+  __ Sxth(z3.VnS(), pg, z31.VnS());
+  __ Mov(z4, z31);
+  __ Sxth(z4.VnD(), pg, z4.VnD());  // destructive
+  __ Mov(z5, z29);
+  __ Sxtw(z5.VnD(), pg, z31.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    // Check that constructive operations preserve their inputs.
+    ASSERT_EQUAL_SVE(z30, z31);
+
+    // clang-format off
+
+    // Sxtb (H) destructive
+    uint64_t expected_z0[] =
+    // pg:    0   0   0   1       0   1   1   1       0   0   1   0
+        {0x01f203f405f6fff8, 0xfefcfff0ffc3000f, 0x12345678ffbcdef0};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+
+    // Sxtb (S)
+    uint64_t expected_z1[] =
+    // pg:        0       1           1       1           0       0
+        {0xe9eaebecfffffff8, 0xfffffff00000000f, 0xf9fafbfcfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+
+    // Sxtb (D) destructive
+    uint64_t expected_z2[] =
+    // pg:                1                   1                   0
+        {0xfffffffffffffff8, 0x000000000000000f, 0x123456789abcdef0};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+
+    // Sxth (S)
+    uint64_t expected_z3[] =
+    // pg:        0       1           1       1           0       0
+        {0xe9eaebec000007f8, 0xfffff8f0ffff870f, 0xf9fafbfcfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+
+    // Sxth (D) destructive
+    uint64_t expected_z4[] =
+    // pg:                1                   1                   0
+        {0x00000000000007f8, 0xffffffffffff870f, 0x123456789abcdef0};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+
+    // Sxtw (D)
+    uint64_t expected_z5[] =
+    // pg:                1                   1                   0
+        {0x0000000005f607f8, 0xffffffffe1c3870f, 0xf9fafbfcfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+
+    // clang-format on
+  }
+}
+
+TEST_SVE(sve_uxt) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in[] = {0x01f203f405f607f8, 0xfefcf8f0e1c3870f, 0x123456789abcdef0};
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         1,                      1,                      0
+  // For S lanes:         1,          1,          1,          0,          0
+  // For H lanes:   0,    1,    0,    1,    1,    1,    0,    0,    1,    0
+  int pg_in[] = {1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0};
+  Initialise(&masm, p0.VnB(), pg_in);
+  PRegisterM pg = p0.Merging();
+
+  // These are merging operations, so we have to initialise the result register.
+  // We use a mixture of constructive and destructive operations.
+
+  InsrHelper(&masm, z31.VnD(), in);
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(z30, z31);
+
+  // For constructive operations, use a different initial result value.
+  __ Index(z29.VnB(), 0, -1);
+
+  __ Mov(z0, z29);
+  __ Uxtb(z0.VnH(), pg, z31.VnH());
+  __ Mov(z1, z31);
+  __ Uxtb(z1.VnS(), pg, z1.VnS());  // destructive
+  __ Mov(z2, z29);
+  __ Uxtb(z2.VnD(), pg, z31.VnD());
+  __ Mov(z3, z31);
+  __ Uxth(z3.VnS(), pg, z3.VnS());  // destructive
+  __ Mov(z4, z29);
+  __ Uxth(z4.VnD(), pg, z31.VnD());
+  __ Mov(z5, z31);
+  __ Uxtw(z5.VnD(), pg, z5.VnD());  // destructive
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    // clang-format off
+
+    // Uxtb (H)
+    uint64_t expected_z0[] =
+    // pg:    0   0   0   1       0   1   1   1       0   0   1   0
+        {0xe9eaebecedee00f8, 0xf1f200f000c3000f, 0xf9fafbfc00bcff00};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+
+    // Uxtb (S) destructive
+    uint64_t expected_z1[] =
+    // pg:        0       1           1       1           0       0
+        {0x01f203f4000000f8, 0x000000f00000000f, 0x123456789abcdef0};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+
+    // Uxtb (D)
+    uint64_t expected_z2[] =
+    // pg:                1                   1                   0
+        {0x00000000000000f8, 0x000000000000000f, 0xf9fafbfcfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+
+    // Uxth (S) destructive
+    uint64_t expected_z3[] =
+    // pg:        0       1           1       1           0       0
+        {0x01f203f4000007f8, 0x0000f8f00000870f, 0x123456789abcdef0};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+
+    // Uxth (D)
+    uint64_t expected_z4[] =
+    // pg:                1                   1                   0
+        {0x00000000000007f8, 0x000000000000870f, 0xf9fafbfcfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+
+    // Uxtw (D) destructive
+    uint64_t expected_z5[] =
+    // pg:                1                   1                   0
+        {0x0000000005f607f8, 0x00000000e1c3870f, 0x123456789abcdef0};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+
+    // clang-format on
+  }
+}
+
+TEST_SVE(sve_abs_neg) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in[] = {0x01f203f405f607f8, 0xfefcf8f0e1c3870f, 0x123456789abcdef0};
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         1,                      1,                      0
+  // For S lanes:         1,          1,          1,          0,          0
+  // For H lanes:   0,    1,    0,    1,    1,    1,    0,    0,    1,    0
+  int pg_in[] = {1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0};
+  Initialise(&masm, p0.VnB(), pg_in);
+  PRegisterM pg = p0.Merging();
+
+  InsrHelper(&masm, z31.VnD(), in);
+
+  // These are merging operations, so we have to initialise the result register.
+  // We use a mixture of constructive and destructive operations.
+
+  InsrHelper(&masm, z31.VnD(), in);
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(z30, z31);
+
+  // For constructive operations, use a different initial result value.
+  __ Index(z29.VnB(), 0, -1);
+
+  __ Mov(z0, z31);
+  __ Abs(z0.VnD(), pg, z0.VnD());  // destructive
+  __ Mov(z1, z29);
+  __ Abs(z1.VnB(), pg, z31.VnB());
+
+  __ Mov(z2, z31);
+  __ Neg(z2.VnH(), pg, z2.VnH());  // destructive
+  __ Mov(z3, z29);
+  __ Neg(z3.VnS(), pg, z31.VnS());
+
+  // The unpredicated form of `Neg` is implemented using `subr`.
+  __ Mov(z4, z31);
+  __ Neg(z4.VnB(), z4.VnB());  // destructive
+  __ Mov(z5, z29);
+  __ Neg(z5.VnD(), z31.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(z30, z31);
+
+    // clang-format off
+
+    // Abs (D) destructive
+    uint64_t expected_z0[] =
+    // pg:                1                   1                   0
+        {0x01f203f405f607f8, 0x0103070f1e3c78f1, 0x123456789abcdef0};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+
+    // Abs (B)
+    uint64_t expected_z1[] =
+    // pg:  0 0 0 0 1 0 1 1     1 0 0 1 0 1 1 1     0 0 1 0 1 1 1 0
+        {0xe9eaebec05ee0708, 0x02f2f310f53d790f, 0xf9fa56fc66442200};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+
+    // Neg (H) destructive
+    uint64_t expected_z2[] =
+    // pg:    0   0   0   1       0   1   1   1       0   0   1   0
+        {0x01f203f405f6f808, 0xfefc07101e3d78f1, 0x123456786544def0};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+
+    // Neg (S)
+    uint64_t expected_z3[] =
+    // pg:        0       1           1       1           0       0
+        {0xe9eaebecfa09f808, 0x010307101e3c78f1, 0xf9fafbfcfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+
+    // Neg (B) destructive, unpredicated
+    uint64_t expected_z4[] =
+        {0xff0efd0cfb0af908, 0x020408101f3d79f1, 0xeeccaa8866442210};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+
+    // Neg (D) unpredicated
+    uint64_t expected_z5[] =
+        {0xfe0dfc0bfa09f808, 0x0103070f1e3c78f1, 0xedcba98765432110};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+
+    // clang-format on
+  }
+}
+
+TEST_SVE(sve_cpy) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE, CPUFeatures::kNEON);
+  START();
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         0,                      1,                      1
+  // For S lanes:         0,          1,          1,          0,          1
+  // For H lanes:   1,    0,    0,    1,    0,    1,    1,    0,    0,    1
+  int pg_in[] = {1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1};
+
+  PRegisterM pg = p7.Merging();
+  Initialise(&masm, pg.VnB(), pg_in);
+
+  // These are merging operations, so we have to initialise the result registers
+  // for each operation.
+  for (unsigned i = 0; i < kNumberOfZRegisters; i++) {
+    __ Index(ZRegister(i, kBRegSize), 0, -1);
+  }
+
+  // Recognisable values to copy.
+  __ Mov(x0, 0xdeadbeefdeadbe42);
+  __ Mov(x1, 0xdeadbeefdead8421);
+  __ Mov(x2, 0xdeadbeef80042001);
+  __ Mov(x3, 0x8000000420000001);
+
+  // Use NEON moves, to avoid testing SVE `cpy` against itself.
+  __ Dup(v28.V2D(), x0);
+  __ Dup(v29.V2D(), x1);
+  __ Dup(v30.V2D(), x2);
+  __ Dup(v31.V2D(), x3);
+
+  // Register forms (CPY_z_p_r)
+  __ Cpy(z0.VnB(), pg, w0);
+  __ Cpy(z1.VnH(), pg, x1);  // X registers are accepted for small lanes.
+  __ Cpy(z2.VnS(), pg, w2);
+  __ Cpy(z3.VnD(), pg, x3);
+
+  // VRegister forms (CPY_z_p_v)
+  __ Cpy(z4.VnB(), pg, b28);
+  __ Cpy(z5.VnH(), pg, h29);
+  __ Cpy(z6.VnS(), pg, s30);
+  __ Cpy(z7.VnD(), pg, d31);
+
+  // Check that we can copy the stack pointer.
+  __ Mov(x10, sp);
+  __ Mov(sp, 0xabcabcabcabcabca);  // Set sp to a known value.
+  __ Cpy(z16.VnB(), pg, sp);
+  __ Cpy(z17.VnH(), pg, wsp);
+  __ Cpy(z18.VnS(), pg, wsp);
+  __ Cpy(z19.VnD(), pg, sp);
+  __ Mov(sp, x10);  // Restore sp.
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    // clang-format off
+
+    uint64_t expected_b[] =
+    // pg:  0 0 0 0 1 1 1 0     1 0 0 1 1 0 1 1     0 1 0 0 0 0 0 1
+        {0xe9eaebec424242f0, 0x42f2f34242f64242, 0xf942fbfcfdfeff42};
+    ASSERT_EQUAL_SVE(expected_b, z0.VnD());
+    ASSERT_EQUAL_SVE(expected_b, z4.VnD());
+
+    uint64_t expected_h[] =
+    // pg:    0   0   1   0       0   1   0   1       1   0   0   1
+        {0xe9eaebec8421eff0, 0xf1f28421f5f68421, 0x8421fbfcfdfe8421};
+    ASSERT_EQUAL_SVE(expected_h, z1.VnD());
+    ASSERT_EQUAL_SVE(expected_h, z5.VnD());
+
+    uint64_t expected_s[] =
+    // pg:        0       0           1       1           0       1
+        {0xe9eaebecedeeeff0, 0x8004200180042001, 0xf9fafbfc80042001};
+    ASSERT_EQUAL_SVE(expected_s, z2.VnD());
+    ASSERT_EQUAL_SVE(expected_s, z6.VnD());
+
+    uint64_t expected_d[] =
+    // pg:                0                   1                   1
+        {0xe9eaebecedeeeff0, 0x8000000420000001, 0x8000000420000001};
+    ASSERT_EQUAL_SVE(expected_d, z3.VnD());
+    ASSERT_EQUAL_SVE(expected_d, z7.VnD());
+
+
+    uint64_t expected_b_sp[] =
+    // pg:  0 0 0 0 1 1 1 0     1 0 0 1 1 0 1 1     0 1 0 0 0 0 0 1
+        {0xe9eaebeccacacaf0, 0xcaf2f3cacaf6caca, 0xf9cafbfcfdfeffca};
+    ASSERT_EQUAL_SVE(expected_b_sp, z16.VnD());
+
+    uint64_t expected_h_sp[] =
+    // pg:    0   0   1   0       0   1   0   1       1   0   0   1
+        {0xe9eaebecabcaeff0, 0xf1f2abcaf5f6abca, 0xabcafbfcfdfeabca};
+    ASSERT_EQUAL_SVE(expected_h_sp, z17.VnD());
+
+    uint64_t expected_s_sp[] =
+    // pg:        0       0           1       1           0       1
+        {0xe9eaebecedeeeff0, 0xcabcabcacabcabca, 0xf9fafbfccabcabca};
+    ASSERT_EQUAL_SVE(expected_s_sp, z18.VnD());
+
+    uint64_t expected_d_sp[] =
+    // pg:                0                   1                   1
+        {0xe9eaebecedeeeff0, 0xabcabcabcabcabca, 0xabcabcabcabcabca};
+    ASSERT_EQUAL_SVE(expected_d_sp, z19.VnD());
+
+    // clang-format on
+  }
+}
+
+TEST_SVE(sve_cpy_imm) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         0,                      1,                      1
+  // For S lanes:         0,          1,          1,          0,          1
+  // For H lanes:   1,    0,    0,    1,    0,    1,    1,    0,    0,    1
+  int pg_in[] = {1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1};
+
+  PRegister pg = p7;
+  Initialise(&masm, pg.VnB(), pg_in);
+
+  // These are (mostly) merging operations, so we have to initialise the result
+  // registers for each operation.
+  for (unsigned i = 0; i < kNumberOfZRegisters; i++) {
+    __ Index(ZRegister(i, kBRegSize), 0, -1);
+  }
+
+  // Encodable integer forms (CPY_z_p_i)
+  __ Cpy(z0.VnB(), pg.Merging(), 0);
+  __ Cpy(z1.VnB(), pg.Zeroing(), 42);
+  __ Cpy(z2.VnB(), pg.Merging(), -42);
+  __ Cpy(z3.VnB(), pg.Zeroing(), 0xff);
+  __ Cpy(z4.VnH(), pg.Merging(), 127);
+  __ Cpy(z5.VnS(), pg.Zeroing(), -128);
+  __ Cpy(z6.VnD(), pg.Merging(), -1);
+
+  // Forms encodable using fcpy.
+  __ Cpy(z7.VnH(), pg.Merging(), Float16ToRawbits(Float16(-31.0)));
+  __ Cpy(z8.VnS(), pg.Zeroing(), FloatToRawbits(2.0f));
+  __ Cpy(z9.VnD(), pg.Merging(), DoubleToRawbits(-4.0));
+
+  // Other forms use a scratch register.
+  __ Cpy(z10.VnH(), pg.Merging(), 0xff);
+  __ Cpy(z11.VnD(), pg.Zeroing(), 0x0123456789abcdef);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    // clang-format off
+
+    uint64_t expected_z0[] =
+    // pg:  0 0 0 0 1 1 1 0     1 0 0 1 1 0 1 1     0 1 0 0 0 0 0 1
+        {0xe9eaebec000000f0, 0x00f2f30000f60000, 0xf900fbfcfdfeff00};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+
+    uint64_t expected_z1[] =
+    // pg:  0 0 0 0 1 1 1 0     1 0 0 1 1 0 1 1     0 1 0 0 0 0 0 1
+        {0x000000002a2a2a00, 0x2a00002a2a002a2a, 0x002a00000000002a};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+
+    uint64_t expected_z2[] =
+    // pg:  0 0 0 0 1 1 1 0     1 0 0 1 1 0 1 1     0 1 0 0 0 0 0 1
+        {0xe9eaebecd6d6d6f0, 0xd6f2f3d6d6f6d6d6, 0xf9d6fbfcfdfeffd6};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+
+    uint64_t expected_z3[] =
+    // pg:  0 0 0 0 1 1 1 0     1 0 0 1 1 0 1 1     0 1 0 0 0 0 0 1
+        {0x00000000ffffff00, 0xff0000ffff00ffff, 0x00ff0000000000ff};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+
+    uint64_t expected_z4[] =
+    // pg:    0   0   1   0       0   1   0   1       1   0   0   1
+        {0xe9eaebec007feff0, 0xf1f2007ff5f6007f, 0x007ffbfcfdfe007f};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+
+    uint64_t expected_z5[] =
+    // pg:        0       0           1       1           0       1
+        {0x0000000000000000, 0xffffff80ffffff80, 0x00000000ffffff80};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+
+    uint64_t expected_z6[] =
+    // pg:                0                   1                   1
+        {0xe9eaebecedeeeff0, 0xffffffffffffffff, 0xffffffffffffffff};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+
+    uint64_t expected_z7[] =
+    // pg:    0   0   1   0       0   1   0   1       1   0   0   1
+        {0xe9eaebeccfc0eff0, 0xf1f2cfc0f5f6cfc0, 0xcfc0fbfcfdfecfc0};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+
+    uint64_t expected_z8[] =
+    // pg:        0       0           1       1           0       1
+        {0x0000000000000000, 0x4000000040000000, 0x0000000040000000};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+
+    uint64_t expected_z9[] =
+    // pg:                0                   1                   1
+        {0xe9eaebecedeeeff0, 0xc010000000000000, 0xc010000000000000};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+
+    uint64_t expected_z10[] =
+    // pg:    0   0   1   0       0   1   0   1       1   0   0   1
+        {0xe9eaebec00ffeff0, 0xf1f200fff5f600ff, 0x00fffbfcfdfe00ff};
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+
+    uint64_t expected_z11[] =
+    // pg:                0                   1                   1
+        {0x0000000000000000, 0x0123456789abcdef, 0x0123456789abcdef};
+    ASSERT_EQUAL_SVE(expected_z11, z11.VnD());
+
+    // clang-format on
+  }
+}
+
+TEST_SVE(sve_fcpy_imm) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         0,                      1,                      1
+  // For S lanes:         0,          1,          1,          0,          1
+  // For H lanes:   1,    0,    0,    1,    0,    1,    1,    0,    0,    1
+  int pg_in[] = {1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1};
+
+  PRegister pg = p7;
+  Initialise(&masm, pg.VnB(), pg_in);
+
+  // These are (mostly) merging operations, so we have to initialise the result
+  // registers for each operation.
+  for (unsigned i = 0; i < kNumberOfZRegisters; i++) {
+    __ Index(ZRegister(i, kBRegSize), 0, -1);
+  }
+
+  // Encodable floating-point forms (FCPY_z_p_i)
+  __ Fcpy(z1.VnH(), pg.Merging(), Float16(1.0));
+  __ Fcpy(z2.VnH(), pg.Merging(), -2.0f);
+  __ Fcpy(z3.VnH(), pg.Merging(), 3.0);
+  __ Fcpy(z4.VnS(), pg.Merging(), Float16(-4.0));
+  __ Fcpy(z5.VnS(), pg.Merging(), 5.0f);
+  __ Fcpy(z6.VnS(), pg.Merging(), 6.0);
+  __ Fcpy(z7.VnD(), pg.Merging(), Float16(7.0));
+  __ Fcpy(z8.VnD(), pg.Merging(), 8.0f);
+  __ Fmov(z9.VnD(), pg.Merging(), -9.0);
+
+  // Unencodable immediates.
+  __ Fcpy(z10.VnS(), pg.Merging(), 0.0);
+  __ Fcpy(z11.VnH(), pg.Merging(), Float16(42.0));
+  __ Fcpy(z12.VnD(), pg.Merging(), RawbitsToDouble(0x7ff0000012340000));  // NaN
+  __ Fcpy(z13.VnH(), pg.Merging(), kFP64NegativeInfinity);
+
+  // Fmov alias.
+  __ Fmov(z14.VnS(), pg.Merging(), 0.0);
+  __ Fmov(z15.VnH(), pg.Merging(), Float16(42.0));
+  __ Fmov(z16.VnD(), pg.Merging(), RawbitsToDouble(0x7ff0000012340000));  // NaN
+  __ Fmov(z17.VnH(), pg.Merging(), kFP64NegativeInfinity);
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    // clang-format off
+
+    // 1.0 as FP16: 0x3c00
+    uint64_t expected_z1[] =
+    // pg:    0   0   1   0       0   1   0   1       1   0   0   1
+        {0xe9eaebec3c00eff0, 0xf1f23c00f5f63c00, 0x3c00fbfcfdfe3c00};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+
+    // -2.0 as FP16: 0xc000
+    uint64_t expected_z2[] =
+    // pg:    0   0   1   0       0   1   0   1       1   0   0   1
+        {0xe9eaebecc000eff0, 0xf1f2c000f5f6c000, 0xc000fbfcfdfec000};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+
+    // 3.0 as FP16: 0x4200
+    uint64_t expected_z3[] =
+    // pg:    0   0   1   0       0   1   0   1       1   0   0   1
+        {0xe9eaebec4200eff0, 0xf1f24200f5f64200, 0x4200fbfcfdfe4200};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+
+    // -4.0 as FP32: 0xc0800000
+    uint64_t expected_z4[] =
+    // pg:        0       0           1       1           0       1
+        {0xe9eaebecedeeeff0, 0xc0800000c0800000, 0xf9fafbfcc0800000};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+
+    // 5.0 as FP32: 0x40a00000
+    uint64_t expected_z5[] =
+    // pg:        0       0           1       1           0       1
+        {0xe9eaebecedeeeff0, 0x40a0000040a00000, 0xf9fafbfc40a00000};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+
+    // 6.0 as FP32: 0x40c00000
+    uint64_t expected_z6[] =
+    // pg:        0       0           1       1           0       1
+        {0xe9eaebecedeeeff0, 0x40c0000040c00000, 0xf9fafbfc40c00000};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+
+    // 7.0 as FP64: 0x401c000000000000
+    uint64_t expected_z7[] =
+    // pg:                0                   1                   1
+        {0xe9eaebecedeeeff0, 0x401c000000000000, 0x401c000000000000};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+
+    // 8.0 as FP64: 0x4020000000000000
+    uint64_t expected_z8[] =
+    // pg:                0                   1                   1
+        {0xe9eaebecedeeeff0, 0x4020000000000000, 0x4020000000000000};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+
+    // -9.0 as FP64: 0xc022000000000000
+    uint64_t expected_z9[] =
+    // pg:                0                   1                   1
+        {0xe9eaebecedeeeff0, 0xc022000000000000, 0xc022000000000000};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+
+    // 0.0 as FP32: 0x00000000
+    uint64_t expected_z10[] =
+    // pg:        0       0           1       1           0       1
+        {0xe9eaebecedeeeff0, 0x0000000000000000, 0xf9fafbfc00000000};
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+
+    // 42.0 as FP16: 0x5140
+    uint64_t expected_z11[] =
+    // pg:    0   0   1   0       0   1   0   1       1   0   0   1
+        {0xe9eaebec5140eff0, 0xf1f25140f5f65140, 0x5140fbfcfdfe5140};
+    ASSERT_EQUAL_SVE(expected_z11, z11.VnD());
+
+    // Signalling NaN (with payload): 0x7ff0000012340000
+    uint64_t expected_z12[] =
+    // pg:                0                   1                   1
+        {0xe9eaebecedeeeff0, 0x7ff0000012340000, 0x7ff0000012340000};
+    ASSERT_EQUAL_SVE(expected_z12, z12.VnD());
+
+    // -infinity as FP16: 0xfc00
+    uint64_t expected_z13[] =
+    // pg:    0   0   1   0       0   1   0   1       1   0   0   1
+        {0xe9eaebecfc00eff0, 0xf1f2fc00f5f6fc00, 0xfc00fbfcfdfefc00};
+    ASSERT_EQUAL_SVE(expected_z13, z13.VnD());
+
+    ASSERT_EQUAL_SVE(z10.VnD(), z14.VnD());
+    ASSERT_EQUAL_SVE(z11.VnD(), z15.VnD());
+    ASSERT_EQUAL_SVE(z12.VnD(), z16.VnD());
+    ASSERT_EQUAL_SVE(z13.VnD(), z17.VnD());
+    // clang-format on
+  }
+}
+
+TEST_SVE(sve_permute_vector_unpredicated_table_lookup) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t table_inputs[] = {0xffeeddccbbaa9988, 0x7766554433221100};
+
+  int index_b[] = {255, 255, 11, 10, 15, 14, 13, 12, 1, 0, 4, 3, 7, 6, 5, 4};
+
+  int index_h[] = {5, 6, 7, 8, 2, 3, 6, 4};
+
+  int index_s[] = {1, 3, 2, 31, -1};
+
+  int index_d[] = {31, 1};
+
+  // Initialize the register with a value that doesn't existed in the table.
+  __ Dup(z9.VnB(), 0x1f);
+  InsrHelper(&masm, z9.VnD(), table_inputs);
+
+  ZRegister ind_b = z0.WithLaneSize(kBRegSize);
+  ZRegister ind_h = z1.WithLaneSize(kHRegSize);
+  ZRegister ind_s = z2.WithLaneSize(kSRegSize);
+  ZRegister ind_d = z3.WithLaneSize(kDRegSize);
+
+  InsrHelper(&masm, ind_b, index_b);
+  InsrHelper(&masm, ind_h, index_h);
+  InsrHelper(&masm, ind_s, index_s);
+  InsrHelper(&masm, ind_d, index_d);
+
+  __ Tbl(z26.VnB(), z9.VnB(), ind_b);
+
+  __ Tbl(z27.VnH(), z9.VnH(), ind_h);
+
+  __ Tbl(z28.VnS(), z9.VnS(), ind_s);
+
+  __ Tbl(z29.VnD(), z9.VnD(), ind_d);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // clang-format off
+    unsigned z26_expected[] = {0x1f, 0x1f, 0xbb, 0xaa, 0xff, 0xee, 0xdd, 0xcc,
+                               0x11, 0x00, 0x44, 0x33, 0x77, 0x66, 0x55, 0x44};
+
+    unsigned z27_expected[] = {0xbbaa, 0xddcc, 0xffee, 0x1f1f,
+                               0x5544, 0x7766, 0xddcc, 0x9988};
+
+    unsigned z28_expected[] =
+       {0x77665544, 0xffeeddcc, 0xbbaa9988, 0x1f1f1f1f, 0x1f1f1f1f};
+
+    uint64_t z29_expected[] = {0x1f1f1f1f1f1f1f1f, 0xffeeddccbbaa9988};
+    // clang-format on
+
+    unsigned vl = config->sve_vl_in_bits();
+    for (size_t i = 0; i < ArrayLength(index_b); i++) {
+      int lane = static_cast<int>(ArrayLength(index_b) - i - 1);
+      if (!core.HasSVELane(z26.VnB(), lane)) break;
+      uint64_t expected = (vl > (index_b[i] * kBRegSize)) ? z26_expected[i] : 0;
+      ASSERT_EQUAL_SVE_LANE(expected, z26.VnB(), lane);
+    }
+
+    for (size_t i = 0; i < ArrayLength(index_h); i++) {
+      int lane = static_cast<int>(ArrayLength(index_h) - i - 1);
+      if (!core.HasSVELane(z27.VnH(), lane)) break;
+      uint64_t expected = (vl > (index_h[i] * kHRegSize)) ? z27_expected[i] : 0;
+      ASSERT_EQUAL_SVE_LANE(expected, z27.VnH(), lane);
+    }
+
+    for (size_t i = 0; i < ArrayLength(index_s); i++) {
+      int lane = static_cast<int>(ArrayLength(index_s) - i - 1);
+      if (!core.HasSVELane(z28.VnS(), lane)) break;
+      uint64_t expected = (vl > (index_s[i] * kSRegSize)) ? z28_expected[i] : 0;
+      ASSERT_EQUAL_SVE_LANE(expected, z28.VnS(), lane);
+    }
+
+    for (size_t i = 0; i < ArrayLength(index_d); i++) {
+      int lane = static_cast<int>(ArrayLength(index_d) - i - 1);
+      if (!core.HasSVELane(z29.VnD(), lane)) break;
+      uint64_t expected = (vl > (index_d[i] * kDRegSize)) ? z29_expected[i] : 0;
+      ASSERT_EQUAL_SVE_LANE(expected, z29.VnD(), lane);
+    }
+  }
+}
+
+TEST_SVE(ldr_str_z_bi) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int vl = config->sve_vl_in_bytes();
+
+  // The immediate can address [-256, 255] times the VL, so allocate enough
+  // space to exceed that in both directions.
+  int data_size = vl * 1024;
+
+  uint8_t* data = new uint8_t[data_size];
+  memset(data, 0, data_size);
+
+  // Set the base half-way through the buffer so we can use negative indices.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+
+  __ Index(z1.VnB(), 1, 3);
+  __ Index(z2.VnB(), 2, 5);
+  __ Index(z3.VnB(), 3, 7);
+  __ Index(z4.VnB(), 4, 11);
+  __ Index(z5.VnB(), 5, 13);
+  __ Index(z6.VnB(), 6, 2);
+  __ Index(z7.VnB(), 7, 3);
+  __ Index(z8.VnB(), 8, 5);
+  __ Index(z9.VnB(), 9, 7);
+
+  // Encodable cases.
+  __ Str(z1, SVEMemOperand(x0));
+  __ Str(z2, SVEMemOperand(x0, 2, SVE_MUL_VL));
+  __ Str(z3, SVEMemOperand(x0, -3, SVE_MUL_VL));
+  __ Str(z4, SVEMemOperand(x0, 255, SVE_MUL_VL));
+  __ Str(z5, SVEMemOperand(x0, -256, SVE_MUL_VL));
+
+  // Cases that fall back on `CalculateSVEAddress`.
+  __ Str(z6, SVEMemOperand(x0, 6 * vl));
+  __ Str(z7, SVEMemOperand(x0, -7 * vl));
+  __ Str(z8, SVEMemOperand(x0, 314, SVE_MUL_VL));
+  __ Str(z9, SVEMemOperand(x0, -314, SVE_MUL_VL));
+
+  // Corresponding loads.
+  __ Ldr(z11, SVEMemOperand(x0, xzr));  // Test xzr operand.
+  __ Ldr(z12, SVEMemOperand(x0, 2, SVE_MUL_VL));
+  __ Ldr(z13, SVEMemOperand(x0, -3, SVE_MUL_VL));
+  __ Ldr(z14, SVEMemOperand(x0, 255, SVE_MUL_VL));
+  __ Ldr(z15, SVEMemOperand(x0, -256, SVE_MUL_VL));
+
+  __ Ldr(z16, SVEMemOperand(x0, 6 * vl));
+  __ Ldr(z17, SVEMemOperand(x0, -7 * vl));
+  __ Ldr(z18, SVEMemOperand(x0, 314, SVE_MUL_VL));
+  __ Ldr(z19, SVEMemOperand(x0, -314, SVE_MUL_VL));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint8_t* expected = new uint8_t[data_size];
+    memset(expected, 0, data_size);
+    uint8_t* middle = &expected[data_size / 2];
+
+    for (int i = 0; i < vl; i++) {
+      middle[i] = (1 + (3 * i)) & 0xff;                 // z1
+      middle[(2 * vl) + i] = (2 + (5 * i)) & 0xff;      // z2
+      middle[(-3 * vl) + i] = (3 + (7 * i)) & 0xff;     // z3
+      middle[(255 * vl) + i] = (4 + (11 * i)) & 0xff;   // z4
+      middle[(-256 * vl) + i] = (5 + (13 * i)) & 0xff;  // z5
+      middle[(6 * vl) + i] = (6 + (2 * i)) & 0xff;      // z6
+      middle[(-7 * vl) + i] = (7 + (3 * i)) & 0xff;     // z7
+      middle[(314 * vl) + i] = (8 + (5 * i)) & 0xff;    // z8
+      middle[(-314 * vl) + i] = (9 + (7 * i)) & 0xff;   // z9
+    }
+
+    ASSERT_EQUAL_MEMORY(expected, data, data_size, middle - expected);
+
+    ASSERT_EQUAL_SVE(z1, z11);
+    ASSERT_EQUAL_SVE(z2, z12);
+    ASSERT_EQUAL_SVE(z3, z13);
+    ASSERT_EQUAL_SVE(z4, z14);
+    ASSERT_EQUAL_SVE(z5, z15);
+    ASSERT_EQUAL_SVE(z6, z16);
+    ASSERT_EQUAL_SVE(z7, z17);
+    ASSERT_EQUAL_SVE(z8, z18);
+    ASSERT_EQUAL_SVE(z9, z19);
+
+    delete[] expected;
+  }
+  delete[] data;
+}
+
+TEST_SVE(ldr_str_p_bi) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int vl = config->sve_vl_in_bytes();
+  VIXL_ASSERT((vl % kZRegBitsPerPRegBit) == 0);
+  int pl = vl / kZRegBitsPerPRegBit;
+
+  // The immediate can address [-256, 255] times the PL, so allocate enough
+  // space to exceed that in both directions.
+  int data_size = pl * 1024;
+
+  uint8_t* data = new uint8_t[data_size];
+  memset(data, 0, data_size);
+
+  // Set the base half-way through the buffer so we can use negative indices.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+
+  uint64_t pattern[4] = {0x1010101011101111,
+                         0x0010111011000101,
+                         0x1001101110010110,
+                         0x1010110101100011};
+  for (int i = 8; i <= 15; i++) {
+    // Initialise p8-p15 with a conveniently-recognisable, non-zero pattern.
+    Initialise(&masm,
+               PRegister(i),
+               pattern[3] * i,
+               pattern[2] * i,
+               pattern[1] * i,
+               pattern[0] * i);
+  }
+
+  // Encodable cases.
+  __ Str(p8, SVEMemOperand(x0));
+  __ Str(p9, SVEMemOperand(x0, 2, SVE_MUL_VL));
+  __ Str(p10, SVEMemOperand(x0, -3, SVE_MUL_VL));
+  __ Str(p11, SVEMemOperand(x0, 255, SVE_MUL_VL));
+
+  // Cases that fall back on `CalculateSVEAddress`.
+  __ Str(p12, SVEMemOperand(x0, 6 * pl));
+  __ Str(p13, SVEMemOperand(x0, -7 * pl));
+  __ Str(p14, SVEMemOperand(x0, 314, SVE_MUL_VL));
+  __ Str(p15, SVEMemOperand(x0, -314, SVE_MUL_VL));
+
+  // Corresponding loads.
+  __ Ldr(p0, SVEMemOperand(x0));
+  __ Ldr(p1, SVEMemOperand(x0, 2, SVE_MUL_VL));
+  __ Ldr(p2, SVEMemOperand(x0, -3, SVE_MUL_VL));
+  __ Ldr(p3, SVEMemOperand(x0, 255, SVE_MUL_VL));
+
+  __ Ldr(p4, SVEMemOperand(x0, 6 * pl));
+  __ Ldr(p5, SVEMemOperand(x0, -7 * pl));
+  __ Ldr(p6, SVEMemOperand(x0, 314, SVE_MUL_VL));
+  __ Ldr(p7, SVEMemOperand(x0, -314, SVE_MUL_VL));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint8_t* expected = new uint8_t[data_size];
+    memset(expected, 0, data_size);
+    uint8_t* middle = &expected[data_size / 2];
+
+    for (int i = 0; i < pl; i++) {
+      int bit_index = (i % sizeof(pattern[0])) * kBitsPerByte;
+      size_t index = i / sizeof(pattern[0]);
+      VIXL_ASSERT(index < ArrayLength(pattern));
+      uint64_t byte = (pattern[index] >> bit_index) & 0xff;
+      // Each byte of `pattern` can be multiplied by 15 without carry.
+      VIXL_ASSERT((byte * 15) <= 0xff);
+
+      middle[i] = byte * 8;                 // p8
+      middle[(2 * pl) + i] = byte * 9;      // p9
+      middle[(-3 * pl) + i] = byte * 10;    // p10
+      middle[(255 * pl) + i] = byte * 11;   // p11
+      middle[(6 * pl) + i] = byte * 12;     // p12
+      middle[(-7 * pl) + i] = byte * 13;    // p13
+      middle[(314 * pl) + i] = byte * 14;   // p14
+      middle[(-314 * pl) + i] = byte * 15;  // p15
+    }
+
+    ASSERT_EQUAL_MEMORY(expected, data, data_size, middle - expected);
+
+    ASSERT_EQUAL_SVE(p0, p8);
+    ASSERT_EQUAL_SVE(p1, p9);
+    ASSERT_EQUAL_SVE(p2, p10);
+    ASSERT_EQUAL_SVE(p3, p11);
+    ASSERT_EQUAL_SVE(p4, p12);
+    ASSERT_EQUAL_SVE(p5, p13);
+    ASSERT_EQUAL_SVE(p6, p14);
+    ASSERT_EQUAL_SVE(p7, p15);
+
+    delete[] expected;
+  }
+  delete[] data;
+}
+
+template <typename T>
+static void MemoryWrite(uint8_t* base, int64_t offset, int64_t index, T data) {
+  memcpy(base + offset + (index * sizeof(data)), &data, sizeof(data));
+}
+
+TEST_SVE(sve_ld1_st1_contiguous) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int vl = config->sve_vl_in_bytes();
+
+  // The immediate can address [-8, 7] times the VL, so allocate enough space to
+  // exceed that in both directions.
+  int data_size = vl * 128;
+
+  uint8_t* data = new uint8_t[data_size];
+  memset(data, 0, data_size);
+
+  // Set the base half-way through the buffer so we can use negative indices.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+
+  // Encodable scalar-plus-immediate cases.
+  __ Index(z1.VnB(), 1, -3);
+  __ Ptrue(p1.VnB());
+  __ St1b(z1.VnB(), p1, SVEMemOperand(x0));
+
+  __ Index(z2.VnH(), -2, 5);
+  __ Ptrue(p2.VnH(), SVE_MUL3);
+  __ St1b(z2.VnH(), p2, SVEMemOperand(x0, 7, SVE_MUL_VL));
+
+  __ Index(z3.VnS(), 3, -7);
+  __ Ptrue(p3.VnS(), SVE_POW2);
+  __ St1h(z3.VnS(), p3, SVEMemOperand(x0, -8, SVE_MUL_VL));
+
+  // Encodable scalar-plus-scalar cases.
+  __ Index(z4.VnD(), -4, 11);
+  __ Ptrue(p4.VnD(), SVE_VL3);
+  __ Addvl(x1, x0, 8);  // Try not to overlap with VL-dependent cases.
+  __ Mov(x2, 17);
+  __ St1b(z4.VnD(), p4, SVEMemOperand(x1, x2));
+
+  __ Index(z5.VnD(), 6, -2);
+  __ Ptrue(p5.VnD(), SVE_VL16);
+  __ Addvl(x3, x0, 10);  // Try not to overlap with VL-dependent cases.
+  __ Mov(x4, 6);
+  __ St1d(z5.VnD(), p5, SVEMemOperand(x3, x4, LSL, 3));
+
+  // Unencodable cases fall back on `CalculateSVEAddress`.
+  __ Index(z6.VnS(), -7, 3);
+  // Setting SVE_ALL on B lanes checks that the Simulator ignores irrelevant
+  // predicate bits when handling larger lanes.
+  __ Ptrue(p6.VnB(), SVE_ALL);
+  __ St1w(z6.VnS(), p6, SVEMemOperand(x0, 42, SVE_MUL_VL));
+
+  __ Index(z7.VnD(), 32, -11);
+  __ Ptrue(p7.VnD(), SVE_MUL4);
+  __ St1w(z7.VnD(), p7, SVEMemOperand(x0, 22, SVE_MUL_VL));
+
+  // Corresponding loads.
+  __ Ld1b(z8.VnB(), p1.Zeroing(), SVEMemOperand(x0));
+  __ Ld1b(z9.VnH(), p2.Zeroing(), SVEMemOperand(x0, 7, SVE_MUL_VL));
+  __ Ld1h(z10.VnS(), p3.Zeroing(), SVEMemOperand(x0, -8, SVE_MUL_VL));
+  __ Ld1b(z11.VnD(), p4.Zeroing(), SVEMemOperand(x1, x2));
+  __ Ld1d(z12.VnD(), p5.Zeroing(), SVEMemOperand(x3, x4, LSL, 3));
+  __ Ld1w(z13.VnS(), p6.Zeroing(), SVEMemOperand(x0, 42, SVE_MUL_VL));
+
+  __ Ld1sb(z14.VnH(), p2.Zeroing(), SVEMemOperand(x0, 7, SVE_MUL_VL));
+  __ Ld1sh(z15.VnS(), p3.Zeroing(), SVEMemOperand(x0, -8, SVE_MUL_VL));
+  __ Ld1sb(z16.VnD(), p4.Zeroing(), SVEMemOperand(x1, x2));
+  __ Ld1sw(z17.VnD(), p7.Zeroing(), SVEMemOperand(x0, 22, SVE_MUL_VL));
+
+  // We can test ld1 by comparing the value loaded with the value stored. In
+  // most cases, there are two complications:
+  //  - Loads have zeroing predication, so we have to clear the inactive
+  //    elements on our reference.
+  //  - We have to replicate any sign- or zero-extension.
+
+  // Ld1b(z8.VnB(), ...)
+  __ Dup(z18.VnB(), 0);
+  __ Mov(z18.VnB(), p1.Merging(), z1.VnB());
+
+  // Ld1b(z9.VnH(), ...)
+  __ Dup(z19.VnH(), 0);
+  __ Uxtb(z19.VnH(), p2.Merging(), z2.VnH());
+
+  // Ld1h(z10.VnS(), ...)
+  __ Dup(z20.VnS(), 0);
+  __ Uxth(z20.VnS(), p3.Merging(), z3.VnS());
+
+  // Ld1b(z11.VnD(), ...)
+  __ Dup(z21.VnD(), 0);
+  __ Uxtb(z21.VnD(), p4.Merging(), z4.VnD());
+
+  // Ld1d(z12.VnD(), ...)
+  __ Dup(z22.VnD(), 0);
+  __ Mov(z22.VnD(), p5.Merging(), z5.VnD());
+
+  // Ld1w(z13.VnS(), ...)
+  __ Dup(z23.VnS(), 0);
+  __ Mov(z23.VnS(), p6.Merging(), z6.VnS());
+
+  // Ld1sb(z14.VnH(), ...)
+  __ Dup(z24.VnH(), 0);
+  __ Sxtb(z24.VnH(), p2.Merging(), z2.VnH());
+
+  // Ld1sh(z15.VnS(), ...)
+  __ Dup(z25.VnS(), 0);
+  __ Sxth(z25.VnS(), p3.Merging(), z3.VnS());
+
+  // Ld1sb(z16.VnD(), ...)
+  __ Dup(z26.VnD(), 0);
+  __ Sxtb(z26.VnD(), p4.Merging(), z4.VnD());
+
+  // Ld1sw(z17.VnD(), ...)
+  __ Dup(z27.VnD(), 0);
+  __ Sxtw(z27.VnD(), p7.Merging(), z7.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint8_t* expected = new uint8_t[data_size];
+    memset(expected, 0, data_size);
+    uint8_t* middle = &expected[data_size / 2];
+
+    int vl_b = vl / kBRegSizeInBytes;
+    int vl_h = vl / kHRegSizeInBytes;
+    int vl_s = vl / kSRegSizeInBytes;
+    int vl_d = vl / kDRegSizeInBytes;
+
+    // Encodable cases.
+
+    // st1b { z1.b }, SVE_ALL
+    for (int i = 0; i < vl_b; i++) {
+      MemoryWrite(middle, 0, i, static_cast<uint8_t>(1 - (3 * i)));
+    }
+
+    // st1b { z2.h }, SVE_MUL3
+    int vl_h_mul3 = vl_h - (vl_h % 3);
+    for (int i = 0; i < vl_h_mul3; i++) {
+      int64_t offset = 7 * static_cast<int>(vl / (kHRegSize / kBRegSize));
+      MemoryWrite(middle, offset, i, static_cast<uint8_t>(-2 + (5 * i)));
+    }
+
+    // st1h { z3.s }, SVE_POW2
+    int vl_s_pow2 = 1 << HighestSetBitPosition(vl_s);
+    for (int i = 0; i < vl_s_pow2; i++) {
+      int64_t offset = -8 * static_cast<int>(vl / (kSRegSize / kHRegSize));
+      MemoryWrite(middle, offset, i, static_cast<uint16_t>(3 - (7 * i)));
+    }
+
+    // st1b { z4.d }, SVE_VL3
+    if (vl_d >= 3) {
+      for (int i = 0; i < 3; i++) {
+        MemoryWrite(middle,
+                    (8 * vl) + 17,
+                    i,
+                    static_cast<uint8_t>(-4 + (11 * i)));
+      }
+    }
+
+    // st1d { z5.d }, SVE_VL16
+    if (vl_d >= 16) {
+      for (int i = 0; i < 16; i++) {
+        MemoryWrite(middle,
+                    (10 * vl) + (6 * kDRegSizeInBytes),
+                    i,
+                    static_cast<uint64_t>(6 - (2 * i)));
+      }
+    }
+
+    // Unencodable cases.
+
+    // st1w { z6.s }, SVE_ALL
+    for (int i = 0; i < vl_s; i++) {
+      MemoryWrite(middle, 42 * vl, i, static_cast<uint32_t>(-7 + (3 * i)));
+    }
+
+    // st1w { z7.d }, SVE_MUL4
+    int vl_d_mul4 = vl_d - (vl_d % 4);
+    for (int i = 0; i < vl_d_mul4; i++) {
+      int64_t offset = 22 * static_cast<int>(vl / (kDRegSize / kWRegSize));
+      MemoryWrite(middle, offset, i, static_cast<uint32_t>(32 + (-11 * i)));
+    }
+
+    ASSERT_EQUAL_MEMORY(expected, data, data_size, middle - expected);
+
+    // Check that we loaded back the expected values.
+
+    ASSERT_EQUAL_SVE(z18, z8);
+    ASSERT_EQUAL_SVE(z19, z9);
+    ASSERT_EQUAL_SVE(z20, z10);
+    ASSERT_EQUAL_SVE(z21, z11);
+    ASSERT_EQUAL_SVE(z22, z12);
+    ASSERT_EQUAL_SVE(z23, z13);
+    ASSERT_EQUAL_SVE(z24, z14);
+    ASSERT_EQUAL_SVE(z25, z15);
+    ASSERT_EQUAL_SVE(z26, z16);
+    ASSERT_EQUAL_SVE(z27, z17);
+
+    delete[] expected;
+  }
+  delete[] data;
+}
+
+TEST_SVE(sve_ld2_st2_scalar_plus_imm) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int vl = config->sve_vl_in_bytes();
+
+  // The immediate can address [-16, 14] times the VL, so allocate enough space
+  // to exceed that in both directions.
+  int data_size = vl * 128;
+
+  uint8_t* data = new uint8_t[data_size];
+  memset(data, 0, data_size);
+
+  // Set the base half-way through the buffer so we can use negative indeces.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+
+  __ Index(z14.VnB(), 1, -3);
+  __ Index(z15.VnB(), 2, -3);
+  __ Ptrue(p0.VnB());
+  __ St2b(z14.VnB(), z15.VnB(), p0, SVEMemOperand(x0));
+
+  __ Index(z16.VnH(), -2, 5);
+  __ Index(z17.VnH(), -3, 5);
+  __ Ptrue(p1.VnH(), SVE_MUL3);
+  __ St2h(z16.VnH(), z17.VnH(), p1, SVEMemOperand(x0, 8, SVE_MUL_VL));
+
+  // Wrap around from z31 to z0.
+  __ Index(z31.VnS(), 3, -7);
+  __ Index(z0.VnS(), 4, -7);
+  __ Ptrue(p2.VnS(), SVE_POW2);
+  __ St2w(z31.VnS(), z0.VnS(), p2, SVEMemOperand(x0, -12, SVE_MUL_VL));
+
+  __ Index(z18.VnD(), -7, 3);
+  __ Index(z19.VnD(), -8, 3);
+  // Sparse predication, including some irrelevant bits (0xe). To make the
+  // results easy to check, activate each lane <n> where n is a multiple of 5.
+  Initialise(&masm,
+             p3,
+             0xeee10000000001ee,
+             0xeeeeeee100000000,
+             0x01eeeeeeeee10000,
+             0x000001eeeeeeeee1);
+  __ St2d(z18.VnD(), z19.VnD(), p3, SVEMemOperand(x0, 14, SVE_MUL_VL));
+
+  // We can test ld2 by comparing the values loaded with the values stored.
+  // There are two complications:
+  //  - Loads have zeroing predication, so we have to clear the inactive
+  //    elements on our reference.
+  //  - We want to test both loads and stores that span { z31, z0 }, so we have
+  //    to move some values around.
+  //
+  // Registers z4-z11 will hold as-stored values (with inactive elements
+  // cleared). Registers z20-z27 will hold the values that were loaded.
+
+  // Ld2b(z14.VnB(), z15.VnB(), ...)
+  __ Dup(z4.VnB(), 0);
+  __ Dup(z5.VnB(), 0);
+  __ Mov(z4.VnB(), p0.Merging(), z14.VnB());
+  __ Mov(z5.VnB(), p0.Merging(), z15.VnB());
+
+  // Ld2h(z16.VnH(), z17.VnH(), ...)
+  __ Dup(z6.VnH(), 0);
+  __ Dup(z7.VnH(), 0);
+  __ Mov(z6.VnH(), p1.Merging(), z16.VnH());
+  __ Mov(z7.VnH(), p1.Merging(), z17.VnH());
+
+  // Ld2w(z31.VnS(), z0.VnS(), ...)
+  __ Dup(z8.VnS(), 0);
+  __ Dup(z9.VnS(), 0);
+  __ Mov(z8.VnS(), p2.Merging(), z31.VnS());
+  __ Mov(z9.VnS(), p2.Merging(), z0.VnS());
+
+  // Ld2d(z18.VnD(), z19.VnD(), ...)
+  __ Dup(z10.VnD(), 0);
+  __ Dup(z11.VnD(), 0);
+  __ Mov(z10.VnD(), p3.Merging(), z18.VnD());
+  __ Mov(z11.VnD(), p3.Merging(), z19.VnD());
+
+  // Wrap around from z31 to z0, moving the results elsewhere to avoid overlap.
+  __ Ld2b(z31.VnB(), z0.VnB(), p0.Zeroing(), SVEMemOperand(x0));
+  __ Mov(z20, z31);
+  __ Mov(z21, z0);
+
+  __ Ld2h(z22.VnH(), z23.VnH(), p1.Zeroing(), SVEMemOperand(x0, 8, SVE_MUL_VL));
+  __ Ld2w(z24.VnS(),
+          z25.VnS(),
+          p2.Zeroing(),
+          SVEMemOperand(x0, -12, SVE_MUL_VL));
+  __ Ld2d(z26.VnD(),
+          z27.VnD(),
+          p3.Zeroing(),
+          SVEMemOperand(x0, 14, SVE_MUL_VL));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint8_t* expected = new uint8_t[data_size];
+    memset(expected, 0, data_size);
+    uint8_t* middle = &expected[data_size / 2];
+
+    int vl_b = vl / kBRegSizeInBytes;
+    int vl_h = vl / kHRegSizeInBytes;
+    int vl_s = vl / kSRegSizeInBytes;
+    int vl_d = vl / kDRegSizeInBytes;
+
+    int reg_count = 2;
+
+    // st2b { z14.b, z15.b }, SVE_ALL
+    for (int i = 0; i < vl_b; i++) {
+      uint8_t lane0 = 1 - (3 * i);
+      uint8_t lane1 = 2 - (3 * i);
+      MemoryWrite(middle, 0, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, 0, (i * reg_count) + 1, lane1);
+    }
+
+    // st2h { z16.h, z17.h }, SVE_MUL3
+    int vl_h_mul3 = vl_h - (vl_h % 3);
+    for (int i = 0; i < vl_h_mul3; i++) {
+      int64_t offset = 8 * vl;
+      uint16_t lane0 = -2 + (5 * i);
+      uint16_t lane1 = -3 + (5 * i);
+      MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+    }
+
+    // st2w { z31.s, z0.s }, SVE_POW2
+    int vl_s_pow2 = 1 << HighestSetBitPosition(vl_s);
+    for (int i = 0; i < vl_s_pow2; i++) {
+      int64_t offset = -12 * vl;
+      uint32_t lane0 = 3 - (7 * i);
+      uint32_t lane1 = 4 - (7 * i);
+      MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+    }
+
+    // st2d { z18.d, z19.d }, ((i % 5) == 0)
+    for (int i = 0; i < vl_d; i++) {
+      if ((i % 5) == 0) {
+        int64_t offset = 14 * vl;
+        uint64_t lane0 = -7 + (3 * i);
+        uint64_t lane1 = -8 + (3 * i);
+        MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+        MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+      }
+    }
+
+    ASSERT_EQUAL_MEMORY(expected, data, data_size, middle - expected);
+
+    // Check that we loaded back the expected values.
+
+    // st2b/ld2b
+    ASSERT_EQUAL_SVE(z4, z20);
+    ASSERT_EQUAL_SVE(z5, z21);
+
+    // st2h/ld2h
+    ASSERT_EQUAL_SVE(z6, z22);
+    ASSERT_EQUAL_SVE(z7, z23);
+
+    // st2w/ld2w
+    ASSERT_EQUAL_SVE(z8, z24);
+    ASSERT_EQUAL_SVE(z9, z25);
+
+    // st2d/ld2d
+    ASSERT_EQUAL_SVE(z10, z26);
+    ASSERT_EQUAL_SVE(z11, z27);
+
+    delete[] expected;
+  }
+  delete[] data;
+}
+
+TEST_SVE(sve_ld2_st2_scalar_plus_scalar) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int vl = config->sve_vl_in_bytes();
+
+  // Allocate plenty of space to enable indexing in both directions.
+  int data_size = vl * 128;
+
+  uint8_t* data = new uint8_t[data_size];
+  memset(data, 0, data_size);
+
+  // Set the base half-way through the buffer so we can use negative indeces.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+
+  __ Index(z10.VnB(), -4, 11);
+  __ Index(z11.VnB(), -5, 11);
+  __ Ptrue(p7.VnB(), SVE_MUL4);
+  __ Mov(x1, 0);
+  __ St2b(z10.VnB(), z11.VnB(), p7, SVEMemOperand(x0, x1));
+
+  __ Index(z12.VnH(), 6, -2);
+  __ Index(z13.VnH(), 7, -2);
+  __ Ptrue(p6.VnH(), SVE_VL16);
+  __ Rdvl(x2, 3);  // Make offsets VL-dependent so we can avoid overlap.
+  __ St2h(z12.VnH(), z13.VnH(), p6, SVEMemOperand(x0, x2, LSL, 1));
+
+  __ Index(z14.VnS(), -7, 3);
+  __ Index(z15.VnS(), -8, 3);
+  // Sparse predication, including some irrelevant bits (0xe). To make the
+  // results easy to check, activate each lane <n> where n is a multiple of 5.
+  Initialise(&masm,
+             p5,
+             0xeee1000010000100,
+             0x001eeee100001000,
+             0x0100001eeee10000,
+             0x10000100001eeee1);
+  __ Rdvl(x3, -3);
+  __ St2w(z14.VnS(), z15.VnS(), p5, SVEMemOperand(x0, x3, LSL, 2));
+
+  // Wrap around from z31 to z0.
+  __ Index(z31.VnD(), 32, -11);
+  __ Index(z0.VnD(), 33, -11);
+  __ Ptrue(p4.VnD(), SVE_MUL3);
+  __ Rdvl(x4, 1);
+  __ St2d(z31.VnD(), z0.VnD(), p4, SVEMemOperand(x0, x4, LSL, 3));
+
+  // We can test ld2 by comparing the values loaded with the values stored.
+  // There are two complications:
+  //  - Loads have zeroing predication, so we have to clear the inactive
+  //    elements on our reference.
+  //  - We want to test both loads and stores that span { z31, z0 }, so we have
+  //    to move some values around.
+  //
+  // Registers z4-z11 will hold as-stored values (with inactive elements
+  // cleared). Registers z20-z27 will hold the values that were loaded.
+
+  // Ld2b(z20.VnB(), z21.VnB(), ...)
+  __ Dup(z4.VnB(), 0);
+  __ Dup(z5.VnB(), 0);
+  __ Mov(z4.VnB(), p7.Merging(), z10.VnB());
+  __ Mov(z5.VnB(), p7.Merging(), z11.VnB());
+
+  // Ld2h(z22.VnH(), z23.VnH(), ...)
+  __ Dup(z6.VnH(), 0);
+  __ Dup(z7.VnH(), 0);
+  __ Mov(z6.VnH(), p6.Merging(), z12.VnH());
+  __ Mov(z7.VnH(), p6.Merging(), z13.VnH());
+
+  // Ld2w(z24.VnS(), z25.VnS(), ...)
+  __ Dup(z8.VnS(), 0);
+  __ Dup(z9.VnS(), 0);
+  __ Mov(z8.VnS(), p5.Merging(), z14.VnS());
+  __ Mov(z9.VnS(), p5.Merging(), z15.VnS());
+
+  // Ld2d(z31.VnD(), z0.VnD(), ...)
+  __ Dup(z10.VnD(), 0);
+  __ Dup(z11.VnD(), 0);
+  __ Mov(z10.VnD(), p4.Merging(), z31.VnD());
+  __ Mov(z11.VnD(), p4.Merging(), z0.VnD());
+
+  // Wrap around from z31 to z0, moving the results elsewhere to avoid overlap.
+  __ Ld2b(z31.VnB(), z0.VnB(), p7.Zeroing(), SVEMemOperand(x0, x1));
+  __ Mov(z20, z31);
+  __ Mov(z21, z0);
+
+  __ Ld2h(z22.VnH(), z23.VnH(), p6.Zeroing(), SVEMemOperand(x0, x2, LSL, 1));
+  __ Ld2w(z24.VnS(), z25.VnS(), p5.Zeroing(), SVEMemOperand(x0, x3, LSL, 2));
+  __ Ld2d(z26.VnD(), z27.VnD(), p4.Zeroing(), SVEMemOperand(x0, x4, LSL, 3));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint8_t* expected = new uint8_t[data_size];
+    memset(expected, 0, data_size);
+    uint8_t* middle = &expected[data_size / 2];
+
+    int vl_b = vl / kBRegSizeInBytes;
+    int vl_h = vl / kHRegSizeInBytes;
+    int vl_s = vl / kSRegSizeInBytes;
+    int vl_d = vl / kDRegSizeInBytes;
+
+    int reg_count = 2;
+
+    // st2b { z10.b, z11.b }, SVE_MUL4
+    int vl_b_mul4 = vl_b - (vl_b % 4);
+    for (int i = 0; i < vl_b_mul4; i++) {
+      uint8_t lane0 = -4 + (11 * i);
+      uint8_t lane1 = -5 + (11 * i);
+      MemoryWrite(middle, 0, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, 0, (i * reg_count) + 1, lane1);
+    }
+
+    // st2h { z12.h, z13.h }, SVE_VL16
+    if (vl_h >= 16) {
+      for (int i = 0; i < 16; i++) {
+        int64_t offset = (3 << kHRegSizeInBytesLog2) * vl;
+        uint16_t lane0 = 6 - (2 * i);
+        uint16_t lane1 = 7 - (2 * i);
+        MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+        MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+      }
+    }
+
+    // st2w { z14.s, z15.s }, ((i % 5) == 0)
+    for (int i = 0; i < vl_s; i++) {
+      if ((i % 5) == 0) {
+        int64_t offset = -(3 << kSRegSizeInBytesLog2) * vl;
+        uint32_t lane0 = -7 + (3 * i);
+        uint32_t lane1 = -8 + (3 * i);
+        MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+        MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+      }
+    }
+
+    // st2d { z31.b, z0.b }, SVE_MUL3
+    int vl_d_mul3 = vl_d - (vl_d % 3);
+    for (int i = 0; i < vl_d_mul3; i++) {
+      int64_t offset = (1 << kDRegSizeInBytesLog2) * vl;
+      uint64_t lane0 = 32 - (11 * i);
+      uint64_t lane1 = 33 - (11 * i);
+      MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+    }
+
+    ASSERT_EQUAL_MEMORY(expected, data, data_size, middle - expected);
+
+    // Check that we loaded back the expected values.
+
+    // st2b/ld2b
+    ASSERT_EQUAL_SVE(z4, z20);
+    ASSERT_EQUAL_SVE(z5, z21);
+
+    // st2h/ld2h
+    ASSERT_EQUAL_SVE(z6, z22);
+    ASSERT_EQUAL_SVE(z7, z23);
+
+    // st2w/ld2w
+    ASSERT_EQUAL_SVE(z8, z24);
+    ASSERT_EQUAL_SVE(z9, z25);
+
+    // st2d/ld2d
+    ASSERT_EQUAL_SVE(z10, z26);
+    ASSERT_EQUAL_SVE(z11, z27);
+
+    delete[] expected;
+  }
+  delete[] data;
+}
+
+TEST_SVE(sve_ld3_st3_scalar_plus_imm) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int vl = config->sve_vl_in_bytes();
+
+  // The immediate can address [-24, 21] times the VL, so allocate enough space
+  // to exceed that in both directions.
+  int data_size = vl * 128;
+
+  uint8_t* data = new uint8_t[data_size];
+  memset(data, 0, data_size);
+
+  // Set the base half-way through the buffer so we can use negative indeces.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+
+  // We can test ld3 by comparing the values loaded with the values stored.
+  // There are two complications:
+  //  - Loads have zeroing predication, so we have to clear the inactive
+  //    elements on our reference.
+  //  - We want to test both loads and stores that span { z31, z0 }, so we have
+  //    to move some values around.
+  //
+  // Registers z4-z15 will hold as-stored values (with inactive elements
+  // cleared). Registers z16-z27 will hold the values that were loaded.
+
+  __ Index(z10.VnB(), 1, -3);
+  __ Index(z11.VnB(), 2, -3);
+  __ Index(z12.VnB(), 3, -3);
+  __ Ptrue(p0.VnB());
+  __ St3b(z10.VnB(), z11.VnB(), z12.VnB(), p0, SVEMemOperand(x0));
+  // Save the stored values for ld3 tests.
+  __ Dup(z4.VnB(), 0);
+  __ Dup(z5.VnB(), 0);
+  __ Dup(z6.VnB(), 0);
+  __ Mov(z4.VnB(), p0.Merging(), z10.VnB());
+  __ Mov(z5.VnB(), p0.Merging(), z11.VnB());
+  __ Mov(z6.VnB(), p0.Merging(), z12.VnB());
+
+  // Wrap around from z31 to z0.
+  __ Index(z31.VnH(), -2, 5);
+  __ Index(z0.VnH(), -3, 5);
+  __ Index(z1.VnH(), -4, 5);
+  __ Ptrue(p1.VnH(), SVE_MUL3);
+  __ St3h(z31.VnH(), z0.VnH(), z1.VnH(), p1, SVEMemOperand(x0, 9, SVE_MUL_VL));
+  // Save the stored values for ld3 tests.
+  __ Dup(z7.VnH(), 0);
+  __ Dup(z8.VnH(), 0);
+  __ Dup(z9.VnH(), 0);
+  __ Mov(z7.VnH(), p1.Merging(), z31.VnH());
+  __ Mov(z8.VnH(), p1.Merging(), z0.VnH());
+  __ Mov(z9.VnH(), p1.Merging(), z1.VnH());
+
+  __ Index(z30.VnS(), 3, -7);
+  __ Index(z31.VnS(), 4, -7);
+  __ Index(z0.VnS(), 5, -7);
+  __ Ptrue(p2.VnS(), SVE_POW2);
+  __ St3w(z30.VnS(),
+          z31.VnS(),
+          z0.VnS(),
+          p2,
+          SVEMemOperand(x0, -12, SVE_MUL_VL));
+  // Save the stored values for ld3 tests.
+  __ Dup(z10.VnS(), 0);
+  __ Dup(z11.VnS(), 0);
+  __ Dup(z12.VnS(), 0);
+  __ Mov(z10.VnS(), p2.Merging(), z30.VnS());
+  __ Mov(z11.VnS(), p2.Merging(), z31.VnS());
+  __ Mov(z12.VnS(), p2.Merging(), z0.VnS());
+
+  __ Index(z0.VnD(), -7, 3);
+  __ Index(z1.VnD(), -8, 3);
+  __ Index(z2.VnD(), -9, 3);
+  // Sparse predication, including some irrelevant bits (0xee). To make the
+  // results easy to check, activate each lane <n> where n is a multiple of 5.
+  Initialise(&masm,
+             p3,
+             0xeee10000000001ee,
+             0xeeeeeee100000000,
+             0x01eeeeeeeee10000,
+             0x000001eeeeeeeee1);
+  __ St3d(z0.VnD(), z1.VnD(), z2.VnD(), p3, SVEMemOperand(x0, 15, SVE_MUL_VL));
+  // Save the stored values for ld3 tests.
+  __ Dup(z13.VnD(), 0);
+  __ Dup(z14.VnD(), 0);
+  __ Dup(z15.VnD(), 0);
+  __ Mov(z13.VnD(), p3.Merging(), z0.VnD());
+  __ Mov(z14.VnD(), p3.Merging(), z1.VnD());
+  __ Mov(z15.VnD(), p3.Merging(), z2.VnD());
+
+  // Corresponding loads.
+  // Wrap around from z31 to z0, moving the results elsewhere to avoid overlap.
+  __ Ld3b(z31.VnB(), z0.VnB(), z1.VnB(), p0.Zeroing(), SVEMemOperand(x0));
+  __ Mov(z16, z31);
+  __ Mov(z17, z0);
+  __ Mov(z18, z1);
+  __ Ld3h(z30.VnH(),
+          z31.VnH(),
+          z0.VnH(),
+          p1.Zeroing(),
+          SVEMemOperand(x0, 9, SVE_MUL_VL));
+  __ Mov(z19, z30);
+  __ Mov(z20, z31);
+  __ Mov(z21, z0);
+  __ Ld3w(z22.VnS(),
+          z23.VnS(),
+          z24.VnS(),
+          p2.Zeroing(),
+          SVEMemOperand(x0, -12, SVE_MUL_VL));
+  __ Ld3d(z25.VnD(),
+          z26.VnD(),
+          z27.VnD(),
+          p3.Zeroing(),
+          SVEMemOperand(x0, 15, SVE_MUL_VL));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint8_t* expected = new uint8_t[data_size];
+    memset(expected, 0, data_size);
+    uint8_t* middle = &expected[data_size / 2];
+
+    int vl_b = vl / kBRegSizeInBytes;
+    int vl_h = vl / kHRegSizeInBytes;
+    int vl_s = vl / kSRegSizeInBytes;
+    int vl_d = vl / kDRegSizeInBytes;
+
+    int reg_count = 3;
+
+    // st3b { z10.b, z11.b, z12.b }, SVE_ALL
+    for (int i = 0; i < vl_b; i++) {
+      uint8_t lane0 = 1 - (3 * i);
+      uint8_t lane1 = 2 - (3 * i);
+      uint8_t lane2 = 3 - (3 * i);
+      MemoryWrite(middle, 0, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, 0, (i * reg_count) + 1, lane1);
+      MemoryWrite(middle, 0, (i * reg_count) + 2, lane2);
+    }
+
+    // st3h { z31.h, z0.h, z1.h }, SVE_MUL3
+    int vl_h_mul3 = vl_h - (vl_h % 3);
+    for (int i = 0; i < vl_h_mul3; i++) {
+      int64_t offset = 9 * vl;
+      uint16_t lane0 = -2 + (5 * i);
+      uint16_t lane1 = -3 + (5 * i);
+      uint16_t lane2 = -4 + (5 * i);
+      MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+      MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+    }
+
+    // st3w { z30.s, z31.s, z0.s }, SVE_POW2
+    int vl_s_pow2 = 1 << HighestSetBitPosition(vl_s);
+    for (int i = 0; i < vl_s_pow2; i++) {
+      int64_t offset = -12 * vl;
+      uint32_t lane0 = 3 - (7 * i);
+      uint32_t lane1 = 4 - (7 * i);
+      uint32_t lane2 = 5 - (7 * i);
+      MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+      MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+    }
+
+    // st3d { z0.d, z1.d, z2.d }, ((i % 5) == 0)
+    for (int i = 0; i < vl_d; i++) {
+      if ((i % 5) == 0) {
+        int64_t offset = 15 * vl;
+        uint64_t lane0 = -7 + (3 * i);
+        uint64_t lane1 = -8 + (3 * i);
+        uint64_t lane2 = -9 + (3 * i);
+        MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+        MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+        MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+      }
+    }
+
+    ASSERT_EQUAL_MEMORY(expected, data, data_size, middle - expected);
+
+    // Check that we loaded back the expected values.
+
+    // st3b/ld3b
+    ASSERT_EQUAL_SVE(z4, z16);
+    ASSERT_EQUAL_SVE(z5, z17);
+    ASSERT_EQUAL_SVE(z6, z18);
+
+    // st3h/ld3h
+    ASSERT_EQUAL_SVE(z7, z19);
+    ASSERT_EQUAL_SVE(z8, z20);
+    ASSERT_EQUAL_SVE(z9, z21);
+
+    // st3w/ld3w
+    ASSERT_EQUAL_SVE(z10, z22);
+    ASSERT_EQUAL_SVE(z11, z23);
+    ASSERT_EQUAL_SVE(z12, z24);
+
+    // st3d/ld3d
+    ASSERT_EQUAL_SVE(z13, z25);
+    ASSERT_EQUAL_SVE(z14, z26);
+    ASSERT_EQUAL_SVE(z15, z27);
+
+    delete[] expected;
+  }
+  delete[] data;
+}
+
+TEST_SVE(sve_ld3_st3_scalar_plus_scalar) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int vl = config->sve_vl_in_bytes();
+
+  // Allocate plenty of space to enable indexing in both directions.
+  int data_size = vl * 128;
+
+  uint8_t* data = new uint8_t[data_size];
+  memset(data, 0, data_size);
+
+  // Set the base half-way through the buffer so we can use negative indeces.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+
+  // We can test ld3 by comparing the values loaded with the values stored.
+  // There are two complications:
+  //  - Loads have zeroing predication, so we have to clear the inactive
+  //    elements on our reference.
+  //  - We want to test both loads and stores that span { z31, z0 }, so we have
+  //    to move some values around.
+  //
+  // Registers z4-z15 will hold as-stored values (with inactive elements
+  // cleared). Registers z16-z27 will hold the values that were loaded.
+
+  __ Index(z10.VnB(), -4, 11);
+  __ Index(z11.VnB(), -5, 11);
+  __ Index(z12.VnB(), -6, 11);
+  __ Ptrue(p7.VnB(), SVE_MUL4);
+  __ Rdvl(x1, -1);  // Make offsets VL-dependent so we can avoid overlap.
+  __ St3b(z10.VnB(), z11.VnB(), z12.VnB(), p7, SVEMemOperand(x0, x1, LSL, 0));
+  // Save the stored values for ld3 tests.
+  __ Dup(z4.VnB(), 0);
+  __ Dup(z5.VnB(), 0);
+  __ Dup(z6.VnB(), 0);
+  __ Mov(z4.VnB(), p7.Merging(), z10.VnB());
+  __ Mov(z5.VnB(), p7.Merging(), z11.VnB());
+  __ Mov(z6.VnB(), p7.Merging(), z12.VnB());
+
+  __ Index(z13.VnH(), 6, -2);
+  __ Index(z14.VnH(), 7, -2);
+  __ Index(z15.VnH(), 8, -2);
+  __ Ptrue(p6.VnH(), SVE_VL16);
+  __ Rdvl(x2, 5);  // (5 * vl) << 1 = 10 * vl
+  __ St3h(z13.VnH(), z14.VnH(), z15.VnH(), p6, SVEMemOperand(x0, x2, LSL, 1));
+  // Save the stored values for ld3 tests.
+  __ Dup(z7.VnH(), 0);
+  __ Dup(z8.VnH(), 0);
+  __ Dup(z9.VnH(), 0);
+  __ Mov(z7.VnH(), p6.Merging(), z13.VnH());
+  __ Mov(z8.VnH(), p6.Merging(), z14.VnH());
+  __ Mov(z9.VnH(), p6.Merging(), z15.VnH());
+
+  // Wrap around from z31 to z0.
+  __ Index(z30.VnS(), -7, 3);
+  __ Index(z31.VnS(), -8, 3);
+  __ Index(z0.VnS(), -9, 3);
+  // Sparse predication, including some irrelevant bits (0xe). To make the
+  // results easy to check, activate each lane <n> where n is a multiple of 5.
+  Initialise(&masm,
+             p5,
+             0xeee1000010000100,
+             0x001eeee100001000,
+             0x0100001eeee10000,
+             0x10000100001eeee1);
+  __ Rdvl(x3, -5);  // -(5 * vl) << 2 = -20 * vl
+  __ St3w(z30.VnS(), z31.VnS(), z0.VnS(), p5, SVEMemOperand(x0, x3, LSL, 2));
+  // Save the stored values for ld3 tests.
+  __ Dup(z10.VnS(), 0);
+  __ Dup(z11.VnS(), 0);
+  __ Dup(z12.VnS(), 0);
+  __ Mov(z10.VnS(), p5.Merging(), z30.VnS());
+  __ Mov(z11.VnS(), p5.Merging(), z31.VnS());
+  __ Mov(z12.VnS(), p5.Merging(), z0.VnS());
+
+  __ Index(z31.VnD(), 32, -11);
+  __ Index(z0.VnD(), 33, -11);
+  __ Index(z1.VnD(), 34, -11);
+  __ Ptrue(p4.VnD(), SVE_MUL3);
+  __ Rdvl(x4, -1);  // -(1 * vl) << 3 = -8 * vl
+  __ St3d(z31.VnD(), z0.VnD(), z1.VnD(), p4, SVEMemOperand(x0, x4, LSL, 3));
+  // Save the stored values for ld3 tests.
+  __ Dup(z13.VnD(), 0);
+  __ Dup(z14.VnD(), 0);
+  __ Dup(z15.VnD(), 0);
+  __ Mov(z13.VnD(), p4.Merging(), z31.VnD());
+  __ Mov(z14.VnD(), p4.Merging(), z0.VnD());
+  __ Mov(z15.VnD(), p4.Merging(), z1.VnD());
+
+  // Corresponding loads.
+  // Wrap around from z31 to z0, moving the results elsewhere to avoid overlap.
+  __ Ld3b(z31.VnB(),
+          z0.VnB(),
+          z1.VnB(),
+          p7.Zeroing(),
+          SVEMemOperand(x0, x1, LSL, 0));
+  __ Mov(z16, z31);
+  __ Mov(z17, z0);
+  __ Mov(z18, z1);
+  __ Ld3h(z30.VnH(),
+          z31.VnH(),
+          z0.VnH(),
+          p6.Zeroing(),
+          SVEMemOperand(x0, x2, LSL, 1));
+  __ Mov(z19, z30);
+  __ Mov(z20, z31);
+  __ Mov(z21, z0);
+  __ Ld3w(z22.VnS(),
+          z23.VnS(),
+          z24.VnS(),
+          p5.Zeroing(),
+          SVEMemOperand(x0, x3, LSL, 2));
+  __ Ld3d(z25.VnD(),
+          z26.VnD(),
+          z27.VnD(),
+          p4.Zeroing(),
+          SVEMemOperand(x0, x4, LSL, 3));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint8_t* expected = new uint8_t[data_size];
+    memset(expected, 0, data_size);
+    uint8_t* middle = &expected[data_size / 2];
+
+    int vl_b = vl / kBRegSizeInBytes;
+    int vl_h = vl / kHRegSizeInBytes;
+    int vl_s = vl / kSRegSizeInBytes;
+    int vl_d = vl / kDRegSizeInBytes;
+
+    int reg_count = 3;
+
+    // st3b { z10.b, z11.b, z12.b }, SVE_MUL4
+    int vl_b_mul4 = vl_b - (vl_b % 4);
+    for (int i = 0; i < vl_b_mul4; i++) {
+      int64_t offset = -(1 << kBRegSizeInBytesLog2) * vl;
+      uint8_t lane0 = -4 + (11 * i);
+      uint8_t lane1 = -5 + (11 * i);
+      uint8_t lane2 = -6 + (11 * i);
+      MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+      MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+    }
+
+    // st3h { z13.h, z14.h, z15.h }, SVE_VL16
+    if (vl_h >= 16) {
+      for (int i = 0; i < 16; i++) {
+        int64_t offset = (5 << kHRegSizeInBytesLog2) * vl;
+        uint16_t lane0 = 6 - (2 * i);
+        uint16_t lane1 = 7 - (2 * i);
+        uint16_t lane2 = 8 - (2 * i);
+        MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+        MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+        MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+      }
+    }
+
+    // st3w { z30.s, z31.s, z0.s }, ((i % 5) == 0)
+    for (int i = 0; i < vl_s; i++) {
+      if ((i % 5) == 0) {
+        int64_t offset = -(5 << kSRegSizeInBytesLog2) * vl;
+        uint32_t lane0 = -7 + (3 * i);
+        uint32_t lane1 = -8 + (3 * i);
+        uint32_t lane2 = -9 + (3 * i);
+        MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+        MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+        MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+      }
+    }
+
+    // st3d { z31.d, z0.d, z1.d }, SVE_MUL3
+    int vl_d_mul3 = vl_d - (vl_d % 3);
+    for (int i = 0; i < vl_d_mul3; i++) {
+      int64_t offset = -(1 << kDRegSizeInBytesLog2) * vl;
+      uint64_t lane0 = 32 - (11 * i);
+      uint64_t lane1 = 33 - (11 * i);
+      uint64_t lane2 = 34 - (11 * i);
+      MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+      MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+    }
+
+    ASSERT_EQUAL_MEMORY(expected, data, data_size, middle - expected);
+
+    // Check that we loaded back the expected values.
+
+    // st3b/ld3b
+    ASSERT_EQUAL_SVE(z4, z16);
+    ASSERT_EQUAL_SVE(z5, z17);
+    ASSERT_EQUAL_SVE(z6, z18);
+
+    // st3h/ld3h
+    ASSERT_EQUAL_SVE(z7, z19);
+    ASSERT_EQUAL_SVE(z8, z20);
+    ASSERT_EQUAL_SVE(z9, z21);
+
+    // st3w/ld3w
+    ASSERT_EQUAL_SVE(z10, z22);
+    ASSERT_EQUAL_SVE(z11, z23);
+    ASSERT_EQUAL_SVE(z12, z24);
+
+    // st3d/ld3d
+    ASSERT_EQUAL_SVE(z13, z25);
+    ASSERT_EQUAL_SVE(z14, z26);
+    ASSERT_EQUAL_SVE(z15, z27);
+
+    delete[] expected;
+  }
+  delete[] data;
+}
+
+TEST_SVE(sve_ld4_st4_scalar_plus_imm) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int vl = config->sve_vl_in_bytes();
+
+  // The immediate can address [-24, 21] times the VL, so allocate enough space
+  // to exceed that in both directions.
+  int data_size = vl * 128;
+
+  uint8_t* data = new uint8_t[data_size];
+  memset(data, 0, data_size);
+
+  // Set the base half-way through the buffer so we can use negative indeces.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+
+  // We can test ld4 by comparing the values loaded with the values stored.
+  // There are two complications:
+  //  - Loads have zeroing predication, so we have to clear the inactive
+  //    elements on our reference.
+  //  - We want to test both loads and stores that span { z31, z0 }, so we have
+  //    to move some values around.
+  //
+  // Registers z3-z18 will hold as-stored values (with inactive elements
+  // cleared). Registers z19-z31 and z0-z2 will hold the values that were
+  // loaded.
+
+  __ Index(z10.VnB(), 1, -7);
+  __ Index(z11.VnB(), 2, -7);
+  __ Index(z12.VnB(), 3, -7);
+  __ Index(z13.VnB(), 4, -7);
+  __ Ptrue(p0.VnB());
+  __ St4b(z10.VnB(), z11.VnB(), z12.VnB(), z13.VnB(), p0, SVEMemOperand(x0));
+  // Save the stored values for ld4 tests.
+  __ Dup(z3.VnB(), 0);
+  __ Dup(z4.VnB(), 0);
+  __ Dup(z5.VnB(), 0);
+  __ Dup(z6.VnB(), 0);
+  __ Mov(z3.VnB(), p0.Merging(), z10.VnB());
+  __ Mov(z4.VnB(), p0.Merging(), z11.VnB());
+  __ Mov(z5.VnB(), p0.Merging(), z12.VnB());
+  __ Mov(z6.VnB(), p0.Merging(), z13.VnB());
+
+  // Wrap around from z31 to z0.
+  __ Index(z31.VnH(), -2, 5);
+  __ Index(z0.VnH(), -3, 5);
+  __ Index(z1.VnH(), -4, 5);
+  __ Index(z2.VnH(), -5, 5);
+  __ Ptrue(p1.VnH(), SVE_MUL3);
+  __ St4h(z31.VnH(),
+          z0.VnH(),
+          z1.VnH(),
+          z2.VnH(),
+          p1,
+          SVEMemOperand(x0, 4, SVE_MUL_VL));
+  // Save the stored values for ld4 tests.
+  __ Dup(z7.VnH(), 0);
+  __ Dup(z8.VnH(), 0);
+  __ Dup(z9.VnH(), 0);
+  __ Dup(z10.VnH(), 0);
+  __ Mov(z7.VnH(), p1.Merging(), z31.VnH());
+  __ Mov(z8.VnH(), p1.Merging(), z0.VnH());
+  __ Mov(z9.VnH(), p1.Merging(), z1.VnH());
+  __ Mov(z10.VnH(), p1.Merging(), z2.VnH());
+
+  // Wrap around from z31 to z0.
+  __ Index(z29.VnS(), 2, -7);
+  __ Index(z30.VnS(), 3, -7);
+  __ Index(z31.VnS(), 4, -7);
+  __ Index(z0.VnS(), 5, -7);
+  __ Ptrue(p2.VnS(), SVE_POW2);
+  __ St4w(z29.VnS(),
+          z30.VnS(),
+          z31.VnS(),
+          z0.VnS(),
+          p2,
+          SVEMemOperand(x0, -12, SVE_MUL_VL));
+  // Save the stored values for ld4 tests.
+  __ Dup(z11.VnS(), 0);
+  __ Dup(z12.VnS(), 0);
+  __ Dup(z13.VnS(), 0);
+  __ Dup(z14.VnS(), 0);
+  __ Mov(z11.VnS(), p2.Merging(), z29.VnS());
+  __ Mov(z12.VnS(), p2.Merging(), z30.VnS());
+  __ Mov(z13.VnS(), p2.Merging(), z31.VnS());
+  __ Mov(z14.VnS(), p2.Merging(), z0.VnS());
+
+  __ Index(z20.VnD(), -7, 8);
+  __ Index(z21.VnD(), -8, 8);
+  __ Index(z22.VnD(), -9, 8);
+  __ Index(z23.VnD(), -10, 8);
+  // Sparse predication, including some irrelevant bits (0xee). To make the
+  // results easy to check, activate each lane <n> where n is a multiple of 5.
+  Initialise(&masm,
+             p3,
+             0xeee10000000001ee,
+             0xeeeeeee100000000,
+             0x01eeeeeeeee10000,
+             0x000001eeeeeeeee1);
+  __ St4d(z20.VnD(),
+          z21.VnD(),
+          z22.VnD(),
+          z23.VnD(),
+          p3,
+          SVEMemOperand(x0, 16, SVE_MUL_VL));
+  // Save the stored values for ld4 tests.
+  __ Dup(z15.VnD(), 0);
+  __ Dup(z16.VnD(), 0);
+  __ Dup(z17.VnD(), 0);
+  __ Dup(z18.VnD(), 0);
+  __ Mov(z15.VnD(), p3.Merging(), z20.VnD());
+  __ Mov(z16.VnD(), p3.Merging(), z21.VnD());
+  __ Mov(z17.VnD(), p3.Merging(), z22.VnD());
+  __ Mov(z18.VnD(), p3.Merging(), z23.VnD());
+
+  // Corresponding loads.
+  // Wrap around from z31 to z0, moving the results elsewhere to avoid overlap.
+  __ Ld4b(z31.VnB(),
+          z0.VnB(),
+          z1.VnB(),
+          z2.VnB(),
+          p0.Zeroing(),
+          SVEMemOperand(x0));
+  __ Mov(z19, z31);
+  __ Mov(z20, z0);
+  __ Mov(z21, z1);
+  __ Mov(z22, z2);
+  __ Ld4h(z23.VnH(),
+          z24.VnH(),
+          z25.VnH(),
+          z26.VnH(),
+          p1.Zeroing(),
+          SVEMemOperand(x0, 4, SVE_MUL_VL));
+  __ Ld4w(z27.VnS(),
+          z28.VnS(),
+          z29.VnS(),
+          z30.VnS(),
+          p2.Zeroing(),
+          SVEMemOperand(x0, -12, SVE_MUL_VL));
+  // Wrap around from z31 to z0.
+  __ Ld4d(z31.VnD(),
+          z0.VnD(),
+          z1.VnD(),
+          z2.VnD(),
+          p3.Zeroing(),
+          SVEMemOperand(x0, 16, SVE_MUL_VL));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint8_t* expected = new uint8_t[data_size];
+    memset(expected, 0, data_size);
+    uint8_t* middle = &expected[data_size / 2];
+
+    int vl_b = vl / kBRegSizeInBytes;
+    int vl_h = vl / kHRegSizeInBytes;
+    int vl_s = vl / kSRegSizeInBytes;
+    int vl_d = vl / kDRegSizeInBytes;
+
+    int reg_count = 4;
+
+    // st2b { z10.b, z11.b, z12.b, z13.b }, SVE_ALL
+    for (int i = 0; i < vl_b; i++) {
+      uint8_t lane0 = 1 - (7 * i);
+      uint8_t lane1 = 2 - (7 * i);
+      uint8_t lane2 = 3 - (7 * i);
+      uint8_t lane3 = 4 - (7 * i);
+      MemoryWrite(middle, 0, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, 0, (i * reg_count) + 1, lane1);
+      MemoryWrite(middle, 0, (i * reg_count) + 2, lane2);
+      MemoryWrite(middle, 0, (i * reg_count) + 3, lane3);
+    }
+
+    // st4h { z31.h, z0.h, z1.h, z2.h }, SVE_MUL3
+    int vl_h_mul3 = vl_h - (vl_h % 3);
+    for (int i = 0; i < vl_h_mul3; i++) {
+      int64_t offset = 4 * vl;
+      uint16_t lane0 = -2 + (5 * i);
+      uint16_t lane1 = -3 + (5 * i);
+      uint16_t lane2 = -4 + (5 * i);
+      uint16_t lane3 = -5 + (5 * i);
+      MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+      MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+      MemoryWrite(middle, offset, (i * reg_count) + 3, lane3);
+    }
+
+    // st4w { z29.s, z30.s, z31.s, z0.s }, SVE_POW2
+    int vl_s_pow2 = 1 << HighestSetBitPosition(vl_s);
+    for (int i = 0; i < vl_s_pow2; i++) {
+      int64_t offset = -12 * vl;
+      uint32_t lane0 = 2 - (7 * i);
+      uint32_t lane1 = 3 - (7 * i);
+      uint32_t lane2 = 4 - (7 * i);
+      uint32_t lane3 = 5 - (7 * i);
+      MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+      MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+      MemoryWrite(middle, offset, (i * reg_count) + 3, lane3);
+    }
+
+    // st4d { z20.d, z21.d, z22.d, z23.d }, ((i % 5) == 0)
+    for (int i = 0; i < vl_d; i++) {
+      if ((i % 5) == 0) {
+        int64_t offset = 16 * vl;
+        uint64_t lane0 = -7 + (8 * i);
+        uint64_t lane1 = -8 + (8 * i);
+        uint64_t lane2 = -9 + (8 * i);
+        uint64_t lane3 = -10 + (8 * i);
+        MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+        MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+        MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+        MemoryWrite(middle, offset, (i * reg_count) + 3, lane3);
+      }
+    }
+
+    ASSERT_EQUAL_MEMORY(expected, data, data_size, middle - expected);
+
+    // Check that we loaded back the expected values.
+
+    // st4b/ld4b
+    ASSERT_EQUAL_SVE(z3, z19);
+    ASSERT_EQUAL_SVE(z4, z20);
+    ASSERT_EQUAL_SVE(z5, z21);
+    ASSERT_EQUAL_SVE(z6, z22);
+
+    // st4h/ld4h
+    ASSERT_EQUAL_SVE(z7, z23);
+    ASSERT_EQUAL_SVE(z8, z24);
+    ASSERT_EQUAL_SVE(z9, z25);
+    ASSERT_EQUAL_SVE(z10, z26);
+
+    // st4w/ld4w
+    ASSERT_EQUAL_SVE(z11, z27);
+    ASSERT_EQUAL_SVE(z12, z28);
+    ASSERT_EQUAL_SVE(z13, z29);
+    ASSERT_EQUAL_SVE(z14, z30);
+
+    // st4d/ld4d
+    ASSERT_EQUAL_SVE(z15, z31);
+    ASSERT_EQUAL_SVE(z16, z0);
+    ASSERT_EQUAL_SVE(z17, z1);
+    ASSERT_EQUAL_SVE(z18, z2);
+
+    delete[] expected;
+  }
+  delete[] data;
+}
+
+TEST_SVE(sve_ld4_st4_scalar_plus_scalar) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int vl = config->sve_vl_in_bytes();
+
+  // Allocate plenty of space to enable indexing in both directions.
+  int data_size = vl * 128;
+
+  uint8_t* data = new uint8_t[data_size];
+  memset(data, 0, data_size);
+
+  // Set the base half-way through the buffer so we can use negative indeces.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+
+  // We can test ld4 by comparing the values loaded with the values stored.
+  // There are two complications:
+  //  - Loads have zeroing predication, so we have to clear the inactive
+  //    elements on our reference.
+  //  - We want to test both loads and stores that span { z31, z0 }, so we have
+  //    to move some values around.
+  //
+  // Registers z3-z18 will hold as-stored values (with inactive elements
+  // cleared). Registers z19-z31 and z0-z2 will hold the values that were
+  // loaded.
+
+  __ Index(z19.VnB(), -4, 11);
+  __ Index(z20.VnB(), -5, 11);
+  __ Index(z21.VnB(), -6, 11);
+  __ Index(z22.VnB(), -7, 11);
+  __ Ptrue(p7.VnB(), SVE_MUL4);
+  __ Rdvl(x1, -1);  // Make offsets VL-dependent so we can avoid overlap.
+  __ St4b(z19.VnB(),
+          z20.VnB(),
+          z21.VnB(),
+          z22.VnB(),
+          p7,
+          SVEMemOperand(x0, x1, LSL, 0));
+  // Save the stored values for ld4 tests.
+  __ Dup(z3.VnB(), 0);
+  __ Dup(z4.VnB(), 0);
+  __ Dup(z5.VnB(), 0);
+  __ Dup(z6.VnB(), 0);
+  __ Mov(z3.VnB(), p7.Merging(), z19.VnB());
+  __ Mov(z4.VnB(), p7.Merging(), z20.VnB());
+  __ Mov(z5.VnB(), p7.Merging(), z21.VnB());
+  __ Mov(z6.VnB(), p7.Merging(), z22.VnB());
+
+  __ Index(z23.VnH(), 6, -2);
+  __ Index(z24.VnH(), 7, -2);
+  __ Index(z25.VnH(), 8, -2);
+  __ Index(z26.VnH(), 9, -2);
+  __ Ptrue(p6.VnH(), SVE_VL16);
+  __ Rdvl(x2, 7);  // (7 * vl) << 1 = 14 * vl
+  __ St4h(z23.VnH(),
+          z24.VnH(),
+          z25.VnH(),
+          z26.VnH(),
+          p6,
+          SVEMemOperand(x0, x2, LSL, 1));
+  // Save the stored values for ld4 tests.
+  __ Dup(z7.VnH(), 0);
+  __ Dup(z8.VnH(), 0);
+  __ Dup(z9.VnH(), 0);
+  __ Dup(z10.VnH(), 0);
+  __ Mov(z7.VnH(), p6.Merging(), z23.VnH());
+  __ Mov(z8.VnH(), p6.Merging(), z24.VnH());
+  __ Mov(z9.VnH(), p6.Merging(), z25.VnH());
+  __ Mov(z10.VnH(), p6.Merging(), z26.VnH());
+
+  // Wrap around from z31 to z0.
+  __ Index(z29.VnS(), -6, 7);
+  __ Index(z30.VnS(), -7, 7);
+  __ Index(z31.VnS(), -8, 7);
+  __ Index(z0.VnS(), -9, 7);
+  // Sparse predication, including some irrelevant bits (0xe). To make the
+  // results easy to check, activate each lane <n> where n is a multiple of 5.
+  Initialise(&masm,
+             p5,
+             0xeee1000010000100,
+             0x001eeee100001000,
+             0x0100001eeee10000,
+             0x10000100001eeee1);
+  __ Rdvl(x3, -5);  // -(5 * vl) << 2 = -20 * vl
+  __ St4w(z29.VnS(),
+          z30.VnS(),
+          z31.VnS(),
+          z0.VnS(),
+          p5,
+          SVEMemOperand(x0, x3, LSL, 2));
+  // Save the stored values for ld4 tests.
+  __ Dup(z11.VnS(), 0);
+  __ Dup(z12.VnS(), 0);
+  __ Dup(z13.VnS(), 0);
+  __ Dup(z14.VnS(), 0);
+  __ Mov(z11.VnS(), p5.Merging(), z29.VnS());
+  __ Mov(z12.VnS(), p5.Merging(), z30.VnS());
+  __ Mov(z13.VnS(), p5.Merging(), z31.VnS());
+  __ Mov(z14.VnS(), p5.Merging(), z0.VnS());
+
+  __ Index(z31.VnD(), 32, -11);
+  __ Index(z0.VnD(), 33, -11);
+  __ Index(z1.VnD(), 34, -11);
+  __ Index(z2.VnD(), 35, -11);
+  __ Ptrue(p4.VnD(), SVE_MUL3);
+  __ Rdvl(x4, -1);  // -(1 * vl) << 3 = -8 *vl
+  __ St4d(z31.VnD(),
+          z0.VnD(),
+          z1.VnD(),
+          z2.VnD(),
+          p4,
+          SVEMemOperand(x0, x4, LSL, 3));
+  // Save the stored values for ld4 tests.
+  __ Dup(z15.VnD(), 0);
+  __ Dup(z16.VnD(), 0);
+  __ Dup(z17.VnD(), 0);
+  __ Dup(z18.VnD(), 0);
+  __ Mov(z15.VnD(), p4.Merging(), z31.VnD());
+  __ Mov(z16.VnD(), p4.Merging(), z0.VnD());
+  __ Mov(z17.VnD(), p4.Merging(), z1.VnD());
+  __ Mov(z18.VnD(), p4.Merging(), z2.VnD());
+
+  // Corresponding loads.
+  // Wrap around from z31 to z0, moving the results elsewhere to avoid overlap.
+  __ Ld4b(z31.VnB(),
+          z0.VnB(),
+          z1.VnB(),
+          z2.VnB(),
+          p7.Zeroing(),
+          SVEMemOperand(x0, x1, LSL, 0));
+  __ Mov(z19, z31);
+  __ Mov(z20, z0);
+  __ Mov(z21, z1);
+  __ Mov(z22, z2);
+  __ Ld4h(z23.VnH(),
+          z24.VnH(),
+          z25.VnH(),
+          z26.VnH(),
+          p6.Zeroing(),
+          SVEMemOperand(x0, x2, LSL, 1));
+  __ Ld4w(z27.VnS(),
+          z28.VnS(),
+          z29.VnS(),
+          z30.VnS(),
+          p5.Zeroing(),
+          SVEMemOperand(x0, x3, LSL, 2));
+  // Wrap around from z31 to z0.
+  __ Ld4d(z31.VnD(),
+          z0.VnD(),
+          z1.VnD(),
+          z2.VnD(),
+          p4.Zeroing(),
+          SVEMemOperand(x0, x4, LSL, 3));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint8_t* expected = new uint8_t[data_size];
+    memset(expected, 0, data_size);
+    uint8_t* middle = &expected[data_size / 2];
+
+    int vl_b = vl / kBRegSizeInBytes;
+    int vl_h = vl / kHRegSizeInBytes;
+    int vl_s = vl / kSRegSizeInBytes;
+    int vl_d = vl / kDRegSizeInBytes;
+
+    int reg_count = 4;
+
+    // st4b { z19.b, z20.b, z21.b, z22.b }, SVE_MUL4
+    int vl_b_mul4 = vl_b - (vl_b % 4);
+    for (int i = 0; i < vl_b_mul4; i++) {
+      int64_t offset = -(1 << kBRegSizeInBytesLog2) * vl;
+      uint8_t lane0 = -4 + (11 * i);
+      uint8_t lane1 = -5 + (11 * i);
+      uint8_t lane2 = -6 + (11 * i);
+      uint8_t lane3 = -7 + (11 * i);
+      MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+      MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+      MemoryWrite(middle, offset, (i * reg_count) + 3, lane3);
+    }
+
+    // st4h { z22.h, z23.h, z24.h, z25.h }, SVE_VL16
+    if (vl_h >= 16) {
+      for (int i = 0; i < 16; i++) {
+        int64_t offset = (7 << kHRegSizeInBytesLog2) * vl;
+        uint16_t lane0 = 6 - (2 * i);
+        uint16_t lane1 = 7 - (2 * i);
+        uint16_t lane2 = 8 - (2 * i);
+        uint16_t lane3 = 9 - (2 * i);
+        MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+        MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+        MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+        MemoryWrite(middle, offset, (i * reg_count) + 3, lane3);
+      }
+    }
+
+    // st4w { z29.s, z30.s, z31.s, z0.s }, ((i % 5) == 0)
+    for (int i = 0; i < vl_s; i++) {
+      if ((i % 5) == 0) {
+        int64_t offset = -(5 << kSRegSizeInBytesLog2) * vl;
+        uint32_t lane0 = -6 + (7 * i);
+        uint32_t lane1 = -7 + (7 * i);
+        uint32_t lane2 = -8 + (7 * i);
+        uint32_t lane3 = -9 + (7 * i);
+        MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+        MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+        MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+        MemoryWrite(middle, offset, (i * reg_count) + 3, lane3);
+      }
+    }
+
+    // st4d { z31.d, z0.d, z1.d, z2.d }, SVE_MUL3
+    int vl_d_mul3 = vl_d - (vl_d % 3);
+    for (int i = 0; i < vl_d_mul3; i++) {
+      int64_t offset = -(1 << kDRegSizeInBytesLog2) * vl;
+      uint64_t lane0 = 32 - (11 * i);
+      uint64_t lane1 = 33 - (11 * i);
+      uint64_t lane2 = 34 - (11 * i);
+      uint64_t lane3 = 35 - (11 * i);
+      MemoryWrite(middle, offset, (i * reg_count) + 0, lane0);
+      MemoryWrite(middle, offset, (i * reg_count) + 1, lane1);
+      MemoryWrite(middle, offset, (i * reg_count) + 2, lane2);
+      MemoryWrite(middle, offset, (i * reg_count) + 3, lane3);
+    }
+
+    ASSERT_EQUAL_MEMORY(expected, data, data_size, middle - expected);
+
+    // Check that we loaded back the expected values.
+
+    // st4b/ld4b
+    ASSERT_EQUAL_SVE(z3, z19);
+    ASSERT_EQUAL_SVE(z4, z20);
+    ASSERT_EQUAL_SVE(z5, z21);
+    ASSERT_EQUAL_SVE(z6, z22);
+
+    // st4h/ld4h
+    ASSERT_EQUAL_SVE(z7, z23);
+    ASSERT_EQUAL_SVE(z8, z24);
+    ASSERT_EQUAL_SVE(z9, z25);
+    ASSERT_EQUAL_SVE(z10, z26);
+
+    // st4w/ld4w
+    ASSERT_EQUAL_SVE(z11, z27);
+    ASSERT_EQUAL_SVE(z12, z28);
+    ASSERT_EQUAL_SVE(z13, z29);
+    ASSERT_EQUAL_SVE(z14, z30);
+
+    // st4d/ld4d
+    ASSERT_EQUAL_SVE(z15, z31);
+    ASSERT_EQUAL_SVE(z16, z0);
+    ASSERT_EQUAL_SVE(z17, z1);
+    ASSERT_EQUAL_SVE(z18, z2);
+
+    delete[] expected;
+  }
+  delete[] data;
+}
+
+TEST_SVE(sve_ld234_st234_scalar_plus_scalar_sp) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Check that the simulator correctly interprets rn == 31 as sp.
+  // The indexing logic is the same regardless so we just check one load and
+  // store of each type.
+
+  // There are no pre- or post-indexing modes, so reserve space first.
+  __ ClaimVL(2 + 3 + 4);
+
+  __ Index(z0.VnB(), 42, 2);
+  __ Index(z1.VnB(), 43, 2);
+  __ Ptrue(p0.VnB(), SVE_VL7);
+  __ Rdvl(x0, 0);
+  __ St2b(z0.VnB(), z1.VnB(), p0, SVEMemOperand(sp, x0));
+
+  __ Index(z4.VnH(), 42, 3);
+  __ Index(z5.VnH(), 43, 3);
+  __ Index(z6.VnH(), 44, 3);
+  __ Ptrue(p1.VnH(), SVE_POW2);
+  __ Rdvl(x1, 2);
+  __ Lsr(x1, x1, 1);
+  __ St3h(z4.VnH(), z5.VnH(), z6.VnH(), p1, SVEMemOperand(sp, x1, LSL, 1));
+
+  __ Index(z8.VnS(), 42, 4);
+  __ Index(z9.VnS(), 43, 4);
+  __ Index(z10.VnS(), 44, 4);
+  __ Index(z11.VnS(), 45, 4);
+  __ Ptrue(p2.VnS());
+  __ Rdvl(x2, 2 + 3);
+  __ Lsr(x2, x2, 2);
+  __ St4w(z8.VnS(),
+          z9.VnS(),
+          z10.VnS(),
+          z11.VnS(),
+          p2,
+          SVEMemOperand(sp, x2, LSL, 2));
+
+  // Corresponding loads.
+  // We have to explicitly zero inactive lanes in the reference values because
+  // loads have zeroing predication.
+  __ Dup(z12.VnB(), 0);
+  __ Dup(z13.VnB(), 0);
+  __ Mov(z12.VnB(), p0.Merging(), z0.VnB());
+  __ Mov(z13.VnB(), p0.Merging(), z1.VnB());
+  __ Ld2b(z0.VnB(), z1.VnB(), p0.Zeroing(), SVEMemOperand(sp, x0));
+
+  __ Dup(z16.VnH(), 0);
+  __ Dup(z17.VnH(), 0);
+  __ Dup(z18.VnH(), 0);
+  __ Mov(z16.VnH(), p1.Merging(), z4.VnH());
+  __ Mov(z17.VnH(), p1.Merging(), z5.VnH());
+  __ Mov(z18.VnH(), p1.Merging(), z6.VnH());
+  __ Ld3h(z4.VnH(),
+          z5.VnH(),
+          z6.VnH(),
+          p1.Zeroing(),
+          SVEMemOperand(sp, x1, LSL, 1));
+
+  __ Dup(z20.VnS(), 0);
+  __ Dup(z21.VnS(), 0);
+  __ Dup(z22.VnS(), 0);
+  __ Dup(z23.VnS(), 0);
+  __ Mov(z20.VnS(), p2.Merging(), z8.VnS());
+  __ Mov(z21.VnS(), p2.Merging(), z9.VnS());
+  __ Mov(z22.VnS(), p2.Merging(), z10.VnS());
+  __ Mov(z23.VnS(), p2.Merging(), z11.VnS());
+  __ Ld4w(z8.VnS(),
+          z9.VnS(),
+          z10.VnS(),
+          z11.VnS(),
+          p2.Zeroing(),
+          SVEMemOperand(sp, x2, LSL, 2));
+
+  __ DropVL(2 + 3 + 4);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // The most likely failure mode is the that simulator reads sp as xzr and
+    // crashes on execution. We already test the address calculations separately
+    // and sp doesn't change this, so just test that we load the values we
+    // stored.
+
+    // st2b/ld2b
+    ASSERT_EQUAL_SVE(z0, z12);
+    ASSERT_EQUAL_SVE(z1, z13);
+
+    // st3h/ld3h
+    ASSERT_EQUAL_SVE(z4, z16);
+    ASSERT_EQUAL_SVE(z5, z17);
+    ASSERT_EQUAL_SVE(z6, z18);
+
+    // st4h/ld4h
+    ASSERT_EQUAL_SVE(z8, z20);
+    ASSERT_EQUAL_SVE(z9, z21);
+    ASSERT_EQUAL_SVE(z10, z22);
+    ASSERT_EQUAL_SVE(z11, z23);
+  }
+}
+
+TEST_SVE(sve_ld234_st234_scalar_plus_imm_sp) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Check that the simulator correctly interprets rn == 31 as sp.
+  // The indexing logic is the same regardless so we just check one load and
+  // store of each type.
+
+  // There are no pre- or post-indexing modes, so reserve space first.
+  // Note that the stores fill in an order that allows each immediate to be a
+  // multiple of the number of registers.
+  __ ClaimVL(4 + 2 + 3);
+
+  __ Index(z0.VnB(), 42, 2);
+  __ Index(z1.VnB(), 43, 2);
+  __ Ptrue(p0.VnB(), SVE_POW2);
+  __ St2b(z0.VnB(), z1.VnB(), p0, SVEMemOperand(sp, 4, SVE_MUL_VL));
+
+  __ Index(z4.VnH(), 42, 3);
+  __ Index(z5.VnH(), 43, 3);
+  __ Index(z6.VnH(), 44, 3);
+  __ Ptrue(p1.VnH(), SVE_VL7);
+  __ St3h(z4.VnH(), z5.VnH(), z6.VnH(), p1, SVEMemOperand(sp, 6, SVE_MUL_VL));
+
+  __ Index(z8.VnS(), 42, 4);
+  __ Index(z9.VnS(), 43, 4);
+  __ Index(z10.VnS(), 44, 4);
+  __ Index(z11.VnS(), 45, 4);
+  __ Ptrue(p2.VnS());
+  __ St4w(z8.VnS(), z9.VnS(), z10.VnS(), z11.VnS(), p2, SVEMemOperand(sp));
+
+  // Corresponding loads.
+  // We have to explicitly zero inactive lanes in the reference values because
+  // loads have zeroing predication.
+  __ Dup(z12.VnB(), 0);
+  __ Dup(z13.VnB(), 0);
+  __ Mov(z12.VnB(), p0.Merging(), z0.VnB());
+  __ Mov(z13.VnB(), p0.Merging(), z1.VnB());
+  __ Ld2b(z0.VnB(), z1.VnB(), p0.Zeroing(), SVEMemOperand(sp, 4, SVE_MUL_VL));
+
+  __ Dup(z16.VnH(), 0);
+  __ Dup(z17.VnH(), 0);
+  __ Dup(z18.VnH(), 0);
+  __ Mov(z16.VnH(), p1.Merging(), z4.VnH());
+  __ Mov(z17.VnH(), p1.Merging(), z5.VnH());
+  __ Mov(z18.VnH(), p1.Merging(), z6.VnH());
+  __ Ld3h(z4.VnH(),
+          z5.VnH(),
+          z6.VnH(),
+          p1.Zeroing(),
+          SVEMemOperand(sp, 6, SVE_MUL_VL));
+
+  __ Dup(z20.VnS(), 0);
+  __ Dup(z21.VnS(), 0);
+  __ Dup(z22.VnS(), 0);
+  __ Dup(z23.VnS(), 0);
+  __ Mov(z20.VnS(), p2.Merging(), z8.VnS());
+  __ Mov(z21.VnS(), p2.Merging(), z9.VnS());
+  __ Mov(z22.VnS(), p2.Merging(), z10.VnS());
+  __ Mov(z23.VnS(), p2.Merging(), z11.VnS());
+  __ Ld4w(z8.VnS(),
+          z9.VnS(),
+          z10.VnS(),
+          z11.VnS(),
+          p2.Zeroing(),
+          SVEMemOperand(sp));
+
+  __ DropVL(4 + 2 + 3);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // The most likely failure mode is the that simulator reads sp as xzr and
+    // crashes on execution. We already test the address calculations separately
+    // and sp doesn't change this, so just test that we load the values we
+    // stored.
+    // TODO: Actually do this, once loads are implemented.
+  }
+}
+
+// Fill the input buffer with arbitrary data. Meanwhile, assign random offsets
+// from the base address of the buffer and corresponding addresses to the
+// arguments if provided.
+static void BufferFillingHelper(uint64_t data_ptr,
+                                size_t buffer_size,
+                                unsigned lane_size_in_bytes,
+                                int lane_count,
+                                uint64_t* offsets,
+                                uint64_t* addresses = nullptr,
+                                uint64_t* max_address = nullptr) {
+  // Use a fixed seed for nrand48() so that test runs are reproducible.
+  unsigned short seed[3] = {1, 2, 3};  // NOLINT(runtime/int)
+
+  // Fill a buffer with arbitrary data.
+  for (size_t i = 0; i < buffer_size; i++) {
+    uint8_t byte = nrand48(seed) & 0xff;
+    memcpy(reinterpret_cast<void*>(data_ptr + i), &byte, 1);
+  }
+
+  if (max_address != nullptr) {
+    *max_address = 0;
+  }
+
+  // Vectors of random addresses and offsets into the buffer.
+  for (int i = 0; i < lane_count; i++) {
+    uint64_t rnd = nrand48(seed);
+    // Limit the range to the set of completely-accessible elements in memory.
+    offsets[i] = rnd % (buffer_size - lane_size_in_bytes);
+    if ((addresses != nullptr) && (max_address != nullptr)) {
+      addresses[i] = data_ptr + offsets[i];
+      *max_address = std::max(*max_address, addresses[i]);
+    }
+  }
+}
+
+static void ScalarLoadHelper(MacroAssembler* masm,
+                             Register dst,
+                             Register addr,
+                             int msize_in_bits,
+                             bool is_signed) {
+  if (is_signed) {
+    switch (msize_in_bits) {
+      case kBRegSize:
+        masm->Ldrsb(dst, MemOperand(addr));
+        break;
+      case kHRegSize:
+        masm->Ldrsh(dst, MemOperand(addr));
+        break;
+      case kWRegSize:
+        masm->Ldrsw(dst, MemOperand(addr));
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  } else {
+    switch (msize_in_bits) {
+      case kBRegSize:
+        masm->Ldrb(dst, MemOperand(addr));
+        break;
+      case kHRegSize:
+        masm->Ldrh(dst, MemOperand(addr));
+        break;
+      case kWRegSize:
+        masm->Ldr(dst.W(), MemOperand(addr));
+        break;
+      case kXRegSize:
+        masm->Ldr(dst, MemOperand(addr));
+        break;
+      default:
+        VIXL_UNIMPLEMENTED();
+        break;
+    }
+  }
+}
+
+// Generate a reference result using scalar loads.
+// For now this helper doesn't save and restore the caller registers.
+// Clobber register z30, x28, x29 and p7.
+template <size_t N>
+static void ScalarLoadHelper(MacroAssembler* masm,
+                             int vl,
+                             const uint64_t (&addresses)[N],
+                             const ZRegister& zt_ref,
+                             const PRegisterZ& pg,
+                             unsigned esize_in_bits,
+                             unsigned msize_in_bits,
+                             bool is_signed) {
+  unsigned esize_in_bytes = esize_in_bits / kBitsPerByte;
+  ZRegister lane_numbers = z30.WithLaneSize(esize_in_bits);
+  masm->Index(lane_numbers, 0, 1);
+  masm->Dup(zt_ref, 0);
+  for (unsigned i = 0; i < (vl / esize_in_bytes); i++) {
+    masm->Mov(x29, addresses[N - i - 1]);
+    Register rt(28, std::min(std::max(esize_in_bits, kSRegSize), kDRegSize));
+    ScalarLoadHelper(masm, rt, x29, msize_in_bits, is_signed);
+
+    // Emulate predication.
+    masm->Cmpeq(p7.WithLaneSize(esize_in_bits), pg, lane_numbers, i);
+    masm->Cpy(zt_ref, p7.Merging(), rt);
+  }
+}
+
+typedef void (MacroAssembler::*Ld1Macro)(const ZRegister& zt,
+                                         const PRegisterZ& pg,
+                                         const SVEMemOperand& addr);
+
+template <typename T>
+static void Ldff1Helper(Test* config,
+                        uintptr_t data,
+                        unsigned msize_in_bits,
+                        unsigned esize_in_bits,
+                        CPURegister::RegisterType base_type,
+                        Ld1Macro ldff1,
+                        Ld1Macro ld1,
+                        T mod,
+                        bool scale = false) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int vl = config->sve_vl_in_bytes();
+  size_t page_size = sysconf(_SC_PAGE_SIZE);
+  VIXL_ASSERT(page_size > static_cast<size_t>(vl));
+
+  unsigned esize_in_bytes = esize_in_bits / kBitsPerByte;
+  unsigned msize_in_bytes = msize_in_bits / kBitsPerByte;
+  unsigned msize_in_bytes_log2 = std::log2(msize_in_bytes);
+  VIXL_ASSERT(msize_in_bits <= esize_in_bits);
+
+  PRegister all = p7;
+  __ Ptrue(all.VnB());
+
+  size_t offset_modifier = 0;
+
+  // The highest address at which a load stopped. Every FF load should fault at
+  // `data + page_size`, so this value should not exceed that value. However,
+  // the architecture allows fault-tolerant loads to fault arbitrarily, so the
+  // real value may be lower.
+  //
+  // This is used to check that the `mprotect` above really does make the second
+  // page inaccessible, and that the resulting FFR from each load reflects that.
+  Register limit = x22;
+  __ Mov(limit, 0);
+
+  // If the FFR grows unexpectedly, we increment this register by the
+  // difference. FFR should never grow, except when explicitly set.
+  Register ffr_grow_count = x23;
+  __ Mov(ffr_grow_count, 0);
+
+  // Set the offset so that the load is guaranteed to start in the
+  // accessible page, but end in the inaccessible one.
+  VIXL_ASSERT((page_size % msize_in_bytes) == 0);
+  VIXL_ASSERT((vl % msize_in_bytes) == 0);
+  size_t elements_per_page = page_size / msize_in_bytes;
+  size_t elements_per_access = vl / esize_in_bytes;
+  size_t min_offset = (elements_per_page - elements_per_access) + 1;
+  size_t max_offset = elements_per_page - 1;
+  size_t offset =
+      min_offset + (offset_modifier % (max_offset - min_offset + 1));
+  offset_modifier++;
+
+  __ Setffr();
+  __ Mov(x20, data);
+  __ Mov(x21, offset);
+
+  if (base_type == CPURegister::kRegister) {
+    // Scalar-plus-scalar mode.
+    VIXL_ASSERT((std::is_same<T, vixl::aarch64::Shift>::value));
+    VIXL_ASSERT((static_cast<int>(mod) == LSL) ||
+                (static_cast<int>(mod) == NO_SHIFT));
+    (masm.*ldff1)(z0.WithLaneSize(esize_in_bits),
+                  all.Zeroing(),
+                  SVEMemOperand(x20, x21, mod, msize_in_bytes_log2));
+  } else {
+    VIXL_ASSERT(base_type == CPURegister::kZRegister);
+    int offs_size;
+    bool offs_is_unsigned;
+    if (std::is_same<T, vixl::aarch64::Extend>::value) {
+      // Scalar-plus-vector mode with 32-bit optional unpacked or upacked, and
+      // unscaled or scaled offset.
+      VIXL_ASSERT((static_cast<int>(mod) == SXTW) ||
+                  (static_cast<int>(mod) == UXTW));
+      if (scale == true) {
+        // Gather first-fault bytes load doesn't support scaled offset.
+        VIXL_ASSERT(msize_in_bits != kBRegSize);
+      }
+      offs_is_unsigned = (static_cast<int>(mod) == UXTW) ? true : false;
+      offs_size = kSRegSize;
+
+    } else {
+      // Scalar-plus-vector mode with 64-bit unscaled or scaled offset.
+      VIXL_ASSERT((std::is_same<T, vixl::aarch64::Shift>::value));
+      VIXL_ASSERT((static_cast<int>(mod) == LSL) ||
+                  (static_cast<int>(mod) == NO_SHIFT));
+      offs_is_unsigned = false;
+      offs_size = kDRegSize;
+    }
+
+    // For generating the pattern of "base address + index << shift".
+    // In case of unscaled-offset operation, use `msize_in_bytes` be an offset
+    // of each decreasing memory accesses. otherwise, decreases the indexes by 1
+    // and then scale it by the shift value.
+    int shift = (scale == true) ? msize_in_bytes_log2 : 0;
+    int index_offset = msize_in_bytes >> shift;
+    VIXL_ASSERT(index_offset > 0);
+    uint64_t index = 0;
+    uint64_t base_address = 0;
+
+    if (offs_is_unsigned == true) {
+      // Base address.
+      base_address = data;
+      // Maximum unsigned positive index.
+      index = page_size >> shift;
+
+    } else {
+      // Base address.
+      base_address = data + (2 * page_size);
+      // Maximum unsigned positive index.
+      uint64_t uint_e_max =
+          (esize_in_bits == kDRegSize) ? UINT64_MAX : UINT32_MAX;
+      index = uint_e_max - (page_size >> shift) + 1;
+    }
+
+    __ Mov(x19, base_address);
+    if ((offs_size == kSRegSize) && (esize_in_bits == kDRegSize)) {
+      // In this case, the index values are optionally sign or zero-extended
+      // from 32 to 64 bits, assign a convenient value to the top 32 bits to
+      // ensure only the low 32 bits be the index values.
+      index |= 0x1234567800000000;
+    }
+
+    index -= index_offset * (elements_per_access - 1);
+    __ Index(z17.WithLaneSize(esize_in_bits), index, index_offset);
+
+    // Scalar plus vector mode.
+    (masm.*
+     ldff1)(z0.WithLaneSize(esize_in_bits),
+            all.Zeroing(),
+            SVEMemOperand(x19, z17.WithLaneSize(esize_in_bits), mod, shift));
+  }
+
+  __ Rdffrs(p0.VnB(), all.Zeroing());
+
+  // Execute another Ldff1 with no offset, so that every element could be
+  // read. It should respect FFR, and load no more than we loaded the
+  // first time.
+  (masm.*
+   ldff1)(z16.WithLaneSize(esize_in_bits), all.Zeroing(), SVEMemOperand(x20));
+  __ Rdffrs(p1.VnB(), all.Zeroing());
+  __ Cntp(x0, all, p1.VnB());
+  __ Uqdecp(x0, p0.VnB());
+  __ Add(ffr_grow_count, ffr_grow_count, x0);
+
+  // Use the FFR to predicate the normal load. If it wasn't properly set,
+  // the normal load will abort.
+  (masm.*ld1)(z16.WithLaneSize(esize_in_bits),
+              p0.Zeroing(),
+              SVEMemOperand(x20, x21, LSL, msize_in_bytes_log2));
+
+  // Work out the address after the one that was just accessed.
+  __ Incp(x21, p0.WithLaneSize(esize_in_bits));
+  __ Add(x0, x20, Operand(x21, LSL, msize_in_bytes_log2));
+  __ Cmp(limit, x0);
+  __ Csel(limit, limit, x0, hs);
+
+  // Clear lanes inactive in FFR. These have an undefined result.
+  __ Not(p0.VnB(), all.Zeroing(), p0.VnB());
+  __ Mov(z0.WithLaneSize(esize_in_bits), p0.Merging(), 0);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uintptr_t expected_limit = data + page_size;
+    uintptr_t measured_limit = core.xreg(limit.GetCode());
+    VIXL_CHECK(measured_limit <= expected_limit);
+    if (measured_limit < expected_limit) {
+      // We can't fail the test for this case, but a warning is helpful for
+      // manually-run tests.
+      printf(
+          "WARNING: All fault-tolerant loads detected faults before the\n"
+          "expected limit. This is architecturally possible, but improbable,\n"
+          "and could be a symptom of another problem.\n");
+    }
+
+    ASSERT_EQUAL_64(0, ffr_grow_count);
+
+    ASSERT_EQUAL_SVE(z0.WithLaneSize(esize_in_bits),
+                     z16.WithLaneSize(esize_in_bits));
+  }
+}
+
+TEST_SVE(sve_ldff1_scalar_plus_scalar) {
+  size_t page_size = sysconf(_SC_PAGE_SIZE);
+  VIXL_ASSERT(page_size > static_cast<size_t>(config->sve_vl_in_bytes()));
+
+  // Allocate two pages, then mprotect the second one to make it inaccessible.
+  uintptr_t data = reinterpret_cast<uintptr_t>(mmap(NULL,
+                                                    page_size * 2,
+                                                    PROT_READ | PROT_WRITE,
+                                                    MAP_PRIVATE | MAP_ANONYMOUS,
+                                                    -1,
+                                                    0));
+  mprotect(reinterpret_cast<void*>(data + page_size), page_size, PROT_NONE);
+
+  // Fill the accessible page with arbitrary data.
+  for (size_t i = 0; i < page_size; i++) {
+    // Reverse bits so we get a mixture of positive and negative values.
+    uint8_t byte = ReverseBits(static_cast<uint8_t>(i));
+    memcpy(reinterpret_cast<void*>(data + i), &byte, 1);
+  }
+
+  auto ldff1_unscaled_offset_helper = std::bind(&Ldff1Helper<Shift>,
+                                                config,
+                                                data,
+                                                std::placeholders::_1,
+                                                std::placeholders::_2,
+                                                CPURegister::kRegister,
+                                                std::placeholders::_3,
+                                                std::placeholders::_4,
+                                                NO_SHIFT,
+                                                false);
+
+  Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
+  Ld1Macro ld1b = &MacroAssembler::Ld1b;
+  ldff1_unscaled_offset_helper(kBRegSize, kBRegSize, ldff1b, ld1b);
+  ldff1_unscaled_offset_helper(kBRegSize, kHRegSize, ldff1b, ld1b);
+  ldff1_unscaled_offset_helper(kBRegSize, kSRegSize, ldff1b, ld1b);
+  ldff1_unscaled_offset_helper(kBRegSize, kDRegSize, ldff1b, ld1b);
+
+  Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
+  Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
+  ldff1_unscaled_offset_helper(kBRegSize, kHRegSize, ldff1sb, ld1sb);
+  ldff1_unscaled_offset_helper(kBRegSize, kSRegSize, ldff1sb, ld1sb);
+  ldff1_unscaled_offset_helper(kBRegSize, kDRegSize, ldff1sb, ld1sb);
+
+  auto ldff1_scaled_offset_helper = std::bind(&Ldff1Helper<Shift>,
+                                              config,
+                                              data,
+                                              std::placeholders::_1,
+                                              std::placeholders::_2,
+                                              CPURegister::kRegister,
+                                              std::placeholders::_3,
+                                              std::placeholders::_4,
+                                              LSL,
+                                              true);
+
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  ldff1_scaled_offset_helper(kHRegSize, kHRegSize, ldff1h, ld1h);
+  ldff1_scaled_offset_helper(kHRegSize, kSRegSize, ldff1h, ld1h);
+  ldff1_scaled_offset_helper(kHRegSize, kDRegSize, ldff1h, ld1h);
+
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  ldff1_scaled_offset_helper(kSRegSize, kSRegSize, ldff1w, ld1w);
+  ldff1_scaled_offset_helper(kSRegSize, kDRegSize, ldff1w, ld1w);
+
+  Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
+  Ld1Macro ld1d = &MacroAssembler::Ld1d;
+  ldff1_scaled_offset_helper(kDRegSize, kDRegSize, ldff1d, ld1d);
+
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  ldff1_scaled_offset_helper(kHRegSize, kSRegSize, ldff1sh, ld1sh);
+  ldff1_scaled_offset_helper(kHRegSize, kDRegSize, ldff1sh, ld1sh);
+
+  Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
+  Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
+  ldff1_scaled_offset_helper(kSRegSize, kDRegSize, ldff1sw, ld1sw);
+
+  munmap(reinterpret_cast<void*>(data), page_size * 2);
+}
+
+static void sve_ldff1_scalar_plus_vector_32_scaled_offset(Test* config,
+                                                          uintptr_t data) {
+  auto ldff1_32_scaled_offset_helper = std::bind(&Ldff1Helper<Extend>,
+                                                 config,
+                                                 data,
+                                                 std::placeholders::_1,
+                                                 kSRegSize,
+                                                 CPURegister::kZRegister,
+                                                 std::placeholders::_2,
+                                                 std::placeholders::_3,
+                                                 std::placeholders::_4,
+                                                 true);
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  ldff1_32_scaled_offset_helper(kHRegSize, ldff1h, ld1h, UXTW);
+  ldff1_32_scaled_offset_helper(kHRegSize, ldff1h, ld1h, SXTW);
+
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  ldff1_32_scaled_offset_helper(kSRegSize, ldff1w, ld1w, UXTW);
+  ldff1_32_scaled_offset_helper(kSRegSize, ldff1w, ld1w, SXTW);
+
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  ldff1_32_scaled_offset_helper(kHRegSize, ldff1sh, ld1sh, UXTW);
+  ldff1_32_scaled_offset_helper(kHRegSize, ldff1sh, ld1sh, SXTW);
+}
+
+static void sve_ldff1_scalar_plus_vector_32_unscaled_offset(Test* config,
+                                                            uintptr_t data) {
+  auto ldff1_32_unscaled_offset_helper = std::bind(&Ldff1Helper<Extend>,
+                                                   config,
+                                                   data,
+                                                   std::placeholders::_1,
+                                                   kSRegSize,
+                                                   CPURegister::kZRegister,
+                                                   std::placeholders::_2,
+                                                   std::placeholders::_3,
+                                                   std::placeholders::_4,
+                                                   false);
+
+  Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
+  Ld1Macro ld1b = &MacroAssembler::Ld1b;
+  ldff1_32_unscaled_offset_helper(kBRegSize, ldff1b, ld1b, UXTW);
+  ldff1_32_unscaled_offset_helper(kBRegSize, ldff1b, ld1b, SXTW);
+
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  ldff1_32_unscaled_offset_helper(kHRegSize, ldff1h, ld1h, UXTW);
+  ldff1_32_unscaled_offset_helper(kHRegSize, ldff1h, ld1h, SXTW);
+
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  ldff1_32_unscaled_offset_helper(kSRegSize, ldff1w, ld1w, UXTW);
+  ldff1_32_unscaled_offset_helper(kSRegSize, ldff1w, ld1w, SXTW);
+
+  Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
+  Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
+  ldff1_32_unscaled_offset_helper(kBRegSize, ldff1sb, ld1sb, UXTW);
+  ldff1_32_unscaled_offset_helper(kBRegSize, ldff1sb, ld1sb, SXTW);
+
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  ldff1_32_unscaled_offset_helper(kHRegSize, ldff1sh, ld1sh, UXTW);
+  ldff1_32_unscaled_offset_helper(kHRegSize, ldff1sh, ld1sh, SXTW);
+}
+
+static void sve_ldff1_scalar_plus_vector_32_unpacked_scaled_offset(
+    Test* config, uintptr_t data) {
+  auto ldff1_32_unpacked_scaled_offset_helper =
+      std::bind(&Ldff1Helper<Extend>,
+                config,
+                data,
+                std::placeholders::_1,
+                kDRegSize,
+                CPURegister::kZRegister,
+                std::placeholders::_2,
+                std::placeholders::_3,
+                std::placeholders::_4,
+                true);
+
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  ldff1_32_unpacked_scaled_offset_helper(kHRegSize, ldff1h, ld1h, UXTW);
+  ldff1_32_unpacked_scaled_offset_helper(kHRegSize, ldff1h, ld1h, SXTW);
+
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  ldff1_32_unpacked_scaled_offset_helper(kSRegSize, ldff1w, ld1w, UXTW);
+  ldff1_32_unpacked_scaled_offset_helper(kSRegSize, ldff1w, ld1w, SXTW);
+
+  Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
+  Ld1Macro ld1d = &MacroAssembler::Ld1d;
+  ldff1_32_unpacked_scaled_offset_helper(kDRegSize, ldff1d, ld1d, UXTW);
+  ldff1_32_unpacked_scaled_offset_helper(kDRegSize, ldff1d, ld1d, SXTW);
+
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  ldff1_32_unpacked_scaled_offset_helper(kHRegSize, ldff1sh, ld1sh, UXTW);
+  ldff1_32_unpacked_scaled_offset_helper(kHRegSize, ldff1sh, ld1sh, SXTW);
+
+  Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
+  Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
+  ldff1_32_unpacked_scaled_offset_helper(kSRegSize, ldff1sw, ld1sw, UXTW);
+  ldff1_32_unpacked_scaled_offset_helper(kSRegSize, ldff1sw, ld1sw, SXTW);
+}
+
+static void sve_ldff1_scalar_plus_vector_32_unpacked_unscaled_offset(
+    Test* config, uintptr_t data) {
+  auto ldff1_32_unpacked_unscaled_offset_helper =
+      std::bind(&Ldff1Helper<Extend>,
+                config,
+                data,
+                std::placeholders::_1,
+                kDRegSize,
+                CPURegister::kZRegister,
+                std::placeholders::_2,
+                std::placeholders::_3,
+                std::placeholders::_4,
+                false);
+
+  Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
+  Ld1Macro ld1b = &MacroAssembler::Ld1b;
+  ldff1_32_unpacked_unscaled_offset_helper(kBRegSize, ldff1b, ld1b, UXTW);
+  ldff1_32_unpacked_unscaled_offset_helper(kBRegSize, ldff1b, ld1b, SXTW);
+
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  ldff1_32_unpacked_unscaled_offset_helper(kHRegSize, ldff1h, ld1h, UXTW);
+  ldff1_32_unpacked_unscaled_offset_helper(kHRegSize, ldff1h, ld1h, SXTW);
+
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  ldff1_32_unpacked_unscaled_offset_helper(kSRegSize, ldff1w, ld1w, UXTW);
+  ldff1_32_unpacked_unscaled_offset_helper(kSRegSize, ldff1w, ld1w, SXTW);
+
+  Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
+  Ld1Macro ld1d = &MacroAssembler::Ld1d;
+  ldff1_32_unpacked_unscaled_offset_helper(kDRegSize, ldff1d, ld1d, UXTW);
+  ldff1_32_unpacked_unscaled_offset_helper(kDRegSize, ldff1d, ld1d, SXTW);
+
+  Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
+  Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
+  ldff1_32_unpacked_unscaled_offset_helper(kBRegSize, ldff1sb, ld1sb, UXTW);
+  ldff1_32_unpacked_unscaled_offset_helper(kBRegSize, ldff1sb, ld1sb, SXTW);
+
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  ldff1_32_unpacked_unscaled_offset_helper(kHRegSize, ldff1sh, ld1sh, UXTW);
+  ldff1_32_unpacked_unscaled_offset_helper(kHRegSize, ldff1sh, ld1sh, SXTW);
+
+  Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
+  Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
+  ldff1_32_unpacked_unscaled_offset_helper(kSRegSize, ldff1sw, ld1sw, UXTW);
+  ldff1_32_unpacked_unscaled_offset_helper(kSRegSize, ldff1sw, ld1sw, SXTW);
+}
+
+static void sve_ldff1_scalar_plus_vector_64_scaled_offset(Test* config,
+                                                          uintptr_t data) {
+  auto ldff1_64_scaled_offset_helper = std::bind(&Ldff1Helper<Shift>,
+                                                 config,
+                                                 data,
+                                                 std::placeholders::_1,
+                                                 kDRegSize,
+                                                 CPURegister::kZRegister,
+                                                 std::placeholders::_2,
+                                                 std::placeholders::_3,
+                                                 LSL,
+                                                 true);
+
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  ldff1_64_scaled_offset_helper(kHRegSize, ldff1h, ld1h);
+
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  ldff1_64_scaled_offset_helper(kSRegSize, ldff1w, ld1w);
+
+  Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
+  Ld1Macro ld1d = &MacroAssembler::Ld1d;
+  ldff1_64_scaled_offset_helper(kDRegSize, ldff1d, ld1d);
+
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  ldff1_64_scaled_offset_helper(kHRegSize, ldff1sh, ld1sh);
+
+  Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
+  Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
+  ldff1_64_scaled_offset_helper(kSRegSize, ldff1sw, ld1sw);
+}
+
+static void sve_ldff1_scalar_plus_vector_64_unscaled_offset(Test* config,
+                                                            uintptr_t data) {
+  auto ldff1_64_unscaled_offset_helper = std::bind(&Ldff1Helper<Shift>,
+                                                   config,
+                                                   data,
+                                                   std::placeholders::_1,
+                                                   kDRegSize,
+                                                   CPURegister::kZRegister,
+                                                   std::placeholders::_2,
+                                                   std::placeholders::_3,
+                                                   NO_SHIFT,
+                                                   false);
+
+  Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
+  Ld1Macro ld1b = &MacroAssembler::Ld1b;
+  ldff1_64_unscaled_offset_helper(kBRegSize, ldff1b, ld1b);
+
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  ldff1_64_unscaled_offset_helper(kHRegSize, ldff1h, ld1h);
+
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  ldff1_64_unscaled_offset_helper(kSRegSize, ldff1w, ld1w);
+
+  Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
+  Ld1Macro ld1d = &MacroAssembler::Ld1d;
+  ldff1_64_unscaled_offset_helper(kDRegSize, ldff1d, ld1d);
+
+  Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
+  Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
+  ldff1_64_unscaled_offset_helper(kBRegSize, ldff1sb, ld1sb);
+
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  ldff1_64_unscaled_offset_helper(kHRegSize, ldff1sh, ld1sh);
+
+  Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
+  Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
+  ldff1_64_unscaled_offset_helper(kSRegSize, ldff1sw, ld1sw);
+}
+
+TEST_SVE(sve_ldff1_scalar_plus_vector) {
+  size_t page_size = sysconf(_SC_PAGE_SIZE);
+  VIXL_ASSERT(page_size > static_cast<size_t>(config->sve_vl_in_bytes()));
+
+  // Allocate two pages, then mprotect the second one to make it inaccessible.
+  uintptr_t data = reinterpret_cast<uintptr_t>(mmap(NULL,
+                                                    page_size * 2,
+                                                    PROT_READ | PROT_WRITE,
+                                                    MAP_PRIVATE | MAP_ANONYMOUS,
+                                                    -1,
+                                                    0));
+  mprotect(reinterpret_cast<void*>(data + page_size), page_size, PROT_NONE);
+
+  // Fill the accessible page with arbitrary data.
+  for (size_t i = 0; i < page_size; i++) {
+    // Reverse bits so we get a mixture of positive and negative values.
+    uint8_t byte = ReverseBits(static_cast<uint8_t>(i));
+    memcpy(reinterpret_cast<void*>(data + i), &byte, 1);
+  }
+
+  sve_ldff1_scalar_plus_vector_32_scaled_offset(config, data);
+  sve_ldff1_scalar_plus_vector_32_unscaled_offset(config, data);
+  sve_ldff1_scalar_plus_vector_32_unpacked_scaled_offset(config, data);
+  sve_ldff1_scalar_plus_vector_32_unpacked_unscaled_offset(config, data);
+  sve_ldff1_scalar_plus_vector_64_scaled_offset(config, data);
+  sve_ldff1_scalar_plus_vector_64_unscaled_offset(config, data);
+
+  munmap(reinterpret_cast<void*>(data), page_size * 2);
+}
+
+TEST_SVE(sve_ldnf1) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE,
+                          CPUFeatures::kNEON,
+                          CPUFeatures::kFP);
+  START();
+
+  size_t page_size = sysconf(_SC_PAGE_SIZE);
+  VIXL_ASSERT(page_size > static_cast<size_t>(config->sve_vl_in_bytes()));
+
+  // Allocate two pages, fill them with data, then mprotect the second one to
+  // make it inaccessible.
+  uintptr_t data = reinterpret_cast<uintptr_t>(mmap(NULL,
+                                                    page_size * 2,
+                                                    PROT_READ | PROT_WRITE,
+                                                    MAP_PRIVATE | MAP_ANONYMOUS,
+                                                    -1,
+                                                    0));
+
+  // Fill the pages with arbitrary data.
+  for (size_t i = 0; i < page_size; i++) {
+    // Reverse bits so we get a mixture of positive and negative values.
+    uint8_t byte = ReverseBits(static_cast<uint8_t>(i));
+    memcpy(reinterpret_cast<void*>(data + i), &byte, 1);
+  }
+
+  mprotect(reinterpret_cast<void*>(data + page_size), page_size, PROT_NONE);
+
+  __ Setffr();
+  __ Ptrue(p0.VnB());
+  __ Dup(z10.VnB(), 0);
+
+  // Move an address that points to the last unprotected eight bytes.
+  __ Mov(x0, data + page_size - (kQRegSizeInBytes / kBRegSizeInBytes) / 2);
+
+  // Load, non-faulting, a vector of bytes from x0. At most, eight bytes will be
+  // loaded, the rest being in a protected page.
+  __ Ldnf1b(z0.VnB(), p0.Zeroing(), SVEMemOperand(x0));
+  __ Rdffr(p1.VnB());
+  __ Setffr();
+
+  // Create references using the FFR value in p1 to zero the undefined lanes.
+  __ Sel(z0.VnB(), p1, z0.VnB(), z10.VnB());
+  __ Ld1b(z20.VnB(), p1.Zeroing(), SVEMemOperand(x0));
+
+  // Repeat for larger elements and different addresses, giving different FFR
+  // results.
+  __ Add(x1, x0, 1);
+  __ Ldnf1h(z1.VnH(), p0.Zeroing(), SVEMemOperand(x1));
+  __ Rdffr(p1.VnB());
+  __ Setffr();
+  __ Sel(z1.VnH(), p1, z1.VnH(), z10.VnH());
+  __ Ld1h(z21.VnH(), p1.Zeroing(), SVEMemOperand(x1));
+
+  __ Add(x1, x0, 2);
+  __ Ldnf1w(z2.VnS(), p0.Zeroing(), SVEMemOperand(x1));
+  __ Rdffr(p1.VnB());
+  __ Setffr();
+  __ Sel(z2.VnS(), p1, z2.VnS(), z10.VnS());
+  __ Ld1w(z22.VnS(), p1.Zeroing(), SVEMemOperand(x1));
+
+  __ Sub(x1, x0, 1);
+  __ Ldnf1d(z3.VnD(), p0.Zeroing(), SVEMemOperand(x1));
+  __ Rdffr(p1.VnB());
+  __ Setffr();
+  __ Sel(z3.VnD(), p1, z3.VnD(), z10.VnD());
+  __ Ld1d(z23.VnD(), p1.Zeroing(), SVEMemOperand(x1));
+
+  // Load from previous VL-sized area of memory. All of this should be in the
+  // accessible page.
+  __ Ldnf1b(z4.VnB(), p0.Zeroing(), SVEMemOperand(x0, -1, SVE_MUL_VL));
+  __ Rdffr(p1.VnB());
+  __ Setffr();
+  __ Sel(z4.VnB(), p1, z4.VnB(), z10.VnB());
+  __ Ld1b(z24.VnB(), p1.Zeroing(), SVEMemOperand(x0, -1, SVE_MUL_VL));
+
+  // Repeat partial load for larger element size.
+  __ Mov(x0, data + page_size - (kQRegSizeInBytes / kSRegSizeInBytes) / 2);
+  __ Ldnf1b(z5.VnS(), p0.Zeroing(), SVEMemOperand(x0));
+  __ Rdffr(p1.VnB());
+  __ Setffr();
+  __ Sel(z5.VnS(), p1, z5.VnS(), z10.VnS());
+  __ Ld1b(z25.VnS(), p1.Zeroing(), SVEMemOperand(x0));
+
+  // Repeat for sign extension.
+  __ Mov(x0, data + page_size - (kQRegSizeInBytes / kHRegSizeInBytes) / 2);
+  __ Ldnf1sb(z6.VnH(), p0.Zeroing(), SVEMemOperand(x0));
+  __ Rdffr(p1.VnB());
+  __ Setffr();
+  __ Sel(z6.VnH(), p1, z6.VnH(), z10.VnH());
+  __ Ld1sb(z26.VnH(), p1.Zeroing(), SVEMemOperand(x0));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    ASSERT_EQUAL_SVE(z20, z0);
+    ASSERT_EQUAL_SVE(z21, z1);
+    ASSERT_EQUAL_SVE(z22, z2);
+    ASSERT_EQUAL_SVE(z23, z3);
+    ASSERT_EQUAL_SVE(z24, z4);
+    ASSERT_EQUAL_SVE(z25, z5);
+    ASSERT_EQUAL_SVE(z26, z6);
+  }
+
+  munmap(reinterpret_cast<void*>(data), page_size * 2);
+}
+
+// Emphasis on test if the modifiers are propagated and simulated correctly.
+TEST_SVE(sve_ldff1_regression_test) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  size_t page_size = sysconf(_SC_PAGE_SIZE);
+  VIXL_ASSERT(page_size > static_cast<size_t>(config->sve_vl_in_bytes()));
+
+  uintptr_t data = reinterpret_cast<uintptr_t>(mmap(NULL,
+                                                    page_size * 2,
+                                                    PROT_READ | PROT_WRITE,
+                                                    MAP_PRIVATE | MAP_ANONYMOUS,
+                                                    -1,
+                                                    0));
+  uintptr_t middle = data + page_size;
+  // Fill the accessible page with arbitrary data.
+  for (size_t i = 0; i < page_size; i++) {
+    // Reverse bits so we get a mixture of positive and negative values.
+    uint8_t byte = ReverseBits(static_cast<uint8_t>(i));
+    memcpy(reinterpret_cast<void*>(middle + i), &byte, 1);
+    // Make one bit roughly different in every byte and copy the bytes in the
+    // reverse direction that convenient to verifying the loads in negative
+    // indexes.
+    byte += 1;
+    memcpy(reinterpret_cast<void*>(middle - i), &byte, 1);
+  }
+
+  PRegister all = p6;
+  __ Ptrue(all.VnB());
+
+  __ Mov(x0, middle);
+  __ Index(z31.VnS(), 0, 3);
+  __ Neg(z30.VnS(), z31.VnS());
+
+  __ Setffr();
+
+  // Scalar plus vector 32 unscaled offset
+  __ Ldff1b(z1.VnS(), all.Zeroing(), SVEMemOperand(x0, z31.VnS(), UXTW));
+  __ Ldff1h(z2.VnS(), all.Zeroing(), SVEMemOperand(x0, z30.VnS(), SXTW));
+  __ Ldff1w(z3.VnS(), all.Zeroing(), SVEMemOperand(x0, z31.VnS(), UXTW));
+  __ Ldff1sb(z4.VnS(), all.Zeroing(), SVEMemOperand(x0, z30.VnS(), SXTW));
+  __ Ldff1sh(z5.VnS(), all.Zeroing(), SVEMemOperand(x0, z31.VnS(), UXTW));
+
+  // Scalar plus vector 32 scaled offset
+  __ Ldff1h(z6.VnS(), all.Zeroing(), SVEMemOperand(x0, z31.VnS(), UXTW, 1));
+  __ Ldff1w(z7.VnS(), all.Zeroing(), SVEMemOperand(x0, z31.VnS(), UXTW, 2));
+  __ Ldff1sh(z8.VnS(), all.Zeroing(), SVEMemOperand(x0, z30.VnS(), SXTW, 1));
+
+  __ Index(z31.VnD(), 0, 3);
+  __ Neg(z30.VnD(), z31.VnD());
+
+  // Ensure only the low 32 bits are used for the testing with positive index
+  // values. It also test if the indexes are treated as positive in `uxtw` form.
+  __ Mov(x3, 0x8000000080000000);
+  __ Dup(z28.VnD(), x3);
+  __ Sub(x2, x0, 0x80000000);
+  __ Add(z29.VnD(), z31.VnD(), z28.VnD());
+
+  // Scalar plus vector 32 unpacked unscaled offset
+  __ Ldff1b(z9.VnD(), all.Zeroing(), SVEMemOperand(x2, z29.VnD(), UXTW));
+  __ Ldff1h(z10.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), SXTW));
+  __ Ldff1w(z11.VnD(), all.Zeroing(), SVEMemOperand(x2, z29.VnD(), UXTW));
+  __ Ldff1sb(z12.VnD(), all.Zeroing(), SVEMemOperand(x2, z29.VnD(), UXTW));
+  __ Ldff1sh(z13.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), SXTW));
+  __ Ldff1sw(z14.VnD(), all.Zeroing(), SVEMemOperand(x2, z29.VnD(), UXTW));
+
+  // Scalar plus vector 32 unpacked scaled offset
+  __ Ldff1h(z15.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), SXTW, 1));
+  __ Ldff1w(z16.VnD(), all.Zeroing(), SVEMemOperand(x0, z31.VnD(), UXTW, 2));
+  __ Ldff1d(z17.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), SXTW, 3));
+  __ Ldff1sh(z18.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), SXTW, 1));
+  __ Ldff1sw(z19.VnD(), all.Zeroing(), SVEMemOperand(x0, z31.VnD(), UXTW, 2));
+
+  __ Sub(x0, x0, x3);
+  // Note that the positive indexes has been added by `0x8000000080000000`. The
+  // wrong address will be accessed if the address is treated as negative.
+
+  // Scalar plus vector 64 unscaled offset
+  __ Ldff1b(z20.VnD(), all.Zeroing(), SVEMemOperand(x0, z29.VnD()));
+  __ Ldff1h(z21.VnD(), all.Zeroing(), SVEMemOperand(x0, z29.VnD()));
+  __ Ldff1w(z22.VnD(), all.Zeroing(), SVEMemOperand(x0, z29.VnD()));
+  __ Ldff1sh(z23.VnD(), all.Zeroing(), SVEMemOperand(x0, z29.VnD()));
+  __ Ldff1sw(z24.VnD(), all.Zeroing(), SVEMemOperand(x0, z29.VnD()));
+
+  // Scalar plus vector 64 scaled offset
+  __ Lsr(z29.VnD(), z28.VnD(), 1);  // Shift right to 0x4000000040000000
+  __ Add(z30.VnD(), z31.VnD(), z29.VnD());
+  __ Ldff1h(z25.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), LSL, 1));
+  __ Ldff1sh(z26.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), LSL, 1));
+
+  __ Lsr(z29.VnD(), z29.VnD(), 1);  // Shift right to 0x2000000020000000
+  __ Add(z30.VnD(), z31.VnD(), z29.VnD());
+  __ Ldff1w(z27.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), LSL, 2));
+  __ Ldff1sw(z28.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), LSL, 2));
+
+  __ Lsr(z29.VnD(), z29.VnD(), 1);  // Shift right to 0x1000000010000000
+  __ Add(z30.VnD(), z31.VnD(), z29.VnD());
+  __ Ldff1d(z29.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), LSL, 3));
+
+  __ Rdffr(p1.VnB());
+  __ Cntp(x10, all, p1.VnB());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int64_t loaded_data_in_bytes = core.xreg(x10.GetCode());
+    // Only check 128 bits in this test.
+    if (loaded_data_in_bytes < kQRegSizeInBytes) {
+      // Report a warning when we hit fault-tolerant loads before all expected
+      // loads performed.
+      printf(
+          "WARNING: Fault-tolerant loads detected faults before the "
+          "expected loads completed.\n");
+      return;
+    }
+
+    // Scalar plus vector 32 unscaled offset
+    uint32_t expected_z1[] = {0x00000090, 0x00000060, 0x000000c0, 0x00000001};
+    uint32_t expected_z2[] = {0x00001191, 0x0000a161, 0x000041c1, 0x00008001};
+    uint32_t expected_z3[] = {0x30d05090, 0x9010e060, 0x60a020c0, 0xc0408001};
+    uint32_t expected_z4[] = {0xffffff91, 0x00000061, 0xffffffc1, 0x00000001};
+    uint32_t expected_z5[] = {0x00005090, 0xffffe060, 0x000020c0, 0xffff8001};
+
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnS());
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnS());
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnS());
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnS());
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnS());
+
+    // Scalar plus vector 32 scaled offset
+    uint32_t expected_z6[] = {0x0000c848, 0x0000b030, 0x0000e060, 0x00008001};
+    uint32_t expected_z7[] = {0xe464a424, 0xd8589818, 0xf070b030, 0xc0408001};
+    uint32_t expected_z8[] = {0xffff8949, 0xffffd131, 0xffffa161, 0xffff8001};
+
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnS());
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnS());
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnS());
+
+    // Scalar plus vector 32 unpacked unscaled offset
+    uint64_t expected_z9[] = {0x00000000000000c0, 0x0000000000000001};
+    uint64_t expected_z10[] = {0x00000000000041c1, 0x0000000000008001};
+    uint64_t expected_z11[] = {0x0000000060a020c0, 0x00000000c0408001};
+    uint64_t expected_z12[] = {0xffffffffffffffc0, 0x0000000000000001};
+    uint64_t expected_z13[] = {0x00000000000041c1, 0xffffffffffff8001};
+    uint64_t expected_z14[] = {0x0000000060a020c0, 0xffffffffc0408001};
+
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+    ASSERT_EQUAL_SVE(expected_z11, z11.VnD());
+    ASSERT_EQUAL_SVE(expected_z12, z12.VnD());
+    ASSERT_EQUAL_SVE(expected_z13, z13.VnD());
+    ASSERT_EQUAL_SVE(expected_z14, z14.VnD());
+
+    // Scalar plus vector 32 unpacked scaled offset
+    uint64_t expected_z15[] = {0x000000000000a161, 0x0000000000008001};
+    uint64_t expected_z16[] = {0x00000000f070b030, 0x00000000c0408001};
+    uint64_t expected_z17[] = {0x8949c929a969e919, 0xe060a020c0408001};
+    uint64_t expected_z18[] = {0xffffffffffffa161, 0xffffffffffff8001};
+    uint64_t expected_z19[] = {0xfffffffff070b030, 0xffffffffc0408001};
+
+    ASSERT_EQUAL_SVE(expected_z15, z15.VnD());
+    ASSERT_EQUAL_SVE(expected_z16, z16.VnD());
+    ASSERT_EQUAL_SVE(expected_z17, z17.VnD());
+    ASSERT_EQUAL_SVE(expected_z18, z18.VnD());
+    ASSERT_EQUAL_SVE(expected_z19, z19.VnD());
+
+    // Scalar plus vector 64 unscaled offset
+    uint64_t expected_z20[] = {0x00000000000000c0, 0x0000000000000001};
+    uint64_t expected_z21[] = {0x00000000000020c0, 0x0000000000008001};
+    uint64_t expected_z22[] = {0x0000000060a020c0, 0x00000000c0408001};
+    uint64_t expected_z23[] = {0x00000000000020c0, 0xffffffffffff8001};
+    uint64_t expected_z24[] = {0x0000000060a020c0, 0xffffffffc0408001};
+
+    ASSERT_EQUAL_SVE(expected_z20, z20.VnD());
+    ASSERT_EQUAL_SVE(expected_z21, z21.VnD());
+    ASSERT_EQUAL_SVE(expected_z22, z22.VnD());
+    ASSERT_EQUAL_SVE(expected_z23, z23.VnD());
+    ASSERT_EQUAL_SVE(expected_z24, z24.VnD());
+
+    uint64_t expected_z25[] = {0x000000000000e060, 0x0000000000008001};
+    uint64_t expected_z26[] = {0xffffffffffffe060, 0xffffffffffff8001};
+    uint64_t expected_z27[] = {0x00000000f070b030, 0x00000000c0408001};
+    uint64_t expected_z28[] = {0xfffffffff070b030, 0xffffffffc0408001};
+    uint64_t expected_z29[] = {0xf878b838d8589818, 0xe060a020c0408001};
+
+    // Scalar plus vector 64 scaled offset
+    ASSERT_EQUAL_SVE(expected_z25, z25.VnD());
+    ASSERT_EQUAL_SVE(expected_z26, z26.VnD());
+    ASSERT_EQUAL_SVE(expected_z27, z27.VnD());
+    ASSERT_EQUAL_SVE(expected_z28, z28.VnD());
+    ASSERT_EQUAL_SVE(expected_z29, z29.VnD());
+  }
+}
+
+// Emphasis on test if the modifiers are propagated and simulated correctly.
+TEST_SVE(sve_ld1_regression_test) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  size_t page_size = sysconf(_SC_PAGE_SIZE);
+  VIXL_ASSERT(page_size > static_cast<size_t>(config->sve_vl_in_bytes()));
+
+  uintptr_t data = reinterpret_cast<uintptr_t>(mmap(NULL,
+                                                    page_size * 2,
+                                                    PROT_READ | PROT_WRITE,
+                                                    MAP_PRIVATE | MAP_ANONYMOUS,
+                                                    -1,
+                                                    0));
+  uintptr_t middle = data + page_size;
+  // Fill the accessible page with arbitrary data.
+  for (size_t i = 0; i < page_size; i++) {
+    // Reverse bits so we get a mixture of positive and negative values.
+    uint8_t byte = ReverseBits(static_cast<uint8_t>(i));
+    memcpy(reinterpret_cast<void*>(middle + i), &byte, 1);
+    // Make one bit roughly different in every byte and copy the bytes in the
+    // reverse direction that convenient to verifying the loads in negative
+    // indexes.
+    byte += 1;
+    memcpy(reinterpret_cast<void*>(middle - i), &byte, 1);
+  }
+
+  PRegister all = p6;
+  __ Ptrue(all.VnB());
+
+  __ Mov(x0, middle);
+  __ Index(z31.VnS(), 0, 3);
+  __ Neg(z30.VnS(), z31.VnS());
+
+  // Scalar plus vector 32 unscaled offset
+  __ Ld1b(z1.VnS(), all.Zeroing(), SVEMemOperand(x0, z31.VnS(), UXTW));
+  __ Ld1h(z2.VnS(), all.Zeroing(), SVEMemOperand(x0, z30.VnS(), SXTW));
+  __ Ld1w(z3.VnS(), all.Zeroing(), SVEMemOperand(x0, z31.VnS(), UXTW));
+  __ Ld1sb(z4.VnS(), all.Zeroing(), SVEMemOperand(x0, z30.VnS(), SXTW));
+  __ Ld1sh(z5.VnS(), all.Zeroing(), SVEMemOperand(x0, z31.VnS(), UXTW));
+
+  // Scalar plus vector 32 scaled offset
+  __ Ld1h(z6.VnS(), all.Zeroing(), SVEMemOperand(x0, z31.VnS(), UXTW, 1));
+  __ Ld1w(z7.VnS(), all.Zeroing(), SVEMemOperand(x0, z31.VnS(), UXTW, 2));
+  __ Ld1sh(z8.VnS(), all.Zeroing(), SVEMemOperand(x0, z30.VnS(), SXTW, 1));
+
+  __ Index(z31.VnD(), 0, 3);
+  __ Neg(z30.VnD(), z31.VnD());
+
+  // Ensure only the low 32 bits are used for the testing with positive index
+  // values. It also test if the indexes are treated as positive in `uxtw` form.
+  __ Mov(x3, 0x8000000080000000);
+  __ Dup(z28.VnD(), x3);
+  __ Sub(x2, x0, 0x80000000);
+  __ Add(z29.VnD(), z31.VnD(), z28.VnD());
+
+  // Scalar plus vector 32 unpacked unscaled offset
+  __ Ld1b(z9.VnD(), all.Zeroing(), SVEMemOperand(x2, z29.VnD(), UXTW));
+  __ Ld1h(z10.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), SXTW));
+  __ Ld1w(z11.VnD(), all.Zeroing(), SVEMemOperand(x2, z29.VnD(), UXTW));
+  __ Ld1sb(z12.VnD(), all.Zeroing(), SVEMemOperand(x2, z29.VnD(), UXTW));
+  __ Ld1sh(z13.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), SXTW));
+  __ Ld1sw(z14.VnD(), all.Zeroing(), SVEMemOperand(x2, z29.VnD(), UXTW));
+
+  // Scalar plus vector 32 unpacked scaled offset
+  __ Ld1h(z15.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), SXTW, 1));
+  __ Ld1w(z16.VnD(), all.Zeroing(), SVEMemOperand(x0, z31.VnD(), UXTW, 2));
+  __ Ld1d(z17.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), SXTW, 3));
+  __ Ld1sh(z18.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), SXTW, 1));
+  __ Ld1sw(z19.VnD(), all.Zeroing(), SVEMemOperand(x0, z31.VnD(), UXTW, 2));
+
+  __ Sub(x0, x0, x3);
+  // Note that the positive indexes has been added by `0x8000000080000000`. The
+  // wrong address will be accessed if the address is treated as negative.
+
+  // Scalar plus vector 64 unscaled offset
+  __ Ld1b(z20.VnD(), all.Zeroing(), SVEMemOperand(x0, z29.VnD()));
+  __ Ld1h(z21.VnD(), all.Zeroing(), SVEMemOperand(x0, z29.VnD()));
+  __ Ld1w(z22.VnD(), all.Zeroing(), SVEMemOperand(x0, z29.VnD()));
+  __ Ld1sh(z23.VnD(), all.Zeroing(), SVEMemOperand(x0, z29.VnD()));
+  __ Ld1sw(z24.VnD(), all.Zeroing(), SVEMemOperand(x0, z29.VnD()));
+
+  // Scalar plus vector 64 scaled offset
+  __ Lsr(z29.VnD(), z28.VnD(), 1);  // Shift right to 0x4000000040000000
+  __ Add(z30.VnD(), z31.VnD(), z29.VnD());
+  __ Ld1h(z25.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), LSL, 1));
+  __ Ld1sh(z26.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), LSL, 1));
+
+  __ Lsr(z29.VnD(), z29.VnD(), 1);  // Shift right to 0x2000000020000000
+  __ Add(z30.VnD(), z31.VnD(), z29.VnD());
+  __ Ld1w(z27.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), LSL, 2));
+  __ Ld1sw(z28.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), LSL, 2));
+
+  __ Lsr(z29.VnD(), z29.VnD(), 1);  // Shift right to 0x1000000010000000
+  __ Add(z30.VnD(), z31.VnD(), z29.VnD());
+  __ Ld1d(z29.VnD(), all.Zeroing(), SVEMemOperand(x0, z30.VnD(), LSL, 3));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Scalar plus vector 32 unscaled offset
+    uint32_t expected_z1[] = {0x00000090, 0x00000060, 0x000000c0, 0x00000001};
+    uint32_t expected_z2[] = {0x00001191, 0x0000a161, 0x000041c1, 0x00008001};
+    uint32_t expected_z3[] = {0x30d05090, 0x9010e060, 0x60a020c0, 0xc0408001};
+    uint32_t expected_z4[] = {0xffffff91, 0x00000061, 0xffffffc1, 0x00000001};
+    uint32_t expected_z5[] = {0x00005090, 0xffffe060, 0x000020c0, 0xffff8001};
+
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnS());
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnS());
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnS());
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnS());
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnS());
+
+    // Scalar plus vector 32 scaled offset
+    uint32_t expected_z6[] = {0x0000c848, 0x0000b030, 0x0000e060, 0x00008001};
+    uint32_t expected_z7[] = {0xe464a424, 0xd8589818, 0xf070b030, 0xc0408001};
+    uint32_t expected_z8[] = {0xffff8949, 0xffffd131, 0xffffa161, 0xffff8001};
+
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnS());
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnS());
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnS());
+
+    // Scalar plus vector 32 unpacked unscaled offset
+    uint64_t expected_z9[] = {0x00000000000000c0, 0x0000000000000001};
+    uint64_t expected_z10[] = {0x00000000000041c1, 0x0000000000008001};
+    uint64_t expected_z11[] = {0x0000000060a020c0, 0x00000000c0408001};
+    uint64_t expected_z12[] = {0xffffffffffffffc0, 0x0000000000000001};
+    uint64_t expected_z13[] = {0x00000000000041c1, 0xffffffffffff8001};
+    uint64_t expected_z14[] = {0x0000000060a020c0, 0xffffffffc0408001};
+
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+    ASSERT_EQUAL_SVE(expected_z11, z11.VnD());
+    ASSERT_EQUAL_SVE(expected_z12, z12.VnD());
+    ASSERT_EQUAL_SVE(expected_z13, z13.VnD());
+    ASSERT_EQUAL_SVE(expected_z14, z14.VnD());
+
+    // Scalar plus vector 32 unpacked scaled offset
+    uint64_t expected_z15[] = {0x000000000000a161, 0x0000000000008001};
+    uint64_t expected_z16[] = {0x00000000f070b030, 0x00000000c0408001};
+    uint64_t expected_z17[] = {0x8949c929a969e919, 0xe060a020c0408001};
+    uint64_t expected_z18[] = {0xffffffffffffa161, 0xffffffffffff8001};
+    uint64_t expected_z19[] = {0xfffffffff070b030, 0xffffffffc0408001};
+
+    ASSERT_EQUAL_SVE(expected_z15, z15.VnD());
+    ASSERT_EQUAL_SVE(expected_z16, z16.VnD());
+    ASSERT_EQUAL_SVE(expected_z17, z17.VnD());
+    ASSERT_EQUAL_SVE(expected_z18, z18.VnD());
+    ASSERT_EQUAL_SVE(expected_z19, z19.VnD());
+
+    // Scalar plus vector 64 unscaled offset
+    uint64_t expected_z20[] = {0x00000000000000c0, 0x0000000000000001};
+    uint64_t expected_z21[] = {0x00000000000020c0, 0x0000000000008001};
+    uint64_t expected_z22[] = {0x0000000060a020c0, 0x00000000c0408001};
+    uint64_t expected_z23[] = {0x00000000000020c0, 0xffffffffffff8001};
+    uint64_t expected_z24[] = {0x0000000060a020c0, 0xffffffffc0408001};
+
+    ASSERT_EQUAL_SVE(expected_z20, z20.VnD());
+    ASSERT_EQUAL_SVE(expected_z21, z21.VnD());
+    ASSERT_EQUAL_SVE(expected_z22, z22.VnD());
+    ASSERT_EQUAL_SVE(expected_z23, z23.VnD());
+    ASSERT_EQUAL_SVE(expected_z24, z24.VnD());
+
+    uint64_t expected_z25[] = {0x000000000000e060, 0x0000000000008001};
+    uint64_t expected_z26[] = {0xffffffffffffe060, 0xffffffffffff8001};
+    uint64_t expected_z27[] = {0x00000000f070b030, 0x00000000c0408001};
+    uint64_t expected_z28[] = {0xfffffffff070b030, 0xffffffffc0408001};
+    uint64_t expected_z29[] = {0xf878b838d8589818, 0xe060a020c0408001};
+
+    // Scalar plus vector 64 scaled offset
+    ASSERT_EQUAL_SVE(expected_z25, z25.VnD());
+    ASSERT_EQUAL_SVE(expected_z26, z26.VnD());
+    ASSERT_EQUAL_SVE(expected_z27, z27.VnD());
+    ASSERT_EQUAL_SVE(expected_z28, z28.VnD());
+    ASSERT_EQUAL_SVE(expected_z29, z29.VnD());
+  }
+}
+
+// Test gather loads by comparing them with the result of a set of equivalent
+// scalar loads.
+template <typename T>
+static void GatherLoadScalarPlusVectorHelper(Test* config,
+                                             unsigned msize_in_bits,
+                                             unsigned esize_in_bits,
+                                             Ld1Macro ld1,
+                                             Ld1Macro ldff1,
+                                             T mod,
+                                             bool is_signed,
+                                             bool is_scaled) {
+  // SVE supports 32- and 64-bit addressing for gather loads.
+  VIXL_ASSERT((esize_in_bits == kSRegSize) || (esize_in_bits == kDRegSize));
+  static const unsigned kMaxLaneCount = kZRegMaxSize / kSRegSize;
+
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  unsigned msize_in_bytes = msize_in_bits / kBitsPerByte;
+  int vl = config->sve_vl_in_bytes();
+
+  uint64_t addresses[kMaxLaneCount];
+  uint64_t offsets[kMaxLaneCount];
+  uint64_t max_address = 0;
+  uint64_t buffer_size = vl * 64;
+  uint64_t data = reinterpret_cast<uintptr_t>(malloc(buffer_size));
+  // Fill the buffer with arbitrary data. Meanwhile, create the random addresses
+  // and offsets into the buffer placed in the argument list.
+  BufferFillingHelper(data,
+                      buffer_size,
+                      msize_in_bytes,
+                      kMaxLaneCount,
+                      offsets,
+                      addresses,
+                      &max_address);
+
+  ZRegister zn = z0.WithLaneSize(esize_in_bits);
+  ZRegister zt_ref = z1.WithLaneSize(esize_in_bits);
+  ZRegister zt = z2.WithLaneSize(esize_in_bits);
+  ZRegister zt_ff = z3.WithLaneSize(esize_in_bits);
+  PRegisterWithLaneSize pg_ff = p1.WithLaneSize(esize_in_bits);
+  PRegisterWithLaneSize pg_diff = p2.WithLaneSize(esize_in_bits);
+
+  int shift = 0;
+  if (is_scaled) {
+    shift = std::log2(msize_in_bytes);
+    for (unsigned i = 0; i < kMaxLaneCount; i++) {
+      // Ensure the offsets are the multiple of the scale factor of the
+      // operation.
+      offsets[i] = (offsets[i] >> shift) << shift;
+      addresses[i] = data + offsets[i];
+    }
+  }
+
+  PRegister all = p6;
+  __ Ptrue(all.WithLaneSize(esize_in_bits));
+
+  PRegisterZ pg = p0.Zeroing();
+  Initialise(&masm,
+             pg,
+             0x9abcdef012345678,
+             0xabcdef0123456789,
+             0xf4f3f1f0fefdfcfa,
+             0xf9f8f6f5f3f2f1ff);
+
+  __ Mov(x0, data);
+
+  // Generate a reference result for scalar-plus-scalar form using scalar loads.
+  ScalarLoadHelper(&masm,
+                   vl,
+                   addresses,
+                   zt_ref,
+                   pg,
+                   esize_in_bits,
+                   msize_in_bits,
+                   is_signed);
+
+  InsrHelper(&masm, zn, offsets);
+  if (is_scaled) {
+    // Scale down the offsets if testing scaled-offset operation.
+    __ Lsr(zn, zn, shift);
+  }
+
+  (masm.*ld1)(zt, pg, SVEMemOperand(x0, zn, mod, shift));
+
+  Register ffr_check_count = x17;
+  __ Mov(ffr_check_count, 0);
+
+  // Test the data correctness in which the data gather load from different
+  // addresses. The first-fault behavior test is emphasized in `Ldff1Helper`.
+  __ Setffr();
+  (masm.*ldff1)(zt_ff, pg, SVEMemOperand(x0, zn, mod, shift));
+
+  // Compare these two vector register and place the different to
+  // `ffr_check_count`.
+  __ Rdffrs(pg_ff.VnB(), all.Zeroing());
+  __ Cmpeq(pg_diff, all.Zeroing(), zt_ref, zt_ff);
+  __ Eor(pg_diff.VnB(), all.Zeroing(), pg_diff.VnB(), pg_ff.VnB());
+  __ Incp(ffr_check_count, pg_diff);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(zt_ref, zt);
+    ASSERT_EQUAL_64(0, ffr_check_count);
+  }
+
+  free(reinterpret_cast<void*>(data));
+}
+
+// Test gather loads by comparing them with the result of a set of equivalent
+// scalar loads.
+template <typename F>
+static void GatherLoadScalarPlusScalarOrImmHelper(Test* config,
+                                                  unsigned msize_in_bits,
+                                                  unsigned esize_in_bits,
+                                                  F sve_ld1,
+                                                  bool is_signed) {
+  // SVE supports 32- and 64-bit addressing for gather loads.
+  VIXL_ASSERT((esize_in_bits == kSRegSize) || (esize_in_bits == kDRegSize));
+  static const unsigned kMaxLaneCount = kZRegMaxSize / kSRegSize;
+
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  unsigned msize_in_bytes = msize_in_bits / kBitsPerByte;
+  int vl = config->sve_vl_in_bytes();
+
+  uint64_t addresses[kMaxLaneCount];
+  uint64_t offsets[kMaxLaneCount];
+  uint64_t max_address = 0;
+  uint64_t buffer_size = vl * 64;
+  uint64_t data = reinterpret_cast<uintptr_t>(malloc(buffer_size));
+  BufferFillingHelper(data,
+                      buffer_size,
+                      msize_in_bytes,
+                      kMaxLaneCount,
+                      offsets,
+                      addresses,
+                      &max_address);
+
+  // Maximised offsets, to ensure that the address calculation is modulo-2^64,
+  // and that the vector addresses are not sign-extended.
+  uint64_t uint_e_max = (esize_in_bits == kDRegSize) ? UINT64_MAX : UINT32_MAX;
+  uint64_t maxed_offsets[kMaxLaneCount];
+  uint64_t maxed_offsets_imm = max_address - uint_e_max;
+  for (unsigned i = 0; i < kMaxLaneCount; i++) {
+    maxed_offsets[i] = addresses[i] - maxed_offsets_imm;
+  }
+
+  ZRegister zn = z0.WithLaneSize(esize_in_bits);
+  ZRegister zt_addresses = z1.WithLaneSize(esize_in_bits);
+  ZRegister zt_offsets = z2.WithLaneSize(esize_in_bits);
+  ZRegister zt_maxed = z3.WithLaneSize(esize_in_bits);
+  ZRegister zt_ref = z4.WithLaneSize(esize_in_bits);
+
+  PRegisterZ pg = p0.Zeroing();
+  Initialise(&masm,
+             pg,
+             0x9abcdef012345678,
+             0xabcdef0123456789,
+             0xf4f3f1f0fefdfcfa,
+             0xf9f8f6f5f3f2f0ff);
+
+  // Execute each load.
+
+  if (esize_in_bits == kDRegSize) {
+    // Only test `addresses` if we can use 64-bit pointers. InsrHelper will fail
+    // if any value won't fit in a lane of zn.
+    InsrHelper(&masm, zn, addresses);
+    (masm.*sve_ld1)(zt_addresses, pg, SVEMemOperand(zn));
+  }
+
+  InsrHelper(&masm, zn, offsets);
+  (masm.*sve_ld1)(zt_offsets, pg, SVEMemOperand(zn, data));
+
+  InsrHelper(&masm, zn, maxed_offsets);
+  (masm.*sve_ld1)(zt_maxed, pg, SVEMemOperand(zn, maxed_offsets_imm));
+
+  // Generate a reference result using scalar loads.
+  ScalarLoadHelper(&masm,
+                   vl,
+                   addresses,
+                   zt_ref,
+                   pg,
+                   esize_in_bits,
+                   msize_in_bits,
+                   is_signed);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    if (esize_in_bits == kDRegSize) {
+      ASSERT_EQUAL_SVE(zt_ref, zt_addresses);
+    }
+    ASSERT_EQUAL_SVE(zt_ref, zt_offsets);
+    ASSERT_EQUAL_SVE(zt_ref, zt_maxed);
+  }
+
+  free(reinterpret_cast<void*>(data));
+}
+
+TEST_SVE(sve_ld1b_64bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kBRegSize,
+                                        kDRegSize,
+                                        &MacroAssembler::Ld1b,
+                                        false);
+}
+
+TEST_SVE(sve_ld1h_64bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kHRegSize,
+                                        kDRegSize,
+                                        &MacroAssembler::Ld1h,
+                                        false);
+}
+
+TEST_SVE(sve_ld1w_64bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kSRegSize,
+                                        kDRegSize,
+                                        &MacroAssembler::Ld1w,
+                                        false);
+}
+
+TEST_SVE(sve_ld1d_64bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kDRegSize,
+                                        kDRegSize,
+                                        &MacroAssembler::Ld1d,
+                                        false);
+}
+
+TEST_SVE(sve_ld1sb_64bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kBRegSize,
+                                        kDRegSize,
+                                        &MacroAssembler::Ld1sb,
+                                        true);
+}
+
+TEST_SVE(sve_ld1sh_64bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kHRegSize,
+                                        kDRegSize,
+                                        &MacroAssembler::Ld1sh,
+                                        true);
+}
+
+TEST_SVE(sve_ld1sw_64bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kSRegSize,
+                                        kDRegSize,
+                                        &MacroAssembler::Ld1sw,
+                                        true);
+}
+
+TEST_SVE(sve_ld1b_32bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kBRegSize,
+                                        kSRegSize,
+                                        &MacroAssembler::Ld1b,
+                                        false);
+}
+
+TEST_SVE(sve_ld1h_32bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kHRegSize,
+                                        kSRegSize,
+                                        &MacroAssembler::Ld1h,
+                                        false);
+}
+
+TEST_SVE(sve_ld1w_32bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kSRegSize,
+                                        kSRegSize,
+                                        &MacroAssembler::Ld1w,
+                                        false);
+}
+
+TEST_SVE(sve_ld1sb_32bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kBRegSize,
+                                        kSRegSize,
+                                        &MacroAssembler::Ld1sb,
+                                        true);
+}
+
+TEST_SVE(sve_ld1sh_32bit_vector_plus_immediate) {
+  GatherLoadScalarPlusScalarOrImmHelper(config,
+                                        kHRegSize,
+                                        kSRegSize,
+                                        &MacroAssembler::Ld1sh,
+                                        true);
+}
+
+TEST_SVE(sve_ld1_scalar_plus_vector_32_scaled_offset) {
+  auto ld1_32_scaled_offset_helper =
+      std::bind(&GatherLoadScalarPlusVectorHelper<Extend>,
+                config,
+                std::placeholders::_1,
+                kSRegSize,
+                std::placeholders::_2,
+                std::placeholders::_3,
+                std::placeholders::_4,
+                std::placeholders::_5,
+                true);
+
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  ld1_32_scaled_offset_helper(kHRegSize, ld1h, ldff1h, UXTW, false);
+  ld1_32_scaled_offset_helper(kHRegSize, ld1h, ldff1h, SXTW, false);
+
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  ld1_32_scaled_offset_helper(kSRegSize, ld1w, ldff1w, UXTW, false);
+  ld1_32_scaled_offset_helper(kSRegSize, ld1w, ldff1w, SXTW, false);
+
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  ld1_32_scaled_offset_helper(kHRegSize, ld1sh, ldff1sh, UXTW, true);
+  ld1_32_scaled_offset_helper(kHRegSize, ld1sh, ldff1sh, SXTW, true);
+}
+
+TEST_SVE(sve_ld1_scalar_plus_vector_32_unscaled_offset) {
+  auto ld1_32_unscaled_offset_helper =
+      std::bind(&GatherLoadScalarPlusVectorHelper<Extend>,
+                config,
+                std::placeholders::_1,
+                kSRegSize,
+                std::placeholders::_2,
+                std::placeholders::_3,
+                std::placeholders::_4,
+                std::placeholders::_5,
+                false);
+
+  Ld1Macro ld1b = &MacroAssembler::Ld1b;
+  Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
+  ld1_32_unscaled_offset_helper(kBRegSize, ld1b, ldff1b, UXTW, false);
+  ld1_32_unscaled_offset_helper(kBRegSize, ld1b, ldff1b, SXTW, false);
+
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  ld1_32_unscaled_offset_helper(kHRegSize, ld1h, ldff1h, UXTW, false);
+  ld1_32_unscaled_offset_helper(kHRegSize, ld1h, ldff1h, SXTW, false);
+
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  ld1_32_unscaled_offset_helper(kSRegSize, ld1w, ldff1w, UXTW, false);
+  ld1_32_unscaled_offset_helper(kSRegSize, ld1w, ldff1w, SXTW, false);
+
+  Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
+  Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
+  ld1_32_unscaled_offset_helper(kBRegSize, ld1sb, ldff1sb, UXTW, true);
+  ld1_32_unscaled_offset_helper(kBRegSize, ld1sb, ldff1sb, SXTW, true);
+
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  ld1_32_unscaled_offset_helper(kHRegSize, ld1sh, ldff1sh, UXTW, true);
+  ld1_32_unscaled_offset_helper(kHRegSize, ld1sh, ldff1sh, SXTW, true);
+}
+
+TEST_SVE(sve_ld1_scalar_plus_vector_32_unpacked_scaled_offset) {
+  auto ld1_32_unpacked_scaled_offset_helper =
+      std::bind(&GatherLoadScalarPlusVectorHelper<Extend>,
+                config,
+                std::placeholders::_1,
+                kDRegSize,
+                std::placeholders::_2,
+                std::placeholders::_3,
+                std::placeholders::_4,
+                std::placeholders::_5,
+                true);
+
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  ld1_32_unpacked_scaled_offset_helper(kHRegSize, ld1h, ldff1h, UXTW, false);
+  ld1_32_unpacked_scaled_offset_helper(kHRegSize, ld1h, ldff1h, SXTW, false);
+
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  ld1_32_unpacked_scaled_offset_helper(kSRegSize, ld1w, ldff1w, UXTW, false);
+  ld1_32_unpacked_scaled_offset_helper(kSRegSize, ld1w, ldff1w, SXTW, false);
+
+  Ld1Macro ld1d = &MacroAssembler::Ld1d;
+  Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
+  ld1_32_unpacked_scaled_offset_helper(kDRegSize, ld1d, ldff1d, UXTW, false);
+  ld1_32_unpacked_scaled_offset_helper(kDRegSize, ld1d, ldff1d, SXTW, false);
+
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  ld1_32_unpacked_scaled_offset_helper(kHRegSize, ld1sh, ldff1sh, UXTW, true);
+  ld1_32_unpacked_scaled_offset_helper(kHRegSize, ld1sh, ldff1sh, SXTW, true);
+
+  Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
+  Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
+  ld1_32_unpacked_scaled_offset_helper(kSRegSize, ld1sw, ldff1sw, UXTW, true);
+  ld1_32_unpacked_scaled_offset_helper(kSRegSize, ld1sw, ldff1sw, SXTW, true);
+}
+
+TEST_SVE(sve_ld1_scalar_plus_vector_32_unpacked_unscaled_offset) {
+  auto ld1_32_unpacked_unscaled_offset_helper =
+      std::bind(&GatherLoadScalarPlusVectorHelper<Extend>,
+                config,
+                std::placeholders::_1,
+                kDRegSize,
+                std::placeholders::_2,
+                std::placeholders::_3,
+                std::placeholders::_4,
+                std::placeholders::_5,
+                false);
+
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  ld1_32_unpacked_unscaled_offset_helper(kHRegSize, ld1h, ldff1h, UXTW, false);
+  ld1_32_unpacked_unscaled_offset_helper(kHRegSize, ld1h, ldff1h, SXTW, false);
+
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  ld1_32_unpacked_unscaled_offset_helper(kSRegSize, ld1w, ldff1w, UXTW, false);
+  ld1_32_unpacked_unscaled_offset_helper(kSRegSize, ld1w, ldff1w, SXTW, false);
+
+  Ld1Macro ld1d = &MacroAssembler::Ld1d;
+  Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
+  ld1_32_unpacked_unscaled_offset_helper(kDRegSize, ld1d, ldff1d, UXTW, false);
+  ld1_32_unpacked_unscaled_offset_helper(kDRegSize, ld1d, ldff1d, SXTW, false);
+
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  ld1_32_unpacked_unscaled_offset_helper(kHRegSize, ld1sh, ldff1sh, UXTW, true);
+  ld1_32_unpacked_unscaled_offset_helper(kHRegSize, ld1sh, ldff1sh, SXTW, true);
+
+  Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
+  Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
+  ld1_32_unpacked_unscaled_offset_helper(kSRegSize, ld1sw, ldff1sw, UXTW, true);
+  ld1_32_unpacked_unscaled_offset_helper(kSRegSize, ld1sw, ldff1sw, SXTW, true);
+}
+
+TEST_SVE(sve_ld1_scalar_plus_vector_64_scaled_offset) {
+  auto ld1_64_scaled_offset_helper =
+      std::bind(&GatherLoadScalarPlusVectorHelper<Shift>,
+                config,
+                std::placeholders::_1,
+                kDRegSize,
+                std::placeholders::_2,
+                std::placeholders::_3,
+                LSL,
+                std::placeholders::_4,
+                true);
+
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  ld1_64_scaled_offset_helper(kHRegSize, ld1h, ldff1h, false);
+
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  ld1_64_scaled_offset_helper(kSRegSize, ld1w, ldff1w, false);
+
+  Ld1Macro ld1d = &MacroAssembler::Ld1d;
+  Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
+  ld1_64_scaled_offset_helper(kDRegSize, ld1d, ldff1d, false);
+
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  ld1_64_scaled_offset_helper(kHRegSize, ld1sh, ldff1sh, true);
+
+  Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
+  Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
+  ld1_64_scaled_offset_helper(kSRegSize, ld1sw, ldff1sw, true);
+}
+
+TEST_SVE(sve_ld1_scalar_plus_vector_64_unscaled_offset) {
+  auto ld1_64_unscaled_offset_helper =
+      std::bind(&GatherLoadScalarPlusVectorHelper<Shift>,
+                config,
+                std::placeholders::_1,
+                kDRegSize,
+                std::placeholders::_2,
+                std::placeholders::_3,
+                NO_SHIFT,
+                std::placeholders::_4,
+                false);
+
+  Ld1Macro ld1b = &MacroAssembler::Ld1b;
+  Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
+  ld1_64_unscaled_offset_helper(kBRegSize, ld1b, ldff1b, false);
+
+  Ld1Macro ld1h = &MacroAssembler::Ld1h;
+  Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
+  ld1_64_unscaled_offset_helper(kHRegSize, ld1h, ldff1h, false);
+
+  Ld1Macro ld1w = &MacroAssembler::Ld1w;
+  Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
+  ld1_64_unscaled_offset_helper(kSRegSize, ld1w, ldff1w, false);
+
+  Ld1Macro ld1d = &MacroAssembler::Ld1d;
+  Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
+  ld1_64_unscaled_offset_helper(kDRegSize, ld1d, ldff1d, false);
+
+  Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
+  Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
+  ld1_64_unscaled_offset_helper(kBRegSize, ld1sb, ldff1sb, true);
+
+  Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
+  Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
+  ld1_64_unscaled_offset_helper(kHRegSize, ld1sh, ldff1sh, true);
+
+  Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
+  Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
+  ld1_64_unscaled_offset_helper(kSRegSize, ld1sw, ldff1sw, true);
+}
+
+TEST_SVE(sve_ldnt1) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int data_size = kZRegMaxSizeInBytes * 16;
+  uint8_t* data = new uint8_t[data_size];
+  for (int i = 0; i < data_size; i++) {
+    data[i] = i & 0xff;
+  }
+
+  // Set the base half-way through the buffer so we can use negative indices.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+  __ Ptrue(p0.VnB());
+  __ Punpklo(p1.VnH(), p0.VnB());
+  __ Punpklo(p2.VnH(), p1.VnB());
+  __ Punpklo(p3.VnH(), p2.VnB());
+  __ Punpklo(p4.VnH(), p3.VnB());
+
+  __ Mov(x1, 42);
+  __ Ld1b(z0.VnB(), p1.Zeroing(), SVEMemOperand(x0, x1));
+  __ Ldnt1b(z1.VnB(), p1.Zeroing(), SVEMemOperand(x0, x1));
+
+  __ Mov(x1, -21);
+  __ Ld1h(z2.VnH(), p2.Zeroing(), SVEMemOperand(x0, x1, LSL, 1));
+  __ Ldnt1h(z3.VnH(), p2.Zeroing(), SVEMemOperand(x0, x1, LSL, 1));
+
+  __ Mov(x1, 10);
+  __ Ld1w(z4.VnS(), p3.Zeroing(), SVEMemOperand(x0, x1, LSL, 2));
+  __ Ldnt1w(z5.VnS(), p3.Zeroing(), SVEMemOperand(x0, x1, LSL, 2));
+
+  __ Mov(x1, -5);
+  __ Ld1d(z6.VnD(), p4.Zeroing(), SVEMemOperand(x0, x1, LSL, 3));
+  __ Ldnt1d(z7.VnD(), p4.Zeroing(), SVEMemOperand(x0, x1, LSL, 3));
+
+  __ Ld1b(z8.VnB(), p1.Zeroing(), SVEMemOperand(x0, 1, SVE_MUL_VL));
+  __ Ldnt1b(z9.VnB(), p1.Zeroing(), SVEMemOperand(x0, 1, SVE_MUL_VL));
+
+  __ Ld1h(z10.VnH(), p2.Zeroing(), SVEMemOperand(x0, -1, SVE_MUL_VL));
+  __ Ldnt1h(z11.VnH(), p2.Zeroing(), SVEMemOperand(x0, -1, SVE_MUL_VL));
+
+  __ Ld1w(z12.VnS(), p3.Zeroing(), SVEMemOperand(x0, 7, SVE_MUL_VL));
+  __ Ldnt1w(z13.VnS(), p3.Zeroing(), SVEMemOperand(x0, 7, SVE_MUL_VL));
+
+  __ Ld1d(z14.VnD(), p4.Zeroing(), SVEMemOperand(x0, -8, SVE_MUL_VL));
+  __ Ldnt1d(z15.VnD(), p4.Zeroing(), SVEMemOperand(x0, -8, SVE_MUL_VL));
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    ASSERT_EQUAL_SVE(z0, z1);
+    ASSERT_EQUAL_SVE(z2, z3);
+    ASSERT_EQUAL_SVE(z4, z5);
+    ASSERT_EQUAL_SVE(z6, z7);
+    ASSERT_EQUAL_SVE(z8, z9);
+    ASSERT_EQUAL_SVE(z10, z11);
+    ASSERT_EQUAL_SVE(z12, z13);
+    ASSERT_EQUAL_SVE(z14, z15);
+  }
+}
+
+TEST_SVE(sve_stnt1) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int data_size = kZRegMaxSizeInBytes * 16;
+  uint8_t* data = new uint8_t[data_size];
+
+  // Set the base half-way through the buffer so we can use negative indices.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+  __ Ptrue(p0.VnB());
+  __ Punpklo(p1.VnH(), p0.VnB());
+  __ Punpklo(p2.VnH(), p1.VnB());
+  __ Punpklo(p3.VnH(), p2.VnB());
+  __ Punpklo(p4.VnH(), p3.VnB());
+  __ Dup(z0.VnB(), 0x55);
+  __ Index(z1.VnB(), 0, 1);
+
+  // Store with all-true and patterned predication, load back, and create a
+  // reference value for later comparison.
+  __ Rdvl(x1, 1);
+  __ Stnt1b(z0.VnB(), p0, SVEMemOperand(x0, x1));
+  __ Stnt1b(z1.VnB(), p1, SVEMemOperand(x0, 1, SVE_MUL_VL));
+  __ Ld1b(z2.VnB(), p0.Zeroing(), SVEMemOperand(x0, x1));
+  __ Sel(z3.VnB(), p1, z1.VnB(), z0.VnB());
+
+  // Repeated, with wider elements and different offsets.
+  __ Rdvl(x1, -1);
+  __ Lsr(x1, x1, 1);
+  __ Stnt1h(z0.VnH(), p0, SVEMemOperand(x0, x1, LSL, 1));
+  __ Stnt1h(z1.VnH(), p2, SVEMemOperand(x0, -1, SVE_MUL_VL));
+  __ Ld1b(z4.VnB(), p0.Zeroing(), SVEMemOperand(x0, x1, LSL, 1));
+  __ Sel(z5.VnH(), p2, z1.VnH(), z0.VnH());
+
+  __ Rdvl(x1, 7);
+  __ Lsr(x1, x1, 2);
+  __ Stnt1w(z0.VnS(), p0, SVEMemOperand(x0, x1, LSL, 2));
+  __ Stnt1w(z1.VnS(), p3, SVEMemOperand(x0, 7, SVE_MUL_VL));
+  __ Ld1b(z6.VnB(), p0.Zeroing(), SVEMemOperand(x0, x1, LSL, 2));
+  __ Sel(z7.VnS(), p3, z1.VnS(), z0.VnS());
+
+  __ Rdvl(x1, -8);
+  __ Lsr(x1, x1, 3);
+  __ Stnt1d(z0.VnD(), p0, SVEMemOperand(x0, x1, LSL, 3));
+  __ Stnt1d(z1.VnD(), p4, SVEMemOperand(x0, -8, SVE_MUL_VL));
+  __ Ld1b(z8.VnB(), p0.Zeroing(), SVEMemOperand(x0, x1, LSL, 3));
+  __ Sel(z9.VnD(), p4, z1.VnD(), z0.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    ASSERT_EQUAL_SVE(z2, z3);
+    ASSERT_EQUAL_SVE(z4, z5);
+    ASSERT_EQUAL_SVE(z6, z7);
+    ASSERT_EQUAL_SVE(z8, z9);
+  }
+}
+
+TEST_SVE(sve_ld1rq) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int data_size = (kQRegSizeInBytes + 128) * 2;
+  uint8_t* data = new uint8_t[data_size];
+  for (int i = 0; i < data_size; i++) {
+    data[i] = i & 0xff;
+  }
+
+  // Set the base half-way through the buffer so we can use negative indices.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+
+  __ Index(z0.VnB(), 0, 1);
+  __ Ptrue(p0.VnB());
+  __ Cmplo(p0.VnB(), p0.Zeroing(), z0.VnB(), 4);
+  __ Pfalse(p1.VnB());
+  __ Zip1(p1.VnB(), p0.VnB(), p1.VnB());
+
+  // Load and broadcast using scalar offsets.
+  __ Mov(x1, -42);
+  __ Ld1rqb(z0.VnB(), p1.Zeroing(), SVEMemOperand(x0, x1));
+
+  __ Add(x2, x0, 1);
+  __ Mov(x1, -21);
+  __ Punpklo(p2.VnH(), p1.VnB());
+  __ Ld1rqh(z1.VnH(), p2.Zeroing(), SVEMemOperand(x2, x1, LSL, 1));
+
+  __ Add(x2, x2, 1);
+  __ Mov(x1, -10);
+  __ Punpklo(p3.VnH(), p2.VnB());
+  __ Ld1rqw(z2.VnS(), p3.Zeroing(), SVEMemOperand(x2, x1, LSL, 2));
+
+  __ Add(x2, x2, 1);
+  __ Mov(x1, 5);
+  __ Punpklo(p4.VnH(), p3.VnB());
+  __ Ld1rqd(z3.VnD(), p4.Zeroing(), SVEMemOperand(x2, x1, LSL, 3));
+
+  // Check that all segments match by rotating the vector by one segment,
+  // eoring, and orring across the vector.
+  __ Ext(z4.VnB(), z0.VnB(), z0.VnB(), 16);
+  __ Eor(z4.VnB(), z4.VnB(), z0.VnB());
+  __ Orv(b4, p0, z4.VnB());
+  __ Ext(z5.VnB(), z1.VnB(), z1.VnB(), 16);
+  __ Eor(z5.VnB(), z5.VnB(), z1.VnB());
+  __ Orv(b5, p0, z5.VnB());
+  __ Orr(z4, z4, z5);
+  __ Ext(z5.VnB(), z2.VnB(), z2.VnB(), 16);
+  __ Eor(z5.VnB(), z5.VnB(), z2.VnB());
+  __ Orv(b5, p0, z5.VnB());
+  __ Orr(z4, z4, z5);
+  __ Ext(z5.VnB(), z3.VnB(), z3.VnB(), 16);
+  __ Eor(z5.VnB(), z5.VnB(), z3.VnB());
+  __ Orv(b5, p0, z5.VnB());
+  __ Orr(z4, z4, z5);
+
+  // Load and broadcast the same values, using immediate offsets.
+  __ Add(x1, x0, 6);
+  __ Ld1rqb(z5.VnB(), p1.Zeroing(), SVEMemOperand(x1, -48));
+  __ Add(x1, x0, -9);
+  __ Ld1rqh(z6.VnH(), p2.Zeroing(), SVEMemOperand(x1, -32));
+  __ Add(x1, x0, -70);
+  __ Ld1rqw(z7.VnS(), p3.Zeroing(), SVEMemOperand(x1, 32));
+  __ Add(x1, x0, 27);
+  __ Ld1rqd(z8.VnD(), p4.Zeroing(), SVEMemOperand(x1, 16));
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z0[] = {0x0000000000000000, 0x006c006a00680066};
+    uint64_t expected_z1[] = {0x000074730000706f, 0x00006c6b00006867};
+    uint64_t expected_z2[] = {0x0000000075747372, 0x000000006d6c6b6a};
+    uint64_t expected_z3[] = {0x0000000000000000, 0xc2c1c0bfbebdbcbb};
+    uint64_t expected_z4[] = {0, 0};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    ASSERT_EQUAL_SVE(z0, z5);
+    ASSERT_EQUAL_SVE(z1, z6);
+    ASSERT_EQUAL_SVE(z2, z7);
+    ASSERT_EQUAL_SVE(z3, z8);
+  }
+}
+
+TEST_SVE(sve_st1_vec_imm) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kNEON, CPUFeatures::kSVE);
+  START();
+
+  // TODO: Use mmap() to request a buffer in the low 4GB, which allows testing
+  // 32-bit address vectors.
+  int data_size = kZRegMaxSizeInBytes * 16;
+  uint8_t* data = new uint8_t[data_size];
+
+  // Set the base to 16 bytes from the end of the buffer so we can use negative
+  // indices.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size - 16]));
+  __ Ptrue(p0.VnB());
+
+  // Store a vector of index values in reverse order, using
+  // vector-plus-immediate addressing to begin at byte 15, then storing to
+  // bytes 14, 13, etc.
+  __ Index(z1.VnD(), x0, -1);
+  __ Index(z2.VnD(), 0, 1);
+
+  // Iterate in order to store at least 16 bytes. The number of iterations
+  // depends on VL, eg. VL128 iterates eight times, storing bytes 15 and 14
+  // on the first iteration, 13 and 12 on the next, etc.
+  uint64_t dlanes = config->sve_vl_in_bytes() / kDRegSizeInBytes;
+  for (int i = 15; i >= 0; i -= dlanes * kBRegSizeInBytes) {
+    __ St1b(z2.VnD(), p0, SVEMemOperand(z1.VnD(), i));
+    __ Incd(z2.VnD());
+  }
+
+  // Reload the stored data, and build a reference for comparison. The reference
+  // is truncated to a Q register, as only the least-significant 128 bits are
+  // checked.
+  __ Ldr(q4, MemOperand(x0));
+  __ Index(z5.VnB(), 15, -1);
+  __ Mov(q5, q5);
+
+  // Repeat for wider elements.
+  __ Index(z1.VnD(), x0, -2);  // Stepping by -2 for H-sized elements.
+  __ Index(z2.VnD(), 0, 1);
+  for (int i = 14; i >= 0; i -= dlanes * kHRegSizeInBytes) {
+    __ St1h(z2.VnD(), p0, SVEMemOperand(z1.VnD(), i));
+    __ Incd(z2.VnD());
+  }
+  __ Ldr(q6, MemOperand(x0));
+  __ Index(z7.VnH(), 7, -1);
+  __ Mov(q7, q7);
+
+  __ Index(z1.VnD(), x0, -4);  // Stepping by -4 for S-sized elements.
+  __ Index(z2.VnD(), 0, 1);
+  for (int i = 12; i >= 0; i -= dlanes * kSRegSizeInBytes) {
+    __ St1w(z2.VnD(), p0, SVEMemOperand(z1.VnD(), i));
+    __ Incd(z2.VnD());
+  }
+  __ Ldr(q8, MemOperand(x0));
+  __ Index(z9.VnS(), 3, -1);
+  __ Mov(q9, q9);
+
+  __ Index(z1.VnD(), x0, -8);  // Stepping by -8 for D-sized elements.
+  __ Index(z2.VnD(), 0, 1);
+  for (int i = 8; i >= 0; i -= dlanes * kDRegSizeInBytes) {
+    __ St1d(z2.VnD(), p0, SVEMemOperand(z1.VnD(), i));
+    __ Incd(z2.VnD());
+  }
+  __ Ldr(q10, MemOperand(x0));
+  __ Index(z11.VnD(), 1, -1);
+  __ Mov(q11, q11);
+
+  // Test predication by storing even halfwords to memory (using predication)
+  // at byte-separated addresses. The result should be the same as storing
+  // even halfwords contiguously to memory.
+  __ Pfalse(p1.VnB());
+  __ Zip1(p1.VnD(), p0.VnD(), p1.VnD());
+  __ Mov(x0, reinterpret_cast<uintptr_t>(data));
+  __ Index(z1.VnD(), x0, 1);
+  __ Index(z2.VnD(), 0x1000, 1);
+  for (int i = 0; i < 16; i += dlanes) {
+    __ St1h(z2.VnD(), p1, SVEMemOperand(z1.VnD(), i));
+    __ Incd(z2.VnD());
+  }
+  __ Ldr(q2, MemOperand(x0));
+  __ Index(z3.VnH(), 0x1000, 2);
+  __ Mov(q3, q3);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(z3, z2);
+    ASSERT_EQUAL_SVE(z5, z4);
+    ASSERT_EQUAL_SVE(z7, z6);
+    ASSERT_EQUAL_SVE(z9, z8);
+    ASSERT_EQUAL_SVE(z11, z10);
+  }
+}
+
+template <typename T>
+static void sve_st1_scalar_plus_vector_helper(Test* config,
+                                              int esize_in_bits,
+                                              T mod,
+                                              bool is_scaled) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int vl = config->sve_vl_in_bytes();
+  int data_size = vl * 160;
+  uint8_t* data = new uint8_t[data_size];
+  memset(data, 0, data_size);
+  int vl_per_esize = vl / (esize_in_bits / kBitsPerByte);
+
+  ZRegister zn_b = z0.WithLaneSize(esize_in_bits);
+  ZRegister zn_h = z1.WithLaneSize(esize_in_bits);
+  ZRegister zn_s = z2.WithLaneSize(esize_in_bits);
+  ZRegister zn_d = z3.WithLaneSize(esize_in_bits);
+
+  ZRegister zn_ld_b = z10.WithLaneSize(esize_in_bits);
+  ZRegister zn_ld_h = z11.WithLaneSize(esize_in_bits);
+  ZRegister zn_ld_s = z12.WithLaneSize(esize_in_bits);
+  ZRegister zn_ld_d = z13.WithLaneSize(esize_in_bits);
+  ZRegister offsets = z31.WithLaneSize(esize_in_bits);
+
+  // Set the base half-way through the buffer so we can use negative indices.
+  __ Mov(x0, reinterpret_cast<uintptr_t>(&data[data_size / 2]));
+  __ Ptrue(p6.WithLaneSize(esize_in_bits));
+  __ Pfalse(p7.WithLaneSize(esize_in_bits));
+  __ Zip1(p0.WithLaneSize(esize_in_bits),
+          p6.WithLaneSize(esize_in_bits),
+          p7.WithLaneSize(esize_in_bits));
+  __ Zip1(p1.WithLaneSize(esize_in_bits),
+          p7.WithLaneSize(esize_in_bits),
+          p6.WithLaneSize(esize_in_bits));
+
+  // `st1b` doesn't have the scaled-offset forms.
+  if (is_scaled == false) {
+    // Simply stepping the index by 2 to simulate a scatter memory access.
+    __ Index(offsets, 1, 2);
+    __ St1b(offsets, p0, SVEMemOperand(x0, offsets, mod));
+    __ Ld1b(zn_ld_b, p0.Zeroing(), SVEMemOperand(x0, offsets, mod));
+    __ Dup(zn_b, 0);
+    __ Mov(zn_b, p0.Merging(), offsets);
+  }
+
+  // Store the values to isolated range different with other stores.
+  int scale = is_scaled ? 1 : 0;
+  __ Add(x1, x0, vl_per_esize * 4);
+  __ Index(offsets, 6, 4);
+  __ St1h(offsets, p0, SVEMemOperand(x1, offsets, mod, scale));
+  __ Ld1h(zn_ld_h, p0.Zeroing(), SVEMemOperand(x1, offsets, mod, scale));
+  __ Dup(zn_h, 0);
+  __ Mov(zn_h, p0.Merging(), offsets);
+
+  scale = is_scaled ? 2 : 0;
+  __ Add(x2, x0, UINT64_MAX + (vl_per_esize * -8) + 1);
+  __ Index(offsets, 64, 8);
+  if ((std::is_same<T, vixl::aarch64::Extend>::value) &&
+      (static_cast<int>(mod) == SXTW)) {
+    // Testing negative offsets.
+    __ Neg(offsets, p6.Merging(), offsets);
+  }
+  __ St1w(offsets, p1, SVEMemOperand(x2, offsets, mod, scale));
+  __ Ld1w(zn_ld_s, p1.Zeroing(), SVEMemOperand(x2, offsets, mod, scale));
+  __ Dup(zn_s, 0);
+  __ Mov(zn_s, p1.Merging(), offsets);
+
+  if (esize_in_bits == kDRegSize) {
+    // Test st1w by comparing the 32-bit value loaded correspondingly with the
+    // 32-bit value stored.
+    __ Lsl(zn_s, zn_s, kSRegSize);
+    __ Lsr(zn_s, zn_s, kSRegSize);
+  }
+
+  // `st1d` doesn't have the S-sized lane forms.
+  if (esize_in_bits == kDRegSize) {
+    scale = is_scaled ? 3 : 0;
+    __ Add(x3, x0, UINT64_MAX + (vl_per_esize * -16) + 1);
+    __ Index(offsets, 128, 16);
+    if ((std::is_same<T, vixl::aarch64::Extend>::value) &&
+        (static_cast<int>(mod) == SXTW)) {
+      __ Neg(offsets, p6.Merging(), offsets);
+    }
+    __ St1d(offsets, p1, SVEMemOperand(x3, offsets, mod, scale));
+    __ Ld1d(zn_ld_d, p1.Zeroing(), SVEMemOperand(x3, offsets, mod, scale));
+    __ Dup(zn_d, 0);
+    __ Mov(zn_d, p1.Merging(), offsets);
+  }
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    if (scale == false) {
+      ASSERT_EQUAL_SVE(zn_ld_b, zn_b);
+    }
+
+    ASSERT_EQUAL_SVE(zn_ld_h, zn_h);
+    ASSERT_EQUAL_SVE(zn_ld_s, zn_s);
+
+    if (esize_in_bits == kDRegSize) {
+      ASSERT_EQUAL_SVE(zn_ld_d, zn_d);
+    }
+  }
+
+  delete[] data;
+}
+
+TEST_SVE(sve_st1_sca_vec_32_unpacked_unscaled) {
+  sve_st1_scalar_plus_vector_helper(config, kDRegSize, UXTW, false);
+  sve_st1_scalar_plus_vector_helper(config, kDRegSize, SXTW, false);
+}
+
+TEST_SVE(sve_st1_sca_vec_32_unpacked_scaled) {
+  sve_st1_scalar_plus_vector_helper(config, kDRegSize, UXTW, true);
+  sve_st1_scalar_plus_vector_helper(config, kDRegSize, SXTW, true);
+}
+
+TEST_SVE(sve_st1_sca_vec_32_unscaled) {
+  sve_st1_scalar_plus_vector_helper(config, kSRegSize, UXTW, false);
+  sve_st1_scalar_plus_vector_helper(config, kSRegSize, SXTW, false);
+}
+
+TEST_SVE(sve_st1_sca_vec_32_scaled) {
+  sve_st1_scalar_plus_vector_helper(config, kSRegSize, UXTW, true);
+  sve_st1_scalar_plus_vector_helper(config, kSRegSize, SXTW, true);
+}
+
+TEST_SVE(sve_st1_sca_vec_64_scaled) {
+  sve_st1_scalar_plus_vector_helper(config, kDRegSize, LSL, true);
+}
+
+TEST_SVE(sve_st1_sca_vec_64_unscaled) {
+  sve_st1_scalar_plus_vector_helper(config, kDRegSize, NO_SHIFT, false);
+}
+
+typedef void (MacroAssembler::*IntWideImmFn)(const ZRegister& zd,
+                                             const ZRegister& zn,
+                                             const IntegerOperand imm);
+
+template <typename F, typename Td, typename Tn>
+static void IntWideImmHelper(Test* config,
+                             F macro,
+                             unsigned lane_size_in_bits,
+                             const Tn& zn_inputs,
+                             IntegerOperand imm,
+                             const Td& zd_expected) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  ZRegister zd1 = z0.WithLaneSize(lane_size_in_bits);
+  InsrHelper(&masm, zd1, zn_inputs);
+
+  // Also test with a different zn, to test the movprfx case.
+  ZRegister zn = z1.WithLaneSize(lane_size_in_bits);
+  InsrHelper(&masm, zn, zn_inputs);
+  ZRegister zd2 = z2.WithLaneSize(lane_size_in_bits);
+  ZRegister zn_copy = z3.WithSameLaneSizeAs(zn);
+
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(zn_copy, zn);
+
+  {
+    UseScratchRegisterScope temps(&masm);
+    // The MacroAssembler needs a P scratch register for some of these macros,
+    // and it doesn't have one by default.
+    temps.Include(p3);
+
+    (masm.*macro)(zd1, zd1, imm);
+    (masm.*macro)(zd2, zn, imm);
+  }
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(zd_expected, zd1);
+
+    // Check the result from `instr` with movprfx is the same as
+    // the immediate version.
+    ASSERT_EQUAL_SVE(zd_expected, zd2);
+
+    ASSERT_EQUAL_SVE(zn_copy, zn);
+  }
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_smax) {
+  int in_b[] = {0, -128, 127, -127, 126, 1, -1, 55};
+  int in_h[] = {0, -128, 127, INT16_MIN, INT16_MAX, 1, -1, 5555};
+  int in_s[] = {0, -128, 127, INT32_MIN, INT32_MAX, 1, -1, 555555};
+  int64_t in_d[] = {1, 10, 10000, 1000000};
+
+  IntWideImmFn fn = &MacroAssembler::Smax;
+
+  int exp_b_1[] = {0, -1, 127, -1, 126, 1, -1, 55};
+  int exp_h_1[] = {127, 127, 127, 127, INT16_MAX, 127, 127, 5555};
+  int exp_s_1[] = {0, -128, 127, -128, INT32_MAX, 1, -1, 555555};
+  int64_t exp_d_1[] = {99, 99, 10000, 1000000};
+
+  IntWideImmHelper(config, fn, kBRegSize, in_b, -1, exp_b_1);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 127, exp_h_1);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, -128, exp_s_1);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 99, exp_d_1);
+
+  int exp_h_2[] = {0, -128, 127, -255, INT16_MAX, 1, -1, 5555};
+  int exp_s_2[] = {2048, 2048, 2048, 2048, INT32_MAX, 2048, 2048, 555555};
+  int64_t exp_d_2[] = {INT16_MAX, INT16_MAX, INT16_MAX, 1000000};
+
+  // The immediate is in the range [-128, 127], but the macro is able to
+  // synthesise unencodable immediates.
+  // B-sized lanes cannot take an immediate out of the range [-128, 127].
+  IntWideImmHelper(config, fn, kHRegSize, in_h, -255, exp_h_2);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 2048, exp_s_2);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, INT16_MAX, exp_d_2);
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_smin) {
+  int in_b[] = {0, -128, 127, -127, 126, 1, -1, 55};
+  int in_h[] = {0, -128, 127, INT16_MIN, INT16_MAX, 1, -1, 5555};
+  int in_s[] = {0, -128, 127, INT32_MIN, INT32_MAX, 1, -1, 555555};
+  int64_t in_d[] = {1, 10, 10000, 1000000};
+
+  IntWideImmFn fn = &MacroAssembler::Smin;
+
+  int exp_b_1[] = {-1, -128, -1, -127, -1, -1, -1, -1};
+  int exp_h_1[] = {0, -128, 127, INT16_MIN, 127, 1, -1, 127};
+  int exp_s_1[] = {-128, -128, -128, INT32_MIN, -128, -128, -128, -128};
+  int64_t exp_d_1[] = {1, 10, 99, 99};
+
+  IntWideImmHelper(config, fn, kBRegSize, in_b, -1, exp_b_1);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 127, exp_h_1);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, -128, exp_s_1);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 99, exp_d_1);
+
+  int exp_h_2[] = {-255, -255, -255, INT16_MIN, -255, -255, -255, -255};
+  int exp_s_2[] = {0, -128, 127, INT32_MIN, 2048, 1, -1, 2048};
+  int64_t exp_d_2[] = {1, 10, 10000, INT16_MAX};
+
+  // The immediate is in the range [-128, 127], but the macro is able to
+  // synthesise unencodable immediates.
+  // B-sized lanes cannot take an immediate out of the range [-128, 127].
+  IntWideImmHelper(config, fn, kHRegSize, in_h, -255, exp_h_2);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 2048, exp_s_2);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, INT16_MAX, exp_d_2);
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_umax) {
+  int in_b[] = {0, 255, 127, 0x80, 1, 55};
+  int in_h[] = {0, 255, 127, INT16_MAX, 1, 5555};
+  int in_s[] = {0, 0xff, 0x7f, INT32_MAX, 1, 555555};
+  int64_t in_d[] = {1, 10, 10000, 1000000};
+
+  IntWideImmFn fn = &MacroAssembler::Umax;
+
+  int exp_b_1[] = {17, 255, 127, 0x80, 17, 55};
+  int exp_h_1[] = {127, 255, 127, INT16_MAX, 127, 5555};
+  int exp_s_1[] = {255, 255, 255, INT32_MAX, 255, 555555};
+  int64_t exp_d_1[] = {99, 99, 10000, 1000000};
+
+  IntWideImmHelper(config, fn, kBRegSize, in_b, 17, exp_b_1);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 0x7f, exp_h_1);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 0xff, exp_s_1);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 99, exp_d_1);
+
+  int exp_h_2[] = {511, 511, 511, INT16_MAX, 511, 5555};
+  int exp_s_2[] = {2048, 2048, 2048, INT32_MAX, 2048, 555555};
+  int64_t exp_d_2[] = {INT16_MAX, INT16_MAX, INT16_MAX, 1000000};
+
+  // The immediate is in the range [0, 255], but the macro is able to
+  // synthesise unencodable immediates.
+  // B-sized lanes cannot take an immediate out of the range [0, 255].
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 511, exp_h_2);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 2048, exp_s_2);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, INT16_MAX, exp_d_2);
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_umin) {
+  int in_b[] = {0, 255, 127, 0x80, 1, 55};
+  int in_h[] = {0, 255, 127, INT16_MAX, 1, 5555};
+  int in_s[] = {0, 0xff, 0x7f, INT32_MAX, 1, 555555};
+  int64_t in_d[] = {1, 10, 10000, 1000000};
+
+  IntWideImmFn fn = &MacroAssembler::Umin;
+
+  int exp_b_1[] = {0, 17, 17, 17, 1, 17};
+  int exp_h_1[] = {0, 127, 127, 127, 1, 127};
+  int exp_s_1[] = {0, 255, 127, 255, 1, 255};
+  int64_t exp_d_1[] = {1, 10, 99, 99};
+
+  IntWideImmHelper(config, fn, kBRegSize, in_b, 17, exp_b_1);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 0x7f, exp_h_1);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 255, exp_s_1);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 99, exp_d_1);
+
+  int exp_h_2[] = {0, 255, 127, 511, 1, 511};
+  int exp_s_2[] = {0, 255, 127, 2048, 1, 2048};
+  int64_t exp_d_2[] = {1, 10, 10000, INT16_MAX};
+
+  // The immediate is in the range [0, 255], but the macro is able to
+  // synthesise unencodable immediates.
+  // B-sized lanes cannot take an immediate out of the range [0, 255].
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 511, exp_h_2);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 2048, exp_s_2);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, INT16_MAX, exp_d_2);
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_mul) {
+  int in_b[] = {11, -1, 7, -3};
+  int in_h[] = {111, -1, 17, -123};
+  int in_s[] = {11111, -1, 117, -12345};
+  int64_t in_d[] = {0x7fffffff, 0x80000000};
+
+  IntWideImmFn fn = &MacroAssembler::Mul;
+
+  int exp_b_1[] = {66, -6, 42, -18};
+  int exp_h_1[] = {-14208, 128, -2176, 15744};
+  int exp_s_1[] = {11111 * 127, -127, 117 * 127, -12345 * 127};
+  int64_t exp_d_1[] = {0xfffffffe, 0x100000000};
+
+  IntWideImmHelper(config, fn, kBRegSize, in_b, 6, exp_b_1);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, -128, exp_h_1);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127, exp_s_1);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 2, exp_d_1);
+
+  int exp_h_2[] = {-28305, 255, -4335, 31365};
+  int exp_s_2[] = {22755328, -2048, 239616, -25282560};
+  int64_t exp_d_2[] = {0x00000063ffffff38, 0x0000006400000000};
+
+  // The immediate is in the range [-128, 127], but the macro is able to
+  // synthesise unencodable immediates.
+  // B-sized lanes cannot take an immediate out of the range [0, 255].
+  IntWideImmHelper(config, fn, kHRegSize, in_h, -255, exp_h_2);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 2048, exp_s_2);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 200, exp_d_2);
+
+  // Integer overflow on multiplication.
+  unsigned exp_b_3[] = {0x75, 0x81, 0x79, 0x83};
+
+  IntWideImmHelper(config, fn, kBRegSize, in_b, 0x7f, exp_b_3);
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_add) {
+  unsigned in_b[] = {0x81, 0x7f, 0x10, 0xff};
+  unsigned in_h[] = {0x8181, 0x7f7f, 0x1010, 0xaaaa};
+  unsigned in_s[] = {0x80018181, 0x7fff7f7f, 0xaaaaaaaa, 0xf000f0f0};
+  uint64_t in_d[] = {0x8000000180018181, 0x7fffffff7fff7f7f};
+
+  IntWideImmFn fn = &MacroAssembler::Add;
+
+  unsigned exp_b_1[] = {0x02, 0x00, 0x91, 0x80};
+  unsigned exp_h_1[] = {0x8191, 0x7f8f, 0x1020, 0xaaba};
+  unsigned exp_s_1[] = {0x80018200, 0x7fff7ffe, 0xaaaaab29, 0xf000f16f};
+  uint64_t exp_d_1[] = {0x8000000180018280, 0x7fffffff7fff807e};
+
+  // Encodable with `add` (shift 0).
+  IntWideImmHelper(config, fn, kBRegSize, in_b, 0x81, exp_b_1);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16, exp_h_1);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127, exp_s_1);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 0xff, exp_d_1);
+
+  unsigned exp_h_2[] = {0x9181, 0x8f7f, 0x2010, 0xbaaa};
+  unsigned exp_s_2[] = {0x80020081, 0x7ffffe7f, 0xaaab29aa, 0xf0016ff0};
+  uint64_t exp_d_2[] = {0x8000000180028081, 0x7fffffff80007e7f};
+
+  // Encodable with `add` (shift 8).
+  // B-sized lanes cannot take a shift of 8.
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16 << 8, exp_h_2);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127 << 8, exp_s_2);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 0xff << 8, exp_d_2);
+
+  unsigned exp_s_3[] = {0x80808181, 0x807e7f7f, 0xab29aaaa, 0xf07ff0f0};
+
+  // The macro is able to synthesise unencodable immediates.
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127 << 16, exp_s_3);
+
+  unsigned exp_b_4[] = {0x61, 0x5f, 0xf0, 0xdf};
+  unsigned exp_h_4[] = {0x6181, 0x5f7f, 0xf010, 0x8aaa};
+  unsigned exp_s_4[] = {0x00018181, 0xffff7f7f, 0x2aaaaaaa, 0x7000f0f0};
+  uint64_t exp_d_4[] = {0x8000000180018180, 0x7fffffff7fff7f7e};
+
+  // Negative immediates use `sub`.
+  IntWideImmHelper(config, fn, kBRegSize, in_b, -0x20, exp_b_4);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, -0x2000, exp_h_4);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, INT32_MIN, exp_s_4);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, -1, exp_d_4);
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_sqadd) {
+  unsigned in_b[] = {0x81, 0x7f, 0x10, 0xff};
+  unsigned in_h[] = {0x8181, 0x7f7f, 0x1010, 0xaaaa};
+  unsigned in_s[] = {0x80018181, 0x7fff7f7f, 0xaaaaaaaa, 0xf000f0f0};
+  uint64_t in_d[] = {0x8000000180018181, 0x7fffffff7fff7f7f};
+
+  IntWideImmFn fn = &MacroAssembler::Sqadd;
+
+  unsigned exp_b_1[] = {0x02, 0x7f, 0x7f, 0x7f};
+  unsigned exp_h_1[] = {0x8191, 0x7f8f, 0x1020, 0xaaba};
+  unsigned exp_s_1[] = {0x80018200, 0x7fff7ffe, 0xaaaaab29, 0xf000f16f};
+  uint64_t exp_d_1[] = {0x8000000180018280, 0x7fffffff7fff807e};
+
+  // Encodable with `sqadd` (shift 0).
+  // Note that encodable immediates are unsigned, even for signed saturation.
+  IntWideImmHelper(config, fn, kBRegSize, in_b, 129, exp_b_1);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16, exp_h_1);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127, exp_s_1);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 255, exp_d_1);
+
+  unsigned exp_h_2[] = {0x9181, 0x7fff, 0x2010, 0xbaaa};
+  unsigned exp_s_2[] = {0x80020081, 0x7ffffe7f, 0xaaab29aa, 0xf0016ff0};
+  uint64_t exp_d_2[] = {0x8000000180028081, 0x7fffffff80007e7f};
+
+  // Encodable with `sqadd` (shift 8).
+  // B-sized lanes cannot take a shift of 8.
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16 << 8, exp_h_2);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127 << 8, exp_s_2);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 0xff << 8, exp_d_2);
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_uqadd) {
+  unsigned in_b[] = {0x81, 0x7f, 0x10, 0xff};
+  unsigned in_h[] = {0x8181, 0x7f7f, 0x1010, 0xaaaa};
+  unsigned in_s[] = {0x80018181, 0x7fff7f7f, 0xaaaaaaaa, 0xf000f0f0};
+  uint64_t in_d[] = {0x8000000180018181, 0x7fffffff7fff7f7f};
+
+  IntWideImmFn fn = &MacroAssembler::Uqadd;
+
+  unsigned exp_b_1[] = {0xff, 0xff, 0x91, 0xff};
+  unsigned exp_h_1[] = {0x8191, 0x7f8f, 0x1020, 0xaaba};
+  unsigned exp_s_1[] = {0x80018200, 0x7fff7ffe, 0xaaaaab29, 0xf000f16f};
+  uint64_t exp_d_1[] = {0x8000000180018280, 0x7fffffff7fff807e};
+
+  // Encodable with `uqadd` (shift 0).
+  IntWideImmHelper(config, fn, kBRegSize, in_b, 0x81, exp_b_1);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16, exp_h_1);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127, exp_s_1);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 0xff, exp_d_1);
+
+  unsigned exp_h_2[] = {0x9181, 0x8f7f, 0x2010, 0xbaaa};
+  unsigned exp_s_2[] = {0x80020081, 0x7ffffe7f, 0xaaab29aa, 0xf0016ff0};
+  uint64_t exp_d_2[] = {0x8000000180028081, 0x7fffffff80007e7f};
+
+  // Encodable with `uqadd` (shift 8).
+  // B-sized lanes cannot take a shift of 8.
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16 << 8, exp_h_2);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127 << 8, exp_s_2);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 0xff << 8, exp_d_2);
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_sub) {
+  unsigned in_b[] = {0x81, 0x7f, 0x10, 0xff};
+  unsigned in_h[] = {0x8181, 0x7f7f, 0x1010, 0xaaaa};
+  unsigned in_s[] = {0x80018181, 0x7fff7f7f, 0xaaaaaaaa, 0xf000f0f0};
+  uint64_t in_d[] = {0x8000000180018181, 0x7fffffff7fff7f7f};
+
+  IntWideImmFn fn = &MacroAssembler::Sub;
+
+  unsigned exp_b_1[] = {0x00, 0xfe, 0x8f, 0x7e};
+  unsigned exp_h_1[] = {0x8171, 0x7f6f, 0x1000, 0xaa9a};
+  unsigned exp_s_1[] = {0x80018102, 0x7fff7f00, 0xaaaaaa2b, 0xf000f071};
+  uint64_t exp_d_1[] = {0x8000000180018082, 0x7fffffff7fff7e80};
+
+  // Encodable with `sub` (shift 0).
+  IntWideImmHelper(config, fn, kBRegSize, in_b, 0x81, exp_b_1);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16, exp_h_1);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127, exp_s_1);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 0xff, exp_d_1);
+
+  unsigned exp_h_2[] = {0x7181, 0x6f7f, 0x0010, 0x9aaa};
+  unsigned exp_s_2[] = {0x80010281, 0x7fff007f, 0xaaaa2baa, 0xf00071f0};
+  uint64_t exp_d_2[] = {0x8000000180008281, 0x7fffffff7ffe807f};
+
+  // Encodable with `sub` (shift 8).
+  // B-sized lanes cannot take a shift of 8.
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16 << 8, exp_h_2);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127 << 8, exp_s_2);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 0xff << 8, exp_d_2);
+
+  unsigned exp_s_3[] = {0x7f828181, 0x7f807f7f, 0xaa2baaaa, 0xef81f0f0};
+
+  // The macro is able to synthesise unencodable immediates.
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127 << 16, exp_s_3);
+
+  unsigned exp_b_4[] = {0xa1, 0x9f, 0x30, 0x1f};
+  unsigned exp_h_4[] = {0xa181, 0x9f7f, 0x3010, 0xcaaa};
+  unsigned exp_s_4[] = {0x00018181, 0xffff7f7f, 0x2aaaaaaa, 0x7000f0f0};
+  uint64_t exp_d_4[] = {0x8000000180018182, 0x7fffffff7fff7f80};
+
+  // Negative immediates use `add`.
+  IntWideImmHelper(config, fn, kBRegSize, in_b, -0x20, exp_b_4);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, -0x2000, exp_h_4);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, INT32_MIN, exp_s_4);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, -1, exp_d_4);
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_sqsub) {
+  unsigned in_b[] = {0x81, 0x7f, 0x10, 0xff};
+  unsigned in_h[] = {0x8181, 0x7f7f, 0x1010, 0xaaaa};
+  unsigned in_s[] = {0x80018181, 0x7fff7f7f, 0xaaaaaaaa, 0xf000f0f0};
+  uint64_t in_d[] = {0x8000000180018181, 0x7fffffff7fff7f7f};
+
+  IntWideImmFn fn = &MacroAssembler::Sqsub;
+
+  unsigned exp_b_1[] = {0x80, 0xfe, 0x8f, 0x80};
+  unsigned exp_h_1[] = {0x8171, 0x7f6f, 0x1000, 0xaa9a};
+  unsigned exp_s_1[] = {0x80018102, 0x7fff7f00, 0xaaaaaa2b, 0xf000f071};
+  uint64_t exp_d_1[] = {0x8000000180018082, 0x7fffffff7fff7e80};
+
+  // Encodable with `sqsub` (shift 0).
+  // Note that encodable immediates are unsigned, even for signed saturation.
+  IntWideImmHelper(config, fn, kBRegSize, in_b, 129, exp_b_1);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16, exp_h_1);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127, exp_s_1);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 255, exp_d_1);
+
+  unsigned exp_h_2[] = {0x8000, 0x6f7f, 0x0010, 0x9aaa};
+  unsigned exp_s_2[] = {0x80010281, 0x7fff007f, 0xaaaa2baa, 0xf00071f0};
+  uint64_t exp_d_2[] = {0x8000000180008281, 0x7fffffff7ffe807f};
+
+  // Encodable with `sqsub` (shift 8).
+  // B-sized lanes cannot take a shift of 8.
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16 << 8, exp_h_2);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127 << 8, exp_s_2);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 0xff << 8, exp_d_2);
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_uqsub) {
+  unsigned in_b[] = {0x81, 0x7f, 0x10, 0xff};
+  unsigned in_h[] = {0x8181, 0x7f7f, 0x1010, 0xaaaa};
+  unsigned in_s[] = {0x80018181, 0x7fff7f7f, 0xaaaaaaaa, 0xf000f0f0};
+  uint64_t in_d[] = {0x8000000180018181, 0x7fffffff7fff7f7f};
+
+  IntWideImmFn fn = &MacroAssembler::Uqsub;
+
+  unsigned exp_b_1[] = {0x00, 0x00, 0x00, 0x7e};
+  unsigned exp_h_1[] = {0x8171, 0x7f6f, 0x1000, 0xaa9a};
+  unsigned exp_s_1[] = {0x80018102, 0x7fff7f00, 0xaaaaaa2b, 0xf000f071};
+  uint64_t exp_d_1[] = {0x8000000180018082, 0x7fffffff7fff7e80};
+
+  // Encodable with `uqsub` (shift 0).
+  IntWideImmHelper(config, fn, kBRegSize, in_b, 0x81, exp_b_1);
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16, exp_h_1);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127, exp_s_1);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 0xff, exp_d_1);
+
+  unsigned exp_h_2[] = {0x7181, 0x6f7f, 0x0010, 0x9aaa};
+  unsigned exp_s_2[] = {0x80010281, 0x7fff007f, 0xaaaa2baa, 0xf00071f0};
+  uint64_t exp_d_2[] = {0x8000000180008281, 0x7fffffff7ffe807f};
+
+  // Encodable with `uqsub` (shift 8).
+  // B-sized lanes cannot take a shift of 8.
+  IntWideImmHelper(config, fn, kHRegSize, in_h, 16 << 8, exp_h_2);
+  IntWideImmHelper(config, fn, kSRegSize, in_s, 127 << 8, exp_s_2);
+  IntWideImmHelper(config, fn, kDRegSize, in_d, 0xff << 8, exp_d_2);
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_subr) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Encodable with `subr` (shift 0).
+  __ Index(z0.VnD(), 1, 1);
+  __ Sub(z0.VnD(), 100, z0.VnD());
+  __ Index(z1.VnS(), 0x7f, 1);
+  __ Sub(z1.VnS(), 0xf7, z1.VnS());
+  __ Index(z2.VnH(), 0xaaaa, 0x2222);
+  __ Sub(z2.VnH(), 0x80, z2.VnH());
+  __ Index(z3.VnB(), 133, 1);
+  __ Sub(z3.VnB(), 255, z3.VnB());
+
+  // Encodable with `subr` (shift 8).
+  __ Index(z4.VnD(), 256, -1);
+  __ Sub(z4.VnD(), 42 * 256, z4.VnD());
+  __ Index(z5.VnS(), 0x7878, 1);
+  __ Sub(z5.VnS(), 0x8000, z5.VnS());
+  __ Index(z6.VnH(), 0x30f0, -1);
+  __ Sub(z6.VnH(), 0x7f00, z6.VnH());
+  // B-sized lanes cannot take a shift of 8.
+
+  // Select with movprfx.
+  __ Index(z31.VnD(), 256, 4001);
+  __ Sub(z7.VnD(), 42 * 256, z31.VnD());
+
+  // Out of immediate encodable range of `sub`.
+  __ Index(z30.VnS(), 0x11223344, 1);
+  __ Sub(z8.VnS(), 0x88776655, z30.VnS());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int expected_z0[] = {87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+
+    int expected_z1[] = {0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnS());
+
+    int expected_z2[] = {0xab2c, 0xcd4e, 0xef70, 0x1192, 0x33b4, 0x55d6};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnH());
+
+    int expected_z3[] = {0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnB());
+
+    int expected_z4[] = {10502, 10501, 10500, 10499, 10498, 10497, 10496};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+
+    int expected_z5[] = {0x0783, 0x0784, 0x0785, 0x0786, 0x0787, 0x0788};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnS());
+
+    int expected_z6[] = {0x4e15, 0x4e14, 0x4e13, 0x4e12, 0x4e11, 0x4e10};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnH());
+
+    int expected_z7[] = {-13510, -9509, -5508, -1507, 2494, 6495, 10496};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+
+    int expected_z8[] = {0x7755330e, 0x7755330f, 0x77553310, 0x77553311};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnS());
+  }
+}
+
+TEST_SVE(sve_int_wide_imm_unpredicated_fdup) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Immediates which can be encoded in the instructions.
+  __ Fdup(z0.VnH(), RawbitsToFloat16(0xc500));
+  __ Fdup(z1.VnS(), Float16(2.0));
+  __ Fdup(z2.VnD(), Float16(3.875));
+  __ Fdup(z3.VnH(), 8.0f);
+  __ Fdup(z4.VnS(), -4.75f);
+  __ Fdup(z5.VnD(), 0.5f);
+  __ Fdup(z6.VnH(), 1.0);
+  __ Fdup(z7.VnS(), 2.125);
+  __ Fdup(z8.VnD(), -13.0);
+
+  // Immediates which cannot be encoded in the instructions.
+  __ Fdup(z10.VnH(), Float16(0.0));
+  __ Fdup(z11.VnH(), kFP16PositiveInfinity);
+  __ Fdup(z12.VnS(), 255.0f);
+  __ Fdup(z13.VnS(), kFP32NegativeInfinity);
+  __ Fdup(z14.VnD(), 12.3456);
+  __ Fdup(z15.VnD(), kFP64PositiveInfinity);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(0xc500, z0.VnH());
+    ASSERT_EQUAL_SVE(0x40000000, z1.VnS());
+    ASSERT_EQUAL_SVE(0x400f000000000000, z2.VnD());
+    ASSERT_EQUAL_SVE(0x4800, z3.VnH());
+    ASSERT_EQUAL_SVE(FloatToRawbits(-4.75f), z4.VnS());
+    ASSERT_EQUAL_SVE(DoubleToRawbits(0.5), z5.VnD());
+    ASSERT_EQUAL_SVE(0x3c00, z6.VnH());
+    ASSERT_EQUAL_SVE(FloatToRawbits(2.125f), z7.VnS());
+    ASSERT_EQUAL_SVE(DoubleToRawbits(-13.0), z8.VnD());
+
+    ASSERT_EQUAL_SVE(0x0000, z10.VnH());
+    ASSERT_EQUAL_SVE(Float16ToRawbits(kFP16PositiveInfinity), z11.VnH());
+    ASSERT_EQUAL_SVE(FloatToRawbits(255.0), z12.VnS());
+    ASSERT_EQUAL_SVE(FloatToRawbits(kFP32NegativeInfinity), z13.VnS());
+    ASSERT_EQUAL_SVE(DoubleToRawbits(12.3456), z14.VnD());
+    ASSERT_EQUAL_SVE(DoubleToRawbits(kFP64PositiveInfinity), z15.VnD());
+  }
+}
+
+TEST_SVE(sve_andv_eorv_orv) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in[] = {0x8899aabbccddeeff, 0x7777555533331111, 0x123456789abcdef0};
+  InsrHelper(&masm, z31.VnD(), in);
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         1,                      1,                      0
+  // For S lanes:         1,          1,          1,          0,          0
+  // For H lanes:   0,    1,    0,    1,    1,    1,    0,    0,    1,    0
+  int pg_in[] = {1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0};
+  Initialise(&masm, p0.VnB(), pg_in);
+
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(z0, z31);
+  __ Andv(b0, p0, z0.VnB());  // destructive
+  __ Andv(h1, p0, z31.VnH());
+  __ Mov(z2, z31);
+  __ Andv(s2, p0, z2.VnS());  // destructive
+  __ Andv(d3, p0, z31.VnD());
+
+  __ Eorv(b4, p0, z31.VnB());
+  __ Mov(z5, z31);
+  __ Eorv(h5, p0, z5.VnH());  // destructive
+  __ Eorv(s6, p0, z31.VnS());
+  __ Mov(z7, z31);
+  __ Eorv(d7, p0, z7.VnD());  // destructive
+
+  __ Mov(z8, z31);
+  __ Orv(b8, p0, z8.VnB());  // destructive
+  __ Orv(h9, p0, z31.VnH());
+  __ Mov(z10, z31);
+  __ Orv(s10, p0, z10.VnS());  // destructive
+  __ Orv(d11, p0, z31.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    if (static_cast<int>(ArrayLength(pg_in)) >= config->sve_vl_in_bytes()) {
+      ASSERT_EQUAL_64(0x10, d0);
+      ASSERT_EQUAL_64(0x1010, d1);
+      ASSERT_EQUAL_64(0x33331111, d2);
+      ASSERT_EQUAL_64(0x7777555533331111, d3);
+      ASSERT_EQUAL_64(0xbf, d4);
+      ASSERT_EQUAL_64(0xedcb, d5);
+      ASSERT_EQUAL_64(0x44444444, d6);
+      ASSERT_EQUAL_64(0x7777555533331111, d7);
+      ASSERT_EQUAL_64(0xff, d8);
+      ASSERT_EQUAL_64(0xffff, d9);
+      ASSERT_EQUAL_64(0x77775555, d10);
+      ASSERT_EQUAL_64(0x7777555533331111, d11);
+    } else {
+      ASSERT_EQUAL_64(0, d0);
+      ASSERT_EQUAL_64(0x0010, d1);
+      ASSERT_EQUAL_64(0x00110011, d2);
+      ASSERT_EQUAL_64(0x0011001100110011, d3);
+      ASSERT_EQUAL_64(0x62, d4);
+      ASSERT_EQUAL_64(0x0334, d5);
+      ASSERT_EQUAL_64(0x8899aabb, d6);
+      ASSERT_EQUAL_64(0xffeeffeeffeeffee, d7);
+      ASSERT_EQUAL_64(0xff, d8);
+      ASSERT_EQUAL_64(0xffff, d9);
+      ASSERT_EQUAL_64(0xffffffff, d10);
+      ASSERT_EQUAL_64(0xffffffffffffffff, d11);
+    }
+
+    // Check the upper lanes above the top of the V register are all clear.
+    for (int i = 1; i < core.GetSVELaneCount(kDRegSize); i++) {
+      ASSERT_EQUAL_SVE_LANE(0, z0.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z1.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z2.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z3.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z4.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z5.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z6.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z7.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z8.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z9.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z10.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z11.VnD(), i);
+    }
+  }
+}
+
+
+TEST_SVE(sve_saddv_uaddv) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in[] = {0x8899aabbccddeeff, 0x8182838485868788, 0x0807060504030201};
+  InsrHelper(&masm, z31.VnD(), in);
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         1,                      1,                      0
+  // For S lanes:         1,          1,          1,          0,          0
+  // For H lanes:   0,    1,    0,    1,    1,    1,    0,    0,    1,    0
+  int pg_in[] = {1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0};
+  Initialise(&masm, p0.VnB(), pg_in);
+
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(z0, z31);
+  __ Saddv(b0, p0, z0.VnB());  // destructive
+  __ Saddv(h1, p0, z31.VnH());
+  __ Mov(z2, z31);
+  __ Saddv(s2, p0, z2.VnS());  // destructive
+
+  __ Uaddv(b4, p0, z31.VnB());
+  __ Mov(z5, z31);
+  __ Uaddv(h5, p0, z5.VnH());  // destructive
+  __ Uaddv(s6, p0, z31.VnS());
+  __ Mov(z7, z31);
+  __ Uaddv(d7, p0, z7.VnD());  // destructive
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    if (static_cast<int>(ArrayLength(pg_in)) >= config->sve_vl_in_bytes()) {
+      // Saddv
+      ASSERT_EQUAL_64(0xfffffffffffffda9, d0);
+      ASSERT_EQUAL_64(0xfffffffffffe9495, d1);
+      ASSERT_EQUAL_64(0xffffffff07090b0c, d2);
+      // Uaddv
+      ASSERT_EQUAL_64(0x00000000000002a9, d4);
+      ASSERT_EQUAL_64(0x0000000000019495, d5);
+      ASSERT_EQUAL_64(0x0000000107090b0c, d6);
+      ASSERT_EQUAL_64(0x8182838485868788, d7);
+    } else {
+      // Saddv
+      ASSERT_EQUAL_64(0xfffffffffffffd62, d0);
+      ASSERT_EQUAL_64(0xfffffffffffe8394, d1);
+      ASSERT_EQUAL_64(0xfffffffed3e6fa0b, d2);
+      // Uaddv
+      ASSERT_EQUAL_64(0x0000000000000562, d4);
+      ASSERT_EQUAL_64(0x0000000000028394, d5);
+      ASSERT_EQUAL_64(0x00000001d3e6fa0b, d6);
+      ASSERT_EQUAL_64(0x0a1c2e4052647687, d7);
+    }
+
+    // Check the upper lanes above the top of the V register are all clear.
+    for (int i = 1; i < core.GetSVELaneCount(kDRegSize); i++) {
+      ASSERT_EQUAL_SVE_LANE(0, z0.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z1.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z2.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z4.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z5.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z6.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z7.VnD(), i);
+    }
+  }
+}
+
+
+TEST_SVE(sve_sminv_uminv) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in[] = {0xfffa5555aaaaaaaa, 0x0011223344aafe80, 0x00112233aabbfc00};
+  InsrHelper(&masm, z31.VnD(), in);
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         1,                      0,                      1
+  // For S lanes:         1,          1,          0,          0,          1
+  // For H lanes:   1,    1,    0,    1,    1,    0,    0,    0,    1,    1
+  int pg_in[] = {1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1};
+  Initialise(&masm, p0.VnB(), pg_in);
+
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(z0, z31);
+  __ Sminv(b0, p0, z0.VnB());  // destructive
+  __ Sminv(h1, p0, z31.VnH());
+  __ Mov(z2, z31);
+  __ Sminv(s2, p0, z2.VnS());  // destructive
+  __ Sminv(d3, p0, z31.VnD());
+
+  __ Uminv(b4, p0, z31.VnB());
+  __ Mov(z5, z31);
+  __ Uminv(h5, p0, z5.VnH());  // destructive
+  __ Uminv(s6, p0, z31.VnS());
+  __ Mov(z7, z31);
+  __ Uminv(d7, p0, z7.VnD());  // destructive
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    if (static_cast<int>(ArrayLength(pg_in)) >= config->sve_vl_in_bytes()) {
+      // Sminv
+      ASSERT_EQUAL_64(0xaa, d0);
+      ASSERT_EQUAL_64(0xaabb, d1);
+      ASSERT_EQUAL_64(0xaabbfc00, d2);
+      ASSERT_EQUAL_64(0x00112233aabbfc00, d3);  // The smaller lane is inactive.
+      // Uminv
+      ASSERT_EQUAL_64(0, d4);
+      ASSERT_EQUAL_64(0x2233, d5);
+      ASSERT_EQUAL_64(0x112233, d6);
+      ASSERT_EQUAL_64(0x00112233aabbfc00, d7);  // The smaller lane is inactive.
+    } else {
+      // Sminv
+      ASSERT_EQUAL_64(0xaa, d0);
+      ASSERT_EQUAL_64(0xaaaa, d1);
+      ASSERT_EQUAL_64(0xaaaaaaaa, d2);
+      ASSERT_EQUAL_64(0xfffa5555aaaaaaaa, d3);
+      // Uminv
+      ASSERT_EQUAL_64(0, d4);
+      ASSERT_EQUAL_64(0x2233, d5);
+      ASSERT_EQUAL_64(0x112233, d6);
+      ASSERT_EQUAL_64(0x00112233aabbfc00, d7);
+    }
+
+    // Check the upper lanes above the top of the V register are all clear.
+    for (int i = 1; i < core.GetSVELaneCount(kDRegSize); i++) {
+      ASSERT_EQUAL_SVE_LANE(0, z0.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z1.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z2.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z3.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z4.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z5.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z6.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z7.VnD(), i);
+    }
+  }
+}
+
+TEST_SVE(sve_smaxv_umaxv) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in[] = {0xfffa5555aaaaaaaa, 0x0011223344aafe80, 0x00112233aabbfc00};
+  InsrHelper(&masm, z31.VnD(), in);
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         1,                      0,                      1
+  // For S lanes:         1,          1,          0,          0,          1
+  // For H lanes:   1,    1,    0,    1,    1,    0,    0,    0,    1,    1
+  int pg_in[] = {1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1};
+  Initialise(&masm, p0.VnB(), pg_in);
+
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(z0, z31);
+  __ Smaxv(b0, p0, z0.VnB());  // destructive
+  __ Smaxv(h1, p0, z31.VnH());
+  __ Mov(z2, z31);
+  __ Smaxv(s2, p0, z2.VnS());  // destructive
+  __ Smaxv(d3, p0, z31.VnD());
+
+  __ Umaxv(b4, p0, z31.VnB());
+  __ Mov(z5, z31);
+  __ Umaxv(h5, p0, z5.VnH());  // destructive
+  __ Umaxv(s6, p0, z31.VnS());
+  __ Mov(z7, z31);
+  __ Umaxv(d7, p0, z7.VnD());  // destructive
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    if (static_cast<int>(ArrayLength(pg_in)) >= config->sve_vl_in_bytes()) {
+      // Smaxv
+      ASSERT_EQUAL_64(0x33, d0);
+      ASSERT_EQUAL_64(0x44aa, d1);
+      ASSERT_EQUAL_64(0x112233, d2);
+      ASSERT_EQUAL_64(0x112233aabbfc00, d3);
+      // Umaxv
+      ASSERT_EQUAL_64(0xfe, d4);
+      ASSERT_EQUAL_64(0xfc00, d5);
+      ASSERT_EQUAL_64(0xaabbfc00, d6);
+      ASSERT_EQUAL_64(0x112233aabbfc00, d7);
+    } else {
+      // Smaxv
+      ASSERT_EQUAL_64(0x33, d0);
+      ASSERT_EQUAL_64(0x44aa, d1);
+      ASSERT_EQUAL_64(0x112233, d2);
+      ASSERT_EQUAL_64(0x00112233aabbfc00, d3);
+      // Umaxv
+      ASSERT_EQUAL_64(0xfe, d4);
+      ASSERT_EQUAL_64(0xfc00, d5);
+      ASSERT_EQUAL_64(0xaabbfc00, d6);
+      ASSERT_EQUAL_64(0xfffa5555aaaaaaaa, d7);
+    }
+
+    // Check the upper lanes above the top of the V register are all clear.
+    for (int i = 1; i < core.GetSVELaneCount(kDRegSize); i++) {
+      ASSERT_EQUAL_SVE_LANE(0, z0.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z1.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z2.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z3.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z4.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z5.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z6.VnD(), i);
+      ASSERT_EQUAL_SVE_LANE(0, z7.VnD(), i);
+    }
+  }
+}
+
+template <typename T, size_t M, size_t N>
+static void SdotUdotHelper(Test* config,
+                           unsigned lane_size_in_bits,
+                           const T (&zd_inputs)[M],
+                           const T (&za_inputs)[M],
+                           const T (&zn_inputs)[N],
+                           const T (&zm_inputs)[N],
+                           const T (&zd_expected)[M],
+                           const T (&zdnm_expected)[M],
+                           bool is_signed,
+                           int index = -1) {
+  VIXL_STATIC_ASSERT(N == (M * 4));
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  auto dot_fn = [&](const ZRegister& zd,
+                    const ZRegister& za,
+                    const ZRegister& zn,
+                    const ZRegister& zm,
+                    bool is_signed,
+                    int index) {
+    if (is_signed) {
+      if (index < 0) {
+        __ Sdot(zd, za, zn, zm);
+      } else {
+        __ Sdot(zd, za, zn, zm, index);
+      }
+    } else {
+      if (index < 0) {
+        __ Udot(zd, za, zn, zm);
+      } else {
+        __ Udot(zd, za, zn, zm, index);
+      }
+    }
+  };
+
+  ZRegister zd = z0.WithLaneSize(lane_size_in_bits);
+  ZRegister za = z1.WithLaneSize(lane_size_in_bits);
+  ZRegister zn = z2.WithLaneSize(lane_size_in_bits / 4);
+  ZRegister zm = z3.WithLaneSize(lane_size_in_bits / 4);
+
+  InsrHelper(&masm, zd, zd_inputs);
+  InsrHelper(&masm, za, za_inputs);
+  InsrHelper(&masm, zn, zn_inputs);
+  InsrHelper(&masm, zm, zm_inputs);
+
+  // The Dot macro handles arbitrarily-aliased registers in the argument list.
+  ZRegister dm_result = z4.WithLaneSize(lane_size_in_bits);
+  ZRegister dnm_result = z5.WithLaneSize(lane_size_in_bits);
+  ZRegister da_result = z6.WithLaneSize(lane_size_in_bits);
+  ZRegister dn_result = z7.WithLaneSize(lane_size_in_bits);
+  ZRegister d_result = z8.WithLaneSize(lane_size_in_bits);
+
+  __ Mov(da_result, za);
+  // zda = zda + (zn . zm)
+  dot_fn(da_result, da_result, zn, zm, is_signed, index);
+
+  __ Mov(dn_result, zn.WithSameLaneSizeAs(dn_result));
+  // zdn = za + (zdn . zm)
+  dot_fn(dn_result, za, dn_result.WithSameLaneSizeAs(zn), zm, is_signed, index);
+
+  __ Mov(dm_result, zm.WithSameLaneSizeAs(dm_result));
+  // zdm = za + (zn . zdm)
+  dot_fn(dm_result, za, zn, dm_result.WithSameLaneSizeAs(zm), is_signed, index);
+
+  __ Mov(d_result, zd);
+  // zd = za + (zn . zm)
+  dot_fn(d_result, za, zn, zm, is_signed, index);
+
+  __ Mov(dnm_result, zn.WithSameLaneSizeAs(dnm_result));
+  // zdnm = za + (zdmn . zdnm)
+  dot_fn(dnm_result,
+         za,
+         dnm_result.WithSameLaneSizeAs(zn),
+         dnm_result.WithSameLaneSizeAs(zm),
+         is_signed,
+         index);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(za_inputs, z1.WithLaneSize(lane_size_in_bits));
+    ASSERT_EQUAL_SVE(zn_inputs, z2.WithLaneSize(lane_size_in_bits / 4));
+    ASSERT_EQUAL_SVE(zm_inputs, z3.WithLaneSize(lane_size_in_bits / 4));
+
+    ASSERT_EQUAL_SVE(zd_expected, da_result);
+    ASSERT_EQUAL_SVE(zd_expected, dn_result);
+    ASSERT_EQUAL_SVE(zd_expected, dm_result);
+    ASSERT_EQUAL_SVE(zd_expected, d_result);
+
+    ASSERT_EQUAL_SVE(zdnm_expected, dnm_result);
+  }
+}
+
+TEST_SVE(sve_sdot) {
+  int64_t zd_inputs[] = {0x33, 0xee, 0xff};
+  int64_t za_inputs[] = {INT32_MAX, -3, 2};
+  int64_t zn_inputs[] = {-128, -128, -128, -128, 9, -1, 1, 30, -5, -20, 9, 8};
+  int64_t zm_inputs[] = {-128, -128, -128, -128, -19, 15, 6, 0, 9, -5, 4, 5};
+
+  // zd_expected[] = za_inputs[] + (zn_inputs[] . zm_inputs[])
+  int64_t zd_expected_s[] = {-2147418113, -183, 133};  // 0x8000ffff
+  int64_t zd_expected_d[] = {2147549183, -183, 133};   // 0x8000ffff
+
+  // zdnm_expected[] = za_inputs[] + (zn_inputs[] . zn_inputs[])
+  int64_t zdnm_expected_s[] = {-2147418113, 980, 572};
+  int64_t zdnm_expected_d[] = {2147549183, 980, 572};
+
+  SdotUdotHelper(config,
+                 kSRegSize,
+                 zd_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 zd_expected_s,
+                 zdnm_expected_s,
+                 true);
+
+  SdotUdotHelper(config,
+                 kDRegSize,
+                 zd_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 zd_expected_d,
+                 zdnm_expected_d,
+                 true);
+}
+
+TEST_SVE(sve_udot) {
+  int64_t zd_inputs[] = {0x33, 0xee, 0xff};
+  int64_t za_inputs[] = {INT32_MAX, -3, 2};
+  int64_t zn_inputs[] = {-128, -128, -128, -128, 9, -1, 1, 30, -5, -20, 9, 8};
+  int64_t zm_inputs[] = {-128, -128, -128, -128, -19, 15, 6, 0, 9, -5, 4, 5};
+
+  // zd_expected[] = za_inputs[] + (zn_inputs[] . zm_inputs[])
+  int64_t zd_expected_s[] = {0x8000ffff, 0x00001749, 0x0000f085};
+  int64_t zd_expected_d[] = {0x000000047c00ffff,
+                             0x000000000017ff49,
+                             0x00000000fff00085};
+
+  // zdnm_expected[] = za_inputs[] + (zn_inputs[] . zn_inputs[])
+  int64_t zdnm_expected_s[] = {0x8000ffff, 0x000101d4, 0x0001d03c};
+  int64_t zdnm_expected_d[] = {0x000000047c00ffff,
+                               0x00000000fffe03d4,
+                               0x00000001ffce023c};
+
+  SdotUdotHelper(config,
+                 kSRegSize,
+                 zd_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 zd_expected_s,
+                 zdnm_expected_s,
+                 false);
+
+  SdotUdotHelper(config,
+                 kDRegSize,
+                 zd_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 zd_expected_d,
+                 zdnm_expected_d,
+                 false);
+}
+
+TEST_SVE(sve_sdot_indexed_s) {
+  int64_t zd_inputs[] = {0xff, 0xff, 0xff, 0xff};
+  int64_t za_inputs[] = {0, 1, 2, 3};
+  int64_t zn_inputs[] =
+      {-1, -1, -1, -1, -2, -2, -2, -2, -3, -3, -3, -3, -4, -4, -4, -4};
+  int64_t zm_inputs[] =
+      {127, 127, 127, 127, -128, -128, -128, -128, -1, -1, -1, -1, 0, 0, 0, 0};
+
+  constexpr int s = kQRegSize / kSRegSize;
+
+  // zd_expected[] = za_inputs[] + (zn_inputs[] . zm_inputs[])
+  int64_t zd_expected_s[][s] = {{0, 1, 2, 3},  // Generated from zm[0]
+                                {4, 9, 14, 19},
+                                {512, 1025, 1538, 2051},
+                                {-508, -1015, -1522, -2029}};
+
+  // zdnm_expected[] = za_inputs[] + (zn_inputs[] . zn_inputs[])
+  int64_t zdnm_expected_s[][s] = {{16, 33, 50, 67},
+                                  {12, 25, 38, 51},
+                                  {8, 17, 26, 35},
+                                  {4, 9, 14, 19}};
+
+  for (unsigned i = 0; i < s; i++) {
+    SdotUdotHelper(config,
+                   kSRegSize,
+                   zd_inputs,
+                   za_inputs,
+                   zn_inputs,
+                   zm_inputs,
+                   zd_expected_s[i],
+                   zdnm_expected_s[i],
+                   true,
+                   i);
+  }
+}
+
+TEST_SVE(sve_sdot_indexed_d) {
+  int64_t zd_inputs[] = {0xff, 0xff};
+  int64_t za_inputs[] = {0, 1};
+  int64_t zn_inputs[] = {-1, -1, -1, -1, -1, -1, -1, -1};
+  int64_t zm_inputs[] = {-128, -128, -128, -128, 127, 127, 127, 127};
+
+  constexpr int d = kQRegSize / kDRegSize;
+
+  // zd_expected[] = za_inputs[] + (zn_inputs[] . zm_inputs[])
+  int64_t zd_expected_d[][d] = {{-508, -507},  // Generated from zm[0]
+                                {512, 513}};
+
+  // zdnm_expected[] = za_inputs[] + (zn_inputs[] . zn_inputs[])
+  int64_t zdnm_expected_d[][d] = {{4, 5}, {4, 5}};
+
+  for (unsigned i = 0; i < d; i++) {
+    SdotUdotHelper(config,
+                   kDRegSize,
+                   zd_inputs,
+                   za_inputs,
+                   zn_inputs,
+                   zm_inputs,
+                   zd_expected_d[i],
+                   zdnm_expected_d[i],
+                   true,
+                   i);
+  }
+}
+
+TEST_SVE(sve_udot_indexed_s) {
+  int64_t zd_inputs[] = {0xff, 0xff, 0xff, 0xff};
+  int64_t za_inputs[] = {0, 1, 2, 3};
+  int64_t zn_inputs[] = {1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4};
+  int64_t zm_inputs[] =
+      {127, 127, 127, 127, 255, 255, 255, 255, 1, 1, 1, 1, 0, 0, 0, 0};
+
+  constexpr int s = kQRegSize / kSRegSize;
+
+  // zd_expected[] = za_inputs[] + (zn_inputs[] . zm_inputs[])
+  int64_t zd_expected_s[][s] = {{0, 1, 2, 3},
+                                {4, 9, 14, 19},
+                                {1020, 2041, 3062, 4083},
+                                {508, 1017, 1526, 2035}};
+
+  // zdnm_expected[] = za_inputs[] + (zn_inputs[] . zn_inputs[])
+  int64_t zdnm_expected_s[][s] = {{16, 33, 50, 67},
+                                  {12, 25, 38, 51},
+                                  {8, 17, 26, 35},
+                                  {4, 9, 14, 19}};
+
+  for (unsigned i = 0; i < s; i++) {
+    SdotUdotHelper(config,
+                   kSRegSize,
+                   zd_inputs,
+                   za_inputs,
+                   zn_inputs,
+                   zm_inputs,
+                   zd_expected_s[i],
+                   zdnm_expected_s[i],
+                   false,
+                   i);
+  }
+}
+
+TEST_SVE(sve_udot_indexed_d) {
+  int64_t zd_inputs[] = {0xff, 0xff};
+  int64_t za_inputs[] = {0, 1};
+  int64_t zn_inputs[] = {1, 1, 1, 1, 1, 1, 1, 1};
+  int64_t zm_inputs[] = {255, 255, 255, 255, 127, 127, 127, 127};
+
+  constexpr int d = kQRegSize / kDRegSize;
+
+  // zd_expected[] = za_inputs[] + (zn_inputs[] . zm_inputs[])
+  int64_t zd_expected_d[][d] = {{508, 509}, {1020, 1021}};
+
+  // zdnm_expected[] = za_inputs[] + (zn_inputs[] . zn_inputs[])
+  int64_t zdnm_expected_d[][d] = {{4, 5}, {4, 5}};
+
+  for (unsigned i = 0; i < d; i++) {
+    SdotUdotHelper(config,
+                   kDRegSize,
+                   zd_inputs,
+                   za_inputs,
+                   zn_inputs,
+                   zm_inputs,
+                   zd_expected_d[i],
+                   zdnm_expected_d[i],
+                   false,
+                   i);
+  }
+}
+
+static void IntSegmentPatternHelper(MacroAssembler* masm,
+                                    const ZRegister& dst,
+                                    const ZRegister& src) {
+  VIXL_ASSERT(AreSameLaneSize(dst, src));
+  UseScratchRegisterScope temps(masm);
+  ZRegister ztmp = temps.AcquireZ().WithSameLaneSizeAs(dst);
+  masm->Index(ztmp, 0, 1);
+  masm->Asr(ztmp, ztmp, kQRegSizeInBytesLog2 - dst.GetLaneSizeInBytesLog2());
+  masm->Add(dst, src, ztmp);
+}
+
+TEST_SVE(sve_sdot_udot_indexed_s) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  const int multiplier = 2;
+  __ Dup(z9.VnS(), multiplier);
+
+  __ Ptrue(p0.VnB());
+  __ Index(z29.VnS(), 4, 1);
+
+  // z29 = [... 3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0]
+  __ And(z29.VnS(), z29.VnS(), 3);
+
+  // p7 = [... 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1]
+  __ Cmple(p7.VnS(), p0.Zeroing(), z29.VnS(), 0);
+
+  // p6 = [... 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1]
+  __ Cmple(p6.VnS(), p0.Zeroing(), z29.VnS(), 1);
+
+  // p5 = [... 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1]
+  __ Cmple(p5.VnS(), p0.Zeroing(), z29.VnS(), 2);
+
+  __ Index(z28.VnB(), 1, 1);
+  __ Dup(z27.VnS(), z28.VnS(), 0);
+
+  // z27 = [... 3, 2, 4, 3, 2, 1, 4, 3, 2, 1, 4, 3, 2, 1, 4, 3, 2, 1]
+  IntSegmentPatternHelper(&masm, z27.VnB(), z27.VnB());
+
+  // z27 = [... 6, 4, 4, 3, 2, 1, 4, 3, 2, 1, 4, 3, 2, 1, 8, 6, 4, 2]
+  __ Mul(z27.VnS(), p7.Merging(), z27.VnS(), z9.VnS());
+
+  // z27 = [... 12, 8, 4, 3, 2, 1, 4, 3, 2, 1, 8, 6, 4, 2, 16, 12, 8, 4]
+  __ Mul(z27.VnS(), p6.Merging(), z27.VnS(), z9.VnS());
+
+  //     2nd segment |                                        1st segment |
+  //                 v                                                    v
+  // z27 = [... 24, 16, 4, 3, 2, 1, 8, 6, 4, 2, 16, 12, 8, 4, 32, 24, 16, 8]
+  __ Mul(z27.VnS(), p5.Merging(), z27.VnS(), z9.VnS());
+
+  __ Dup(z0.VnS(), 0);
+  __ Dup(z1.VnS(), 0);
+  __ Dup(z2.VnS(), 0);
+  __ Dup(z3.VnS(), 0);
+  __ Dup(z4.VnS(), 0);
+  __ Dup(z5.VnS(), 0);
+
+  // Skip the lanes starting from the 129th lane since the value of these lanes
+  // are overflow after the number sequence creation by `index`.
+  __ Cmpls(p3.VnB(), p0.Zeroing(), z28.VnB(), 128);
+  __ Mov(z0.VnB(), p3.Merging(), z27.VnB());
+  __ Mov(z1.VnB(), p3.Merging(), z28.VnB());
+
+  __ Dup(z2.VnS(), 0);
+  __ Dup(z3.VnS(), 0);
+  __ Dup(z4.VnS(), 0);
+  __ Dup(z5.VnS(), 0);
+
+  __ Udot(z2.VnS(), z2.VnS(), z1.VnB(), z0.VnB(), 0);
+
+  __ Udot(z3.VnS(), z3.VnS(), z1.VnB(), z0.VnB(), 1);
+  __ Mul(z3.VnS(), z3.VnS(), 2);
+
+  __ Udot(z4.VnS(), z4.VnS(), z1.VnB(), z0.VnB(), 2);
+  __ Mul(z4.VnS(), z4.VnS(), 4);
+
+  __ Udot(z5.VnS(), z5.VnS(), z1.VnB(), z0.VnB(), 3);
+  __ Mul(z5.VnS(), z5.VnS(), 8);
+
+  __ Dup(z7.VnS(), 0);
+  __ Dup(z8.VnS(), 0);
+  __ Dup(z9.VnS(), 0);
+  __ Dup(z10.VnS(), 0);
+
+  // Negate the all positive vector for testing signed dot.
+  __ Neg(z6.VnB(), p0.Merging(), z0.VnB());
+  __ Sdot(z7.VnS(), z7.VnS(), z1.VnB(), z6.VnB(), 0);
+
+  __ Sdot(z8.VnS(), z8.VnS(), z1.VnB(), z6.VnB(), 1);
+  __ Mul(z8.VnS(), z8.VnS(), 2);
+
+  __ Sdot(z9.VnS(), z9.VnS(), z1.VnB(), z6.VnB(), 2);
+  __ Mul(z9.VnS(), z9.VnS(), 4);
+
+  __ Sdot(z10.VnS(), z10.VnS(), z1.VnB(), z6.VnB(), 3);
+  __ Mul(z10.VnS(), z10.VnS(), 8);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Only compare the first 128-bit segment of destination register, use
+    // another result from generated instructions to check the remaining part.
+    // s_lane[0] = (1 * 8) + (2 * 16) + (3 * 24) + (4 * 32) = 240
+    // ...
+    // s_lane[3] = (13 * 8) + (14 * 16) + (15 * 24) + (16 * 32) = 1200
+    int udot_expected[] = {1200, 880, 560, 240};
+    ASSERT_EQUAL_SVE(udot_expected, z2.VnS());
+    ASSERT_EQUAL_SVE(z2.VnS(), z3.VnS());
+    ASSERT_EQUAL_SVE(z2.VnS(), z4.VnS());
+    ASSERT_EQUAL_SVE(z2.VnS(), z5.VnS());
+
+    int sdot_expected[] = {-1200, -880, -560, -240};
+    ASSERT_EQUAL_SVE(sdot_expected, z7.VnS());
+    ASSERT_EQUAL_SVE(z7.VnS(), z8.VnS());
+    ASSERT_EQUAL_SVE(z7.VnS(), z9.VnS());
+    ASSERT_EQUAL_SVE(z7.VnS(), z10.VnS());
+  }
+}
+
+TEST_SVE(sve_sdot_udot_indexed_d) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  const int multiplier = 2;
+  __ Dup(z9.VnD(), multiplier);
+
+  __ Ptrue(p0.VnD());
+  __ Pfalse(p1.VnD());
+
+  // p2 = [..., 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
+  __ Zip1(p2.VnD(), p0.VnD(), p1.VnD());
+
+  __ Index(z1.VnH(), 1, 1);
+  __ Dup(z0.VnD(), z1.VnD(), 0);
+
+  // z0 = [... 5, 4, 3, 2, 5, 4, 3, 2, 4, 3, 2, 1, 4, 3, 2, 1]
+  IntSegmentPatternHelper(&masm, z0.VnH(), z0.VnH());
+
+  //                     2nd segment |           1st segment |
+  //                                 v                       v
+  // z0 = [... 5, 4, 3, 2, 10, 8, 6, 4, 4, 3, 2, 1, 8, 6, 4, 2]
+  __ Mul(z0.VnD(), p2.Merging(), z0.VnD(), z9.VnD());
+
+  __ Dup(z3.VnD(), 0);
+  __ Dup(z4.VnD(), 0);
+
+  __ Udot(z3.VnD(), z3.VnD(), z1.VnH(), z0.VnH(), 0);
+
+  __ Udot(z4.VnD(), z4.VnD(), z1.VnH(), z0.VnH(), 1);
+  __ Mul(z4.VnD(), z4.VnD(), multiplier);
+
+  __ Dup(z12.VnD(), 0);
+  __ Dup(z13.VnD(), 0);
+
+  __ Ptrue(p4.VnH());
+  __ Neg(z10.VnH(), p4.Merging(), z0.VnH());
+
+  __ Sdot(z12.VnD(), z12.VnD(), z1.VnH(), z10.VnH(), 0);
+
+  __ Sdot(z13.VnD(), z13.VnD(), z1.VnH(), z10.VnH(), 1);
+  __ Mul(z13.VnD(), z13.VnD(), multiplier);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Only compare the first 128-bit segment of destination register, use
+    // another result from generated instructions to check the remaining part.
+    // d_lane[0] = (1 * 2) + (2 * 4) + (3 * 6) + (4 * 8) = 60
+    // d_lane[1] = (5 * 2) + (6 * 4) + (7 * 6) + (8 * 8) = 140
+    uint64_t udot_expected[] = {416, 304, 140, 60};
+    ASSERT_EQUAL_SVE(udot_expected, z3.VnD());
+    ASSERT_EQUAL_SVE(z3.VnD(), z4.VnD());
+
+    int64_t sdot_expected[] = {-416, -304, -140, -60};
+    ASSERT_EQUAL_SVE(sdot_expected, z12.VnD());
+    ASSERT_EQUAL_SVE(z12.VnD(), z13.VnD());
+  }
+}
+
+template <typename T, size_t N>
+static void FPToRawbitsWithSize(const T (&inputs)[N],
+                                uint64_t* outputs,
+                                unsigned size_in_bits) {
+  for (size_t i = 0; i < N; i++) {
+    outputs[i] = vixl::FPToRawbitsWithSize(size_in_bits, inputs[i]);
+  }
+}
+
+template <typename Ti, typename Te, size_t N>
+static void FPBinArithHelper(Test* config,
+                             ArithFn macro,
+                             int lane_size_in_bits,
+                             const Ti (&zn_inputs)[N],
+                             const Ti (&zm_inputs)[N],
+                             const Te (&zd_expected)[N]) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+
+  START();
+
+  ZRegister zd = z29.WithLaneSize(lane_size_in_bits);
+  ZRegister zn = z30.WithLaneSize(lane_size_in_bits);
+  ZRegister zm = z31.WithLaneSize(lane_size_in_bits);
+
+  uint64_t zn_rawbits[N];
+  uint64_t zm_rawbits[N];
+
+  FPToRawbitsWithSize(zn_inputs, zn_rawbits, lane_size_in_bits);
+  FPToRawbitsWithSize(zm_inputs, zm_rawbits, lane_size_in_bits);
+
+  InsrHelper(&masm, zn, zn_rawbits);
+  InsrHelper(&masm, zm, zm_rawbits);
+
+  (masm.*macro)(zd, zn, zm);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(zd_expected, zd);
+  }
+}
+
+TEST_SVE(sve_fp_arithmetic_unpredicated_fadd) {
+  double zn_inputs[] = {24.0,
+                        5.5,
+                        0.0,
+                        3.875,
+                        2.125,
+                        kFP64PositiveInfinity,
+                        kFP64NegativeInfinity};
+
+  double zm_inputs[] = {1024.0, 2048.0, 0.1, -4.75, 12.34, 255.0, -13.0};
+
+  ArithFn fn = &MacroAssembler::Fadd;
+
+  uint16_t expected_h[] = {Float16ToRawbits(Float16(1048.0)),
+                           Float16ToRawbits(Float16(2053.5)),
+                           Float16ToRawbits(Float16(0.1)),
+                           Float16ToRawbits(Float16(-0.875)),
+                           Float16ToRawbits(Float16(14.465)),
+                           Float16ToRawbits(kFP16PositiveInfinity),
+                           Float16ToRawbits(kFP16NegativeInfinity)};
+
+  FPBinArithHelper(config, fn, kHRegSize, zn_inputs, zm_inputs, expected_h);
+
+  uint32_t expected_s[] = {FloatToRawbits(1048.0f),
+                           FloatToRawbits(2053.5f),
+                           FloatToRawbits(0.1f),
+                           FloatToRawbits(-0.875f),
+                           FloatToRawbits(14.465f),
+                           FloatToRawbits(kFP32PositiveInfinity),
+                           FloatToRawbits(kFP32NegativeInfinity)};
+
+  FPBinArithHelper(config, fn, kSRegSize, zn_inputs, zm_inputs, expected_s);
+
+  uint64_t expected_d[] = {DoubleToRawbits(1048.0),
+                           DoubleToRawbits(2053.5),
+                           DoubleToRawbits(0.1),
+                           DoubleToRawbits(-0.875),
+                           DoubleToRawbits(14.465),
+                           DoubleToRawbits(kFP64PositiveInfinity),
+                           DoubleToRawbits(kFP64NegativeInfinity)};
+
+  FPBinArithHelper(config, fn, kDRegSize, zn_inputs, zm_inputs, expected_d);
+}
+
+TEST_SVE(sve_fp_arithmetic_unpredicated_fsub) {
+  double zn_inputs[] = {24.0,
+                        5.5,
+                        0.0,
+                        3.875,
+                        2.125,
+                        kFP64PositiveInfinity,
+                        kFP64NegativeInfinity};
+
+  double zm_inputs[] = {1024.0, 2048.0, 0.1, -4.75, 12.34, 255.0, -13.0};
+
+  ArithFn fn = &MacroAssembler::Fsub;
+
+  uint16_t expected_h[] = {Float16ToRawbits(Float16(-1000.0)),
+                           Float16ToRawbits(Float16(-2042.5)),
+                           Float16ToRawbits(Float16(-0.1)),
+                           Float16ToRawbits(Float16(8.625)),
+                           Float16ToRawbits(Float16(-10.215)),
+                           Float16ToRawbits(kFP16PositiveInfinity),
+                           Float16ToRawbits(kFP16NegativeInfinity)};
+
+  FPBinArithHelper(config, fn, kHRegSize, zn_inputs, zm_inputs, expected_h);
+
+  uint32_t expected_s[] = {FloatToRawbits(-1000.0),
+                           FloatToRawbits(-2042.5),
+                           FloatToRawbits(-0.1),
+                           FloatToRawbits(8.625),
+                           FloatToRawbits(-10.215),
+                           FloatToRawbits(kFP32PositiveInfinity),
+                           FloatToRawbits(kFP32NegativeInfinity)};
+
+  FPBinArithHelper(config, fn, kSRegSize, zn_inputs, zm_inputs, expected_s);
+
+  uint64_t expected_d[] = {DoubleToRawbits(-1000.0),
+                           DoubleToRawbits(-2042.5),
+                           DoubleToRawbits(-0.1),
+                           DoubleToRawbits(8.625),
+                           DoubleToRawbits(-10.215),
+                           DoubleToRawbits(kFP64PositiveInfinity),
+                           DoubleToRawbits(kFP64NegativeInfinity)};
+
+  FPBinArithHelper(config, fn, kDRegSize, zn_inputs, zm_inputs, expected_d);
+}
+
+TEST_SVE(sve_fp_arithmetic_unpredicated_fmul) {
+  double zn_inputs[] = {24.0,
+                        5.5,
+                        0.0,
+                        3.875,
+                        2.125,
+                        kFP64PositiveInfinity,
+                        kFP64NegativeInfinity};
+
+  double zm_inputs[] = {1024.0, 2048.0, 0.1, -4.75, 12.34, 255.0, -13.0};
+
+  ArithFn fn = &MacroAssembler::Fmul;
+
+  uint16_t expected_h[] = {Float16ToRawbits(Float16(24576.0)),
+                           Float16ToRawbits(Float16(11264.0)),
+                           Float16ToRawbits(Float16(0.0)),
+                           Float16ToRawbits(Float16(-18.4)),
+                           Float16ToRawbits(Float16(26.23)),
+                           Float16ToRawbits(kFP16PositiveInfinity),
+                           Float16ToRawbits(kFP16PositiveInfinity)};
+
+  FPBinArithHelper(config, fn, kHRegSize, zn_inputs, zm_inputs, expected_h);
+
+  uint32_t expected_s[] = {FloatToRawbits(24576.0),
+                           FloatToRawbits(11264.0),
+                           FloatToRawbits(0.0),
+                           FloatToRawbits(-18.40625),
+                           FloatToRawbits(26.2225),
+                           FloatToRawbits(kFP32PositiveInfinity),
+                           FloatToRawbits(kFP32PositiveInfinity)};
+
+  FPBinArithHelper(config, fn, kSRegSize, zn_inputs, zm_inputs, expected_s);
+
+  uint64_t expected_d[] = {DoubleToRawbits(24576.0),
+                           DoubleToRawbits(11264.0),
+                           DoubleToRawbits(0.0),
+                           DoubleToRawbits(-18.40625),
+                           DoubleToRawbits(26.2225),
+                           DoubleToRawbits(kFP64PositiveInfinity),
+                           DoubleToRawbits(kFP64PositiveInfinity)};
+
+  FPBinArithHelper(config, fn, kDRegSize, zn_inputs, zm_inputs, expected_d);
+}
+
+typedef void (MacroAssembler::*FPArithPredicatedFn)(
+    const ZRegister& zd,
+    const PRegisterM& pg,
+    const ZRegister& zn,
+    const ZRegister& zm,
+    FPMacroNaNPropagationOption nan_option);
+
+typedef void (MacroAssembler::*FPArithPredicatedNoNaNOptFn)(
+    const ZRegister& zd,
+    const PRegisterM& pg,
+    const ZRegister& zn,
+    const ZRegister& zm);
+
+template <typename Ti, typename Te, size_t N>
+static void FPBinArithHelper(
+    Test* config,
+    FPArithPredicatedFn macro,
+    FPArithPredicatedNoNaNOptFn macro_nonan,
+    unsigned lane_size_in_bits,
+    const Ti (&zd_inputs)[N],
+    const int (&pg_inputs)[N],
+    const Ti (&zn_inputs)[N],
+    const Ti (&zm_inputs)[N],
+    const Te (&zd_expected)[N],
+    FPMacroNaNPropagationOption nan_option = FastNaNPropagation) {
+  VIXL_ASSERT((macro == NULL) ^ (macro_nonan == NULL));
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Avoid choosing default scratch registers.
+  ZRegister zd = z26.WithLaneSize(lane_size_in_bits);
+  ZRegister zn = z27.WithLaneSize(lane_size_in_bits);
+  ZRegister zm = z28.WithLaneSize(lane_size_in_bits);
+
+  uint64_t zn_inputs_rawbits[N];
+  uint64_t zm_inputs_rawbits[N];
+  uint64_t zd_inputs_rawbits[N];
+
+  FPToRawbitsWithSize(zn_inputs, zn_inputs_rawbits, lane_size_in_bits);
+  FPToRawbitsWithSize(zm_inputs, zm_inputs_rawbits, lane_size_in_bits);
+  FPToRawbitsWithSize(zd_inputs, zd_inputs_rawbits, lane_size_in_bits);
+
+  InsrHelper(&masm, zn, zn_inputs_rawbits);
+  InsrHelper(&masm, zm, zm_inputs_rawbits);
+  InsrHelper(&masm, zd, zd_inputs_rawbits);
+
+  PRegisterWithLaneSize pg = p0.WithLaneSize(lane_size_in_bits);
+  Initialise(&masm, pg, pg_inputs);
+
+  // `instr` zdn, pg, zdn, zm
+  ZRegister dn_result = z0.WithLaneSize(lane_size_in_bits);
+  __ Mov(dn_result, zn);
+  if (macro_nonan == NULL) {
+    (masm.*macro)(dn_result, pg.Merging(), dn_result, zm, nan_option);
+  } else {
+    (masm.*macro_nonan)(dn_result, pg.Merging(), dn_result, zm);
+  }
+
+  // Based on whether zd and zm registers are aliased, the macro of instructions
+  // (`Instr`) swaps the order of operands if it has the commutative property,
+  // otherwise, transfer to the reversed `Instr`, such as fdivr.
+  // `instr` zdm, pg, zn, zdm
+  ZRegister dm_result = z1.WithLaneSize(lane_size_in_bits);
+  __ Mov(dm_result, zm);
+  if (macro_nonan == NULL) {
+    (masm.*macro)(dm_result, pg.Merging(), zn, dm_result, nan_option);
+  } else {
+    (masm.*macro_nonan)(dm_result, pg.Merging(), zn, dm_result);
+  }
+
+  // The macro of instructions (`Instr`) automatically selects between `instr`
+  // and movprfx + `instr` based on whether zd and zn registers are aliased.
+  // A generated movprfx instruction is predicated that using the same
+  // governing predicate register. In order to keep the result constant,
+  // initialize the destination register first.
+  // `instr` zd, pg, zn, zm
+  ZRegister d_result = z2.WithLaneSize(lane_size_in_bits);
+  __ Mov(d_result, zd);
+  if (macro_nonan == NULL) {
+    (masm.*macro)(d_result, pg.Merging(), zn, zm, nan_option);
+  } else {
+    (masm.*macro_nonan)(d_result, pg.Merging(), zn, zm);
+  }
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    for (size_t i = 0; i < ArrayLength(zd_expected); i++) {
+      int lane = static_cast<int>(ArrayLength(zd_expected) - i - 1);
+      if (!core.HasSVELane(dn_result, lane)) break;
+      if ((pg_inputs[i] & 1) != 0) {
+        ASSERT_EQUAL_SVE_LANE(zd_expected[i], dn_result, lane);
+      } else {
+        ASSERT_EQUAL_SVE_LANE(zn_inputs_rawbits[i], dn_result, lane);
+      }
+    }
+
+    for (size_t i = 0; i < ArrayLength(zd_expected); i++) {
+      int lane = static_cast<int>(ArrayLength(zd_expected) - i - 1);
+      if (!core.HasSVELane(dm_result, lane)) break;
+      if ((pg_inputs[i] & 1) != 0) {
+        ASSERT_EQUAL_SVE_LANE(zd_expected[i], dm_result, lane);
+      } else {
+        ASSERT_EQUAL_SVE_LANE(zm_inputs_rawbits[i], dm_result, lane);
+      }
+    }
+
+    ASSERT_EQUAL_SVE(zd_expected, d_result);
+  }
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_fdiv) {
+  // The inputs are shared with different precision tests.
+  double zd_in[] = {0.1, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9};
+
+  double zn_in[] = {24.0,
+                    24.0,
+                    -2.0,
+                    -2.0,
+                    5.5,
+                    5.5,
+                    kFP64PositiveInfinity,
+                    kFP64PositiveInfinity,
+                    kFP64NegativeInfinity,
+                    kFP64NegativeInfinity};
+
+  double zm_in[] = {-2.0, -2.0, 24.0, 24.0, 0.5, 0.5, 0.65, 0.65, 24.0, 24.0};
+
+  int pg_in[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
+
+  uint16_t exp_h[] = {Float16ToRawbits(Float16(0.1)),
+                      Float16ToRawbits(Float16(-12.0)),
+                      Float16ToRawbits(Float16(2.2)),
+                      Float16ToRawbits(Float16(-0.0833)),
+                      Float16ToRawbits(Float16(4.4)),
+                      Float16ToRawbits(Float16(11.0)),
+                      Float16ToRawbits(Float16(6.6)),
+                      Float16ToRawbits(kFP16PositiveInfinity),
+                      Float16ToRawbits(Float16(8.8)),
+                      Float16ToRawbits(kFP16NegativeInfinity)};
+
+  FPBinArithHelper(config,
+                   NULL,
+                   &MacroAssembler::Fdiv,
+                   kHRegSize,
+                   zd_in,
+                   pg_in,
+                   zn_in,
+                   zm_in,
+                   exp_h);
+
+  uint32_t exp_s[] = {FloatToRawbits(0.1),
+                      FloatToRawbits(-12.0),
+                      FloatToRawbits(2.2),
+                      0xbdaaaaab,
+                      FloatToRawbits(4.4),
+                      FloatToRawbits(11.0),
+                      FloatToRawbits(6.6),
+                      FloatToRawbits(kFP32PositiveInfinity),
+                      FloatToRawbits(8.8),
+                      FloatToRawbits(kFP32NegativeInfinity)};
+
+  FPBinArithHelper(config,
+                   NULL,
+                   &MacroAssembler::Fdiv,
+                   kSRegSize,
+                   zd_in,
+                   pg_in,
+                   zn_in,
+                   zm_in,
+                   exp_s);
+
+  uint64_t exp_d[] = {DoubleToRawbits(0.1),
+                      DoubleToRawbits(-12.0),
+                      DoubleToRawbits(2.2),
+                      0xbfb5555555555555,
+                      DoubleToRawbits(4.4),
+                      DoubleToRawbits(11.0),
+                      DoubleToRawbits(6.6),
+                      DoubleToRawbits(kFP64PositiveInfinity),
+                      DoubleToRawbits(8.8),
+                      DoubleToRawbits(kFP64NegativeInfinity)};
+
+  FPBinArithHelper(config,
+                   NULL,
+                   &MacroAssembler::Fdiv,
+                   kDRegSize,
+                   zd_in,
+                   pg_in,
+                   zn_in,
+                   zm_in,
+                   exp_d);
+}
+
+TEST_SVE(sve_select) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in0[] = {0x01f203f405f607f8, 0xfefcf8f0e1c3870f, 0x123456789abcdef0};
+  uint64_t in1[] = {0xaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaa};
+
+  // For simplicity, we re-use the same pg for various lane sizes.
+  // For D lanes:         1,                      1,                      0
+  // For S lanes:         1,          1,          1,          0,          0
+  // For H lanes:   0,    1,    0,    1,    1,    1,    0,    0,    1,    0
+  int pg_in[] = {1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0};
+  Initialise(&masm, p0.VnB(), pg_in);
+  PRegisterM pg = p0.Merging();
+
+  InsrHelper(&masm, z30.VnD(), in0);
+  InsrHelper(&masm, z31.VnD(), in1);
+
+  __ Sel(z0.VnB(), pg, z30.VnB(), z31.VnB());
+  __ Sel(z1.VnH(), pg, z30.VnH(), z31.VnH());
+  __ Sel(z2.VnS(), pg, z30.VnS(), z31.VnS());
+  __ Sel(z3.VnD(), pg, z30.VnD(), z31.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint64_t expected_z0[] = {0xaaaaaaaa05aa07f8,
+                              0xfeaaaaf0aac3870f,
+                              0xaaaa56aa9abcdeaa};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+
+    uint64_t expected_z1[] = {0xaaaaaaaaaaaa07f8,
+                              0xaaaaf8f0e1c3870f,
+                              0xaaaaaaaa9abcaaaa};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+
+    uint64_t expected_z2[] = {0xaaaaaaaa05f607f8,
+                              0xfefcf8f0e1c3870f,
+                              0xaaaaaaaaaaaaaaaa};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+
+    uint64_t expected_z3[] = {0x01f203f405f607f8,
+                              0xfefcf8f0e1c3870f,
+                              0xaaaaaaaaaaaaaaaa};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+  }
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_fmax_fmin_h) {
+  double zd_inputs[] = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8};
+  double zn_inputs[] = {-2.1,
+                        8.5,
+                        225.5,
+                        0.0,
+                        8.8,
+                        -4.75,
+                        kFP64PositiveInfinity,
+                        kFP64NegativeInfinity};
+  double zm_inputs[] = {-2.0,
+                        -13.0,
+                        24.0,
+                        0.01,
+                        0.5,
+                        300.75,
+                        kFP64NegativeInfinity,
+                        kFP64PositiveInfinity};
+  int pg_inputs[] = {1, 1, 0, 1, 0, 1, 1, 1};
+
+  uint16_t zd_expected_max[] = {Float16ToRawbits(Float16(-2.0)),
+                                Float16ToRawbits(Float16(8.5)),
+                                Float16ToRawbits(Float16(3.3)),
+                                Float16ToRawbits(Float16(0.01)),
+                                Float16ToRawbits(Float16(5.5)),
+                                Float16ToRawbits(Float16(300.75)),
+                                Float16ToRawbits(kFP16PositiveInfinity),
+                                Float16ToRawbits(kFP16PositiveInfinity)};
+  FPBinArithHelper(config,
+                   &MacroAssembler::Fmax,
+                   NULL,
+                   kHRegSize,
+                   zd_inputs,
+                   pg_inputs,
+                   zn_inputs,
+                   zm_inputs,
+                   zd_expected_max);
+
+  uint16_t zd_expected_min[] = {Float16ToRawbits(Float16(-2.1)),
+                                Float16ToRawbits(Float16(-13.0)),
+                                Float16ToRawbits(Float16(3.3)),
+                                Float16ToRawbits(Float16(0.0)),
+                                Float16ToRawbits(Float16(5.5)),
+                                Float16ToRawbits(Float16(-4.75)),
+                                Float16ToRawbits(kFP16NegativeInfinity),
+                                Float16ToRawbits(kFP16NegativeInfinity)};
+  FPBinArithHelper(config,
+                   &MacroAssembler::Fmin,
+                   NULL,
+                   kHRegSize,
+                   zd_inputs,
+                   pg_inputs,
+                   zn_inputs,
+                   zm_inputs,
+                   zd_expected_min);
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_fmax_fmin_s) {
+  double zd_inputs[] = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8};
+  double zn_inputs[] = {-2.1,
+                        8.5,
+                        225.5,
+                        0.0,
+                        8.8,
+                        -4.75,
+                        kFP64PositiveInfinity,
+                        kFP64NegativeInfinity};
+  double zm_inputs[] = {-2.0,
+                        -13.0,
+                        24.0,
+                        0.01,
+                        0.5,
+                        300.75,
+                        kFP64NegativeInfinity,
+                        kFP64PositiveInfinity};
+  int pg_inputs[] = {1, 1, 0, 1, 0, 1, 1, 1};
+
+  uint32_t zd_expected_max[] = {FloatToRawbits(-2.0),
+                                FloatToRawbits(8.5),
+                                FloatToRawbits(3.3),
+                                FloatToRawbits(0.01),
+                                FloatToRawbits(5.5),
+                                FloatToRawbits(300.75),
+                                FloatToRawbits(kFP32PositiveInfinity),
+                                FloatToRawbits(kFP32PositiveInfinity)};
+  FPBinArithHelper(config,
+                   &MacroAssembler::Fmax,
+                   NULL,
+                   kSRegSize,
+                   zd_inputs,
+                   pg_inputs,
+                   zn_inputs,
+                   zm_inputs,
+                   zd_expected_max);
+
+  uint32_t zd_expected_min[] = {FloatToRawbits(-2.1),
+                                FloatToRawbits(-13.0),
+                                FloatToRawbits(3.3),
+                                FloatToRawbits(0.0),
+                                FloatToRawbits(5.5),
+                                FloatToRawbits(-4.75),
+                                FloatToRawbits(kFP32NegativeInfinity),
+                                FloatToRawbits(kFP32NegativeInfinity)};
+  FPBinArithHelper(config,
+                   &MacroAssembler::Fmin,
+                   NULL,
+                   kSRegSize,
+                   zd_inputs,
+                   pg_inputs,
+                   zn_inputs,
+                   zm_inputs,
+                   zd_expected_min);
+}
+
+TEST_SVE(sve_binary_arithmetic_predicated_fmax_fmin_d) {
+  double zd_inputs[] = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8};
+  double zn_inputs[] = {-2.1,
+                        8.5,
+                        225.5,
+                        0.0,
+                        8.8,
+                        -4.75,
+                        kFP64PositiveInfinity,
+                        kFP64NegativeInfinity};
+  double zm_inputs[] = {-2.0,
+                        -13.0,
+                        24.0,
+                        0.01,
+                        0.5,
+                        300.75,
+                        kFP64NegativeInfinity,
+                        kFP64PositiveInfinity};
+  int pg_inputs[] = {1, 1, 0, 1, 0, 1, 1, 1};
+
+  uint64_t zd_expected_max[] = {DoubleToRawbits(-2.0),
+                                DoubleToRawbits(8.5),
+                                DoubleToRawbits(3.3),
+                                DoubleToRawbits(0.01),
+                                DoubleToRawbits(5.5),
+                                DoubleToRawbits(300.75),
+                                DoubleToRawbits(kFP64PositiveInfinity),
+                                DoubleToRawbits(kFP64PositiveInfinity)};
+  FPBinArithHelper(config,
+                   &MacroAssembler::Fmax,
+                   NULL,
+                   kDRegSize,
+                   zd_inputs,
+                   pg_inputs,
+                   zn_inputs,
+                   zm_inputs,
+                   zd_expected_max);
+
+  uint64_t zd_expected_min[] = {DoubleToRawbits(-2.1),
+                                DoubleToRawbits(-13.0),
+                                DoubleToRawbits(3.3),
+                                DoubleToRawbits(0.0),
+                                DoubleToRawbits(5.5),
+                                DoubleToRawbits(-4.75),
+                                DoubleToRawbits(kFP64NegativeInfinity),
+                                DoubleToRawbits(kFP64NegativeInfinity)};
+  FPBinArithHelper(config,
+                   &MacroAssembler::Fmin,
+                   NULL,
+                   kDRegSize,
+                   zd_inputs,
+                   pg_inputs,
+                   zn_inputs,
+                   zm_inputs,
+                   zd_expected_min);
+}
+
+template <typename T, size_t N>
+static void BitwiseShiftImmHelper(Test* config,
+                                  int lane_size_in_bits,
+                                  const T (&zn_inputs)[N],
+                                  int shift) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  ZRegister zd_asr = z25.WithLaneSize(lane_size_in_bits);
+  ZRegister zd_lsr = z26.WithLaneSize(lane_size_in_bits);
+  ZRegister zd_lsl = z27.WithLaneSize(lane_size_in_bits);
+  ZRegister zn = z28.WithLaneSize(lane_size_in_bits);
+
+  InsrHelper(&masm, zn, zn_inputs);
+
+  __ Asr(zd_asr, zn, shift);
+  __ Lsr(zd_lsr, zn, shift);
+  __ Lsl(zd_lsl, zn, shift - 1);  // Lsl supports 0 - lane_size-1.
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    const uint64_t mask = GetUintMask(lane_size_in_bits);
+    for (int i = 0; i < static_cast<int>(N); i++) {
+      int lane = N - i - 1;
+      if (!core.HasSVELane(zd_asr, lane)) break;
+      bool is_negative = (zn_inputs[i] & GetSignMask(lane_size_in_bits)) != 0;
+      uint64_t result;
+      if (shift >= lane_size_in_bits) {
+        result = is_negative ? mask : 0;
+      } else {
+        result = zn_inputs[i] >> shift;
+        if (is_negative) {
+          result |= mask << (lane_size_in_bits - shift);
+          result &= mask;
+        }
+      }
+      ASSERT_EQUAL_SVE_LANE(result, zd_asr, lane);
+    }
+
+    for (int i = 0; i < static_cast<int>(N); i++) {
+      int lane = N - i - 1;
+      if (!core.HasSVELane(zd_lsr, lane)) break;
+      uint64_t result =
+          (shift >= lane_size_in_bits) ? 0 : zn_inputs[i] >> shift;
+      ASSERT_EQUAL_SVE_LANE(result, zd_lsr, lane);
+    }
+
+    for (int i = 0; i < static_cast<int>(N); i++) {
+      int lane = N - i - 1;
+      if (!core.HasSVELane(zd_lsl, lane)) break;
+      uint64_t result =
+          (shift > lane_size_in_bits) ? 0 : zn_inputs[i] << (shift - 1);
+      ASSERT_EQUAL_SVE_LANE(result & mask, zd_lsl, lane);
+    }
+  }
+}
+
+TEST_SVE(sve_bitwise_shift_imm_unpredicated) {
+  uint64_t inputs_b[] = {0xfe, 0xdc, 0xba, 0x98, 0xff, 0x55, 0xaa, 0x80};
+  int shift_b[] = {1, 3, 5, 8};
+  for (size_t i = 0; i < ArrayLength(shift_b); i++) {
+    BitwiseShiftImmHelper(config, kBRegSize, inputs_b, shift_b[i]);
+  }
+
+  uint64_t inputs_h[] = {0xfedc, 0xfa55, 0x0011, 0x2233};
+  int shift_h[] = {1, 8, 11, 16};
+  for (size_t i = 0; i < ArrayLength(shift_h); i++) {
+    BitwiseShiftImmHelper(config, kHRegSize, inputs_h, shift_h[i]);
+  }
+
+  uint64_t inputs_s[] = {0xfedcba98, 0xfffa55aa, 0x00112233};
+  int shift_s[] = {1, 9, 17, 32};
+  for (size_t i = 0; i < ArrayLength(shift_s); i++) {
+    BitwiseShiftImmHelper(config, kSRegSize, inputs_s, shift_s[i]);
+  }
+
+  uint64_t inputs_d[] = {0xfedcba98fedcba98,
+                         0xfffa5555aaaaaaaa,
+                         0x0011223344aafe80};
+  int shift_d[] = {1, 23, 45, 64};
+  for (size_t i = 0; i < ArrayLength(shift_d); i++) {
+    BitwiseShiftImmHelper(config, kDRegSize, inputs_d, shift_d[i]);
+  }
+}
+
+template <typename T, typename R, size_t N>
+static void BitwiseShiftWideElementsHelper(Test* config,
+                                           Shift shift_type,
+                                           int lane_size_in_bits,
+                                           const T (&zn_inputs)[N],
+                                           const R& zm_inputs,
+                                           const T (&zd_expected)[N]) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  ArithFn macro;
+  // Since logical shift left and right by the current lane size width is equal
+  // to 0, so initialize the array to 0 for convenience.
+  uint64_t zd_expected_max_shift_amount[N] = {0};
+  switch (shift_type) {
+    case ASR: {
+      macro = &MacroAssembler::Asr;
+      uint64_t mask = GetUintMask(lane_size_in_bits);
+      for (size_t i = 0; i < ArrayLength(zn_inputs); i++) {
+        bool is_negative = (zn_inputs[i] & GetSignMask(lane_size_in_bits)) != 0;
+        zd_expected_max_shift_amount[i] = is_negative ? mask : 0;
+      }
+      break;
+    }
+    case LSR:
+      macro = &MacroAssembler::Lsr;
+      break;
+    case LSL:
+      macro = &MacroAssembler::Lsl;
+      break;
+    default:
+      VIXL_UNIMPLEMENTED();
+      macro = NULL;
+      break;
+  }
+
+  ZRegister zd = z26.WithLaneSize(lane_size_in_bits);
+  ZRegister zn = z27.WithLaneSize(lane_size_in_bits);
+  ZRegister zm = z28.WithLaneSize(kDRegSize);
+
+  InsrHelper(&masm, zn, zn_inputs);
+  InsrHelper(&masm, zm, zm_inputs);
+
+  (masm.*macro)(zd, zn, zm);
+
+  ZRegister zm_max_shift_amount = z25.WithLaneSize(kDRegSize);
+  ZRegister zd_max_shift_amount = z24.WithLaneSize(lane_size_in_bits);
+
+  __ Dup(zm_max_shift_amount, lane_size_in_bits);
+  (masm.*macro)(zd_max_shift_amount, zn, zm_max_shift_amount);
+
+  ZRegister zm_out_of_range = z23.WithLaneSize(kDRegSize);
+  ZRegister zd_out_of_range = z22.WithLaneSize(lane_size_in_bits);
+
+  __ Dup(zm_out_of_range, GetUintMask(lane_size_in_bits));
+  (masm.*macro)(zd_out_of_range, zn, zm_out_of_range);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(zd_expected, zd);
+    ASSERT_EQUAL_SVE(zd_expected_max_shift_amount, zd_max_shift_amount);
+    ASSERT_EQUAL_SVE(zd_max_shift_amount, zd_out_of_range);
+  }
+}
+
+TEST_SVE(sve_bitwise_shift_wide_elements_unpredicated_asr) {
+  // clang-format off
+  uint64_t inputs_b[] = {0xfe, 0xdc, 0xba, 0x98, 0xff, 0x55, 0xaa, 0x80,
+                         0xfe, 0xdc, 0xba, 0x98, 0xff, 0x55, 0xaa, 0x80};
+  int shift_b[] = {1, 3};
+  uint64_t expected_b[] = {0xff, 0xee, 0xdd, 0xcc, 0xff, 0x2a, 0xd5, 0xc0,
+                           0xff, 0xfb, 0xf7, 0xf3, 0xff, 0x0a, 0xf5, 0xf0};
+  BitwiseShiftWideElementsHelper(config,
+                                 ASR,
+                                 kBRegSize,
+                                 inputs_b,
+                                 shift_b,
+                                 expected_b);
+
+  uint64_t inputs_h[] = {0xfedc, 0xfa55, 0x0011, 0x2233,
+                         0xfedc, 0xfa55, 0x0011, 0x2233,
+                         0xfedc, 0xfa55, 0x0011, 0x2233};
+  int shift_h[] = {1, 8, 11};
+  uint64_t expected_h[] = {0xff6e, 0xfd2a, 0x0008, 0x1119,
+                           0xfffe, 0xfffa, 0x0000, 0x0022,
+                           0xffff, 0xffff, 0x0000, 0x0004};
+  BitwiseShiftWideElementsHelper(config,
+                                 ASR,
+                                 kHRegSize,
+                                 inputs_h,
+                                 shift_h,
+                                 expected_h);
+
+  uint64_t inputs_s[] =
+      {0xfedcba98, 0xfffa55aa, 0x00112233, 0x01234567, 0xaaaaaaaa, 0x88888888};
+  int shift_s[] = {1, 9, 23};
+  uint64_t expected_s[] =
+      {0xff6e5d4c, 0xfffd2ad5, 0x00000891, 0x000091a2, 0xffffff55, 0xffffff11};
+  BitwiseShiftWideElementsHelper(config,
+                                 ASR,
+                                 kSRegSize,
+                                 inputs_s,
+                                 shift_s,
+                                 expected_s);
+  // clang-format on
+}
+
+TEST_SVE(sve_bitwise_shift_wide_elements_unpredicated_lsr) {
+  // clang-format off
+  uint64_t inputs_b[] = {0xfe, 0xdc, 0xba, 0x98, 0xff, 0x55, 0xaa, 0x80,
+                         0xfe, 0xdc, 0xba, 0x98, 0xff, 0x55, 0xaa, 0x80};
+  int shift_b[] = {1, 3};
+  uint64_t expected_b[] = {0x7f, 0x6e, 0x5d, 0x4c, 0x7f, 0x2a, 0x55, 0x40,
+                           0x1f, 0x1b, 0x17, 0x13, 0x1f, 0x0a, 0x15, 0x10};
+
+  BitwiseShiftWideElementsHelper(config,
+                                 LSR,
+                                 kBRegSize,
+                                 inputs_b,
+                                 shift_b,
+                                 expected_b);
+
+  uint64_t inputs_h[] = {0xfedc, 0xfa55, 0x0011, 0x2233,
+                         0xfedc, 0xfa55, 0x0011, 0x2233,
+                         0xfedc, 0xfa55, 0x0011, 0x2233};
+  int shift_h[] = {1, 8, 11};
+  uint64_t expected_h[] = {0x7f6e, 0x7d2a, 0x0008, 0x1119,
+                           0x00fe, 0x00fa, 0x0000, 0x0022,
+                           0x001f, 0x001f, 0x0000, 0x0004};
+  BitwiseShiftWideElementsHelper(config,
+                                 LSR,
+                                 kHRegSize,
+                                 inputs_h,
+                                 shift_h,
+                                 expected_h);
+
+  uint64_t inputs_s[] =
+      {0xfedcba98, 0xfffa55aa, 0x00112233, 0x01234567, 0xaaaaaaaa, 0x88888888};
+  int shift_s[] = {1, 9, 23};
+  uint64_t expected_s[] =
+      {0x7f6e5d4c, 0x7ffd2ad5, 0x00000891, 0x000091a2, 0x00000155, 0x00000111};
+  BitwiseShiftWideElementsHelper(config,
+                                 LSR,
+                                 kSRegSize,
+                                 inputs_s,
+                                 shift_s,
+                                 expected_s);
+  // clang-format on
+}
+
+TEST_SVE(sve_bitwise_shift_wide_elements_unpredicated_lsl) {
+  // clang-format off
+  uint64_t inputs_b[] = {0xfe, 0xdc, 0xba, 0x98, 0xff, 0x55, 0xaa, 0x80,
+                         0xfe, 0xdc, 0xba, 0x98, 0xff, 0x55, 0xaa, 0x80};
+  int shift_b[] = {1, 5};
+
+  uint64_t expected_b[] = {0xfc, 0xb8, 0x74, 0x30, 0xfe, 0xaa, 0x54, 0x00,
+                           0xc0, 0x80, 0x40, 0x00, 0xe0, 0xa0, 0x40, 0x00};
+
+  BitwiseShiftWideElementsHelper(config,
+                                 LSL,
+                                 kBRegSize,
+                                 inputs_b,
+                                 shift_b,
+                                 expected_b);
+  uint64_t inputs_h[] = {0xfedc, 0xfa55, 0x0011, 0x2233,
+                         0xfedc, 0xfa55, 0x0011, 0x2233,
+                         0xfedc, 0xfa55, 0x0011, 0x2233};
+  int shift_h[] = {1, 2, 14};
+
+  uint64_t expected_h[] = {0xfdb8, 0xf4aa, 0x0022, 0x4466,
+                           0xfb70, 0xe954, 0x0044, 0x88cc,
+                           0x0000, 0x4000, 0x4000, 0xc000};
+  BitwiseShiftWideElementsHelper(config,
+                                 LSL,
+                                 kHRegSize,
+                                 inputs_h,
+                                 shift_h,
+                                 expected_h);
+  uint64_t inputs_s[] =
+      {0xfedcba98, 0xfffa55aa, 0x00112233, 0x01234567, 0xaaaaaaaa, 0x88888888};
+  int shift_s[] = {1, 19, 26};
+  uint64_t expected_s[] =
+      {0xfdb97530, 0xfff4ab54, 0x11980000, 0x2b380000, 0xa8000000, 0x20000000};
+  BitwiseShiftWideElementsHelper(config,
+                                 LSL,
+                                 kSRegSize,
+                                 inputs_s,
+                                 shift_s,
+                                 expected_s);
+
+  // Test large shifts outside the range of the "unsigned" type.
+  uint64_t inputs_b2[] = {1, 2, 4, 8, 3, 5, 7, 9,
+                          1, 2, 4, 8, 3, 5, 7, 9};
+  uint64_t shift_b2[] = {1, 0x1000000001};
+  uint64_t expected_b2[] = {2, 4, 8, 16, 6, 10, 14, 18,
+                            0, 0, 0, 0, 0, 0, 0, 0};
+  BitwiseShiftWideElementsHelper(config, LSL, kBRegSize, inputs_b2, shift_b2,
+                                 expected_b2);
+
+  // clang-format on
+}
+
+TEST_SVE(sve_shift_by_vector) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+
+  START();
+  __ Ptrue(p0.VnB());
+  __ Pfalse(p1.VnB());
+  __ Zip1(p2.VnB(), p0.VnB(), p1.VnB());
+  __ Zip1(p3.VnH(), p0.VnH(), p1.VnH());
+  __ Zip1(p4.VnS(), p0.VnS(), p1.VnS());
+  __ Zip1(p5.VnD(), p0.VnD(), p1.VnD());
+
+  __ Dup(z31.VnD(), 0x8000000080008080);
+  __ Dup(z0.VnB(), -1);
+
+  __ Index(z1.VnB(), 0, 1);
+  __ Dup(z2.VnB(), 0x55);
+  __ Lsr(z2.VnB(), p2.Merging(), z0.VnB(), z1.VnB());
+  __ Lsl(z3.VnB(), p0.Merging(), z0.VnB(), z1.VnB());
+  __ Asr(z4.VnB(), p0.Merging(), z31.VnB(), z1.VnB());
+
+  __ Index(z1.VnH(), 0, 1);
+  __ Dup(z6.VnB(), 0x55);
+  __ Lsr(z5.VnH(), p0.Merging(), z0.VnH(), z1.VnH());
+  __ Lsl(z6.VnH(), p3.Merging(), z0.VnH(), z1.VnH());
+  __ Asr(z7.VnH(), p0.Merging(), z31.VnH(), z1.VnH());
+
+  __ Index(z1.VnS(), 0, 1);
+  __ Dup(z10.VnB(), 0x55);
+  __ Lsr(z8.VnS(), p0.Merging(), z0.VnS(), z1.VnS());
+  __ Lsl(z9.VnS(), p0.Merging(), z0.VnS(), z1.VnS());
+  __ Asr(z10.VnS(), p4.Merging(), z31.VnS(), z1.VnS());
+
+  __ Index(z1.VnD(), 0, 1);
+  __ Lsr(z0.VnD(), p5.Merging(), z0.VnD(), z1.VnD());
+  __ Lsl(z12.VnD(), p0.Merging(), z0.VnD(), z1.VnD());
+  __ Asr(z13.VnD(), p0.Merging(), z31.VnD(), z1.VnD());
+
+  __ Dup(z11.VnD(), 0x100000001);
+  __ Lsl(z14.VnD(), p0.Merging(), z1.VnD(), z11.VnD());
+
+  __ Index(z0.VnH(), 7, -1);
+  __ Lsr(z0.VnH(), p0.Merging(), z31.VnH(), z0.VnH());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint64_t expected_z0[] = {0x8000000020001010, 0x0800000002000101};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+    uint64_t expected_z2[] = {0x5500550055005500, 0x5503550f553f55ff};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0x0000000000000000, 0x80c0e0f0f8fcfeff};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0xff000000ff00ffff, 0xff000000f000c080};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0x01ff03ff07ff0fff, 0x1fff3fff7fffffff};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0x5555ffc05555fff0, 0x5555fffc5555ffff};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0xff000000fc00f808, 0xf0000000c0008080};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z8[] = {0x1fffffff3fffffff, 0x7fffffffffffffff};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+    uint64_t expected_z9[] = {0xfffffff8fffffffc, 0xfffffffeffffffff};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    uint64_t expected_z10[] = {0x55555555e0002020, 0x5555555580008080};
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+    uint64_t expected_z12[] = {0xfffffffffffffffe, 0xffffffffffffffff};
+    ASSERT_EQUAL_SVE(expected_z12, z12.VnD());
+    uint64_t expected_z13[] = {0xc000000040004040, 0x8000000080008080};
+    ASSERT_EQUAL_SVE(expected_z13, z13.VnD());
+    uint64_t expected_z14[] = {0, 0};
+    ASSERT_EQUAL_SVE(expected_z14, z14.VnD());
+  }
+}
+
+TEST_SVE(sve_shift_by_wide_vector) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+
+  START();
+  __ Ptrue(p0.VnB());
+  __ Pfalse(p1.VnB());
+  __ Zip1(p2.VnB(), p0.VnB(), p1.VnB());
+  __ Zip1(p3.VnH(), p0.VnH(), p1.VnH());
+  __ Zip1(p4.VnS(), p0.VnS(), p1.VnS());
+
+  __ Dup(z31.VnD(), 0x8000000080008080);
+  __ Dup(z0.VnB(), -1);
+  __ Index(z1.VnD(), 1, 5);
+
+  __ Dup(z2.VnB(), 0x55);
+  __ Lsr(z2.VnB(), p2.Merging(), z2.VnB(), z1.VnD());
+  __ Lsl(z3.VnB(), p0.Merging(), z0.VnB(), z1.VnD());
+  __ Asr(z4.VnB(), p0.Merging(), z31.VnB(), z1.VnD());
+
+  __ Dup(z6.VnB(), 0x55);
+  __ Lsr(z5.VnH(), p0.Merging(), z0.VnH(), z1.VnD());
+  __ Lsl(z6.VnH(), p3.Merging(), z6.VnH(), z1.VnD());
+  __ Asr(z7.VnH(), p0.Merging(), z31.VnH(), z1.VnD());
+
+  __ Dup(z10.VnB(), 0x55);
+  __ Lsr(z8.VnS(), p0.Merging(), z0.VnS(), z1.VnD());
+  __ Lsl(z9.VnS(), p0.Merging(), z0.VnS(), z1.VnD());
+  __ Asr(z10.VnS(), p4.Merging(), z31.VnS(), z1.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint64_t expected_z2[] = {0x5501550155015501, 0x552a552a552a552a};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0xc0c0c0c0c0c0c0c0, 0xfefefefefefefefe};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0xfe000000fe00fefe, 0xc0000000c000c0c0};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0x03ff03ff03ff03ff, 0x7fff7fff7fff7fff};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0x5555554055555540, 0x5555aaaa5555aaaa};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0xfe000000fe00fe02, 0xc0000000c000c040};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z8[] = {0x03ffffff03ffffff, 0x7fffffff7fffffff};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+    uint64_t expected_z9[] = {0xffffffc0ffffffc0, 0xfffffffefffffffe};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    uint64_t expected_z10[] = {0x55555555fe000202, 0x55555555c0004040};
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+  }
+}
+
+TEST_SVE(sve_pred_shift_imm) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+
+  START();
+  __ Ptrue(p0.VnB());
+  __ Pfalse(p1.VnB());
+  __ Zip1(p2.VnB(), p0.VnB(), p1.VnB());
+  __ Zip1(p3.VnH(), p0.VnH(), p1.VnH());
+  __ Zip1(p4.VnS(), p0.VnS(), p1.VnS());
+  __ Zip1(p5.VnD(), p0.VnD(), p1.VnD());
+
+  __ Dup(z31.VnD(), 0x8000000080008080);
+  __ Lsr(z0.VnB(), p0.Merging(), z31.VnB(), 1);
+  __ Mov(z1, z0);
+  __ Lsl(z1.VnB(), p2.Merging(), z1.VnB(), 1);
+  __ Asr(z2.VnB(), p0.Merging(), z1.VnB(), 2);
+
+  __ Lsr(z3.VnH(), p0.Merging(), z31.VnH(), 2);
+  __ Mov(z4, z3);
+  __ Lsl(z4.VnH(), p3.Merging(), z4.VnH(), 2);
+  __ Asr(z5.VnH(), p0.Merging(), z4.VnH(), 3);
+
+  __ Lsr(z6.VnS(), p0.Merging(), z31.VnS(), 3);
+  __ Mov(z7, z6);
+  __ Lsl(z7.VnS(), p4.Merging(), z7.VnS(), 3);
+  __ Asr(z8.VnS(), p0.Merging(), z7.VnS(), 4);
+
+  __ Lsr(z9.VnD(), p0.Merging(), z31.VnD(), 4);
+  __ Mov(z10, z9);
+  __ Lsl(z10.VnD(), p5.Merging(), z10.VnD(), 4);
+  __ Asr(z11.VnD(), p0.Merging(), z10.VnD(), 5);
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z0[] = {0x4000000040004040, 0x4000000040004040};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+    uint64_t expected_z1[] = {0x4000000040004080, 0x4000000040004080};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+    uint64_t expected_z2[] = {0x10000000100010e0, 0x10000000100010e0};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0x2000000020002020, 0x2000000020002020};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0x2000000020008080, 0x2000000020008080};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0x040000000400f010, 0x040000000400f010};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0x1000000010001010, 0x1000000010001010};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0x1000000080008080, 0x1000000080008080};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z8[] = {0x01000000f8000808, 0x01000000f8000808};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+    uint64_t expected_z9[] = {0x0800000008000808, 0x0800000008000808};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    uint64_t expected_z10[] = {0x0800000008000808, 0x8000000080008080};
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+    uint64_t expected_z11[] = {0x0040000000400040, 0xfc00000004000404};
+    ASSERT_EQUAL_SVE(expected_z11, z11.VnD());
+  }
+}
+
+TEST_SVE(sve_asrd) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+
+  START();
+  __ Ptrue(p0.VnB());
+  __ Pfalse(p1.VnB());
+  __ Zip1(p2.VnB(), p0.VnB(), p1.VnB());
+  __ Zip1(p3.VnH(), p0.VnH(), p1.VnH());
+  __ Zip1(p4.VnS(), p0.VnS(), p1.VnS());
+  __ Zip1(p5.VnD(), p0.VnD(), p1.VnD());
+
+  __ Index(z31.VnB(), 0x7f - 3, 1);
+  __ Asrd(z0.VnB(), p0.Merging(), z31.VnB(), 1);
+  __ Mov(z1, z31);
+  __ Asrd(z1.VnB(), p2.Merging(), z1.VnB(), 2);
+  __ Asrd(z2.VnB(), p0.Merging(), z31.VnB(), 7);
+  __ Asrd(z3.VnB(), p0.Merging(), z31.VnB(), 8);
+
+  __ Index(z31.VnH(), 0x7fff - 3, 1);
+  __ Asrd(z4.VnH(), p0.Merging(), z31.VnH(), 1);
+  __ Mov(z5, z31);
+  __ Asrd(z5.VnH(), p3.Merging(), z5.VnH(), 2);
+  __ Asrd(z6.VnH(), p0.Merging(), z31.VnH(), 15);
+  __ Asrd(z7.VnH(), p0.Merging(), z31.VnH(), 16);
+
+  __ Index(z31.VnS(), 0x7fffffff - 1, 1);
+  __ Asrd(z8.VnS(), p0.Merging(), z31.VnS(), 1);
+  __ Mov(z9, z31);
+  __ Asrd(z9.VnS(), p4.Merging(), z9.VnS(), 2);
+  __ Asrd(z10.VnS(), p0.Merging(), z31.VnS(), 31);
+  __ Asrd(z11.VnS(), p0.Merging(), z31.VnS(), 32);
+
+  __ Index(z31.VnD(), 0x7fffffffffffffff, 1);
+  __ Asrd(z12.VnD(), p0.Merging(), z31.VnD(), 1);
+  __ Mov(z13, z31);
+  __ Asrd(z13.VnD(), p5.Merging(), z13.VnD(), 2);
+  __ Asrd(z14.VnD(), p0.Merging(), z31.VnD(), 63);
+  __ Asrd(z31.VnD(), p0.Merging(), z31.VnD(), 64);
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z0[] = {0xc6c5c5c4c4c3c3c2, 0xc2c1c1c03f3f3e3e};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+    uint64_t expected_z1[] = {0x8be389e287e285e1, 0x83e181e07f1f7d1f};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+    uint64_t expected_z2[] = {0x0000000000000000, 0x000000ff00000000};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0x0000000000000000, 0x0000000000000000};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0xc002c001c001c000, 0x3fff3fff3ffe3ffe};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0x8003e0018001e000, 0x7fff1fff7ffd1fff};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0x000000000000ffff, 0x0000000000000000};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0x0000000000000000, 0x0000000000000000};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z8[] = {0xc0000001c0000000, 0x3fffffff3fffffff};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+    uint64_t expected_z9[] = {0x80000001e0000000, 0x7fffffff1fffffff};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    uint64_t expected_z10[] = {0x00000000ffffffff, 0x0000000000000000};
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+    uint64_t expected_z11[] = {0x0000000000000000, 0x0000000000000000};
+    ASSERT_EQUAL_SVE(expected_z11, z11.VnD());
+    uint64_t expected_z12[] = {0xc000000000000000, 0x3fffffffffffffff};
+    ASSERT_EQUAL_SVE(expected_z12, z12.VnD());
+    uint64_t expected_z13[] = {0x8000000000000000, 0x1fffffffffffffff};
+    ASSERT_EQUAL_SVE(expected_z13, z13.VnD());
+    uint64_t expected_z14[] = {0xffffffffffffffff, 0x0000000000000000};
+    ASSERT_EQUAL_SVE(expected_z14, z14.VnD());
+    uint64_t expected_z31[] = {0x0000000000000000, 0x0000000000000000};
+    ASSERT_EQUAL_SVE(expected_z31, z31.VnD());
+  }
+}
+
+TEST_SVE(sve_setffr) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Ptrue(p15.VnB());
+  __ Setffr();
+  __ Rdffr(p14.VnB());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(p14.VnB(), p15.VnB());
+  }
+}
+
+static void WrffrHelper(Test* config, unsigned active_lanes) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int inputs[kPRegMaxSize] = {0};
+  VIXL_ASSERT(active_lanes <= kPRegMaxSize);
+  for (unsigned i = 0; i < active_lanes; i++) {
+    // The rightmost (highest-indexed) array element maps to the lowest-numbered
+    // lane.
+    inputs[kPRegMaxSize - i - 1] = 1;
+  }
+
+  Initialise(&masm, p1.VnB(), inputs);
+  __ Wrffr(p1.VnB());
+  __ Rdffr(p2.VnB());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(p1.VnB(), p2.VnB());
+  }
+}
+
+TEST_SVE(sve_wrffr) {
+  int active_lanes_inputs[] = {0, 1, 7, 10, 32, 48, kPRegMaxSize};
+  for (size_t i = 0; i < ArrayLength(active_lanes_inputs); i++) {
+    WrffrHelper(config, active_lanes_inputs[i]);
+  }
+}
+
+template <size_t N>
+static void RdffrHelper(Test* config,
+                        size_t active_lanes,
+                        const int (&pg_inputs)[N]) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  VIXL_ASSERT(active_lanes <= kPRegMaxSize);
+
+  // The rightmost (highest-indexed) array element maps to the lowest-numbered
+  // lane.
+  int pd[kPRegMaxSize] = {0};
+  for (unsigned i = 0; i < active_lanes; i++) {
+    pd[kPRegMaxSize - i - 1] = 1;
+  }
+
+  int pg[kPRegMaxSize] = {0};
+  for (unsigned i = 0; i < N; i++) {
+    pg[kPRegMaxSize - i - 1] = pg_inputs[i];
+  }
+
+  int pd_expected[kPRegMaxSize] = {0};
+  for (unsigned i = 0; i < std::min(active_lanes, N); i++) {
+    int lane = kPRegMaxSize - i - 1;
+    pd_expected[lane] = pd[lane] & pg[lane];
+  }
+
+  Initialise(&masm, p0.VnB(), pg);
+  Initialise(&masm, p1.VnB(), pd);
+
+  // The unpredicated form of rdffr has been tested in `WrffrHelper`.
+  __ Wrffr(p1.VnB());
+  __ Rdffr(p14.VnB(), p0.Zeroing());
+  __ Rdffrs(p13.VnB(), p0.Zeroing());
+  __ Mrs(x8, NZCV);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(pd_expected, p14.VnB());
+    ASSERT_EQUAL_SVE(pd_expected, p13.VnB());
+    StatusFlags nzcv_expected =
+        GetPredTestFlags(pd_expected, pg, core.GetSVELaneCount(kBRegSize));
+    ASSERT_EQUAL_64(nzcv_expected, x8);
+  }
+}
+
+TEST_SVE(sve_rdffr_rdffrs) {
+  // clang-format off
+  int active_lanes_inputs[] = {0, 1, 15, 26, 39, 47, kPRegMaxSize};
+  int pg_inputs_0[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int pg_inputs_1[] = {1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0};
+  int pg_inputs_2[] = {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0};
+  int pg_inputs_3[] = {0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1};
+  int pg_inputs_4[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  // clang-format on
+
+  for (size_t i = 0; i < ArrayLength(active_lanes_inputs); i++) {
+    RdffrHelper(config, active_lanes_inputs[i], pg_inputs_0);
+    RdffrHelper(config, active_lanes_inputs[i], pg_inputs_1);
+    RdffrHelper(config, active_lanes_inputs[i], pg_inputs_2);
+    RdffrHelper(config, active_lanes_inputs[i], pg_inputs_3);
+    RdffrHelper(config, active_lanes_inputs[i], pg_inputs_4);
+  }
+}
+
+typedef void (MacroAssembler::*BrkpFn)(const PRegisterWithLaneSize& pd,
+                                       const PRegisterZ& pg,
+                                       const PRegisterWithLaneSize& pn,
+                                       const PRegisterWithLaneSize& pm);
+
+template <typename Tg, typename Tn, typename Td>
+static void BrkpaBrkpbHelper(Test* config,
+                             BrkpFn macro,
+                             BrkpFn macro_set_flags,
+                             const Tg& pg_inputs,
+                             const Tn& pn_inputs,
+                             const Tn& pm_inputs,
+                             const Td& pd_expected) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  PRegister pg = p15;
+  PRegister pn = p14;
+  PRegister pm = p13;
+  Initialise(&masm, pg.VnB(), pg_inputs);
+  Initialise(&masm, pn.VnB(), pn_inputs);
+  Initialise(&masm, pm.VnB(), pm_inputs);
+
+  // Initialise NZCV to an impossible value, to check that we actually write it.
+  __ Mov(x10, NZCVFlag);
+  __ Msr(NZCV, x10);
+
+  (masm.*macro_set_flags)(p0.VnB(), pg.Zeroing(), pn.VnB(), pm.VnB());
+  __ Mrs(x0, NZCV);
+
+  (masm.*macro)(p1.VnB(), pg.Zeroing(), pn.VnB(), pm.VnB());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(pd_expected, p0.VnB());
+
+    // Check that the flags were properly set.
+    StatusFlags nzcv_expected =
+        GetPredTestFlags(pd_expected,
+                         pg_inputs,
+                         core.GetSVELaneCount(kBRegSize));
+    ASSERT_EQUAL_64(nzcv_expected, x0);
+    ASSERT_EQUAL_SVE(p0.VnB(), p1.VnB());
+  }
+}
+
+template <typename Tg, typename Tn, typename Td>
+static void BrkpaHelper(Test* config,
+                        const Tg& pg_inputs,
+                        const Tn& pn_inputs,
+                        const Tn& pm_inputs,
+                        const Td& pd_expected) {
+  BrkpaBrkpbHelper(config,
+                   &MacroAssembler::Brkpa,
+                   &MacroAssembler::Brkpas,
+                   pg_inputs,
+                   pn_inputs,
+                   pm_inputs,
+                   pd_expected);
+}
+
+template <typename Tg, typename Tn, typename Td>
+static void BrkpbHelper(Test* config,
+                        const Tg& pg_inputs,
+                        const Tn& pn_inputs,
+                        const Tn& pm_inputs,
+                        const Td& pd_expected) {
+  BrkpaBrkpbHelper(config,
+                   &MacroAssembler::Brkpb,
+                   &MacroAssembler::Brkpbs,
+                   pg_inputs,
+                   pn_inputs,
+                   pm_inputs,
+                   pd_expected);
+}
+
+TEST_SVE(sve_brkpb) {
+  // clang-format off
+  // The last active element of `pn` are `true` in all vector length configurations.
+  //                                | boundary of 128-bits VL.
+  //                                v
+  int pg_1[] =      {1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0};
+  int pg_2[] =      {1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1};
+  int pg_3[] =      {1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1};
+
+  //                 | highest-numbered lane                lowest-numbered lane |
+  //                 v                                                           v
+  int pn_1[] =      {1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0};
+  int pn_2[] =      {1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0};
+  int pn_3[] =      {1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1};
+
+  int pm_1[] =      {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0};
+  int pm_2[] =      {0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int pm_3[] =      {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0};
+
+  //                                                                    | first active
+  //                                                                    v
+  int exp_1_1_1[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0};
+  //                                            | first active
+  //                                            v
+  int exp_1_2_2[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0};
+  //                                                                    | first active
+  //                                                                    v
+  int exp_1_3_3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0};
+
+  BrkpbHelper(config, pg_1, pn_1, pm_1, exp_1_1_1);
+  BrkpbHelper(config, pg_1, pn_2, pm_2, exp_1_2_2);
+  BrkpbHelper(config, pg_1, pn_3, pm_3, exp_1_3_3);
+
+  //                                               | first active
+  //                                               v
+  int exp_2_1_2[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1};
+  //                                            | first active
+  //                                            v
+  int exp_2_2_3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1};
+  //                                                                 | first active
+  //                                                                 v
+  int exp_2_3_1[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1};
+  BrkpbHelper(config, pg_2, pn_1, pm_2, exp_2_1_2);
+  BrkpbHelper(config, pg_2, pn_2, pm_3, exp_2_2_3);
+  BrkpbHelper(config, pg_2, pn_3, pm_1, exp_2_3_1);
+
+  //                                                                    | first active
+  //                                                                    v
+  int exp_3_1_3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1};
+  //                                                                    | first active
+  //                                                                    v
+  int exp_3_2_1[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1};
+  //                                      | first active
+  //                                      v
+  int exp_3_3_2[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1};
+  BrkpbHelper(config, pg_3, pn_1, pm_3, exp_3_1_3);
+  BrkpbHelper(config, pg_3, pn_2, pm_1, exp_3_2_1);
+  BrkpbHelper(config, pg_3, pn_3, pm_2, exp_3_3_2);
+
+  // The last active element of `pn` are `false` in all vector length configurations.
+  //                       | last active lane when VL > 128 bits.
+  //                       v
+  //                                   | last active lane when VL == 128 bits.
+  //                                   v
+  int pg_4[] =      {0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1};
+  int exp_4_x_x[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  BrkpbHelper(config, pg_4, pn_1, pm_1, exp_4_x_x);
+  BrkpbHelper(config, pg_4, pn_2, pm_2, exp_4_x_x);
+  BrkpbHelper(config, pg_4, pn_3, pm_3, exp_4_x_x);
+  // clang-format on
+}
+
+TEST_SVE(sve_brkpa) {
+  // clang-format off
+  // The last active element of `pn` are `true` in all vector length configurations.
+  //                                | boundary of 128-bits VL.
+  //                                v
+  int pg_1[] =      {1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0};
+  int pg_2[] =      {1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1};
+  int pg_3[] =      {1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1};
+
+  //                 | highest-numbered lane                lowest-numbered lane |
+  //                 v                                                           v
+  int pn_1[] =      {1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0};
+  int pn_2[] =      {1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0};
+  int pn_3[] =      {1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1};
+
+  int pm_1[] =      {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0};
+  int pm_2[] =      {0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int pm_3[] =      {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0};
+
+  //                                                                    | first active
+  //                                                                    v
+  int exp_1_1_1[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0};
+  //                                            | first active
+  //                                            v
+  int exp_1_2_2[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0};
+  //                                                                    | first active
+  //                                                                    v
+  int exp_1_3_3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0};
+
+  BrkpaHelper(config, pg_1, pn_1, pm_1, exp_1_1_1);
+  BrkpaHelper(config, pg_1, pn_2, pm_2, exp_1_2_2);
+  BrkpaHelper(config, pg_1, pn_3, pm_3, exp_1_3_3);
+
+  //                                               | first active
+  //                                               v
+  int exp_2_1_2[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1};
+  //                                            | first active
+  //                                            v
+  int exp_2_2_3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1};
+  //                                                                 | first active
+  //                                                                 v
+  int exp_2_3_1[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1};
+  BrkpaHelper(config, pg_2, pn_1, pm_2, exp_2_1_2);
+  BrkpaHelper(config, pg_2, pn_2, pm_3, exp_2_2_3);
+  BrkpaHelper(config, pg_2, pn_3, pm_1, exp_2_3_1);
+
+  //                                                                    | first active
+  //                                                                    v
+  int exp_3_1_3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1};
+  //                                                                    | first active
+  //                                                                    v
+  int exp_3_2_1[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1};
+  //                                      | first active
+  //                                      v
+  int exp_3_3_2[] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1};
+  BrkpaHelper(config, pg_3, pn_1, pm_3, exp_3_1_3);
+  BrkpaHelper(config, pg_3, pn_2, pm_1, exp_3_2_1);
+  BrkpaHelper(config, pg_3, pn_3, pm_2, exp_3_3_2);
+
+  // The last active element of `pn` are `false` in all vector length configurations.
+  //                       | last active lane when VL > 128 bits.
+  //                       v
+  //                                   | last active lane when VL == 128 bits.
+  //                                   v
+  int pg_4[] =      {0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1};
+  int exp_4_x_x[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  BrkpaHelper(config, pg_4, pn_1, pm_1, exp_4_x_x);
+  BrkpaHelper(config, pg_4, pn_2, pm_2, exp_4_x_x);
+  BrkpaHelper(config, pg_4, pn_3, pm_3, exp_4_x_x);
+  // clang-format on
+}
+
+TEST_SVE(sve_rbit) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t inputs[] = {0xaaaaaaaa55555555, 0xaaaa5555aa55aa55};
+  InsrHelper(&masm, z0.VnD(), inputs);
+
+  __ Ptrue(p1.VnB());
+  int pred[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1};
+  Initialise(&masm, p2.VnB(), pred);
+
+  __ Rbit(z0.VnB(), p1.Merging(), z0.VnB());
+  __ Rbit(z0.VnB(), p1.Merging(), z0.VnB());
+
+  __ Rbit(z1.VnB(), p1.Merging(), z0.VnB());
+  __ Rbit(z2.VnH(), p1.Merging(), z0.VnH());
+  __ Rbit(z3.VnS(), p1.Merging(), z0.VnS());
+  __ Rbit(z4.VnD(), p1.Merging(), z0.VnD());
+
+  __ Dup(z5.VnB(), 0x42);
+  __ Rbit(z5.VnB(), p2.Merging(), z0.VnB());
+  __ Dup(z6.VnB(), 0x42);
+  __ Rbit(z6.VnS(), p2.Merging(), z0.VnS());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(inputs, z0.VnD());
+
+    uint64_t expected_z1[] = {0x55555555aaaaaaaa, 0x5555aaaa55aa55aa};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+    uint64_t expected_z2[] = {0x55555555aaaaaaaa, 0x5555aaaaaa55aa55};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0x55555555aaaaaaaa, 0xaaaa5555aa55aa55};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0xaaaaaaaa55555555, 0xaa55aa55aaaa5555};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0x4255425542aa42aa, 0x4255424242aa42aa};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0x55555555aaaaaaaa, 0x42424242aa55aa55};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+  }
+}
+
+TEST_SVE(sve_rev_bhw) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t inputs[] = {0xaaaaaaaa55555555, 0xaaaa5555aa55aa55};
+  InsrHelper(&masm, z0.VnD(), inputs);
+
+  __ Ptrue(p1.VnB());
+  int pred[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1};
+  Initialise(&masm, p2.VnB(), pred);
+
+  __ Revb(z1.VnH(), p1.Merging(), z0.VnH());
+  __ Revb(z2.VnS(), p1.Merging(), z0.VnS());
+  __ Revb(z3.VnD(), p1.Merging(), z0.VnD());
+  __ Revh(z4.VnS(), p1.Merging(), z0.VnS());
+  __ Revh(z5.VnD(), p1.Merging(), z0.VnD());
+  __ Revw(z6.VnD(), p1.Merging(), z0.VnD());
+
+  __ Dup(z7.VnB(), 0x42);
+  __ Revb(z7.VnH(), p2.Merging(), z0.VnH());
+  __ Dup(z8.VnB(), 0x42);
+  __ Revh(z8.VnS(), p2.Merging(), z0.VnS());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint64_t expected_z1[] = {0xaaaaaaaa55555555, 0xaaaa555555aa55aa};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+    uint64_t expected_z2[] = {0xaaaaaaaa55555555, 0x5555aaaa55aa55aa};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0x55555555aaaaaaaa, 0x55aa55aa5555aaaa};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0xaaaaaaaa55555555, 0x5555aaaaaa55aa55};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0x55555555aaaaaaaa, 0xaa55aa555555aaaa};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0x55555555aaaaaaaa, 0xaa55aa55aaaa5555};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0xaaaaaaaa55555555, 0xaaaa424255aa55aa};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z8[] = {0xaaaaaaaa55555555, 0x42424242aa55aa55};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+  }
+}
+
+TEST_SVE(sve_ftssel) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in[] = {0x1111777766665555, 0xaaaabbbbccccdddd};
+  uint64_t q[] = {0x0001000300000002, 0x0001000200000003};
+  InsrHelper(&masm, z0.VnD(), in);
+  InsrHelper(&masm, z1.VnD(), q);
+
+  __ Ftssel(z2.VnH(), z0.VnH(), z1.VnH());
+  __ Ftssel(z3.VnS(), z0.VnS(), z1.VnS());
+  __ Ftssel(z4.VnD(), z0.VnD(), z1.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint64_t expected_z2[] = {0x3c00bc006666d555, 0x3c003bbbccccbc00};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0xbf800000e6665555, 0x2aaabbbbbf800000};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0x9111777766665555, 0xbff0000000000000};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+  }
+}
+
+TEST_SVE(sve_fexpa) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in0[] = {0x3ff0000000000000, 0x3ff0000000011001};
+  uint64_t in1[] = {0x3ff000000002200f, 0xbff000000003301f};
+  uint64_t in2[] = {0xbff000000004403f, 0x3ff0000000055040};
+  uint64_t in3[] = {0x3f800000bf800001, 0x3f80000f3f80001f};
+  uint64_t in4[] = {0x3f80002f3f82203f, 0xbf8000403f833041};
+  uint64_t in5[] = {0x3c003c01bc00bc07, 0x3c08bc0f3c1fbc20};
+  InsrHelper(&masm, z0.VnD(), in0);
+  InsrHelper(&masm, z1.VnD(), in1);
+  InsrHelper(&masm, z2.VnD(), in2);
+  InsrHelper(&masm, z3.VnD(), in3);
+  InsrHelper(&masm, z4.VnD(), in4);
+  InsrHelper(&masm, z5.VnD(), in5);
+
+  __ Fexpa(z6.VnD(), z0.VnD());
+  __ Fexpa(z7.VnD(), z1.VnD());
+  __ Fexpa(z8.VnD(), z2.VnD());
+  __ Fexpa(z9.VnS(), z3.VnS());
+  __ Fexpa(z10.VnS(), z4.VnS());
+  __ Fexpa(z11.VnH(), z5.VnH());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z6[] = {0x0000000000000000, 0x44002c9a3e778061};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0x0802d285a6e4030b, 0x4c06623882552225};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z8[] = {0x100fa7c1819e90d8, 0x5410000000000000};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+    uint64_t expected_z9[] = {0x00000000000164d2, 0x0016942d003311c4};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    uint64_t expected_z10[] = {0x0054f35b407d3e0c, 0x00800000608164d2};
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+    uint64_t expected_z11[] = {0x00000016000000a8, 0x00c2018903d40400};
+    ASSERT_EQUAL_SVE(expected_z11, z11.VnD());
+  }
+}
+
+TEST_SVE(sve_rev_p) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  Initialise(&masm,
+             p0.VnB(),
+             0xabcdabcdabcdabcd,
+             0xabcdabcdabcdabcd,
+             0xabcdabcdabcdabcd,
+             0xabcdabcdabcdabcd);
+
+  __ Rev(p1.VnB(), p0.VnB());
+  __ Rev(p2.VnH(), p0.VnH());
+  __ Rev(p3.VnS(), p0.VnS());
+  __ Rev(p4.VnD(), p0.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int p1_expected[] = {1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1};
+    ASSERT_EQUAL_SVE(p1_expected, p1.VnB());
+    int p2_expected[] = {0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p2_expected, p2.VnB());
+    int p3_expected[] = {1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p3_expected, p3.VnB());
+    int p4_expected[] = {1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1};
+    ASSERT_EQUAL_SVE(p4_expected, p4.VnB());
+  }
+}
+
+TEST_SVE(sve_trn_p_bh) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  Initialise(&masm, p0.VnB(), 0xa5a55a5a);
+  __ Pfalse(p1.VnB());
+
+  __ Trn1(p2.VnB(), p0.VnB(), p0.VnB());
+  __ Trn2(p3.VnB(), p0.VnB(), p0.VnB());
+  __ Trn1(p4.VnB(), p1.VnB(), p0.VnB());
+  __ Trn2(p5.VnB(), p1.VnB(), p0.VnB());
+  __ Trn1(p6.VnB(), p0.VnB(), p1.VnB());
+  __ Trn2(p7.VnB(), p0.VnB(), p1.VnB());
+
+  __ Trn1(p8.VnH(), p0.VnH(), p0.VnH());
+  __ Trn2(p9.VnH(), p0.VnH(), p0.VnH());
+  __ Trn1(p10.VnH(), p1.VnH(), p0.VnH());
+  __ Trn2(p11.VnH(), p1.VnH(), p0.VnH());
+  __ Trn1(p12.VnH(), p0.VnH(), p1.VnH());
+  __ Trn2(p13.VnH(), p0.VnH(), p1.VnH());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    int p2_expected[] = {1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0};
+    int p3_expected[] = {0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1};
+    ASSERT_EQUAL_SVE(p2_expected, p2.VnB());
+    ASSERT_EQUAL_SVE(p3_expected, p3.VnB());
+
+    int p4_expected[] = {1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0};
+    int p5_expected[] = {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p4_expected, p4.VnB());
+    ASSERT_EQUAL_SVE(p5_expected, p5.VnB());
+
+    int p6_expected[] = {0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0};
+    int p7_expected[] = {0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1};
+    ASSERT_EQUAL_SVE(p6_expected, p6.VnB());
+    ASSERT_EQUAL_SVE(p7_expected, p7.VnB());
+
+    int p8_expected[] = {0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0};
+    int p9_expected[] = {0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p8_expected, p8.VnB());
+    ASSERT_EQUAL_SVE(p9_expected, p9.VnB());
+
+    int p10_expected[] = {0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0};
+    int p11_expected[] = {0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0};
+    ASSERT_EQUAL_SVE(p10_expected, p10.VnB());
+    ASSERT_EQUAL_SVE(p11_expected, p11.VnB());
+
+    int p12_expected[] = {0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0};
+    int p13_expected[] = {0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p12_expected, p12.VnB());
+    ASSERT_EQUAL_SVE(p13_expected, p13.VnB());
+  }
+}
+
+TEST_SVE(sve_trn_p_sd) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  Initialise(&masm, p0.VnB(), 0x55a55aaa);
+  __ Pfalse(p1.VnB());
+
+  __ Trn1(p2.VnS(), p0.VnS(), p0.VnS());
+  __ Trn2(p3.VnS(), p0.VnS(), p0.VnS());
+  __ Trn1(p4.VnS(), p1.VnS(), p0.VnS());
+  __ Trn2(p5.VnS(), p1.VnS(), p0.VnS());
+  __ Trn1(p6.VnS(), p0.VnS(), p1.VnS());
+  __ Trn2(p7.VnS(), p0.VnS(), p1.VnS());
+
+  __ Trn1(p8.VnD(), p0.VnD(), p0.VnD());
+  __ Trn2(p9.VnD(), p0.VnD(), p0.VnD());
+  __ Trn1(p10.VnD(), p1.VnD(), p0.VnD());
+  __ Trn2(p11.VnD(), p1.VnD(), p0.VnD());
+  __ Trn1(p12.VnD(), p0.VnD(), p1.VnD());
+  __ Trn2(p13.VnD(), p0.VnD(), p1.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    int p2_expected[] = {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0};
+    int p3_expected[] = {0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p2_expected, p2.VnB());
+    ASSERT_EQUAL_SVE(p3_expected, p3.VnB());
+
+    int p4_expected[] = {1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0};
+    int p5_expected[] = {0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0};
+    ASSERT_EQUAL_SVE(p4_expected, p4.VnB());
+    ASSERT_EQUAL_SVE(p5_expected, p5.VnB());
+
+    int p6_expected[] = {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0};
+    int p7_expected[] = {0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p6_expected, p6.VnB());
+    ASSERT_EQUAL_SVE(p7_expected, p7.VnB());
+
+    int p8_expected[] = {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0};
+    int p9_expected[] = {0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p8_expected, p8.VnB());
+    ASSERT_EQUAL_SVE(p9_expected, p9.VnB());
+
+    int p10_expected[] = {1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+    int p11_expected[] = {0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+    ASSERT_EQUAL_SVE(p10_expected, p10.VnB());
+    ASSERT_EQUAL_SVE(p11_expected, p11.VnB());
+
+    int p12_expected[] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0};
+    int p13_expected[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p12_expected, p12.VnB());
+    ASSERT_EQUAL_SVE(p13_expected, p13.VnB());
+  }
+}
+
+TEST_SVE(sve_zip_p_bh) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  Initialise(&masm,
+             p0.VnB(),
+             0x5a5a5a5a5a5a5a5a,
+             0x5a5a5a5a5a5a5a5a,
+             0x5a5a5a5a5a5a5a5a,
+             0x5a5a5a5a5a5a5a5a);
+  __ Pfalse(p1.VnB());
+
+  __ Zip1(p2.VnB(), p0.VnB(), p0.VnB());
+  __ Zip2(p3.VnB(), p0.VnB(), p0.VnB());
+  __ Zip1(p4.VnB(), p1.VnB(), p0.VnB());
+  __ Zip2(p5.VnB(), p1.VnB(), p0.VnB());
+  __ Zip1(p6.VnB(), p0.VnB(), p1.VnB());
+  __ Zip2(p7.VnB(), p0.VnB(), p1.VnB());
+
+  __ Zip1(p8.VnH(), p0.VnH(), p0.VnH());
+  __ Zip2(p9.VnH(), p0.VnH(), p0.VnH());
+  __ Zip1(p10.VnH(), p1.VnH(), p0.VnH());
+  __ Zip2(p11.VnH(), p1.VnH(), p0.VnH());
+  __ Zip1(p12.VnH(), p0.VnH(), p1.VnH());
+  __ Zip2(p13.VnH(), p0.VnH(), p1.VnH());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    int p2_expected[] = {0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0};
+    int p3_expected[] = {0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0};
+    ASSERT_EQUAL_SVE(p2_expected, p2.VnB());
+    ASSERT_EQUAL_SVE(p3_expected, p3.VnB());
+
+    int p4_expected[] = {0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0};
+    int p5_expected[] = {0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0};
+    ASSERT_EQUAL_SVE(p4_expected, p4.VnB());
+    ASSERT_EQUAL_SVE(p5_expected, p5.VnB());
+
+    int p6_expected[] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0};
+    int p7_expected[] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0};
+    ASSERT_EQUAL_SVE(p6_expected, p6.VnB());
+    ASSERT_EQUAL_SVE(p7_expected, p7.VnB());
+
+    int p8_expected[] = {0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0};
+    int p9_expected[] = {0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p8_expected, p8.VnB());
+    ASSERT_EQUAL_SVE(p9_expected, p9.VnB());
+
+    int p10_expected[] = {0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0};
+    int p11_expected[] = {0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0};
+    ASSERT_EQUAL_SVE(p10_expected, p10.VnB());
+    ASSERT_EQUAL_SVE(p11_expected, p11.VnB());
+
+    int p12_expected[] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0};
+    int p13_expected[] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p12_expected, p12.VnB());
+    ASSERT_EQUAL_SVE(p13_expected, p13.VnB());
+  }
+}
+
+TEST_SVE(sve_zip_p_sd) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  Initialise(&masm,
+             p0.VnB(),
+             0x5a5a5a5a5a5a5a5a,
+             0x5a5a5a5a5a5a5a5a,
+             0x5a5a5a5a5a5a5a5a,
+             0x5a5a5a5a5a5a5a5a);
+  __ Pfalse(p1.VnB());
+
+  __ Zip1(p2.VnS(), p0.VnS(), p0.VnS());
+  __ Zip2(p3.VnS(), p0.VnS(), p0.VnS());
+  __ Zip1(p4.VnS(), p1.VnS(), p0.VnS());
+  __ Zip2(p5.VnS(), p1.VnS(), p0.VnS());
+  __ Zip1(p6.VnS(), p0.VnS(), p1.VnS());
+  __ Zip2(p7.VnS(), p0.VnS(), p1.VnS());
+
+  __ Zip1(p8.VnD(), p0.VnD(), p0.VnD());
+  __ Zip2(p9.VnD(), p0.VnD(), p0.VnD());
+  __ Zip1(p10.VnD(), p1.VnD(), p0.VnD());
+  __ Zip2(p11.VnD(), p1.VnD(), p0.VnD());
+  __ Zip1(p12.VnD(), p0.VnD(), p1.VnD());
+  __ Zip2(p13.VnD(), p0.VnD(), p1.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    int p2_expected[] = {0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0};
+    int p3_expected[] = {0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p2_expected, p2.VnB());
+    ASSERT_EQUAL_SVE(p3_expected, p3.VnB());
+
+    int p4_expected[] = {0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0};
+    int p5_expected[] = {0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0};
+    ASSERT_EQUAL_SVE(p4_expected, p4.VnB());
+    ASSERT_EQUAL_SVE(p5_expected, p5.VnB());
+
+    int p6_expected[] = {0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0};
+    int p7_expected[] = {0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p6_expected, p6.VnB());
+    ASSERT_EQUAL_SVE(p7_expected, p7.VnB());
+
+    int p8_expected[] = {0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0};
+    int p9_expected[] = {0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p8_expected, p8.VnB());
+    ASSERT_EQUAL_SVE(p9_expected, p9.VnB());
+
+    int p10_expected[] = {0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+    int p11_expected[] = {0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+    ASSERT_EQUAL_SVE(p10_expected, p10.VnB());
+    ASSERT_EQUAL_SVE(p11_expected, p11.VnB());
+
+    int p12_expected[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0};
+    int p13_expected[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0};
+    ASSERT_EQUAL_SVE(p12_expected, p12.VnB());
+    ASSERT_EQUAL_SVE(p13_expected, p13.VnB());
+  }
+}
+
+TEST_SVE(sve_uzp_p) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  Initialise(&masm,
+             p0.VnB(),
+             0xf0f0ff00ffff0000,
+             0x4242424242424242,
+             0x5a5a5a5a5a5a5a5a,
+             0x0123456789abcdef);
+  __ Rev(p1.VnB(), p0.VnB());
+
+  __ Zip1(p2.VnB(), p0.VnB(), p1.VnB());
+  __ Zip2(p3.VnB(), p0.VnB(), p1.VnB());
+  __ Uzp1(p4.VnB(), p2.VnB(), p3.VnB());
+  __ Uzp2(p5.VnB(), p2.VnB(), p3.VnB());
+
+  __ Zip1(p2.VnH(), p0.VnH(), p1.VnH());
+  __ Zip2(p3.VnH(), p0.VnH(), p1.VnH());
+  __ Uzp1(p6.VnH(), p2.VnH(), p3.VnH());
+  __ Uzp2(p7.VnH(), p2.VnH(), p3.VnH());
+
+  __ Zip1(p2.VnS(), p0.VnS(), p1.VnS());
+  __ Zip2(p3.VnS(), p0.VnS(), p1.VnS());
+  __ Uzp1(p8.VnS(), p2.VnS(), p3.VnS());
+  __ Uzp2(p9.VnS(), p2.VnS(), p3.VnS());
+
+  __ Zip1(p2.VnD(), p0.VnD(), p1.VnD());
+  __ Zip2(p3.VnD(), p0.VnD(), p1.VnD());
+  __ Uzp1(p10.VnD(), p2.VnD(), p3.VnD());
+  __ Uzp2(p11.VnD(), p2.VnD(), p3.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(p0, p4);
+    ASSERT_EQUAL_SVE(p1, p5);
+    ASSERT_EQUAL_SVE(p0, p6);
+    ASSERT_EQUAL_SVE(p1, p7);
+    ASSERT_EQUAL_SVE(p0, p8);
+    ASSERT_EQUAL_SVE(p1, p9);
+    ASSERT_EQUAL_SVE(p0, p10);
+    ASSERT_EQUAL_SVE(p1, p11);
+  }
+}
+
+TEST_SVE(sve_punpk) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  auto get_64_bits_at = [](int byte_index) -> uint64_t {
+    // Each 8-bit chunk has the value 0x50 + the byte index of the chunk.
+    return 0x5756555453525150 + (0x0101010101010101 * byte_index);
+  };
+
+  Initialise(&masm,
+             p0.VnB(),
+             get_64_bits_at(24),
+             get_64_bits_at(16),
+             get_64_bits_at(8),
+             get_64_bits_at(0));
+  __ Punpklo(p1.VnH(), p0.VnB());
+  __ Punpkhi(p2.VnH(), p0.VnB());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    int pl = config->sve_vl_in_bits() / kZRegBitsPerPRegBit;
+    // For simplicity, just test the bottom 64 H-sized lanes.
+    uint64_t p1_h_bits = get_64_bits_at(0);
+    uint64_t p2_h_bits = get_64_bits_at(pl / (2 * 8));
+    int p1_expected[64];
+    int p2_expected[64];
+    for (size_t i = 0; i < 64; i++) {
+      p1_expected[63 - i] = (p1_h_bits >> i) & 1;
+      p2_expected[63 - i] = (p2_h_bits >> i) & 1;
+    }
+    // Testing `VnH` ensures that odd-numbered B lanes are zero.
+    ASSERT_EQUAL_SVE(p1_expected, p1.VnH());
+    ASSERT_EQUAL_SVE(p2_expected, p2.VnH());
+  }
+}
+
+typedef void (MacroAssembler::*BrkFn)(const PRegisterWithLaneSize& pd,
+                                      const PRegister& pg,
+                                      const PRegisterWithLaneSize& pn);
+
+typedef void (MacroAssembler::*BrksFn)(const PRegisterWithLaneSize& pd,
+                                       const PRegisterZ& pg,
+                                       const PRegisterWithLaneSize& pn);
+
+template <typename T, size_t N>
+static void BrkaBrkbHelper(Test* config,
+                           BrkFn macro,
+                           BrksFn macro_set_flags,
+                           const T (&pd_inputs)[N],
+                           const T (&pg_inputs)[N],
+                           const T (&pn_inputs)[N],
+                           const T (&pd_z_expected)[N]) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  PRegister pg = p10;
+  PRegister pn = p9;
+  PRegister pd_z = p0;
+  PRegister pd_z_s = p1;
+  PRegister pd_m = p2;
+  Initialise(&masm, pg.VnB(), pg_inputs);
+  Initialise(&masm, pn.VnB(), pn_inputs);
+  Initialise(&masm, pd_m.VnB(), pd_inputs);
+
+  // Initialise NZCV to an impossible value, to check that we actually write it.
+  __ Mov(x10, NZCVFlag);
+  __ Msr(NZCV, x10);
+
+  (masm.*macro)(pd_z.VnB(), pg.Zeroing(), pn.VnB());
+  (masm.*macro_set_flags)(pd_z_s.VnB(), pg.Zeroing(), pn.VnB());
+  __ Mrs(x0, NZCV);
+
+  (masm.*macro)(pd_m.VnB(), pg.Merging(), pn.VnB());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(pd_z_expected, pd_z.VnB());
+
+    // Check that the flags were properly set.
+    StatusFlags nzcv_expected =
+        GetPredTestFlags(pd_z_expected,
+                         pg_inputs,
+                         core.GetSVELaneCount(kBRegSize));
+    ASSERT_EQUAL_64(nzcv_expected, x0);
+    ASSERT_EQUAL_SVE(pd_z.VnB(), pd_z_s.VnB());
+
+    T pd_m_expected[N];
+    // Set expected `pd` result on merging predication.
+    for (size_t i = 0; i < N; i++) {
+      pd_m_expected[i] = pg_inputs[i] ? pd_z_expected[i] : pd_inputs[i];
+    }
+    ASSERT_EQUAL_SVE(pd_m_expected, pd_m.VnB());
+  }
+}
+
+template <typename T>
+static void BrkaHelper(Test* config,
+                       const T& pd_inputs,
+                       const T& pg_inputs,
+                       const T& pn_inputs,
+                       const T& pd_expected) {
+  BrkaBrkbHelper(config,
+                 &MacroAssembler::Brka,
+                 &MacroAssembler::Brkas,
+                 pd_inputs,
+                 pg_inputs,
+                 pn_inputs,
+                 pd_expected);
+}
+
+TEST_SVE(sve_brka) {
+  // clang-format off
+  //                              | boundary of 128-bits VL.
+  //                              v
+  int pd[] =      {1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+  //               | highest-numbered lane                lowest-numbered lane |
+  //               v                                                           v
+  int pg_1[] =    {1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0};
+  int pg_2[] =    {1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1};
+
+  int pn_1[] =    {1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0};
+  int pn_2[] =    {1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int pn_3[] =    {1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1};
+
+  //                                                                  | first break
+  //                                                                  v
+  int exp_1_1[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0};
+  //                              | first break
+  //                              v
+  int exp_1_2[] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0};
+  //                                                      | first break
+  //                                                      v
+  int exp_1_3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0};
+
+  BrkaHelper(config, pd, pg_1, pn_1, exp_1_1);
+  BrkaHelper(config, pd, pg_1, pn_2, exp_1_2);
+  BrkaHelper(config, pd, pg_1, pn_3, exp_1_3);
+
+  //                                                               | first break
+  //                                                               v
+  int exp_2_1[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1};
+  //                                       | first break
+  //                                       v
+  int exp_2_2[] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1};
+  //                                                                           | first break
+  //                                                                           v
+  int exp_2_3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
+  BrkaHelper(config, pd, pg_2, pn_1, exp_2_1);
+  BrkaHelper(config, pd, pg_2, pn_2, exp_2_2);
+  BrkaHelper(config, pd, pg_2, pn_3, exp_2_3);
+
+  // The all-inactive zeroing predicate sets destination predicate all-false.
+  int pg_3[] =    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp_3_x[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  BrkaHelper(config, pd, pg_3, pn_1, exp_3_x);
+  BrkaHelper(config, pd, pg_3, pn_2, exp_3_x);
+  BrkaHelper(config, pd, pg_3, pn_3, exp_3_x);
+  // clang-format on
+}
+
+template <typename T>
+static void BrkbHelper(Test* config,
+                       const T& pd_inputs,
+                       const T& pg_inputs,
+                       const T& pn_inputs,
+                       const T& pd_expected) {
+  BrkaBrkbHelper(config,
+                 &MacroAssembler::Brkb,
+                 &MacroAssembler::Brkbs,
+                 pd_inputs,
+                 pg_inputs,
+                 pn_inputs,
+                 pd_expected);
+}
+
+TEST_SVE(sve_brkb) {
+  // clang-format off
+  //                              | boundary of 128-bits VL.
+  //                              v
+  int pd[] =      {1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+  //               | highest-numbered lane                lowest-numbered lane |
+  //               v                                                           v
+  int pg_1[] =    {1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0};
+  int pg_2[] =    {1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1};
+
+  int pn_1[] =    {1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0};
+  int pn_2[] =    {1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int pn_3[] =    {1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1};
+
+  //                                                                  | first break
+  //                                                                  v
+  int exp_1_1[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0};
+  //                              | first break
+  //                              v
+  int exp_1_2[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0};
+  //                                                      | first break
+  //                                                      v
+  int exp_1_3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0};
+
+  BrkbHelper(config, pd, pg_1, pn_1, exp_1_1);
+  BrkbHelper(config, pd, pg_1, pn_2, exp_1_2);
+  BrkbHelper(config, pd, pg_1, pn_3, exp_1_3);
+
+  //                                                               | first break
+  //                                                               v
+  int exp_2_1[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1};
+  //                                       | first break
+  //                                       v
+  int exp_2_2[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1};
+  //                                                                           | first break
+  //                                                                           v
+  int exp_2_3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  BrkbHelper(config, pd, pg_2, pn_1, exp_2_1);
+  BrkbHelper(config, pd, pg_2, pn_2, exp_2_2);
+  BrkbHelper(config, pd, pg_2, pn_3, exp_2_3);
+
+  // The all-inactive zeroing predicate sets destination predicate all-false.
+  int pg_3[] =    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  int exp_3_x[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+  BrkbHelper(config, pd, pg_3, pn_1, exp_3_x);
+  BrkbHelper(config, pd, pg_3, pn_2, exp_3_x);
+  BrkbHelper(config, pd, pg_3, pn_3, exp_3_x);
+  // clang-format on
+}
+
+typedef void (MacroAssembler::*BrknFn)(const PRegisterWithLaneSize& pd,
+                                       const PRegisterZ& pg,
+                                       const PRegisterWithLaneSize& pn,
+                                       const PRegisterWithLaneSize& pm);
+
+typedef void (MacroAssembler::*BrknsFn)(const PRegisterWithLaneSize& pd,
+                                        const PRegisterZ& pg,
+                                        const PRegisterWithLaneSize& pn,
+                                        const PRegisterWithLaneSize& pm);
+
+enum BrknDstPredicateState { kAllFalse, kUnchanged };
+
+template <typename T, size_t N>
+static void BrknHelper(Test* config,
+                       const T (&pd_inputs)[N],
+                       const T (&pg_inputs)[N],
+                       const T (&pn_inputs)[N],
+                       const T (&pm_inputs)[N],
+                       BrknDstPredicateState expected_pd_state) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  PRegister pg = p10;
+  PRegister pn = p9;
+  PRegister pm = p8;
+  PRegister pdm = p0;
+  PRegister pd = p1;
+  PRegister pd_s = p2;
+  Initialise(&masm, pg.VnB(), pg_inputs);
+  Initialise(&masm, pn.VnB(), pn_inputs);
+  Initialise(&masm, pm.VnB(), pm_inputs);
+  Initialise(&masm, pdm.VnB(), pm_inputs);
+  Initialise(&masm, pd.VnB(), pd_inputs);
+  Initialise(&masm, pd_s.VnB(), pd_inputs);
+
+  // Initialise NZCV to an impossible value, to check that we actually write it.
+  __ Mov(x10, NZCVFlag);
+  __ Msr(NZCV, x10);
+
+  __ Brkn(pdm.VnB(), pg.Zeroing(), pn.VnB(), pdm.VnB());
+  // !pd.Aliases(pm).
+  __ Brkn(pd.VnB(), pg.Zeroing(), pn.VnB(), pm.VnB());
+  __ Brkns(pd_s.VnB(), pg.Zeroing(), pn.VnB(), pm.VnB());
+  __ Mrs(x0, NZCV);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    T all_false[N] = {0};
+    if (expected_pd_state == kAllFalse) {
+      ASSERT_EQUAL_SVE(all_false, pd.VnB());
+    } else {
+      ASSERT_EQUAL_SVE(pm_inputs, pd.VnB());
+    }
+    ASSERT_EQUAL_SVE(pm_inputs, pm.VnB());
+
+    T all_true[N];
+    for (size_t i = 0; i < ArrayLength(all_true); i++) {
+      all_true[i] = 1;
+    }
+
+    // Check that the flags were properly set.
+    StatusFlags nzcv_expected =
+        GetPredTestFlags((expected_pd_state == kAllFalse) ? all_false
+                                                          : pm_inputs,
+                         all_true,
+                         core.GetSVELaneCount(kBRegSize));
+    ASSERT_EQUAL_64(nzcv_expected, x0);
+    ASSERT_EQUAL_SVE(pd.VnB(), pdm.VnB());
+    ASSERT_EQUAL_SVE(pd.VnB(), pd_s.VnB());
+  }
+}
+
+TEST_SVE(sve_brkn) {
+  int pd[] = {1, 0, 0, 1, 0, 1, 1, 0, 1, 0};
+  int pm[] = {0, 1, 1, 1, 1, 0, 0, 1, 0, 1};
+
+  int pg_1[] = {1, 1, 0, 0, 1, 0, 1, 1, 0, 0};
+  int pg_2[] = {0, 0, 0, 1, 1, 1, 0, 0, 1, 1};
+  int pg_3[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+  int pn_1[] = {1, 0, 0, 0, 0, 1, 1, 0, 0, 0};
+  int pn_2[] = {0, 1, 0, 1, 0, 0, 0, 0, 0, 0};
+  int pn_3[] = {0, 0, 0, 0, 1, 1, 0, 0, 1, 1};
+
+  BrknHelper(config, pd, pg_1, pn_1, pm, kUnchanged);
+  BrknHelper(config, pd, pg_1, pn_2, pm, kAllFalse);
+  BrknHelper(config, pd, pg_1, pn_3, pm, kAllFalse);
+
+  BrknHelper(config, pd, pg_2, pn_1, pm, kAllFalse);
+  BrknHelper(config, pd, pg_2, pn_2, pm, kUnchanged);
+  BrknHelper(config, pd, pg_2, pn_3, pm, kAllFalse);
+
+  BrknHelper(config, pd, pg_3, pn_1, pm, kAllFalse);
+  BrknHelper(config, pd, pg_3, pn_2, pm, kAllFalse);
+  BrknHelper(config, pd, pg_3, pn_3, pm, kAllFalse);
+}
+
+TEST_SVE(sve_trn) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in0[] = {0xffeeddccbbaa9988, 0x7766554433221100};
+  uint64_t in1[] = {0xaa55aa55aa55aa55, 0x55aa55aa55aa55aa};
+  InsrHelper(&masm, z0.VnD(), in0);
+  InsrHelper(&masm, z1.VnD(), in1);
+
+  __ Trn1(z2.VnB(), z0.VnB(), z1.VnB());
+  __ Trn2(z3.VnB(), z0.VnB(), z1.VnB());
+  __ Trn1(z4.VnH(), z0.VnH(), z1.VnH());
+  __ Trn2(z5.VnH(), z0.VnH(), z1.VnH());
+  __ Trn1(z6.VnS(), z0.VnS(), z1.VnS());
+  __ Trn2(z7.VnS(), z0.VnS(), z1.VnS());
+  __ Trn1(z8.VnD(), z0.VnD(), z1.VnD());
+  __ Trn2(z9.VnD(), z0.VnD(), z1.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z2[] = {0x55ee55cc55aa5588, 0xaa66aa44aa22aa00};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0xaaffaaddaabbaa99, 0x5577555555335511};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0xaa55ddccaa559988, 0x55aa554455aa1100};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0xaa55ffeeaa55bbaa, 0x55aa776655aa3322};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0xaa55aa55bbaa9988, 0x55aa55aa33221100};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0xaa55aa55ffeeddcc, 0x55aa55aa77665544};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z8[] = {0x55aa55aa55aa55aa, 0x7766554433221100};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+    uint64_t expected_z9[] = {0xaa55aa55aa55aa55, 0xffeeddccbbaa9988};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+  }
+}
+
+TEST_SVE(sve_zip_uzp) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Dup(z0.VnD(), 0xffeeddccbbaa9988);
+  __ Insr(z0.VnD(), 0x7766554433221100);
+  __ Dup(z1.VnD(), 0xaa55aa55aa55aa55);
+  __ Insr(z1.VnD(), 0x55aa55aa55aa55aa);
+
+  __ Zip1(z2.VnB(), z0.VnB(), z1.VnB());
+  __ Zip2(z3.VnB(), z0.VnB(), z1.VnB());
+  __ Zip1(z4.VnH(), z0.VnH(), z1.VnH());
+  __ Zip2(z5.VnH(), z0.VnH(), z1.VnH());
+  __ Zip1(z6.VnS(), z0.VnS(), z1.VnS());
+  __ Zip2(z7.VnS(), z0.VnS(), z1.VnS());
+  __ Zip1(z8.VnD(), z0.VnD(), z1.VnD());
+  __ Zip2(z9.VnD(), z0.VnD(), z1.VnD());
+
+  __ Uzp1(z10.VnB(), z2.VnB(), z3.VnB());
+  __ Uzp2(z11.VnB(), z2.VnB(), z3.VnB());
+  __ Uzp1(z12.VnH(), z4.VnH(), z5.VnH());
+  __ Uzp2(z13.VnH(), z4.VnH(), z5.VnH());
+  __ Uzp1(z14.VnS(), z6.VnS(), z7.VnS());
+  __ Uzp2(z15.VnS(), z6.VnS(), z7.VnS());
+  __ Uzp1(z16.VnD(), z8.VnD(), z9.VnD());
+  __ Uzp2(z17.VnD(), z8.VnD(), z9.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z2[] = {0x5577aa665555aa44, 0x5533aa225511aa00};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0xaaff55eeaadd55cc, 0xaabb55aaaa995588};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0x55aa776655aa5544, 0x55aa332255aa1100};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0xaa55ffeeaa55ddcc, 0xaa55bbaaaa559988};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0x55aa55aa77665544, 0x55aa55aa33221100};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0xaa55aa55ffeeddcc, 0xaa55aa55bbaa9988};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z8[] = {0x55aa55aa55aa55aa, 0x7766554433221100};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+    uint64_t expected_z9[] = {0xaa55aa55aa55aa55, 0xffeeddccbbaa9988};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+
+    // Check uzp is the opposite of zip.
+    ASSERT_EQUAL_SVE(z0.VnD(), z10.VnD());
+    ASSERT_EQUAL_SVE(z1.VnD(), z11.VnD());
+    ASSERT_EQUAL_SVE(z0.VnD(), z12.VnD());
+    ASSERT_EQUAL_SVE(z1.VnD(), z13.VnD());
+    ASSERT_EQUAL_SVE(z0.VnD(), z14.VnD());
+    ASSERT_EQUAL_SVE(z1.VnD(), z15.VnD());
+    ASSERT_EQUAL_SVE(z0.VnD(), z16.VnD());
+    ASSERT_EQUAL_SVE(z1.VnD(), z17.VnD());
+  }
+}
+
+TEST_SVE(sve_fcadd) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Dup(z30.VnS(), 0);
+
+  __ Ptrue(p0.VnB());
+  __ Pfalse(p1.VnB());
+  __ Zip1(p2.VnH(), p0.VnH(), p1.VnH());  // Real elements.
+  __ Zip1(p3.VnH(), p1.VnH(), p0.VnH());  // Imaginary elements.
+
+  __ Fdup(z0.VnH(), 10.0);  // 10i + 10
+  __ Fdup(z1.VnH(), 5.0);   // 5i + 5
+  __ Index(z7.VnH(), 1, 1);
+  __ Scvtf(z7.VnH(), p0.Merging(), z7.VnH());  // Ai + B
+
+  __ Sel(z2.VnH(), p3, z1.VnH(), z30.VnH());  // 5i + 0
+  __ Sel(z3.VnH(), p2, z1.VnH(), z30.VnH());  // 0i + 5
+  __ Sel(z7.VnH(), p3, z7.VnH(), z0.VnH());   // Ai + 10
+  __ Ext(z8.VnB(), z7.VnB(), z7.VnB(), 2);
+  __ Sel(z8.VnH(), p2, z8.VnH(), z30.VnH());  // 0i + A
+
+  // (10i + 10) + rotate(5i + 0, 90)
+  //   = (10i + 10) + (0i - 5)
+  //   = 10i + 5
+  __ Fcadd(z4.VnH(), p0.Merging(), z0.VnH(), z2.VnH(), 90);
+
+  // (10i + 5) + rotate(0i + 5, 270)
+  //   = (10i + 5) + (-5i + 0)
+  //   = 5i + 5
+  __ Fcadd(z4.VnH(), p0.Merging(), z4.VnH(), z3.VnH(), 270);
+
+  // The same calculation, but selecting real/imaginary using predication.
+  __ Mov(z5, z0);
+  __ Fcadd(z5.VnH(), p2.Merging(), z5.VnH(), z1.VnH(), 90);
+  __ Fcadd(z5.VnH(), p3.Merging(), z5.VnH(), z1.VnH(), 270);
+
+  // Reference calculation: (10i + 10) - (5i + 5)
+  __ Fsub(z6.VnH(), z0.VnH(), z1.VnH());
+
+  // Calculation using varying imaginary values.
+  // (Ai + 10) + rotate(5i + 0, 90)
+  //   = (Ai + 10) + (0i - 5)
+  //   = Ai + 5
+  __ Fcadd(z7.VnH(), p0.Merging(), z7.VnH(), z2.VnH(), 90);
+
+  // (Ai + 5) + rotate(0i + A, 270)
+  //   = (Ai + 5) + (-Ai + 0)
+  //   = 5
+  __ Fcadd(z7.VnH(), p0.Merging(), z7.VnH(), z8.VnH(), 270);
+
+  // Repeated, but for wider elements.
+  __ Zip1(p2.VnS(), p0.VnS(), p1.VnS());
+  __ Zip1(p3.VnS(), p1.VnS(), p0.VnS());
+  __ Fdup(z0.VnS(), 42.0);
+  __ Fdup(z1.VnS(), 21.0);
+  __ Index(z11.VnS(), 1, 1);
+  __ Scvtf(z11.VnS(), p0.Merging(), z11.VnS());
+  __ Sel(z2.VnS(), p3, z1.VnS(), z30.VnS());
+  __ Sel(z29.VnS(), p2, z1.VnS(), z30.VnS());
+  __ Sel(z11.VnS(), p3, z11.VnS(), z0.VnS());
+  __ Ext(z12.VnB(), z11.VnB(), z11.VnB(), 4);
+  __ Sel(z12.VnS(), p2, z12.VnS(), z30.VnS());
+  __ Fcadd(z8.VnS(), p0.Merging(), z0.VnS(), z2.VnS(), 90);
+  __ Fcadd(z8.VnS(), p0.Merging(), z8.VnS(), z29.VnS(), 270);
+  __ Mov(z9, z0);
+  __ Fcadd(z9.VnS(), p2.Merging(), z9.VnS(), z1.VnS(), 90);
+  __ Fcadd(z9.VnS(), p3.Merging(), z9.VnS(), z1.VnS(), 270);
+  __ Fsub(z10.VnS(), z0.VnS(), z1.VnS());
+  __ Fcadd(z11.VnS(), p0.Merging(), z11.VnS(), z2.VnS(), 90);
+  __ Fcadd(z11.VnS(), p0.Merging(), z11.VnS(), z12.VnS(), 270);
+
+  __ Zip1(p2.VnD(), p0.VnD(), p1.VnD());
+  __ Zip1(p3.VnD(), p1.VnD(), p0.VnD());
+  __ Fdup(z0.VnD(), -42.0);
+  __ Fdup(z1.VnD(), -21.0);
+  __ Index(z15.VnD(), 1, 1);
+  __ Scvtf(z15.VnD(), p0.Merging(), z15.VnD());
+  __ Sel(z2.VnD(), p3, z1.VnD(), z30.VnD());
+  __ Sel(z28.VnD(), p2, z1.VnD(), z30.VnD());
+  __ Sel(z15.VnD(), p3, z15.VnD(), z0.VnD());
+  __ Ext(z16.VnB(), z15.VnB(), z15.VnB(), 8);
+  __ Sel(z16.VnD(), p2, z16.VnD(), z30.VnD());
+  __ Fcadd(z12.VnD(), p0.Merging(), z0.VnD(), z2.VnD(), 90);
+  __ Fcadd(z12.VnD(), p0.Merging(), z12.VnD(), z28.VnD(), 270);
+  __ Mov(z13, z0);
+  __ Fcadd(z13.VnD(), p2.Merging(), z13.VnD(), z1.VnD(), 90);
+  __ Fcadd(z13.VnD(), p3.Merging(), z13.VnD(), z1.VnD(), 270);
+  __ Fsub(z14.VnD(), z0.VnD(), z1.VnD());
+  __ Fcadd(z15.VnD(), p0.Merging(), z15.VnD(), z2.VnD(), 90);
+  __ Fcadd(z15.VnD(), p0.Merging(), z15.VnD(), z16.VnD(), 270);
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    ASSERT_EQUAL_SVE(z6.VnH(), z4.VnH());
+    ASSERT_EQUAL_SVE(z6.VnH(), z5.VnH());
+    ASSERT_EQUAL_SVE(z3.VnH(), z7.VnH());
+    ASSERT_EQUAL_SVE(z10.VnS(), z8.VnS());
+    ASSERT_EQUAL_SVE(z10.VnS(), z9.VnS());
+    ASSERT_EQUAL_SVE(z29.VnS(), z11.VnS());
+    ASSERT_EQUAL_SVE(z14.VnD(), z12.VnD());
+    ASSERT_EQUAL_SVE(z14.VnD(), z13.VnD());
+    ASSERT_EQUAL_SVE(z28.VnS(), z15.VnS());
+  }
+}
+
+TEST_SVE(sve_fcmla_index) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Ptrue(p0.VnB());
+
+  __ Fdup(z0.VnH(), 10.0);
+  __ Fdup(z2.VnH(), 2.0);
+  __ Zip1(z0.VnH(), z0.VnH(), z2.VnH());
+
+  // Duplicate complex numbers across z2 segments. First segment has 1i+0,
+  // second has 3i+2, etc.
+  __ Index(z1.VnH(), 0, 1);
+  __ Scvtf(z1.VnH(), p0.Merging(), z1.VnH());
+  __ Zip1(z2.VnS(), z1.VnS(), z1.VnS());
+  __ Zip1(z2.VnS(), z2.VnS(), z2.VnS());
+
+  // Derive a vector from z2 where only the third element in each segment
+  // contains a complex number, with other elements zero.
+  __ Index(z3.VnS(), 0, 1);
+  __ And(z3.VnS(), z3.VnS(), 3);
+  __ Cmpeq(p2.VnS(), p0.Zeroing(), z3.VnS(), 2);
+  __ Dup(z3.VnB(), 0);
+  __ Sel(z3.VnS(), p2, z2.VnS(), z3.VnS());
+
+  // Use indexed complex multiply on this vector, indexing the third element.
+  __ Dup(z4.VnH(), 0);
+  __ Fcmla(z4.VnH(), z0.VnH(), z3.VnH(), 2, 0);
+  __ Fcmla(z4.VnH(), z0.VnH(), z3.VnH(), 2, 90);
+
+  // Rotate the indexed complex number and repeat, negated, and with a different
+  // index.
+  __ Ext(z3.VnH(), z3.VnH(), z3.VnH(), 4);
+  __ Dup(z5.VnH(), 0);
+  __ Fcmla(z5.VnH(), z0.VnH(), z3.VnH(), 1, 180);
+  __ Fcmla(z5.VnH(), z0.VnH(), z3.VnH(), 1, 270);
+  __ Fneg(z5.VnH(), p0.Merging(), z5.VnH());
+
+  // Create a reference result from a vector complex multiply.
+  __ Dup(z6.VnH(), 0);
+  __ Fcmla(z6.VnH(), p0.Merging(), z0.VnH(), z2.VnH(), 0);
+  __ Fcmla(z6.VnH(), p0.Merging(), z0.VnH(), z2.VnH(), 90);
+
+  // Repeated, but for wider elements.
+  __ Fdup(z0.VnS(), 42.0);
+  __ Fdup(z2.VnS(), 24.0);
+  __ Zip1(z0.VnS(), z0.VnS(), z2.VnS());
+  __ Index(z1.VnS(), -42, 13);
+  __ Scvtf(z1.VnS(), p0.Merging(), z1.VnS());
+  __ Zip1(z2.VnD(), z1.VnD(), z1.VnD());
+  __ Zip1(z2.VnD(), z2.VnD(), z2.VnD());
+  __ Index(z3.VnD(), 0, 1);
+  __ And(z3.VnD(), z3.VnD(), 1);
+  __ Cmpeq(p2.VnD(), p0.Zeroing(), z3.VnD(), 1);
+  __ Dup(z3.VnB(), 0);
+  __ Sel(z3.VnD(), p2, z2.VnD(), z3.VnD());
+  __ Dup(z7.VnS(), 0);
+  __ Fcmla(z7.VnS(), z0.VnS(), z3.VnS(), 1, 0);
+  __ Fcmla(z7.VnS(), z0.VnS(), z3.VnS(), 1, 90);
+  __ Ext(z3.VnB(), z3.VnB(), z3.VnB(), 8);
+  __ Dup(z8.VnS(), 0);
+  __ Fcmla(z8.VnS(), z0.VnS(), z3.VnS(), 0, 180);
+  __ Fcmla(z8.VnS(), z0.VnS(), z3.VnS(), 0, 270);
+  __ Fneg(z8.VnS(), p0.Merging(), z8.VnS());
+  __ Dup(z9.VnS(), 0);
+  __ Fcmla(z9.VnS(), p0.Merging(), z0.VnS(), z2.VnS(), 0);
+  __ Fcmla(z9.VnS(), p0.Merging(), z0.VnS(), z2.VnS(), 90);
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    ASSERT_EQUAL_SVE(z6.VnH(), z4.VnH());
+    ASSERT_EQUAL_SVE(z6.VnH(), z5.VnH());
+    ASSERT_EQUAL_SVE(z9.VnS(), z7.VnS());
+    ASSERT_EQUAL_SVE(z9.VnS(), z8.VnS());
+  }
+}
+
+TEST_SVE(sve_fcmla) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Ptrue(p0.VnB());
+  __ Pfalse(p1.VnB());
+  __ Zip1(p2.VnH(), p0.VnH(), p1.VnH());  // Real elements.
+  __ Zip1(p3.VnH(), p1.VnH(), p0.VnH());  // Imaginary elements.
+
+  __ Fdup(z0.VnH(), 10.0);
+  __ Fdup(z2.VnH(), 2.0);
+
+  // Create pairs of complex numbers, Ai + A. A is chosen to be non-zero, as
+  // the later fneg will result in a failed comparison otherwise.
+  __ Index(z1.VnH(), -4, 3);
+  __ Zip1(z1.VnH(), z1.VnH(), z1.VnH());
+  __ Zip1(z1.VnH(), z1.VnH(), z1.VnH());
+  __ Scvtf(z1.VnH(), p0.Merging(), z1.VnH());
+
+  __ Sel(z3.VnH(), p2, z0.VnH(), z1.VnH());  // Ai + 10
+  __ Sel(z4.VnH(), p2, z1.VnH(), z2.VnH());  // 2i + A
+
+  __ Zip1(p2.VnS(), p0.VnS(), p1.VnS());  // Even complex numbers.
+  __ Zip1(p3.VnS(), p1.VnS(), p0.VnS());  // Odd complex numbers.
+
+  // Calculate (Ai + 10) * (2i + A) = (20 + A^2)i + 8A, using predication to
+  // select only the complex numbers in odd-numbered element pairs. This leaves
+  // results in elements 2/3, 6/7, etc. with zero in elements 0/1, 4/5, etc.
+  //   ...      7      6   5   4      3      2   1   0     <-- element
+  //   ... | 20+A^2 | 8A | 0 | 0 | 20+A^2 | 8A | 0 | 0 |   <-- value
+  __ Dup(z5.VnH(), 0);
+  __ Fcmla(z5.VnH(), p3.Merging(), z4.VnH(), z3.VnH(), 0);
+  __ Fcmla(z5.VnH(), p3.Merging(), z4.VnH(), z3.VnH(), 90);
+
+  // Move the odd results to the even result positions.
+  //   ...   7   6      5      4   3   2      1      0     <-- element
+  //   ... | 0 | 0 | 20+A^2 | 8A | 0 | 0 | 20+A^2 | 8A |   <-- value
+  __ Ext(z5.VnB(), z5.VnB(), z5.VnB(), 4);
+
+  // Calculate -(Ai + 10) * (2i + A) = -(20 + A^2)i - 8A for the even complex
+  // numbers.
+  //   ...   7   6       5       4   3   2       1       0     <-- element
+  //   ... | 0 | 0 | -20-A^2 | -8A | 0 | 0 | -20-A^2 | -8A |   <-- value
+  __ Dup(z6.VnH(), 0);
+  __ Fcmla(z6.VnH(), p2.Merging(), z4.VnH(), z3.VnH(), 180);
+  __ Fcmla(z6.VnH(), p2.Merging(), z4.VnH(), z3.VnH(), 270);
+
+  // Negate the even results. The results in z6 should now match the results
+  // computed earlier in z5.
+  //   ...   7   6      5      4   3   2      1      0     <-- element
+  //   ... | 0 | 0 | 20+A^2 | 8A | 0 | 0 | 20+A^2 | 8A |   <-- value
+  __ Fneg(z6.VnH(), p2.Merging(), z6.VnH());
+
+
+  // Similarly, but for wider elements.
+  __ Zip1(p2.VnS(), p0.VnS(), p1.VnS());
+  __ Zip1(p3.VnS(), p1.VnS(), p0.VnS());
+  __ Index(z1.VnS(), -4, 3);
+  __ Zip1(z1.VnS(), z1.VnS(), z1.VnS());
+  __ Zip1(z1.VnS(), z1.VnS(), z1.VnS());
+  __ Scvtf(z1.VnS(), p0.Merging(), z1.VnS());
+  __ Fdup(z0.VnS(), 20.0);
+  __ Fdup(z2.VnS(), 21.0);
+  __ Sel(z3.VnS(), p2, z0.VnS(), z1.VnS());
+  __ Sel(z4.VnS(), p2, z1.VnS(), z2.VnS());
+  __ Punpklo(p2.VnH(), p2.VnB());
+  __ Punpklo(p3.VnH(), p3.VnB());
+  __ Dup(z7.VnS(), 0);
+  __ Fcmla(z7.VnS(), p3.Merging(), z4.VnS(), z3.VnS(), 0);
+  __ Fcmla(z7.VnS(), p3.Merging(), z4.VnS(), z3.VnS(), 90);
+  __ Ext(z7.VnB(), z7.VnB(), z7.VnB(), 8);
+  __ Dup(z8.VnS(), 0);
+  __ Fcmla(z8.VnS(), p2.Merging(), z4.VnS(), z3.VnS(), 180);
+  __ Fcmla(z8.VnS(), p2.Merging(), z4.VnS(), z3.VnS(), 270);
+  __ Fneg(z8.VnS(), p2.Merging(), z8.VnS());
+
+  // Double precision computed for even lanes only.
+  __ Zip1(p2.VnD(), p0.VnD(), p1.VnD());
+  __ Index(z1.VnD(), -4, 3);
+  __ Zip1(z1.VnD(), z1.VnD(), z1.VnD());
+  __ Zip1(z1.VnD(), z1.VnD(), z1.VnD());
+  __ Scvtf(z1.VnD(), p0.Merging(), z1.VnD());
+  __ Fdup(z0.VnD(), 20.0);
+  __ Fdup(z2.VnD(), 21.0);
+  __ Sel(z3.VnD(), p2, z0.VnD(), z1.VnD());
+  __ Sel(z4.VnD(), p2, z1.VnD(), z2.VnD());
+  __ Punpklo(p2.VnH(), p2.VnB());
+  __ Dup(z9.VnD(), 0);
+  __ Fcmla(z9.VnD(), p2.Merging(), z4.VnD(), z3.VnD(), 0);
+  __ Fcmla(z9.VnD(), p2.Merging(), z4.VnD(), z3.VnD(), 90);
+  __ Dup(z10.VnD(), 0);
+  __ Fcmla(z10.VnD(), p2.Merging(), z4.VnD(), z3.VnD(), 180);
+  __ Fcmla(z10.VnD(), p2.Merging(), z4.VnD(), z3.VnD(), 270);
+  __ Fneg(z10.VnD(), p2.Merging(), z10.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    ASSERT_EQUAL_SVE(z5.VnH(), z6.VnH());
+    ASSERT_EQUAL_SVE(z7.VnS(), z8.VnS());
+    ASSERT_EQUAL_SVE(z9.VnD(), z10.VnD());
+  }
+}
+
+// Create a pattern in dst where the value of each element in src is incremented
+// by the segment number. This allows varying a short input by a predictable
+// pattern for each segment.
+static void FPSegmentPatternHelper(MacroAssembler* masm,
+                                   const ZRegister& dst,
+                                   const PRegisterM& ptrue,
+                                   const ZRegister& src) {
+  VIXL_ASSERT(AreSameLaneSize(dst, src));
+  UseScratchRegisterScope temps(masm);
+  ZRegister ztmp = temps.AcquireZ().WithSameLaneSizeAs(dst);
+  masm->Index(ztmp, 0, 1);
+  masm->Asr(ztmp, ztmp, kQRegSizeInBytesLog2 - dst.GetLaneSizeInBytesLog2());
+  masm->Scvtf(ztmp, ptrue, ztmp);
+  masm->Fadd(dst, src, ztmp);
+}
+
+TEST_SVE(sve_fpmul_index) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in0[] = {0x3ff000003f803c00, 0xbff00000bf80bc00};
+  uint64_t in1[] = {0x3ff012343ff03c76, 0xbff01234bff0bc76};
+
+  __ Ptrue(p0.VnB());
+  // Repeat indexed vector across up to 2048-bit VL.
+  for (size_t i = 0; i < (kZRegMaxSize / kDRegSize); i++) {
+    InsrHelper(&masm, z25.VnD(), in0);
+  }
+  InsrHelper(&masm, z1.VnD(), in1);
+
+  FPSegmentPatternHelper(&masm, z0.VnH(), p0.Merging(), z25.VnH());
+  __ Fmul(z2.VnH(), z1.VnH(), z0.VnH(), 0);
+  __ Fmul(z3.VnH(), z1.VnH(), z0.VnH(), 1);
+  __ Fmul(z4.VnH(), z1.VnH(), z0.VnH(), 4);
+  __ Fmul(z5.VnH(), z1.VnH(), z0.VnH(), 7);
+
+  __ Fmul(z6.VnS(), z1.VnS(), z0.VnS(), 0);
+  __ Fmul(z7.VnS(), z1.VnS(), z0.VnS(), 1);
+  __ Fmul(z8.VnS(), z1.VnS(), z0.VnS(), 2);
+  __ Fmul(z9.VnS(), z1.VnS(), z0.VnS(), 3);
+
+  __ Fmul(z10.VnD(), z1.VnD(), z0.VnD(), 0);
+  __ Fmul(z11.VnD(), z1.VnD(), z0.VnD(), 1);
+
+  // Compute the results using other instructions.
+  __ Dup(z12.VnH(), z25.VnH(), 0);
+  FPSegmentPatternHelper(&masm, z12.VnH(), p0.Merging(), z12.VnH());
+  __ Fmul(z12.VnH(), z1.VnH(), z12.VnH());
+  __ Dup(z13.VnH(), z25.VnH(), 1);
+  FPSegmentPatternHelper(&masm, z13.VnH(), p0.Merging(), z13.VnH());
+  __ Fmul(z13.VnH(), z1.VnH(), z13.VnH());
+  __ Dup(z14.VnH(), z25.VnH(), 4);
+  FPSegmentPatternHelper(&masm, z14.VnH(), p0.Merging(), z14.VnH());
+  __ Fmul(z14.VnH(), z1.VnH(), z14.VnH());
+  __ Dup(z15.VnH(), z25.VnH(), 7);
+  FPSegmentPatternHelper(&masm, z15.VnH(), p0.Merging(), z15.VnH());
+  __ Fmul(z15.VnH(), z1.VnH(), z15.VnH());
+
+  __ Dup(z16.VnS(), z25.VnS(), 0);
+  FPSegmentPatternHelper(&masm, z16.VnH(), p0.Merging(), z16.VnH());
+  __ Fmul(z16.VnS(), z1.VnS(), z16.VnS());
+  __ Dup(z17.VnS(), z25.VnS(), 1);
+  FPSegmentPatternHelper(&masm, z17.VnH(), p0.Merging(), z17.VnH());
+  __ Fmul(z17.VnS(), z1.VnS(), z17.VnS());
+  __ Dup(z18.VnS(), z25.VnS(), 2);
+  FPSegmentPatternHelper(&masm, z18.VnH(), p0.Merging(), z18.VnH());
+  __ Fmul(z18.VnS(), z1.VnS(), z18.VnS());
+  __ Dup(z19.VnS(), z25.VnS(), 3);
+  FPSegmentPatternHelper(&masm, z19.VnH(), p0.Merging(), z19.VnH());
+  __ Fmul(z19.VnS(), z1.VnS(), z19.VnS());
+
+  __ Dup(z20.VnD(), z25.VnD(), 0);
+  FPSegmentPatternHelper(&masm, z20.VnH(), p0.Merging(), z20.VnH());
+  __ Fmul(z20.VnD(), z1.VnD(), z20.VnD());
+  __ Dup(z21.VnD(), z25.VnD(), 1);
+  FPSegmentPatternHelper(&masm, z21.VnH(), p0.Merging(), z21.VnH());
+  __ Fmul(z21.VnD(), z1.VnD(), z21.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    ASSERT_EQUAL_SVE(z12.VnH(), z2.VnH());
+    ASSERT_EQUAL_SVE(z13.VnH(), z3.VnH());
+    ASSERT_EQUAL_SVE(z14.VnH(), z4.VnH());
+    ASSERT_EQUAL_SVE(z15.VnH(), z5.VnH());
+    ASSERT_EQUAL_SVE(z16.VnS(), z6.VnS());
+    ASSERT_EQUAL_SVE(z17.VnS(), z7.VnS());
+    ASSERT_EQUAL_SVE(z18.VnS(), z8.VnS());
+    ASSERT_EQUAL_SVE(z19.VnS(), z9.VnS());
+    ASSERT_EQUAL_SVE(z20.VnD(), z10.VnD());
+    ASSERT_EQUAL_SVE(z21.VnD(), z11.VnD());
+  }
+}
+
+TEST_SVE(sve_ftmad) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t in_h0[] = {0x7c027e01fc02fe01,
+                      0x3c003c00bc00bc00,
+                      0x3c003c00bc00bc00};
+  uint64_t in_h1[] = {0xfe01fc027e017e01,
+                      0x3c00bc003c00bc00,
+                      0x3c00bc003c00bc00};
+  uint64_t in_s0[] = {0x7f800002ffc00001,
+                      0x3f8000003f800000,
+                      0xbf800000bf800000};
+  uint64_t in_s1[] = {0xffc00001ffc00001,
+                      0x3f800000bf800000,
+                      0x3f800000bf800000};
+  uint64_t in_d0[] = {0x7ff8000000000001,
+                      0x3ff0000000000000,
+                      0xbff0000000000000};
+  uint64_t in_d1[] = {0xfff0000000000002,
+                      0xbff0000000000000,
+                      0x3ff0000000000000};
+  InsrHelper(&masm, z0.VnD(), in_h0);
+  InsrHelper(&masm, z1.VnD(), in_h1);
+  InsrHelper(&masm, z2.VnD(), in_s0);
+  InsrHelper(&masm, z3.VnD(), in_s1);
+  InsrHelper(&masm, z4.VnD(), in_d0);
+  InsrHelper(&masm, z5.VnD(), in_d1);
+
+  __ Mov(z6, z0);
+  __ Ftmad(z6.VnH(), z6.VnH(), z1.VnH(), 0);
+  __ Mov(z7, z0);
+  __ Ftmad(z7.VnH(), z7.VnH(), z1.VnH(), 1);
+  __ Mov(z8, z0);
+  __ Ftmad(z8.VnH(), z8.VnH(), z1.VnH(), 2);
+
+  __ Mov(z9, z2);
+  __ Ftmad(z9.VnS(), z9.VnS(), z3.VnS(), 0);
+  __ Mov(z10, z2);
+  __ Ftmad(z10.VnS(), z10.VnS(), z3.VnS(), 3);
+  __ Mov(z11, z2);
+  __ Ftmad(z11.VnS(), z11.VnS(), z3.VnS(), 4);
+
+  __ Mov(z12, z4);
+  __ Ftmad(z12.VnD(), z12.VnD(), z5.VnD(), 0);
+  __ Mov(z13, z4);
+  __ Ftmad(z13.VnD(), z13.VnD(), z5.VnD(), 5);
+  __ Mov(z14, z4);
+  __ Ftmad(z14.VnD(), z14.VnD(), z5.VnD(), 7);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z6[] = {0x7e027e02fe02fe01,
+                              0x4000400000000000,
+                              0x4000400000000000};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0x7e027e02fe02fe01,
+                              0x3aab3800bcabbe00,
+                              0x3aab3800bcabbe00};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z8[] = {0x7e027e02fe02fe01,
+                              0x3c083c2abbefbbac,
+                              0x3c083c2abbefbbac};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+    uint64_t expected_z9[] = {0x7fc00002ffc00001,
+                              0x4000000040000000,
+                              0x0000000000000000};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    uint64_t expected_z10[] = {0x7fc00002ffc00001,
+                               0x3f7ff2ff3f7fa4fc,
+                               0xbf800680bf802d82};
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+    uint64_t expected_z11[] = {0x7fc00002ffc00001,
+                               0x3f8000173f8000cd,
+                               0xbf7fffd2bf7ffe66};
+    ASSERT_EQUAL_SVE(expected_z11, z11.VnD());
+    uint64_t expected_z12[] = {0x7ff8000000000002,
+                               0x4000000000000000,
+                               0x0000000000000000};
+    ASSERT_EQUAL_SVE(expected_z12, z12.VnD());
+    uint64_t expected_z13[] = {0x7ff8000000000002,
+                               0x3fefffff6c0d846c,
+                               0xbff0000006b978ae};
+    ASSERT_EQUAL_SVE(expected_z13, z13.VnD());
+    uint64_t expected_z14[] = {0x7ff8000000000002,
+                               0x3feffffffffe708a,
+                               0xbff0000000000000};
+    ASSERT_EQUAL_SVE(expected_z14, z14.VnD());
+  }
+}
+
+static void BasicFPArithHelper(MacroAssembler* masm,
+                               int lane_size_in_bits,
+                               const uint64_t (&inputs)[2],
+                               const uint64_t (&inputs_fmulx)[2],
+                               const uint64_t (&inputs_nans)[2]) {
+  int ls = lane_size_in_bits;
+
+  for (int i = 0; i < 16; i++) {
+    InsrHelper(masm, z0.VnD(), inputs);
+  }
+  ZRegister rvrs = z1.WithLaneSize(ls);
+  masm->Rev(rvrs, z0.WithLaneSize(ls));
+
+  int pred[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1};
+  Initialise(masm, p2.VnB(), pred);
+  PRegisterM p2m = p2.Merging();
+
+  masm->Mov(z2, z0);
+  masm->Fadd(z2.WithLaneSize(ls),
+             p2m,
+             z2.WithLaneSize(ls),
+             rvrs,
+             FastNaNPropagation);
+  masm->Mov(z3, z0);
+  masm->Fsub(z3.WithLaneSize(ls), p2m, z3.WithLaneSize(ls), rvrs);
+  masm->Mov(z4, z0);
+  masm->Fsub(z4.WithLaneSize(ls), p2m, rvrs, z4.WithLaneSize(ls));
+  masm->Mov(z5, z0);
+  masm->Fabd(z5.WithLaneSize(ls),
+             p2m,
+             z5.WithLaneSize(ls),
+             rvrs,
+             FastNaNPropagation);
+  masm->Mov(z6, z0);
+  masm->Fmul(z6.WithLaneSize(ls),
+             p2m,
+             z6.WithLaneSize(ls),
+             rvrs,
+             FastNaNPropagation);
+
+  for (int i = 0; i < 16; i++) {
+    InsrHelper(masm, z7.VnD(), inputs_fmulx);
+  }
+  masm->Rev(z8.WithLaneSize(ls), z7.WithLaneSize(ls));
+  masm->Fmulx(z7.WithLaneSize(ls),
+              p2m,
+              z7.WithLaneSize(ls),
+              z8.WithLaneSize(ls),
+              FastNaNPropagation);
+
+  InsrHelper(masm, z8.VnD(), inputs_nans);
+  masm->Mov(z9, z8);
+  masm->Fminnm(z9.WithLaneSize(ls),
+               p2m,
+               z9.WithLaneSize(ls),
+               rvrs,
+               FastNaNPropagation);
+  masm->Mov(z10, z8);
+  masm->Fmaxnm(z10.WithLaneSize(ls),
+               p2m,
+               z10.WithLaneSize(ls),
+               rvrs,
+               FastNaNPropagation);
+}
+
+TEST_SVE(sve_fp_arith_pred_h) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t inputs[] = {0x4800470046004500, 0x4400420040003c00};
+  uint64_t inputs_fmulx[] = {0x7c00fc007c00fc00, 0x0000800000008000};
+  uint64_t inputs_nans[] = {0x7fffffff7fffffff, 0x7bfffbff7fbbfbff};
+
+  BasicFPArithHelper(&masm, kHRegSize, inputs, inputs_fmulx, inputs_nans);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z2[] = {0x4880488048804880, 0x4880420048804880};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0x4700450042003c00, 0xbc004200c500c700};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0xc700c500c200bc00, 0x3c00420045004700};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0x4700450042003c00, 0x3c00420045004700};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0x48004b004c804d00, 0x4d0042004b004800};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0xc000c000c000c000, 0xc0008000c000c000};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z9[] = {0x3c00400042004400, 0x4500fbff4700fbff};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    uint64_t expected_z10[] = {0x3c00400042004400, 0x7bfffbff47004800};
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+  }
+}
+
+TEST_SVE(sve_fp_arith_pred_s) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t inputs[] = {0x4080000040400000, 0x400000003f800000};
+  uint64_t inputs_fmulx[] = {0x7f800000ff800000, 0x0000000080000000};
+  uint64_t inputs_nans[] = {0x7fffffffffffffff, 0x41000000c1000000};
+
+  BasicFPArithHelper(&masm, kSRegSize, inputs, inputs_fmulx, inputs_nans);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z2[] = {0x40a0000040a00000, 0x4000000040a00000};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0x404000003f800000, 0x40000000c0400000};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0xc0400000bf800000, 0x4000000040400000};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0x404000003f800000, 0x4000000040400000};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0x4080000040c00000, 0x4000000040800000};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0xc0000000c0000000, 0x00000000c0000000};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z9[] = {0x3f80000040000000, 0x41000000c1000000};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    uint64_t expected_z10[] = {0x3f80000040000000, 0x4100000040800000};
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+  }
+}
+
+TEST_SVE(sve_fp_arith_pred_d) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t inputs[] = {0x4000000000000000, 0x3ff0000000000000};
+  uint64_t inputs_fmulx[] = {0x7ff0000000000000, 0x8000000000000000};
+  uint64_t inputs_nans[] = {0x7fffffffffffffff, 0x4100000000000000};
+
+  BasicFPArithHelper(&masm, kDRegSize, inputs, inputs_fmulx, inputs_nans);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z2[] = {0x4008000000000000, 0x4008000000000000};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0x3ff0000000000000, 0xbff0000000000000};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0xbff0000000000000, 0x3ff0000000000000};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0x3ff0000000000000, 0x3ff0000000000000};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0x4000000000000000, 0x4000000000000000};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0xc000000000000000, 0xc000000000000000};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z9[] = {0x3ff0000000000000, 0x4000000000000000};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    uint64_t expected_z10[] = {0x3ff0000000000000, 0x4100000000000000};
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+  }
+}
+
+TEST_SVE(sve_fp_arith_pred_imm) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int pred[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1};
+  Initialise(&masm, p0.VnB(), pred);
+  PRegisterM p0m = p0.Merging();
+  __ Ptrue(p1.VnB());
+
+  __ Fdup(z0.VnD(), 0.0);
+
+  __ Mov(z1, z0);
+  __ Fdiv(z1.VnH(), p1.Merging(), z1.VnH(), z1.VnH());
+  __ Mov(z2, z0);
+  __ Fadd(z2.VnH(), p0m, z2.VnH(), 0.5);
+  __ Mov(z3, z2);
+  __ Fsub(z3.VnH(), p0m, z3.VnH(), 1.0);
+  __ Mov(z4, z3);
+  __ Fsub(z4.VnH(), p0m, 1.0, z4.VnH());
+  __ Mov(z5, z4);
+  __ Fmul(z5.VnH(), p0m, z5.VnH(), 2.0);
+  __ Mov(z6, z1);
+  __ Fminnm(z6.VnH(), p0m, z6.VnH(), 0.0);
+  __ Mov(z7, z1);
+  __ Fmaxnm(z7.VnH(), p0m, z7.VnH(), 1.0);
+  __ Mov(z8, z5);
+  __ Fmin(z8.VnH(), p0m, z8.VnH(), 1.0);
+  __ Mov(z9, z5);
+  __ Fmax(z9.VnH(), p0m, z9.VnH(), 0.0);
+
+  __ Mov(z11, z0);
+  __ Fdiv(z11.VnS(), p1.Merging(), z11.VnS(), z11.VnS());
+  __ Mov(z12, z0);
+  __ Fadd(z12.VnS(), p0m, z12.VnS(), 0.5);
+  __ Mov(z13, z12);
+  __ Fsub(z13.VnS(), p0m, z13.VnS(), 1.0);
+  __ Mov(z14, z13);
+  __ Fsub(z14.VnS(), p0m, 1.0, z14.VnS());
+  __ Mov(z15, z14);
+  __ Fmul(z15.VnS(), p0m, z15.VnS(), 2.0);
+  __ Mov(z16, z11);
+  __ Fminnm(z16.VnS(), p0m, z16.VnS(), 0.0);
+  __ Mov(z17, z11);
+  __ Fmaxnm(z17.VnS(), p0m, z17.VnS(), 1.0);
+  __ Mov(z18, z15);
+  __ Fmin(z18.VnS(), p0m, z18.VnS(), 1.0);
+  __ Mov(z19, z15);
+  __ Fmax(z19.VnS(), p0m, z19.VnS(), 0.0);
+
+  __ Mov(z21, z0);
+  __ Fdiv(z21.VnD(), p1.Merging(), z21.VnD(), z21.VnD());
+  __ Mov(z22, z0);
+  __ Fadd(z22.VnD(), p0m, z22.VnD(), 0.5);
+  __ Mov(z23, z22);
+  __ Fsub(z23.VnD(), p0m, z23.VnD(), 1.0);
+  __ Mov(z24, z23);
+  __ Fsub(z24.VnD(), p0m, 1.0, z24.VnD());
+  __ Mov(z25, z24);
+  __ Fmul(z25.VnD(), p0m, z25.VnD(), 2.0);
+  __ Mov(z26, z21);
+  __ Fminnm(z26.VnD(), p0m, z26.VnD(), 0.0);
+  __ Mov(z27, z21);
+  __ Fmaxnm(z27.VnD(), p0m, z27.VnD(), 1.0);
+  __ Mov(z28, z25);
+  __ Fmin(z28.VnD(), p0m, z28.VnD(), 1.0);
+  __ Mov(z29, z25);
+  __ Fmax(z29.VnD(), p0m, z29.VnD(), 0.0);
+
+  __ Index(z0.VnH(), -3, 1);
+  __ Scvtf(z0.VnH(), p1.Merging(), z0.VnH());
+  __ Fmax(z0.VnH(), p1.Merging(), z0.VnH(), 0.0);
+  __ Index(z1.VnS(), -4, 2);
+  __ Scvtf(z1.VnS(), p1.Merging(), z1.VnS());
+  __ Fadd(z1.VnS(), p1.Merging(), z1.VnS(), 1.0);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z2[] = {0x3800380038003800, 0x3800000038003800};
+    ASSERT_EQUAL_SVE(expected_z2, z2.VnD());
+    uint64_t expected_z3[] = {0xb800b800b800b800, 0xb8000000b800b800};
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    uint64_t expected_z4[] = {0x3e003e003e003e00, 0x3e0000003e003e00};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0x4200420042004200, 0x4200000042004200};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    uint64_t expected_z6[] = {0x0000000000000000, 0x00007e0000000000};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0x3c003c003c003c00, 0x3c007e003c003c00};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    uint64_t expected_z8[] = {0x3c003c003c003c00, 0x3c0000003c003c00};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+    uint64_t expected_z9[] = {0x4200420042004200, 0x4200000042004200};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+
+    uint64_t expected_z12[] = {0x3f0000003f000000, 0x000000003f000000};
+    ASSERT_EQUAL_SVE(expected_z12, z12.VnD());
+    uint64_t expected_z13[] = {0xbf000000bf000000, 0x00000000bf000000};
+    ASSERT_EQUAL_SVE(expected_z13, z13.VnD());
+    uint64_t expected_z14[] = {0x3fc000003fc00000, 0x000000003fc00000};
+    ASSERT_EQUAL_SVE(expected_z14, z14.VnD());
+    uint64_t expected_z15[] = {0x4040000040400000, 0x0000000040400000};
+    ASSERT_EQUAL_SVE(expected_z15, z15.VnD());
+    uint64_t expected_z16[] = {0x0000000000000000, 0x7fc0000000000000};
+    ASSERT_EQUAL_SVE(expected_z16, z16.VnD());
+    uint64_t expected_z17[] = {0x3f8000003f800000, 0x7fc000003f800000};
+    ASSERT_EQUAL_SVE(expected_z17, z17.VnD());
+    uint64_t expected_z18[] = {0x3f8000003f800000, 0x000000003f800000};
+    ASSERT_EQUAL_SVE(expected_z18, z18.VnD());
+    uint64_t expected_z19[] = {0x4040000040400000, 0x0000000040400000};
+    ASSERT_EQUAL_SVE(expected_z19, z19.VnD());
+
+    uint64_t expected_z22[] = {0x3fe0000000000000, 0x3fe0000000000000};
+    ASSERT_EQUAL_SVE(expected_z22, z22.VnD());
+    uint64_t expected_z23[] = {0xbfe0000000000000, 0xbfe0000000000000};
+    ASSERT_EQUAL_SVE(expected_z23, z23.VnD());
+    uint64_t expected_z24[] = {0x3ff8000000000000, 0x3ff8000000000000};
+    ASSERT_EQUAL_SVE(expected_z24, z24.VnD());
+    uint64_t expected_z25[] = {0x4008000000000000, 0x4008000000000000};
+    ASSERT_EQUAL_SVE(expected_z25, z25.VnD());
+    uint64_t expected_z26[] = {0x0000000000000000, 0x0000000000000000};
+    ASSERT_EQUAL_SVE(expected_z26, z26.VnD());
+    uint64_t expected_z27[] = {0x3ff0000000000000, 0x3ff0000000000000};
+    ASSERT_EQUAL_SVE(expected_z27, z27.VnD());
+    uint64_t expected_z28[] = {0x3ff0000000000000, 0x3ff0000000000000};
+    ASSERT_EQUAL_SVE(expected_z28, z28.VnD());
+    uint64_t expected_z29[] = {0x4008000000000000, 0x4008000000000000};
+    ASSERT_EQUAL_SVE(expected_z29, z29.VnD());
+    uint64_t expected_z0[] = {0x4400420040003c00, 0x0000000000000000};
+    ASSERT_EQUAL_SVE(expected_z0, z0.VnD());
+    uint64_t expected_z1[] = {0x404000003f800000, 0xbf800000c0400000};
+    ASSERT_EQUAL_SVE(expected_z1, z1.VnD());
+  }
+}
+
+TEST_SVE(sve_fscale) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  uint64_t inputs_h[] = {0x4800470046004500, 0x4400420040003c00};
+  InsrHelper(&masm, z0.VnD(), inputs_h);
+  uint64_t inputs_s[] = {0x4080000040400000, 0x400000003f800000};
+  InsrHelper(&masm, z1.VnD(), inputs_s);
+  uint64_t inputs_d[] = {0x40f0000000000000, 0x4000000000000000};
+  InsrHelper(&masm, z2.VnD(), inputs_d);
+
+  uint64_t scales[] = {0x00080002fff8fffe, 0x00100001fff0ffff};
+  InsrHelper(&masm, z3.VnD(), scales);
+
+  __ Ptrue(p0.VnB());
+  int pred[] = {0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1};
+  Initialise(&masm, p1.VnB(), pred);
+
+  __ Mov(z4, z0);
+  __ Fscale(z4.VnH(), p0.Merging(), z4.VnH(), z3.VnH());
+  __ Mov(z5, z0);
+  __ Fscale(z5.VnH(), p1.Merging(), z5.VnH(), z3.VnH());
+
+  __ Sunpklo(z3.VnS(), z3.VnH());
+  __ Mov(z6, z1);
+  __ Fscale(z6.VnS(), p0.Merging(), z6.VnS(), z3.VnS());
+  __ Mov(z7, z1);
+  __ Fscale(z7.VnS(), p1.Merging(), z7.VnS(), z3.VnS());
+
+  __ Sunpklo(z3.VnD(), z3.VnS());
+  __ Mov(z8, z2);
+  __ Fscale(z8.VnD(), p0.Merging(), z8.VnD(), z3.VnD());
+  __ Mov(z9, z2);
+  __ Fscale(z9.VnD(), p1.Merging(), z9.VnD(), z3.VnD());
+
+  // Test full double precision range scaling.
+  __ Dup(z10.VnD(), 2045);
+  __ Dup(z11.VnD(), 0x0010000000000000);  // 2^-1022
+  __ Fscale(z11.VnD(), p0.Merging(), z11.VnD(), z10.VnD());
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    uint64_t expected_z4[] = {0x68004f0026003d00, 0x7c00460002003800};
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    uint64_t expected_z5[] = {0x68004f0026004500, 0x7c00420002003800};
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+
+    uint64_t expected_z6[] = {0x4880000040c00000, 0x380000003f000000};
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    uint64_t expected_z7[] = {0x4880000040400000, 0x400000003f000000};
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+
+    uint64_t expected_z8[] = {0x3ff0000000000000, 0x3ff0000000000000};
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+    uint64_t expected_z9[] = {0x40f0000000000000, 0x3ff0000000000000};
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+
+    uint64_t expected_z11[] = {0x7fe0000000000000, 0x7fe0000000000000};
+    ASSERT_EQUAL_SVE(expected_z11, z11.VnD());
+  }
+}
+
+typedef void (MacroAssembler::*FcvtFrintMFn)(const ZRegister& zd,
+                                             const PRegisterM& pg,
+                                             const ZRegister& zn);
+
+typedef void (MacroAssembler::*FcvtFrintZFn)(const ZRegister& zd,
+                                             const PRegisterZ& pg,
+                                             const ZRegister& zn);
+
+template <typename F, size_t N>
+static void TestFcvtFrintHelper(Test* config,
+                                FcvtFrintMFn macro_m,
+                                FcvtFrintZFn macro_z,
+                                int dst_type_size_in_bits,
+                                int src_type_size_in_bits,
+                                const F (&zn_inputs)[N],
+                                const int (&pg_inputs)[N],
+                                const uint64_t (&zd_expected_all_active)[N]) {
+  VIXL_ASSERT(macro_m != NULL);
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // If the input and result types have a different size, the instruction
+  // options on elements of the largest specified type is determined by the
+  // larger type.
+  int lane_size_in_bits =
+      std::max(dst_type_size_in_bits, src_type_size_in_bits);
+
+  ZRegister zd_all_active = z25;
+  ZRegister zd_merging = z26;
+  ZRegister zn = z27;
+
+  uint64_t zn_rawbits[N];
+  FPToRawbitsWithSize(zn_inputs, zn_rawbits, src_type_size_in_bits);
+  InsrHelper(&masm, zn.WithLaneSize(lane_size_in_bits), zn_rawbits);
+
+  PRegisterWithLaneSize pg_all_active = p0.WithLaneSize(lane_size_in_bits);
+  __ Ptrue(pg_all_active);
+
+  // Test floating-point conversions with all lanes actived.
+  (masm.*macro_m)(zd_all_active.WithLaneSize(dst_type_size_in_bits),
+                  pg_all_active.Merging(),
+                  zn.WithLaneSize(src_type_size_in_bits));
+
+  PRegisterWithLaneSize pg_merging = p1.WithLaneSize(lane_size_in_bits);
+  Initialise(&masm, pg_merging, pg_inputs);
+
+  __ Dup(zd_merging.VnD(), 0x0bad0bad0bad0bad);
+
+  // Use the same `zn` inputs to test floating-point conversions but partial
+  // lanes are set inactive.
+  (masm.*macro_m)(zd_merging.WithLaneSize(dst_type_size_in_bits),
+                  pg_merging.Merging(),
+                  zn.WithLaneSize(src_type_size_in_bits));
+
+  ZRegister zd_zeroing = z24;
+  PRegisterWithLaneSize pg_zeroing = p1.WithLaneSize(lane_size_in_bits);
+  Initialise(&masm, pg_zeroing, pg_inputs);
+
+  if (macro_z != NULL) {
+    __ Dup(zd_zeroing.VnD(), 0x0bad0bad0bad0bad);
+    (masm.*macro_z)(zd_zeroing.WithLaneSize(dst_type_size_in_bits),
+                    pg_zeroing.Zeroing(),
+                    zn.WithLaneSize(src_type_size_in_bits));
+  }
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(zd_expected_all_active,
+                     zd_all_active.WithLaneSize(lane_size_in_bits));
+
+    uint64_t zd_expected_merging[N];
+    for (unsigned i = 0; i < N; i++) {
+      zd_expected_merging[i] =
+          pg_inputs[i] ? zd_expected_all_active[i]
+                       : 0x0bad0bad0bad0bad & GetUintMask(lane_size_in_bits);
+    }
+    ASSERT_EQUAL_SVE(zd_expected_merging,
+                     zd_merging.WithLaneSize(lane_size_in_bits));
+
+    if (macro_z != NULL) {
+      uint64_t zd_expected_zeroing[N] = {0};
+      for (unsigned i = 0; i < N; i++) {
+        if (pg_inputs[i]) {
+          zd_expected_zeroing[i] = zd_expected_all_active[i];
+        }
+      }
+      ASSERT_EQUAL_SVE(zd_expected_zeroing,
+                       zd_zeroing.WithLaneSize(lane_size_in_bits));
+    }
+  }
+}
+
+template <typename F, size_t N>
+static void TestFcvtzHelper(Test* config,
+                            FcvtFrintMFn macro_m,
+                            int dst_type_size_in_bits,
+                            int src_type_size_in_bits,
+                            const F (&zn_inputs)[N],
+                            const int (&pg_inputs)[N],
+                            const uint64_t (&zd_expected_all_active)[N]) {
+  TestFcvtFrintHelper(config,
+                      macro_m,
+                      // Fcvt variants have no zeroing predication form.
+                      NULL,
+                      dst_type_size_in_bits,
+                      src_type_size_in_bits,
+                      zn_inputs,
+                      pg_inputs,
+                      zd_expected_all_active);
+}
+
+TEST_SVE(fcvtzs_fcvtzu_float16) {
+  const double h_max_float16 = 0x7ff0;          // Largest float16 == INT16_MAX.
+  const double h_min_float16 = -h_max_float16;  // Smallest float16 > INT16_MIN.
+  const double largest_float16 = 0xffe0;        // 65504
+  const double smallest_float16 = -largest_float16;
+  const double h_max_int_add_one = 0x8000;
+
+  double zn_inputs[] = {1.0,
+                        1.1,
+                        1.5,
+                        -1.5,
+                        h_max_float16,
+                        h_min_float16,
+                        largest_float16,
+                        smallest_float16,
+                        kFP64PositiveInfinity,
+                        kFP64NegativeInfinity,
+                        h_max_int_add_one};
+
+  int pg_inputs[] = {0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1};
+
+  uint64_t expected_fcvtzs_fp162h[] =
+      {1, 1, 1, 0xffff, 0x7ff0, 0x8010, 0x7fff, 0x8000, 0x7fff, 0x8000, 0x7fff};
+
+  uint64_t expected_fcvtzu_fp162h[] =
+      {1, 1, 1, 0, 0x7ff0, 0, 0xffe0, 0, 0xffff, 0, 0x8000};
+
+  // Float16 to 16-bit integers.
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzs,
+                  kHRegSize,
+                  kHRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzs_fp162h);
+
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzu,
+                  kHRegSize,
+                  kHRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzu_fp162h);
+
+  uint64_t expected_fcvtzs_fp162w[] = {1,
+                                       1,
+                                       1,
+                                       0xffffffff,
+                                       0x7ff0,
+                                       0xffff8010,
+                                       0xffe0,
+                                       0xffff0020,
+                                       0x7fffffff,
+                                       0x80000000,
+                                       0x8000};
+
+  uint64_t expected_fcvtzu_fp162w[] =
+      {1, 1, 1, 0, 0x7ff0, 0, 0xffe0, 0, 0xffffffff, 0, 0x8000};
+
+  // Float16 to 32-bit integers.
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzs,
+                  kSRegSize,
+                  kHRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzs_fp162w);
+
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzu,
+                  kSRegSize,
+                  kHRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzu_fp162w);
+
+  uint64_t expected_fcvtzs_fp162x[] = {1,
+                                       1,
+                                       1,
+                                       0xffffffffffffffff,
+                                       0x7ff0,
+                                       0xffffffffffff8010,
+                                       0xffe0,
+                                       0xffffffffffff0020,
+                                       0x7fffffffffffffff,
+                                       0x8000000000000000,
+                                       0x8000};
+
+  uint64_t expected_fcvtzu_fp162x[] =
+      {1, 1, 1, 0, 0x7ff0, 0, 0xffe0, 0, 0xffffffffffffffff, 0, 0x8000};
+
+  // Float16 to 64-bit integers.
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzs,
+                  kDRegSize,
+                  kHRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzs_fp162x);
+
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzu,
+                  kDRegSize,
+                  kHRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzu_fp162x);
+}
+
+TEST_SVE(fcvtzs_fcvtzu_float) {
+  const double w_max_float = 0x7fffff80;          // Largest float < INT32_MAX.
+  const double w_min_float = -w_max_float;        // Smallest float > INT32_MIN.
+  const double x_max_float = 0x7fffff8000000000;  // Largest float < INT64_MAX.
+  const double x_min_float = -x_max_float;        // Smallest float > INT64_MIN.
+  const double w_min_int_add_one = 0x80000000;
+  const double x_max_int_add_one = 0x80000000'00000000;
+
+  double zn_inputs[] = {1.0,
+                        1.1,
+                        1.5,
+                        -1.5,
+                        w_max_float,
+                        w_min_float,
+                        x_max_float,
+                        x_min_float,
+                        kFP64PositiveInfinity,
+                        kFP64NegativeInfinity,
+                        w_min_int_add_one,
+                        x_max_int_add_one};
+
+  int pg_inputs[] = {0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1};
+
+  uint64_t expected_fcvtzs_s2w[] = {1,
+                                    1,
+                                    1,
+                                    0xffffffff,
+                                    0x7fffff80,
+                                    0x80000080,
+                                    0x7fffffff,
+                                    0x80000000,
+                                    0x7fffffff,
+                                    0x80000000,
+                                    0x7fffffff,
+                                    0x7fffffff};
+
+  uint64_t expected_fcvtzu_s2w[] = {1,
+                                    1,
+                                    1,
+                                    0,
+                                    0x7fffff80,
+                                    0,
+                                    0xffffffff,
+                                    0,
+                                    0xffffffff,
+                                    0,
+                                    0x80000000,
+                                    0xffffffff};
+
+  // Float to 32-bit integers.
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzs,
+                  kSRegSize,
+                  kSRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzs_s2w);
+
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzu,
+                  kSRegSize,
+                  kSRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzu_s2w);
+
+  uint64_t expected_fcvtzs_s2x[] = {1,
+                                    1,
+                                    1,
+                                    0xffffffffffffffff,
+                                    0x7fffff80,
+                                    0xffffffff80000080,
+                                    0x7fffff8000000000,
+                                    0x8000008000000000,
+                                    0x7fffffffffffffff,
+                                    0x8000000000000000,
+                                    0x80000000,
+                                    0x7fffffffffffffff};
+
+  uint64_t expected_fcvtzu_s2x[] = {1,
+                                    1,
+                                    1,
+                                    0,
+                                    0x7fffff80,
+                                    0,
+                                    0x7fffff8000000000,
+                                    0,
+                                    0xffffffffffffffff,
+                                    0,
+                                    0x80000000,
+                                    0x8000000000000000};
+
+  // Float to 64-bit integers.
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzs,
+                  kDRegSize,
+                  kSRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzs_s2x);
+
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzu,
+                  kDRegSize,
+                  kSRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzu_s2x);
+}
+
+TEST_SVE(fcvtzs_fcvtzu_double) {
+  const double w_max_float = 0x7fffff80;          // Largest float < INT32_MAX.
+  const double w_min_float = -w_max_float;        // Smallest float > INT32_MIN.
+  const double x_max_float = 0x7fffff8000000000;  // Largest float < INT64_MAX.
+  const double x_min_float = -x_max_float;        // Smallest float > INT64_MIN.
+  const double w_max_double = kWMaxInt;       // Largest double == INT32_MAX.
+  const double w_min_double = -w_max_double;  // Smallest double > INT32_MIN.
+  const double x_max_double =
+      0x7ffffffffffffc00;                     // Largest double < INT64_MAX.
+  const double x_min_double = -x_max_double;  // Smallest double > INT64_MIN.
+  const double w_max_int_sub_one = kWMaxInt - 1;
+  const double w_min_int_add_one = kWMinInt + 1;
+  const double w_max_int_add_one = 0x80000000;
+  const double x_max_int_add_one = 0x80000000'00000000;
+
+  double zn_inputs[] = {1.0,
+                        1.1,
+                        1.5,
+                        -1.5,
+                        w_max_float,
+                        w_min_float,
+                        x_max_float,
+                        x_min_float,
+                        w_max_double,
+                        w_min_double,
+                        x_max_double,
+                        x_min_double,
+                        kFP64PositiveInfinity,
+                        kFP64NegativeInfinity,
+                        w_max_int_sub_one,
+                        w_min_int_add_one,
+                        w_max_int_add_one,
+                        x_max_int_add_one};
+
+  int pg_inputs[] = {1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0};
+
+  uint64_t expected_fcvtzs_d2w[] = {1,
+                                    1,
+                                    1,
+                                    0xffffffffffffffff,
+                                    0x7fffff80,
+                                    0xffffffff80000080,
+                                    0x7fffffff,
+                                    0xffffffff80000000,
+                                    0x7fffffff,
+                                    0xffffffff80000001,
+                                    0x7fffffff,
+                                    0xffffffff80000000,
+                                    0x7fffffff,
+                                    0xffffffff80000000,
+                                    0x7ffffffe,
+                                    0xffffffff80000001,
+                                    0x7fffffff,
+                                    0x7fffffff};
+
+  uint64_t expected_fcvtzu_d2w[] = {1,
+                                    1,
+                                    1,
+                                    0,
+                                    0x7fffff80,
+                                    0,
+                                    0xffffffff,
+                                    0,
+                                    0x7fffffff,
+                                    0,
+                                    0xffffffff,
+                                    0,
+                                    0xffffffff,
+                                    0,
+                                    0x7ffffffe,
+                                    0,
+                                    0x80000000,
+                                    0xffffffff};
+
+  // Double to 32-bit integers.
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzs,
+                  kSRegSize,
+                  kDRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzs_d2w);
+
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzu,
+                  kSRegSize,
+                  kDRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzu_d2w);
+
+  uint64_t expected_fcvtzs_d2x[] = {1,
+                                    1,
+                                    1,
+                                    0xffffffffffffffff,
+                                    0x7fffff80,
+                                    0xffffffff80000080,
+                                    0x7fffff8000000000,
+                                    0x8000008000000000,
+                                    0x7fffffff,
+                                    0xffffffff80000001,
+                                    0x7ffffffffffffc00,
+                                    0x8000000000000400,
+                                    0x7fffffffffffffff,
+                                    0x8000000000000000,
+                                    0x7ffffffe,
+                                    0xffffffff80000001,
+                                    0x80000000,
+                                    0x7fffffffffffffff};
+
+  uint64_t expected_fcvtzu_d2x[] = {1,
+                                    1,
+                                    1,
+                                    0,
+                                    0x7fffff80,
+                                    0,
+                                    0x7fffff8000000000,
+                                    0,
+                                    0x7fffffff,
+                                    0,
+                                    0x7ffffffffffffc00,
+                                    0,
+                                    0xffffffffffffffff,
+                                    0,
+                                    0x000000007ffffffe,
+                                    0,
+                                    0x80000000,
+                                    0x8000000000000000};
+
+  // Double to 64-bit integers.
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzs,
+                  kDRegSize,
+                  kDRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzs_d2x);
+
+  TestFcvtzHelper(config,
+                  &MacroAssembler::Fcvtzu,
+                  kDRegSize,
+                  kDRegSize,
+                  zn_inputs,
+                  pg_inputs,
+                  expected_fcvtzu_d2x);
+}
+
+template <typename F, size_t N>
+static void TestFrintHelper(Test* config,
+                            FcvtFrintMFn macro_m,
+                            FcvtFrintZFn macro_z,
+                            int lane_size_in_bits,
+                            const F (&zn_inputs)[N],
+                            const int (&pg_inputs)[N],
+                            const F (&zd_expected)[N]) {
+  uint64_t zd_expected_rawbits[N];
+  FPToRawbitsWithSize(zd_expected, zd_expected_rawbits, lane_size_in_bits);
+  TestFcvtFrintHelper(config,
+                      macro_m,
+                      macro_z,
+                      lane_size_in_bits,
+                      lane_size_in_bits,
+                      zn_inputs,
+                      pg_inputs,
+                      zd_expected_rawbits);
+}
+
+TEST_SVE(frint) {
+  const double inf_pos = kFP64PositiveInfinity;
+  const double inf_neg = kFP64NegativeInfinity;
+
+  double zn_inputs[] =
+      {1.1, 1.5, 1.9, 2.5, -1.5, -2.5, 0.0, -0.0, -0.2, inf_pos, inf_neg};
+  double zd_expected_a[] =
+      {1.0, 2.0, 2.0, 3.0, -2.0, -3.0, 0.0, -0.0, -0.0, inf_pos, inf_neg};
+  double zd_expected_i[] =
+      {1.0, 2.0, 2.0, 2.0, -2.0, -2.0, 0.0, -0.0, -0.0, inf_pos, inf_neg};
+  double zd_expected_m[] =
+      {1.0, 1.0, 1.0, 2.0, -2.0, -3.0, 0.0, -0.0, -1.0, inf_pos, inf_neg};
+  double zd_expected_n[] =
+      {1.0, 2.0, 2.0, 2.0, -2.0, -2.0, 0.0, -0.0, -0.0, inf_pos, inf_neg};
+  double zd_expected_p[] =
+      {2.0, 2.0, 2.0, 3.0, -1.0, -2.0, 0.0, -0.0, -0.0, inf_pos, inf_neg};
+  double zd_expected_x[] =
+      {1.0, 2.0, 2.0, 2.0, -2.0, -2.0, 0.0, -0.0, -0.0, inf_pos, inf_neg};
+  double zd_expected_z[] =
+      {1.0, 1.0, 1.0, 2.0, -1.0, -2.0, 0.0, -0.0, -0.0, inf_pos, inf_neg};
+
+  int pg_inputs[] = {0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0};
+
+  struct TestDataSet {
+    FcvtFrintMFn macro_m;  // merging form.
+    FcvtFrintZFn macro_z;  // zeroing form.
+    double (&expected)[11];
+  };
+
+  TestDataSet test_data[] =
+      {{&MacroAssembler::Frinta, &MacroAssembler::Frinta, zd_expected_a},
+       {&MacroAssembler::Frinti, &MacroAssembler::Frinti, zd_expected_i},
+       {&MacroAssembler::Frintm, &MacroAssembler::Frintm, zd_expected_m},
+       {&MacroAssembler::Frintn, &MacroAssembler::Frintn, zd_expected_n},
+       {&MacroAssembler::Frintp, &MacroAssembler::Frintp, zd_expected_p},
+       {&MacroAssembler::Frintx, &MacroAssembler::Frintx, zd_expected_x},
+       {&MacroAssembler::Frintz, &MacroAssembler::Frintz, zd_expected_z}};
+
+  unsigned lane_sizes[] = {kHRegSize, kSRegSize, kDRegSize};
+
+  for (size_t i = 0; i < sizeof(test_data) / sizeof(TestDataSet); i++) {
+    for (size_t j = 0; j < ArrayLength(lane_sizes); j++) {
+      TestFrintHelper(config,
+                      test_data[i].macro_m,
+                      test_data[i].macro_z,
+                      lane_sizes[j],
+                      zn_inputs,
+                      pg_inputs,
+                      test_data[i].expected);
+    }
+  }
+}
+
+struct CvtfTestDataSet {
+  uint64_t int_value;
+  uint64_t scvtf_result;
+  uint64_t ucvtf_result;
+};
+
+template <size_t N>
+static void TestUScvtfHelper(Test* config,
+                             int dst_type_size_in_bits,
+                             int src_type_size_in_bits,
+                             const int (&pg_inputs)[N],
+                             const CvtfTestDataSet (&data_set)[N]) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  // Unpack the data from the array of struct into individual arrays that can
+  // simplify the testing.
+  uint64_t zn_inputs[N];
+  uint64_t expected_zd_scvtf_all_active[N];
+  uint64_t expected_zd_ucvtf_all_active[N];
+  for (size_t i = 0; i < N; i++) {
+    zn_inputs[i] = data_set[i].int_value;
+    expected_zd_scvtf_all_active[i] = data_set[i].scvtf_result;
+    expected_zd_ucvtf_all_active[i] = data_set[i].ucvtf_result;
+  }
+
+  // If the input and result types have a different size, the instruction
+  // operates on elements of the largest specified type.
+  int lane_size_in_bits =
+      std::max(dst_type_size_in_bits, src_type_size_in_bits);
+
+  ZRegister zd_scvtf_all_active = z25;
+  ZRegister zd_ucvtf_all_active = z26;
+  ZRegister zn = z27;
+  InsrHelper(&masm, zn.WithLaneSize(lane_size_in_bits), zn_inputs);
+
+  PRegisterWithLaneSize pg_all_active = p0.WithLaneSize(lane_size_in_bits);
+  __ Ptrue(pg_all_active);
+
+  // Test integer conversions with all lanes actived.
+  __ Scvtf(zd_scvtf_all_active.WithLaneSize(dst_type_size_in_bits),
+           pg_all_active.Merging(),
+           zn.WithLaneSize(src_type_size_in_bits));
+  __ Ucvtf(zd_ucvtf_all_active.WithLaneSize(dst_type_size_in_bits),
+           pg_all_active.Merging(),
+           zn.WithLaneSize(src_type_size_in_bits));
+
+  ZRegister zd_scvtf_merged = z23;
+  ZRegister zd_ucvtf_merged = z24;
+
+  PRegisterWithLaneSize pg_merged = p1.WithLaneSize(lane_size_in_bits);
+  Initialise(&masm, pg_merged, pg_inputs);
+
+  uint64_t snan;
+  switch (lane_size_in_bits) {
+    case kHRegSize:
+      snan = 0x7c11;
+      break;
+    case kSRegSize:
+      snan = 0x7f951111;
+      break;
+    case kDRegSize:
+      snan = 0x7ff5555511111111;
+      break;
+  }
+  __ Dup(zd_scvtf_merged.WithLaneSize(lane_size_in_bits), snan);
+  __ Dup(zd_ucvtf_merged.WithLaneSize(lane_size_in_bits), snan);
+
+  // Use the same `zn` inputs to test integer conversions but some lanes are set
+  // inactive.
+  __ Scvtf(zd_scvtf_merged.WithLaneSize(dst_type_size_in_bits),
+           pg_merged.Merging(),
+           zn.WithLaneSize(src_type_size_in_bits));
+  __ Ucvtf(zd_ucvtf_merged.WithLaneSize(dst_type_size_in_bits),
+           pg_merged.Merging(),
+           zn.WithLaneSize(src_type_size_in_bits));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(expected_zd_scvtf_all_active,
+                     zd_scvtf_all_active.WithLaneSize(lane_size_in_bits));
+    ASSERT_EQUAL_SVE(expected_zd_ucvtf_all_active,
+                     zd_ucvtf_all_active.WithLaneSize(lane_size_in_bits));
+
+    uint64_t expected_zd_scvtf_merged[N];
+    for (size_t i = 0; i < N; i++) {
+      expected_zd_scvtf_merged[i] =
+          pg_inputs[i] ? expected_zd_scvtf_all_active[i] : snan;
+    }
+    ASSERT_EQUAL_SVE(expected_zd_scvtf_merged,
+                     zd_scvtf_merged.WithLaneSize(lane_size_in_bits));
+
+    uint64_t expected_zd_ucvtf_merged[N];
+    for (size_t i = 0; i < N; i++) {
+      expected_zd_ucvtf_merged[i] =
+          pg_inputs[i] ? expected_zd_ucvtf_all_active[i] : snan;
+    }
+    ASSERT_EQUAL_SVE(expected_zd_ucvtf_merged,
+                     zd_ucvtf_merged.WithLaneSize(lane_size_in_bits));
+  }
+}
+
+TEST_SVE(scvtf_ucvtf_h_s_d_to_float16) {
+  // clang-format off
+  CvtfTestDataSet data_set_1[] = {
+    // Simple conversions of positive numbers which require no rounding; the
+    // results should not depened on the rounding mode, and ucvtf and scvtf should
+    // produce the same result.
+    {0x0000, 0x0000, 0x0000},
+    {0x0001, 0x3c00, 0x3c00},
+    {0x0010, 0x4c00, 0x4c00},
+    {0x0080, 0x5800, 0x5800},
+    {0x0400, 0x6400, 0x6400},
+    // Conversions which require rounding.
+    {0x4000, 0x7400, 0x7400},
+    {0x4001, 0x7400, 0x7400},
+    // Round up to produce a result that's too big for the input to represent.
+    {0x7ff0, 0x77ff, 0x77ff},
+    {0x7ff1, 0x77ff, 0x77ff},
+    {0x7ffe, 0x7800, 0x7800},
+    {0x7fff, 0x7800, 0x7800}};
+  int pg_1[] = {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
+  TestUScvtfHelper(config, kHRegSize, kDRegSize, pg_1, data_set_1);
+  TestUScvtfHelper(config, kHRegSize, kSRegSize, pg_1, data_set_1);
+  TestUScvtfHelper(config, kHRegSize, kHRegSize, pg_1, data_set_1);
+
+  CvtfTestDataSet data_set_2[] = {
+    // Test mantissa extremities.
+    {0x0401, 0x6401, 0x6401},
+    {0x4020, 0x7402, 0x7402},
+    // The largest int16_t that fits in a float16.
+    {0xffef, 0xcc40, 0x7bff},
+    // Values that would be negative if treated as an int16_t.
+    {0xff00, 0xdc00, 0x7bf8},
+    {0x8000, 0xf800, 0x7800},
+    {0x8100, 0xf7f0, 0x7808},
+    // Check for bit pattern reproduction.
+    {0x0123, 0x5c8c, 0x5c8c},
+    {0x0cde, 0x6a6f, 0x6a6f},
+    // Simple conversions of negative int64_t values. These require no rounding,
+    // and the results should not depend on the rounding mode.
+    {0xf800, 0xe800, 0x7bc0},
+    {0xfc00, 0xe400, 0x7be0},
+    {0xc000, 0xf400, 0x7a00},
+    // Check rounding of negative int16_t values.
+    {0x8ffe, 0xf700, 0x7880},
+    {0x8fff, 0xf700, 0x7880},
+    {0xffee, 0xcc80, 0x7bff},
+    {0xffef, 0xcc40, 0x7bff}};
+  int pg_2[] = {1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1};
+  // `32-bit to float16` and `64-bit to float16` of above tests has been tested
+  // in `ucvtf` of `16-bit to float16`.
+  TestUScvtfHelper(config, kHRegSize, kHRegSize, pg_2, data_set_2);
+  // clang-format on
+}
+
+TEST_SVE(scvtf_ucvtf_s_to_float) {
+  // clang-format off
+  int dst_lane_size = kSRegSize;
+  int src_lane_size = kSRegSize;
+
+  // Simple conversions of positive numbers which require no rounding; the
+  // results should not depened on the rounding mode, and ucvtf and scvtf should
+  // produce the same result.
+  CvtfTestDataSet data_set_1[] = {
+    {0x00000000, 0x00000000, 0x00000000},
+    {0x00000001, 0x3f800000, 0x3f800000},
+    {0x00004000, 0x46800000, 0x46800000},
+    {0x00010000, 0x47800000, 0x47800000},
+    {0x40000000, 0x4e800000, 0x4e800000}};
+  int pg_1[] = {1, 0, 1, 0, 0};
+  TestUScvtfHelper(config, dst_lane_size, src_lane_size, pg_1, data_set_1);
+
+  CvtfTestDataSet data_set_2[] = {
+    // Test mantissa extremities.
+    {0x00800001, 0x4b000001, 0x4b000001},
+    {0x40400000, 0x4e808000, 0x4e808000},
+    // The largest int32_t that fits in a double.
+    {0x7fffff80, 0x4effffff, 0x4effffff},
+    // Values that would be negative if treated as an int32_t.
+    {0xffffffff, 0xbf800000, 0x4f800000},
+    {0xffffff00, 0xc3800000, 0x4f7fffff},
+    {0x80000000, 0xcf000000, 0x4f000000},
+    {0x80000001, 0xcf000000, 0x4f000000},
+    // Check for bit pattern reproduction.
+    {0x089abcde, 0x4d09abce, 0x4d09abce},
+    {0x12345678, 0x4d91a2b4, 0x4d91a2b4}};
+  int pg_2[] = {1, 0, 1, 0, 1, 1, 1, 0, 0};
+  TestUScvtfHelper(config, dst_lane_size, src_lane_size, pg_2, data_set_2);
+
+  // Simple conversions of negative int32_t values. These require no rounding,
+  // and the results should not depend on the rounding mode.
+  CvtfTestDataSet data_set_3[] = {
+    {0xffffc000, 0xc6800000, 0x4f7fffc0},
+    {0xffff0000, 0xc7800000, 0x4f7fff00},
+    {0xc0000000, 0xce800000, 0x4f400000},
+    // Conversions which require rounding.
+    {0x72800000, 0x4ee50000, 0x4ee50000},
+    {0x72800001, 0x4ee50000, 0x4ee50000},
+    {0x73000000, 0x4ee60000, 0x4ee60000},
+    // Check rounding of negative int32_t values.
+    {0x80000140, 0xcefffffe, 0x4f000001},
+    {0x80000141, 0xcefffffd, 0x4f000001},
+    {0x80000180, 0xcefffffd, 0x4f000002},
+    // Round up to produce a result that's too big for the input to represent.
+    {0x7fffffc0, 0x4f000000, 0x4f000000},
+    {0x7fffffff, 0x4f000000, 0x4f000000}};
+  int pg_3[] = {1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0};
+  TestUScvtfHelper(config, dst_lane_size, src_lane_size, pg_3, data_set_3);
+  // clang-format on
+}
+
+TEST_SVE(scvtf_ucvtf_d_to_float) {
+  // clang-format off
+  int dst_lane_size = kSRegSize;
+  int src_lane_size = kDRegSize;
+
+  // Simple conversions of positive numbers which require no rounding; the
+  // results should not depened on the rounding mode, and ucvtf and scvtf should
+  // produce the same result.
+  CvtfTestDataSet data_set_1[] = {
+    {0x0000000000000000, 0x00000000, 0x00000000},
+    {0x0000000000000001, 0x3f800000, 0x3f800000},
+    {0x0000000040000000, 0x4e800000, 0x4e800000},
+    {0x0000000100000000, 0x4f800000, 0x4f800000},
+    {0x4000000000000000, 0x5e800000, 0x5e800000}};
+  int pg_1[] = {1, 1, 0, 1, 0};
+  TestUScvtfHelper(config, dst_lane_size, src_lane_size, pg_1, data_set_1);
+
+  CvtfTestDataSet data_set_2[] = {
+    // Test mantissa extremities.
+    {0x0010000000000001, 0x59800000, 0x59800000},
+    {0x4008000000000000, 0x5e801000, 0x5e801000},
+    // The largest int32_t that fits in a float.
+    {0x000000007fffff80, 0x4effffff, 0x4effffff},
+    // Values that would be negative if treated as an int32_t.
+    {0x00000000ffffffff, 0x4f800000, 0x4f800000},
+    {0x00000000ffffff00, 0x4f7fffff, 0x4f7fffff},
+    {0x0000000080000000, 0x4f000000, 0x4f000000},
+    {0x0000000080000100, 0x4f000001, 0x4f000001},
+    // The largest int64_t that fits in a float.
+    {0x7fffff8000000000, 0x5effffff, 0x5effffff},
+    // Check for bit pattern reproduction.
+    {0x0123456789abcde0, 0x5b91a2b4, 0x5b91a2b4},
+    {0x0000000000876543, 0x4b076543, 0x4b076543}};
+  int pg_2[] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 1};
+  TestUScvtfHelper(config, dst_lane_size, src_lane_size, pg_2, data_set_2);
+
+  CvtfTestDataSet data_set_3[] = {
+    // Simple conversions of negative int64_t values. These require no rounding,
+    // and the results should not depend on the rounding mode.
+    {0xffffffffc0000000, 0xce800000, 0x5f800000},
+    {0xffffffff00000000, 0xcf800000, 0x5f800000},
+    {0xc000000000000000, 0xde800000, 0x5f400000},
+    // Conversions which require rounding.
+    {0x0000800002800000, 0x57000002, 0x57000002},
+    {0x0000800002800001, 0x57000003, 0x57000003},
+    {0x0000800003000000, 0x57000003, 0x57000003},
+    // Check rounding of negative int64_t values.
+    {0x8000014000000000, 0xdefffffe, 0x5f000001},
+    {0x8000014000000001, 0xdefffffd, 0x5f000001},
+    {0x8000018000000000, 0xdefffffd, 0x5f000002},
+    // Round up to produce a result that's too big for the input to represent.
+    {0x00000000ffffff80, 0x4f800000, 0x4f800000},
+    {0x00000000ffffffff, 0x4f800000, 0x4f800000},
+    {0xffffff8000000000, 0xd3000000, 0x5f800000},
+    {0xffffffffffffffff, 0xbf800000, 0x5f800000}};
+  int pg_3[] = {0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1};
+  TestUScvtfHelper(config, dst_lane_size, src_lane_size, pg_3, data_set_3);
+  // clang-format on
+}
+
+TEST_SVE(scvtf_ucvtf_d_to_double) {
+  // clang-format off
+  int dst_lane_size = kDRegSize;
+  int src_lane_size = kDRegSize;
+
+  // Simple conversions of positive numbers which require no rounding; the
+  // results should not depened on the rounding mode, and ucvtf and scvtf should
+  // produce the same result.
+  CvtfTestDataSet data_set_1[] = {
+    {0x0000000000000000, 0x0000000000000000, 0x0000000000000000},
+    {0x0000000000000001, 0x3ff0000000000000, 0x3ff0000000000000},
+    {0x0000000040000000, 0x41d0000000000000, 0x41d0000000000000},
+    {0x0000000100000000, 0x41f0000000000000, 0x41f0000000000000},
+    {0x4000000000000000, 0x43d0000000000000, 0x43d0000000000000}};
+  int pg_1[] = {0, 1, 1, 0, 0};
+  TestUScvtfHelper(config, dst_lane_size, src_lane_size, pg_1, data_set_1);
+
+  CvtfTestDataSet data_set_2[] = {
+    // Test mantissa extremities.
+    {0x0010000000000001, 0x4330000000000001, 0x4330000000000001},
+    {0x4008000000000000, 0x43d0020000000000, 0x43d0020000000000},
+    // The largest int32_t that fits in a double.
+    {0x000000007fffffff, 0x41dfffffffc00000, 0x41dfffffffc00000},
+    // Values that would be negative if treated as an int32_t.
+    {0x00000000ffffffff, 0x41efffffffe00000, 0x41efffffffe00000},
+    {0x0000000080000000, 0x41e0000000000000, 0x41e0000000000000},
+    {0x0000000080000001, 0x41e0000000200000, 0x41e0000000200000},
+    // The largest int64_t that fits in a double.
+    {0x7ffffffffffffc00, 0x43dfffffffffffff, 0x43dfffffffffffff},
+    // Check for bit pattern reproduction.
+    {0x0123456789abcde0, 0x43723456789abcde, 0x43723456789abcde},
+    {0x0000000012345678, 0x41b2345678000000, 0x41b2345678000000}};
+  int pg_2[] = {1, 1, 1, 1, 1, 0, 0, 0, 0};
+  TestUScvtfHelper(config, dst_lane_size, src_lane_size, pg_2, data_set_2);
+
+  CvtfTestDataSet data_set_3[] = {
+    // Simple conversions of negative int64_t values. These require no rounding,
+    // and the results should not depend on the rounding mode.
+    {0xffffffffc0000000, 0xc1d0000000000000, 0x43effffffff80000},
+    {0xffffffff00000000, 0xc1f0000000000000, 0x43efffffffe00000},
+    {0xc000000000000000, 0xc3d0000000000000, 0x43e8000000000000},
+    // Conversions which require rounding.
+    {0x1000000000000280, 0x43b0000000000002, 0x43b0000000000002},
+    {0x1000000000000281, 0x43b0000000000003, 0x43b0000000000003},
+    {0x1000000000000300, 0x43b0000000000003, 0x43b0000000000003},
+    // Check rounding of negative int64_t values.
+    {0x8000000000000a00, 0xc3dffffffffffffe, 0x43e0000000000001},
+    {0x8000000000000a01, 0xc3dffffffffffffd, 0x43e0000000000001},
+    {0x8000000000000c00, 0xc3dffffffffffffd, 0x43e0000000000002},
+    // Round up to produce a result that's too big for the input to represent.
+    {0x7ffffffffffffe00, 0x43e0000000000000, 0x43e0000000000000},
+    {0x7fffffffffffffff, 0x43e0000000000000, 0x43e0000000000000},
+    {0xfffffffffffffc00, 0xc090000000000000, 0x43f0000000000000},
+    {0xffffffffffffffff, 0xbff0000000000000, 0x43f0000000000000}};
+  int pg_3[] = {1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0};
+  TestUScvtfHelper(config, dst_lane_size, src_lane_size, pg_3, data_set_3);
+  // clang-format on
+}
+
+TEST_SVE(scvtf_ucvtf_s_to_double) {
+  // clang-format off
+  int dst_lane_size = kDRegSize;
+  int src_lane_size = kSRegSize;
+
+  // Simple conversions of positive numbers which require no rounding; the
+  // results should not depened on the rounding mode, and ucvtf and scvtf should
+  // produce the same result.
+  CvtfTestDataSet data_set_1[] = {
+    {0x00000000, 0x0000000000000000, 0x0000000000000000},
+    {0x00000001, 0x3ff0000000000000, 0x3ff0000000000000},
+    {0x00004000, 0x40d0000000000000, 0x40d0000000000000},
+    {0x00010000, 0x40f0000000000000, 0x40f0000000000000},
+    {0x40000000, 0x41d0000000000000, 0x41d0000000000000}};
+  int pg_1[] = {1, 0, 0, 0, 1};
+  TestUScvtfHelper(config, dst_lane_size, src_lane_size, pg_1, data_set_1);
+
+  CvtfTestDataSet data_set_2[] = {
+    // Test mantissa extremities.
+    {0x40000400, 0x41d0000100000000, 0x41d0000100000000},
+    // The largest int32_t that fits in a double.
+    {0x7fffffff, 0x41dfffffffc00000, 0x41dfffffffc00000},
+    // Values that would be negative if treated as an int32_t.
+    {0xffffffff, 0xbff0000000000000, 0x41efffffffe00000},
+    {0x80000000, 0xc1e0000000000000, 0x41e0000000000000},
+    {0x80000001, 0xc1dfffffffc00000, 0x41e0000000200000},
+    // Check for bit pattern reproduction.
+    {0x089abcde, 0x41a13579bc000000, 0x41a13579bc000000},
+    {0x12345678, 0x41b2345678000000, 0x41b2345678000000},
+    // Simple conversions of negative int32_t values. These require no rounding,
+    // and the results should not depend on the rounding mode.
+    {0xffffc000, 0xc0d0000000000000, 0x41effff800000000},
+    {0xffff0000, 0xc0f0000000000000, 0x41efffe000000000},
+    {0xc0000000, 0xc1d0000000000000, 0x41e8000000000000}};
+  int pg_2[] = {1, 0, 1, 0, 0, 1, 1, 0, 1, 1};
+  TestUScvtfHelper(config, dst_lane_size, src_lane_size, pg_2, data_set_2);
+
+  // Note that IEEE 754 double-precision format has 52-bits fraction, so all
+  // 32-bits integers are representable in double.
+  // clang-format on
+}
+
+TEST_SVE(sve_fadda) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE,
+                          CPUFeatures::kFP,
+                          CPUFeatures::kFPHalf);
+  START();
+
+  __ Ptrue(p0.VnB());
+  __ Pfalse(p1.VnB());
+  __ Zip1(p1.VnH(), p0.VnH(), p1.VnH());
+
+  __ Index(z0.VnS(), 3, 3);
+  __ Scvtf(z0.VnS(), p0.Merging(), z0.VnS());
+  __ Fmov(s2, 2.0);
+  __ Fadda(s2, p0, s2, z0.VnS());
+
+  __ Index(z0.VnD(), -7, -7);
+  __ Scvtf(z0.VnD(), p0.Merging(), z0.VnD());
+  __ Fmov(d3, 3.0);
+  __ Fadda(d3, p0, d3, z0.VnD());
+
+  __ Index(z0.VnH(), 1, 1);
+  __ Scvtf(z0.VnH(), p0.Merging(), z0.VnH());
+  __ Fmov(h4, 0);
+  __ Fadda(h4, p1, h4, z0.VnH());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    // Sum of 1 .. n is n+1 * n/2, ie. n(n+1)/2.
+    int n = core.GetSVELaneCount(kSRegSize);
+    ASSERT_EQUAL_FP32(2 + 3 * ((n + 1) * (n / 2)), s2);
+
+    n /= 2;  // Half as many lanes.
+    ASSERT_EQUAL_FP64(3 + -7 * ((n + 1) * (n / 2)), d3);
+
+    // Sum of first n odd numbers is n^2.
+    n = core.GetSVELaneCount(kHRegSize) / 2;  // Half are odd numbers.
+    ASSERT_EQUAL_FP16(Float16(n * n), h4);
+  }
+}
+
+TEST_SVE(sve_extract) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Index(z0.VnB(), 0, 1);
+
+  __ Mov(z1, z0);
+  __ Mov(z2, z0);
+  __ Mov(z3, z0);
+  __ Mov(z4, z0);
+  __ Mov(z5, z0);
+  __ Mov(z6, z0);
+
+  __ Ext(z1, z1, z0, 0);
+  __ Ext(z2, z2, z0, 1);
+  __ Ext(z3, z3, z0, 15);
+  __ Ext(z4, z4, z0, 31);
+  __ Ext(z5, z5, z0, 47);
+  __ Ext(z6, z6, z0, 255);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(z1, z0);
+
+    int lane_count = core.GetSVELaneCount(kBRegSize);
+    if (lane_count == 16) {
+      uint64_t z2_expected[] = {0x000f0e0d0c0b0a09, 0x0807060504030201};
+      ASSERT_EQUAL_SVE(z2_expected, z2.VnD());
+    } else {
+      uint64_t z2_expected[] = {0x100f0e0d0c0b0a09, 0x0807060504030201};
+      ASSERT_EQUAL_SVE(z2_expected, z2.VnD());
+    }
+
+    if (lane_count == 16) {
+      uint64_t z3_expected[] = {0x0e0d0c0b0a090807, 0x060504030201000f};
+      ASSERT_EQUAL_SVE(z3_expected, z3.VnD());
+    } else {
+      uint64_t z3_expected[] = {0x1e1d1c1b1a191817, 0x161514131211100f};
+      ASSERT_EQUAL_SVE(z3_expected, z3.VnD());
+    }
+
+    if (lane_count < 32) {
+      ASSERT_EQUAL_SVE(z4, z0);
+    } else if (lane_count == 32) {
+      uint64_t z4_expected[] = {0x0e0d0c0b0a090807, 0x060504030201001f};
+      ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+    } else {
+      uint64_t z4_expected[] = {0x2e2d2c2b2a292827, 0x262524232221201f};
+      ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+    }
+
+    if (lane_count < 48) {
+      ASSERT_EQUAL_SVE(z5, z0);
+    } else if (lane_count == 48) {
+      uint64_t z5_expected[] = {0x0e0d0c0b0a090807, 0x060504030201002f};
+      ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+    } else {
+      uint64_t z5_expected[] = {0x3e3d3c3b3a393837, 0x363534333231302f};
+      ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+    }
+
+    if (lane_count < 256) {
+      ASSERT_EQUAL_SVE(z6, z0);
+    } else {
+      uint64_t z6_expected[] = {0x0e0d0c0b0a090807, 0x06050403020100ff};
+      ASSERT_EQUAL_SVE(z6_expected, z6.VnD());
+    }
+  }
+}
+
+TEST_SVE(sve_fp_paired_across) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+
+  START();
+
+  __ Ptrue(p0.VnB());
+  __ Pfalse(p1.VnB());
+  __ Zip1(p2.VnS(), p0.VnS(), p1.VnS());
+  __ Zip1(p3.VnD(), p0.VnD(), p1.VnD());
+  __ Zip1(p4.VnH(), p0.VnH(), p1.VnH());
+
+  __ Index(z0.VnS(), 3, 3);
+  __ Scvtf(z0.VnS(), p0.Merging(), z0.VnS());
+  __ Faddv(s1, p0, z0.VnS());
+  __ Fminv(s2, p2, z0.VnS());
+  __ Fmaxv(s3, p2, z0.VnS());
+
+  __ Index(z0.VnD(), -7, -7);
+  __ Scvtf(z0.VnD(), p0.Merging(), z0.VnD());
+  __ Faddv(d4, p0, z0.VnD());
+  __ Fminv(d5, p3, z0.VnD());
+  __ Fmaxv(d6, p3, z0.VnD());
+
+  __ Index(z0.VnH(), 1, 1);
+  __ Scvtf(z0.VnH(), p0.Merging(), z0.VnH());
+  __ Faddv(h7, p4, z0.VnH());
+  __ Fminv(h8, p4, z0.VnH());
+  __ Fmaxv(h9, p4, z0.VnH());
+
+  __ Dup(z10.VnH(), 0);
+  __ Fdiv(z10.VnH(), p0.Merging(), z10.VnH(), z10.VnH());
+  __ Insr(z10.VnH(), 0x5140);
+  __ Insr(z10.VnH(), 0xd140);
+  __ Ext(z10.VnB(), z10.VnB(), z10.VnB(), 2);
+  __ Fmaxnmv(h11, p0, z10.VnH());
+  __ Fmaxnmv(h12, p4, z10.VnH());
+  __ Fminnmv(h13, p0, z10.VnH());
+  __ Fminnmv(h14, p4, z10.VnH());
+
+  __ Dup(z10.VnS(), 0);
+  __ Fdiv(z10.VnS(), p0.Merging(), z10.VnS(), z10.VnS());
+  __ Insr(z10.VnS(), 0x42280000);
+  __ Insr(z10.VnS(), 0xc2280000);
+  __ Ext(z10.VnB(), z10.VnB(), z10.VnB(), 4);
+  __ Fmaxnmv(s15, p0, z10.VnS());
+  __ Fmaxnmv(s16, p2, z10.VnS());
+  __ Fminnmv(s17, p0, z10.VnS());
+  __ Fminnmv(s18, p2, z10.VnS());
+
+  __ Dup(z10.VnD(), 0);
+  __ Fdiv(z10.VnD(), p0.Merging(), z10.VnD(), z10.VnD());
+  __ Insr(z10.VnD(), 0x4045000000000000);
+  __ Insr(z10.VnD(), 0xc045000000000000);
+  __ Ext(z10.VnB(), z10.VnB(), z10.VnB(), 8);
+  __ Fmaxnmv(d19, p0, z10.VnD());
+  __ Fmaxnmv(d20, p3, z10.VnD());
+  __ Fminnmv(d21, p0, z10.VnD());
+  __ Fminnmv(d22, p3, z10.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    // Sum of 1 .. n is n+1 * n/2, ie. n(n+1)/2.
+    int n = core.GetSVELaneCount(kSRegSize);
+    ASSERT_EQUAL_FP32(3 * ((n + 1) * (n / 2)), s1);
+    ASSERT_EQUAL_FP32(3, s2);
+    ASSERT_EQUAL_FP32(3 * n - 3, s3);
+
+    n /= 2;  // Half as many lanes.
+    ASSERT_EQUAL_FP64(-7 * ((n + 1) * (n / 2)), d4);
+    ASSERT_EQUAL_FP64(-7 * (n - 1), d5);
+    ASSERT_EQUAL_FP64(-7, d6);
+
+    // Sum of first n odd numbers is n^2.
+    n = core.GetSVELaneCount(kHRegSize) / 2;  // Half are odd numbers.
+    ASSERT_EQUAL_FP16(Float16(n * n), h7);
+    ASSERT_EQUAL_FP16(Float16(1), h8);
+
+    n = core.GetSVELaneCount(kHRegSize);
+    ASSERT_EQUAL_FP16(Float16(n - 1), h9);
+
+    ASSERT_EQUAL_FP16(Float16(42), h11);
+    ASSERT_EQUAL_FP16(Float16(42), h12);
+    ASSERT_EQUAL_FP16(Float16(-42), h13);
+    ASSERT_EQUAL_FP16(Float16(42), h14);
+    ASSERT_EQUAL_FP32(42, s15);
+    ASSERT_EQUAL_FP32(42, s16);
+    ASSERT_EQUAL_FP32(-42, s17);
+    ASSERT_EQUAL_FP32(42, s18);
+    ASSERT_EQUAL_FP64(42, d19);
+    ASSERT_EQUAL_FP64(42, d20);
+    ASSERT_EQUAL_FP64(-42, d21);
+    ASSERT_EQUAL_FP64(42, d22);
+  }
+}
+
+TEST_SVE(sve_frecpe_frsqrte) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+
+  START();
+
+  __ Ptrue(p0.VnB());
+
+  __ Index(z0.VnH(), 0, 1);
+  __ Fdup(z1.VnH(), Float16(1));
+  __ Fscale(z1.VnH(), p0.Merging(), z1.VnH(), z0.VnH());
+  __ Insr(z1.VnH(), 0);
+  __ Frsqrte(z2.VnH(), z1.VnH());
+  __ Frecpe(z1.VnH(), z1.VnH());
+
+  __ Index(z0.VnS(), 0, 1);
+  __ Fdup(z3.VnS(), Float16(1));
+  __ Fscale(z3.VnS(), p0.Merging(), z3.VnS(), z0.VnS());
+  __ Insr(z3.VnS(), 0);
+  __ Frsqrte(z4.VnS(), z3.VnS());
+  __ Frecpe(z3.VnS(), z3.VnS());
+
+  __ Index(z0.VnD(), 0, 1);
+  __ Fdup(z5.VnD(), Float16(1));
+  __ Fscale(z5.VnD(), p0.Merging(), z5.VnD(), z0.VnD());
+  __ Insr(z5.VnD(), 0);
+  __ Frsqrte(z6.VnD(), z5.VnD());
+  __ Frecpe(z5.VnD(), z5.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t z1_expected[] = {0x23fc27fc2bfc2ffc, 0x33fc37fc3bfc7c00};
+    ASSERT_EQUAL_SVE(z1_expected, z1.VnD());
+    uint64_t z2_expected[] = {0x2ffc31a433fc35a4, 0x37fc39a43bfc7c00};
+    ASSERT_EQUAL_SVE(z2_expected, z2.VnD());
+
+    uint64_t z3_expected[] = {0x3e7f80003eff8000, 0x3f7f80007f800000};
+    ASSERT_EQUAL_SVE(z3_expected, z3.VnD());
+    uint64_t z4_expected[] = {0x3eff80003f348000, 0x3f7f80007f800000};
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+
+    uint64_t z5_expected[] = {0x3feff00000000000, 0x7ff0000000000000};
+    ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+    uint64_t z6_expected[] = {0x3feff00000000000, 0x7ff0000000000000};
+    ASSERT_EQUAL_SVE(z6_expected, z6.VnD());
+  }
+}
+
+TEST_SVE(sve_frecps_frsqrts) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+
+  START();
+  __ Ptrue(p0.VnB());
+
+  __ Index(z0.VnH(), 0, -1);
+  __ Fdup(z1.VnH(), Float16(1));
+  __ Fscale(z1.VnH(), p0.Merging(), z1.VnH(), z0.VnH());
+  __ Scvtf(z0.VnH(), p0.Merging(), z0.VnH());
+  __ Insr(z1.VnH(), 0);
+  __ Frsqrts(z2.VnH(), z1.VnH(), z0.VnH());
+  __ Frecps(z1.VnH(), z1.VnH(), z0.VnH());
+
+  __ Index(z0.VnS(), 0, -1);
+  __ Fdup(z3.VnS(), Float16(1));
+  __ Fscale(z3.VnS(), p0.Merging(), z3.VnS(), z0.VnS());
+  __ Scvtf(z0.VnS(), p0.Merging(), z0.VnS());
+  __ Insr(z3.VnS(), 0);
+  __ Frsqrts(z4.VnS(), z3.VnS(), z0.VnS());
+  __ Frecps(z3.VnS(), z3.VnS(), z0.VnS());
+
+  __ Index(z0.VnD(), 0, -1);
+  __ Fdup(z5.VnD(), Float16(1));
+  __ Fscale(z5.VnD(), p0.Merging(), z5.VnD(), z0.VnD());
+  __ Scvtf(z0.VnD(), p0.Merging(), z0.VnD());
+  __ Insr(z5.VnD(), 0);
+  __ Frsqrts(z6.VnD(), z5.VnD(), z0.VnD());
+  __ Frecps(z5.VnD(), z5.VnD(), z0.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t z1_expected[] = {0x4038406040a04100, 0x4180420042004000};
+    ASSERT_EQUAL_SVE(z1_expected, z1.VnD());
+    uint64_t z2_expected[] = {0x3e383e603ea03f00, 0x3f80400040003e00};
+    ASSERT_EQUAL_SVE(z2_expected, z2.VnD());
+
+    uint64_t z3_expected[] = {0x4030000040400000, 0x4040000040000000};
+    ASSERT_EQUAL_SVE(z3_expected, z3.VnD());
+    uint64_t z4_expected[] = {0x3ff0000040000000, 0x400000003fc00000};
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+
+    uint64_t z5_expected[] = {0x4008000000000000, 0x4000000000000000};
+    ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+    uint64_t z6_expected[] = {0x4000000000000000, 0x3ff8000000000000};
+    ASSERT_EQUAL_SVE(z6_expected, z6.VnD());
+  }
+}
+
+TEST_SVE(sve_ftsmul) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+
+  START();
+  __ Ptrue(p0.VnB());
+
+  __ Index(z0.VnH(), 0, 1);
+  __ Rev(z1.VnH(), z0.VnH());
+  __ Scvtf(z0.VnH(), p0.Merging(), z0.VnH());
+  __ Dup(z2.VnH(), 0);
+  __ Fdiv(z2.VnH(), p0.Merging(), z2.VnH(), z2.VnH());
+  __ Ftsmul(z3.VnH(), z0.VnH(), z1.VnH());
+  __ Ftsmul(z4.VnH(), z2.VnH(), z1.VnH());
+
+  __ Index(z0.VnS(), -7, 1);
+  __ Rev(z1.VnS(), z0.VnS());
+  __ Scvtf(z0.VnS(), p0.Merging(), z0.VnS());
+  __ Dup(z2.VnS(), 0);
+  __ Fdiv(z2.VnS(), p0.Merging(), z2.VnS(), z2.VnS());
+  __ Ftsmul(z5.VnS(), z0.VnS(), z1.VnS());
+  __ Ftsmul(z6.VnS(), z2.VnS(), z1.VnS());
+
+  __ Index(z0.VnD(), 2, -1);
+  __ Rev(z1.VnD(), z0.VnD());
+  __ Scvtf(z0.VnD(), p0.Merging(), z0.VnD());
+  __ Dup(z2.VnD(), 0);
+  __ Fdiv(z2.VnD(), p0.Merging(), z2.VnD(), z2.VnD());
+  __ Ftsmul(z7.VnD(), z0.VnD(), z1.VnD());
+  __ Ftsmul(z8.VnD(), z2.VnD(), z1.VnD());
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t z3_expected[] = {0x5220d0804e40cc00, 0x4880c4003c008000};
+    ASSERT_EQUAL_SVE(z3_expected, z3.VnD());
+    uint64_t z4_expected[] = {0x7e007e007e007e00, 0x7e007e007e007e00};
+    ASSERT_EQUAL_SVE(z4_expected, z4.VnD());
+
+    uint64_t z5_expected[] = {0xc180000041c80000, 0xc210000042440000};
+    ASSERT_EQUAL_SVE(z5_expected, z5.VnD());
+    uint64_t z6_expected[] = {0x7fc000007fc00000, 0x7fc000007fc00000};
+    ASSERT_EQUAL_SVE(z6_expected, z6.VnD());
+
+    uint64_t z7_expected[] = {0x3ff0000000000000, 0xc010000000000000};
+    ASSERT_EQUAL_SVE(z7_expected, z7.VnD());
+    uint64_t z8_expected[] = {0x7ff8000000000000, 0x7ff8000000000000};
+    ASSERT_EQUAL_SVE(z8_expected, z8.VnD());
+  }
+}
+
+typedef void (MacroAssembler::*FPMulAccFn)(
+    const ZRegister& zd,
+    const PRegisterM& pg,
+    const ZRegister& za,
+    const ZRegister& zn,
+    const ZRegister& zm,
+    FPMacroNaNPropagationOption nan_option);
+
+// The `pg_inputs` is used for examining the predication correctness internally.
+// It does not imply the value of `result` argument. `result` stands for the
+// expected result on all-true predication.
+template <typename T, size_t N>
+static void FPMulAccHelper(
+    Test* config,
+    FPMulAccFn macro,
+    unsigned lane_size_in_bits,
+    const int (&pg_inputs)[N],
+    const T (&za_inputs)[N],
+    const T (&zn_inputs)[N],
+    const T (&zm_inputs)[N],
+    const uint64_t (&result)[N],
+    FPMacroNaNPropagationOption nan_option = FastNaNPropagation) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  ZRegister zd = z0.WithLaneSize(lane_size_in_bits);
+  ZRegister za = z1.WithLaneSize(lane_size_in_bits);
+  ZRegister zn = z2.WithLaneSize(lane_size_in_bits);
+  ZRegister zm = z3.WithLaneSize(lane_size_in_bits);
+
+  uint64_t za_rawbits[N];
+  uint64_t zn_rawbits[N];
+  uint64_t zm_rawbits[N];
+
+  FPToRawbitsWithSize(za_inputs, za_rawbits, lane_size_in_bits);
+  FPToRawbitsWithSize(zn_inputs, zn_rawbits, lane_size_in_bits);
+  FPToRawbitsWithSize(zm_inputs, zm_rawbits, lane_size_in_bits);
+
+  InsrHelper(&masm, za, za_rawbits);
+  InsrHelper(&masm, zn, zn_rawbits);
+  InsrHelper(&masm, zm, zm_rawbits);
+
+  // Initialize `zd` with a signalling NaN.
+  uint64_t sn = GetSignallingNan(lane_size_in_bits);
+  __ Mov(x29, sn);
+  __ Dup(zd, x29);
+
+  Initialise(&masm, p0.WithLaneSize(lane_size_in_bits), pg_inputs);
+
+  // Fmla  macro automatically selects between fmla,  fmad  and movprfx + fmla
+  // Fmls                 `ditto`              fmls,  fmsb  and movprfx + fmls
+  // Fnmla                `ditto`              fnmla, fnmad and movprfx + fnmla
+  // Fnmls                `ditto`              fnmls, fnmsb and movprfx + fnmls
+  // based on what registers are aliased.
+  ZRegister da_result = z10.WithLaneSize(lane_size_in_bits);
+  ZRegister dn_result = z11.WithLaneSize(lane_size_in_bits);
+  ZRegister dm_result = z12.WithLaneSize(lane_size_in_bits);
+  ZRegister d_result = z13.WithLaneSize(lane_size_in_bits);
+
+  __ Mov(da_result, za);
+  (masm.*macro)(da_result, p0.Merging(), da_result, zn, zm, nan_option);
+
+  __ Mov(dn_result, zn);
+  (masm.*macro)(dn_result, p0.Merging(), za, dn_result, zm, nan_option);
+
+  __ Mov(dm_result, zm);
+  (masm.*macro)(dm_result, p0.Merging(), za, zn, dm_result, nan_option);
+
+  __ Mov(d_result, zd);
+  (masm.*macro)(d_result, p0.Merging(), za, zn, zm, nan_option);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(za_rawbits, za);
+    ASSERT_EQUAL_SVE(zn_rawbits, zn);
+    ASSERT_EQUAL_SVE(zm_rawbits, zm);
+
+    uint64_t da_expected[N];
+    uint64_t dn_expected[N];
+    uint64_t dm_expected[N];
+    uint64_t d_expected[N];
+    for (size_t i = 0; i < N; i++) {
+      da_expected[i] = ((pg_inputs[i] & 1) != 0) ? result[i] : za_rawbits[i];
+      dn_expected[i] = ((pg_inputs[i] & 1) != 0) ? result[i] : zn_rawbits[i];
+      dm_expected[i] = ((pg_inputs[i] & 1) != 0) ? result[i] : zm_rawbits[i];
+      d_expected[i] = ((pg_inputs[i] & 1) != 0) ? result[i] : sn;
+    }
+
+    ASSERT_EQUAL_SVE(da_expected, da_result);
+    ASSERT_EQUAL_SVE(dn_expected, dn_result);
+    ASSERT_EQUAL_SVE(dm_expected, dm_result);
+    ASSERT_EQUAL_SVE(d_expected, d_result);
+  }
+}
+
+TEST_SVE(sve_fmla_fmad) {
+  // fmla : zd = za + zn * zm
+  double za_inputs[] = {-39.0, 1.0, -3.0, 2.0};
+  double zn_inputs[] = {-5.0, -20.0, 9.0, 8.0};
+  double zm_inputs[] = {9.0, -5.0, 4.0, 5.0};
+  int pg_inputs[] = {1, 1, 0, 1};
+
+  uint64_t fmla_result_h[] = {Float16ToRawbits(Float16(-84.0)),
+                              Float16ToRawbits(Float16(101.0)),
+                              Float16ToRawbits(Float16(33.0)),
+                              Float16ToRawbits(Float16(42.0))};
+
+  // `fmad` has been tested in the helper.
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fmla,
+                 kHRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fmla_result_h);
+
+  uint64_t fmla_result_s[] = {FloatToRawbits(-84.0f),
+                              FloatToRawbits(101.0f),
+                              FloatToRawbits(33.0f),
+                              FloatToRawbits(42.0f)};
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fmla,
+                 kSRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fmla_result_s);
+
+  uint64_t fmla_result_d[] = {DoubleToRawbits(-84.0),
+                              DoubleToRawbits(101.0),
+                              DoubleToRawbits(33.0),
+                              DoubleToRawbits(42.0)};
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fmla,
+                 kDRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fmla_result_d);
+}
+
+TEST_SVE(sve_fmls_fmsb) {
+  // fmls : zd = za - zn * zm
+  double za_inputs[] = {-39.0, 1.0, -3.0, 2.0};
+  double zn_inputs[] = {-5.0, -20.0, 9.0, 8.0};
+  double zm_inputs[] = {9.0, -5.0, 4.0, 5.0};
+  int pg_inputs[] = {1, 0, 1, 1};
+
+  uint64_t fmls_result_h[] = {Float16ToRawbits(Float16(6.0)),
+                              Float16ToRawbits(Float16(-99.0)),
+                              Float16ToRawbits(Float16(-39.0)),
+                              Float16ToRawbits(Float16(-38.0))};
+
+  // `fmsb` has been tested in the helper.
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fmls,
+                 kHRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fmls_result_h);
+
+  uint64_t fmls_result_s[] = {FloatToRawbits(6.0f),
+                              FloatToRawbits(-99.0f),
+                              FloatToRawbits(-39.0f),
+                              FloatToRawbits(-38.0f)};
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fmls,
+                 kSRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fmls_result_s);
+
+  uint64_t fmls_result_d[] = {DoubleToRawbits(6.0),
+                              DoubleToRawbits(-99.0),
+                              DoubleToRawbits(-39.0),
+                              DoubleToRawbits(-38.0)};
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fmls,
+                 kDRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fmls_result_d);
+}
+
+TEST_SVE(sve_fnmla_fnmad) {
+  // fnmla : zd = -za - zn * zm
+  double za_inputs[] = {-39.0, 1.0, -3.0, 2.0};
+  double zn_inputs[] = {-5.0, -20.0, 9.0, 8.0};
+  double zm_inputs[] = {9.0, -5.0, 4.0, 5.0};
+  int pg_inputs[] = {0, 1, 1, 1};
+
+  uint64_t fnmla_result_h[] = {Float16ToRawbits(Float16(84.0)),
+                               Float16ToRawbits(Float16(-101.0)),
+                               Float16ToRawbits(Float16(-33.0)),
+                               Float16ToRawbits(Float16(-42.0))};
+
+  // `fnmad` has been tested in the helper.
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fnmla,
+                 kHRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fnmla_result_h);
+
+  uint64_t fnmla_result_s[] = {FloatToRawbits(84.0f),
+                               FloatToRawbits(-101.0f),
+                               FloatToRawbits(-33.0f),
+                               FloatToRawbits(-42.0f)};
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fnmla,
+                 kSRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fnmla_result_s);
+
+  uint64_t fnmla_result_d[] = {DoubleToRawbits(84.0),
+                               DoubleToRawbits(-101.0),
+                               DoubleToRawbits(-33.0),
+                               DoubleToRawbits(-42.0)};
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fnmla,
+                 kDRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fnmla_result_d);
+}
+
+TEST_SVE(sve_fnmls_fnmsb) {
+  // fnmls : zd = -za + zn * zm
+  double za_inputs[] = {-39.0, 1.0, -3.0, 2.0};
+  double zn_inputs[] = {-5.0, -20.0, 9.0, 8.0};
+  double zm_inputs[] = {9.0, -5.0, 4.0, 5.0};
+  int pg_inputs[] = {1, 1, 1, 0};
+
+  uint64_t fnmls_result_h[] = {Float16ToRawbits(Float16(-6.0)),
+                               Float16ToRawbits(Float16(99.0)),
+                               Float16ToRawbits(Float16(39.0)),
+                               Float16ToRawbits(Float16(38.0))};
+
+  // `fnmsb` has been tested in the helper.
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fnmls,
+                 kHRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fnmls_result_h);
+
+  uint64_t fnmls_result_s[] = {FloatToRawbits(-6.0f),
+                               FloatToRawbits(99.0f),
+                               FloatToRawbits(39.0f),
+                               FloatToRawbits(38.0f)};
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fnmls,
+                 kSRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fnmls_result_s);
+
+  uint64_t fnmls_result_d[] = {DoubleToRawbits(-6.0),
+                               DoubleToRawbits(99.0),
+                               DoubleToRawbits(39.0),
+                               DoubleToRawbits(38.0)};
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fnmls,
+                 kDRegSize,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 fnmls_result_d);
+}
+
+typedef void (MacroAssembler::*FPMulAccIdxFn)(const ZRegister& zd,
+                                              const ZRegister& za,
+                                              const ZRegister& zn,
+                                              const ZRegister& zm,
+                                              int index);
+
+template <typename T, size_t N>
+static void FPMulAccIdxHelper(Test* config,
+                              FPMulAccFn macro,
+                              FPMulAccIdxFn macro_idx,
+                              const T (&za_inputs)[N],
+                              const T (&zn_inputs)[N],
+                              const T (&zm_inputs)[N]) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Ptrue(p0.VnB());
+
+  // Repeat indexed vector across up to 2048-bit VL.
+  for (size_t i = 0; i < (kZRegMaxSize / kDRegSize); i += N) {
+    InsrHelper(&masm, z30.VnD(), zm_inputs);
+  }
+
+  FPSegmentPatternHelper(&masm, z0.VnH(), p0.Merging(), z30.VnH());
+
+  InsrHelper(&masm, z1.VnD(), zn_inputs);
+  InsrHelper(&masm, z2.VnD(), za_inputs);
+
+  __ Mov(z3, z0);
+  (masm.*macro_idx)(z3.VnH(), z2.VnH(), z1.VnH(), z3.VnH(), 0);  // zd == zm
+  __ Mov(z4, z1);
+  (masm.*macro_idx)(z4.VnH(), z2.VnH(), z4.VnH(), z0.VnH(), 1);  // zd == zn
+  __ Mov(z5, z2);
+  (masm.*macro_idx)(z5.VnH(), z5.VnH(), z1.VnH(), z0.VnH(), 4);  // zd == za
+  (masm.*macro_idx)(z6.VnH(), z2.VnH(), z1.VnH(), z0.VnH(), 7);
+
+  FPSegmentPatternHelper(&masm, z0.VnS(), p0.Merging(), z30.VnS());
+
+  __ Mov(z7, z0);
+  (masm.*macro_idx)(z7.VnS(), z2.VnS(), z1.VnS(), z7.VnS(), 0);  // zd == zm
+  __ Mov(z8, z1);
+  (masm.*macro_idx)(z8.VnS(), z2.VnS(), z8.VnS(), z0.VnS(), 1);  // zd == zn
+  __ Mov(z9, z2);
+  (masm.*macro_idx)(z9.VnS(), z9.VnS(), z1.VnS(), z0.VnS(), 2);  // zd == za
+  (masm.*macro_idx)(z10.VnS(), z2.VnS(), z1.VnS(), z0.VnS(), 3);
+
+  FPSegmentPatternHelper(&masm, z0.VnD(), p0.Merging(), z30.VnD());
+
+  __ Mov(z11, z0);
+  (masm.*macro_idx)(z11.VnD(), z2.VnD(), z1.VnD(), z11.VnD(), 0);  // zd == zm
+  __ Mov(z12, z1);
+  (masm.*macro_idx)(z12.VnD(), z2.VnD(), z12.VnD(), z0.VnD(), 1);  // zd == zn
+  __ Mov(z13, z2);
+  (masm.*macro_idx)(z13.VnD(), z13.VnD(), z1.VnD(), z0.VnD(), 0);  // zd == za
+  __ Mov(z14, z0);
+  // zd == zn == zm
+  (masm.*macro_idx)(z14.VnD(), z2.VnD(), z14.VnD(), z14.VnD(), 1);
+
+  // Indexed form of Fmla and Fmls won't swap argument, passing strict NaN
+  // propagation mode to ensure the following macros don't swap argument in
+  // any cases.
+  FPMacroNaNPropagationOption option = StrictNaNPropagation;
+  // Compute the results using other instructions.
+  __ Dup(z0.VnH(), z30.VnH(), 0);
+  FPSegmentPatternHelper(&masm, z0.VnH(), p0.Merging(), z0.VnH());
+  (masm.*macro)(z15.VnH(), p0.Merging(), z2.VnH(), z1.VnH(), z0.VnH(), option);
+  __ Dup(z0.VnH(), z30.VnH(), 1);
+  FPSegmentPatternHelper(&masm, z0.VnH(), p0.Merging(), z0.VnH());
+  (masm.*macro)(z16.VnH(), p0.Merging(), z2.VnH(), z1.VnH(), z0.VnH(), option);
+  __ Dup(z0.VnH(), z30.VnH(), 4);
+  FPSegmentPatternHelper(&masm, z0.VnH(), p0.Merging(), z0.VnH());
+  (masm.*macro)(z17.VnH(), p0.Merging(), z2.VnH(), z1.VnH(), z0.VnH(), option);
+  __ Dup(z0.VnH(), z30.VnH(), 7);
+  FPSegmentPatternHelper(&masm, z0.VnH(), p0.Merging(), z0.VnH());
+  (masm.*macro)(z18.VnH(), p0.Merging(), z2.VnH(), z1.VnH(), z0.VnH(), option);
+
+  __ Dup(z0.VnS(), z30.VnS(), 0);
+  FPSegmentPatternHelper(&masm, z0.VnS(), p0.Merging(), z0.VnS());
+  (masm.*macro)(z19.VnS(), p0.Merging(), z2.VnS(), z1.VnS(), z0.VnS(), option);
+  __ Dup(z0.VnS(), z30.VnS(), 1);
+  FPSegmentPatternHelper(&masm, z0.VnS(), p0.Merging(), z0.VnS());
+  (masm.*macro)(z20.VnS(), p0.Merging(), z2.VnS(), z1.VnS(), z0.VnS(), option);
+  __ Dup(z0.VnS(), z30.VnS(), 2);
+  FPSegmentPatternHelper(&masm, z0.VnS(), p0.Merging(), z0.VnS());
+  (masm.*macro)(z21.VnS(), p0.Merging(), z2.VnS(), z1.VnS(), z0.VnS(), option);
+  __ Dup(z0.VnS(), z30.VnS(), 3);
+  FPSegmentPatternHelper(&masm, z0.VnS(), p0.Merging(), z0.VnS());
+  (masm.*macro)(z22.VnS(), p0.Merging(), z2.VnS(), z1.VnS(), z0.VnS(), option);
+
+  __ Dup(z0.VnD(), z30.VnD(), 0);
+  FPSegmentPatternHelper(&masm, z0.VnD(), p0.Merging(), z0.VnD());
+  (masm.*macro)(z23.VnD(), p0.Merging(), z2.VnD(), z1.VnD(), z0.VnD(), option);
+  __ Dup(z0.VnD(), z30.VnD(), 1);
+  FPSegmentPatternHelper(&masm, z0.VnD(), p0.Merging(), z0.VnD());
+  (masm.*macro)(z24.VnD(), p0.Merging(), z2.VnD(), z1.VnD(), z0.VnD(), option);
+  FPSegmentPatternHelper(&masm, z0.VnD(), p0.Merging(), z30.VnD());
+  __ Dup(z29.VnD(), z30.VnD(), 1);
+  FPSegmentPatternHelper(&masm, z29.VnD(), p0.Merging(), z29.VnD());
+  (masm.*macro)(z25.VnD(), p0.Merging(), z2.VnD(), z0.VnD(), z29.VnD(), option);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(z15.VnH(), z3.VnH());
+    ASSERT_EQUAL_SVE(z16.VnH(), z4.VnH());
+    ASSERT_EQUAL_SVE(z17.VnH(), z5.VnH());
+    ASSERT_EQUAL_SVE(z18.VnH(), z6.VnH());
+
+    ASSERT_EQUAL_SVE(z19.VnS(), z7.VnS());
+    ASSERT_EQUAL_SVE(z20.VnS(), z8.VnS());
+    ASSERT_EQUAL_SVE(z21.VnS(), z9.VnS());
+    ASSERT_EQUAL_SVE(z22.VnS(), z10.VnS());
+
+    ASSERT_EQUAL_SVE(z23.VnD(), z11.VnD());
+    ASSERT_EQUAL_SVE(z24.VnD(), z12.VnD());
+    ASSERT_EQUAL_SVE(z11.VnD(), z13.VnD());
+    ASSERT_EQUAL_SVE(z25.VnD(), z14.VnD());
+  }
+}
+
+TEST_SVE(sve_fmla_fmls_index) {
+  uint64_t zm_inputs_1[] = {0x3ff000003f803c00, 0xbff00000bf80bc00};
+  uint64_t zn_inputs_1[] = {0x3ff012343ff03c76, 0xbff01234bff0bc76};
+  uint64_t za_inputs_1[] = {0x3c004000bc00c000, 0x64006800e400e800};
+
+  // Using the vector form of Fmla and Fmls to verify the indexed form.
+  FPMulAccIdxHelper(config,
+                    &MacroAssembler::Fmla,  // vector form
+                    &MacroAssembler::Fmla,  // indexed form
+                    za_inputs_1,
+                    zn_inputs_1,
+                    zm_inputs_1);
+
+  FPMulAccIdxHelper(config,
+                    &MacroAssembler::Fmls,  // vector form
+                    &MacroAssembler::Fmls,  // indexed form
+                    za_inputs_1,
+                    zn_inputs_1,
+                    zm_inputs_1);
+
+  uint64_t zm_inputs_2[] = {0x7ff5555511111111,   // NaN
+                            0xfff0000000000000};  // Infinity
+  uint64_t zn_inputs_2[] = {0x7f9511117fc00000,   // NaN
+                            0x7f800000ff800000};  // Infinity
+  uint64_t za_inputs_2[] = {0x7c11000000007e00,   // NaN
+                            0x000000007c00fc00};  // Infinity
+  FPMulAccIdxHelper(config,
+                    &MacroAssembler::Fmla,  // vector form
+                    &MacroAssembler::Fmla,  // indexed form
+                    za_inputs_2,
+                    zn_inputs_2,
+                    zm_inputs_2);
+
+  FPMulAccIdxHelper(config,
+                    &MacroAssembler::Fmls,  // vector form
+                    &MacroAssembler::Fmls,  // indexed form
+                    za_inputs_2,
+                    zn_inputs_2,
+                    zm_inputs_2);
+}
+
+// Execute a number of instructions which all use ProcessNaNs, and check that
+// they all propagate NaNs correctly.
+template <typename Ti, typename Td, size_t N>
+static void ProcessNaNsHelper(Test* config,
+                              int lane_size_in_bits,
+                              const Ti (&zn_inputs)[N],
+                              const Ti (&zm_inputs)[N],
+                              const Td (&zd_expected)[N],
+                              FPMacroNaNPropagationOption nan_option) {
+  ArithFn arith_unpredicated_macro[] = {&MacroAssembler::Fadd,
+                                        &MacroAssembler::Fsub,
+                                        &MacroAssembler::Fmul};
+
+  for (size_t i = 0; i < ArrayLength(arith_unpredicated_macro); i++) {
+    FPBinArithHelper(config,
+                     arith_unpredicated_macro[i],
+                     lane_size_in_bits,
+                     zn_inputs,
+                     zm_inputs,
+                     zd_expected);
+  }
+
+  FPArithPredicatedFn arith_predicated_macro[] = {&MacroAssembler::Fmax,
+                                                  &MacroAssembler::Fmin};
+  int pg_inputs[N];
+  // With an all-true predicate, this helper aims to compare with special
+  // numbers.
+  for (size_t i = 0; i < N; i++) {
+    pg_inputs[i] = 1;
+  }
+
+  // fdivr propagates the quotient (Zm) preferentially, so we don't actually
+  // need any special handling for StrictNaNPropagation.
+  FPBinArithHelper(config,
+                   NULL,
+                   &MacroAssembler::Fdiv,
+                   lane_size_in_bits,
+                   // With an all-true predicate, the value in zd is
+                   // irrelevant to the operations.
+                   zn_inputs,
+                   pg_inputs,
+                   zn_inputs,
+                   zm_inputs,
+                   zd_expected);
+
+  for (size_t i = 0; i < ArrayLength(arith_predicated_macro); i++) {
+    FPBinArithHelper(config,
+                     arith_predicated_macro[i],
+                     NULL,
+                     lane_size_in_bits,
+                     // With an all-true predicate, the value in zd is
+                     // irrelevant to the operations.
+                     zn_inputs,
+                     pg_inputs,
+                     zn_inputs,
+                     zm_inputs,
+                     zd_expected,
+                     nan_option);
+  }
+}
+
+template <typename Ti, typename Td, size_t N>
+static void ProcessNaNsHelper3(Test* config,
+                               int lane_size_in_bits,
+                               const Ti (&za_inputs)[N],
+                               const Ti (&zn_inputs)[N],
+                               const Ti (&zm_inputs)[N],
+                               const Td (&zd_expected_fmla)[N],
+                               const Td (&zd_expected_fmls)[N],
+                               const Td (&zd_expected_fnmla)[N],
+                               const Td (&zd_expected_fnmls)[N],
+                               FPMacroNaNPropagationOption nan_option) {
+  int pg_inputs[N];
+  // With an all-true predicate, this helper aims to compare with special
+  // numbers.
+  for (size_t i = 0; i < N; i++) {
+    pg_inputs[i] = 1;
+  }
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fmla,
+                 lane_size_in_bits,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 zd_expected_fmla,
+                 nan_option);
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fmls,
+                 lane_size_in_bits,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 zd_expected_fmls,
+                 nan_option);
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fnmla,
+                 lane_size_in_bits,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 zd_expected_fnmla,
+                 nan_option);
+
+  FPMulAccHelper(config,
+                 &MacroAssembler::Fnmls,
+                 lane_size_in_bits,
+                 pg_inputs,
+                 za_inputs,
+                 zn_inputs,
+                 zm_inputs,
+                 zd_expected_fnmls,
+                 nan_option);
+}
+
+TEST_SVE(sve_process_nans_double) {
+  // Use non-standard NaNs to check that the payload bits are preserved.
+  double sa = RawbitsToDouble(0x7ff5555511111111);
+  double sn = RawbitsToDouble(0x7ff5555522222222);
+  double sm = RawbitsToDouble(0x7ff5555533333333);
+  double qa = RawbitsToDouble(0x7ffaaaaa11111111);
+  double qn = RawbitsToDouble(0x7ffaaaaa22222222);
+  double qm = RawbitsToDouble(0x7ffaaaaa33333333);
+  VIXL_ASSERT(IsSignallingNaN(sa));
+  VIXL_ASSERT(IsSignallingNaN(sn));
+  VIXL_ASSERT(IsSignallingNaN(sm));
+  VIXL_ASSERT(IsQuietNaN(qa));
+  VIXL_ASSERT(IsQuietNaN(qn));
+  VIXL_ASSERT(IsQuietNaN(qm));
+
+  // The input NaNs after passing through ProcessNaN.
+  uint64_t sa_proc = 0x7ffd555511111111;
+  uint64_t sn_proc = 0x7ffd555522222222;
+  uint64_t sm_proc = 0x7ffd555533333333;
+  uint64_t qa_proc = DoubleToRawbits(qa);
+  uint64_t qn_proc = DoubleToRawbits(qn);
+  uint64_t qm_proc = DoubleToRawbits(qm);
+  uint64_t sa_proc_n = sa_proc ^ kDSignMask;
+  uint64_t sn_proc_n = sn_proc ^ kDSignMask;
+  uint64_t qa_proc_n = qa_proc ^ kDSignMask;
+  uint64_t qn_proc_n = qn_proc ^ kDSignMask;
+
+  // Quiet NaNs are propagated.
+  double zn_inputs_1[] = {qn, 0.0, 0.0, qm, qn, qm};
+  double zm_inputs_1[] = {0.0, qn, qm, 0.0, qm, qn};
+  uint64_t zd_expected_1[] =
+      {qn_proc, qn_proc, qm_proc, qm_proc, qn_proc, qm_proc};
+
+  ProcessNaNsHelper(config,
+                    kDRegSize,
+                    zn_inputs_1,
+                    zm_inputs_1,
+                    zd_expected_1,
+                    StrictNaNPropagation);
+
+  // Signalling NaNs are propagated.
+  double zn_inputs_2[] = {sn, 0.0, 0.0, sm, sn, sm};
+  double zm_inputs_2[] = {0.0, sn, sm, 0.0, sm, sn};
+  uint64_t zd_expected_2[] =
+      {sn_proc, sn_proc, sm_proc, sm_proc, sn_proc, sm_proc};
+  ProcessNaNsHelper(config,
+                    kDRegSize,
+                    zn_inputs_2,
+                    zm_inputs_2,
+                    zd_expected_2,
+                    StrictNaNPropagation);
+
+  // Signalling NaNs take precedence over quiet NaNs.
+  double zn_inputs_3[] = {sn, qn, sn, sn, qn};
+  double zm_inputs_3[] = {qm, sm, sm, qn, sn};
+  uint64_t zd_expected_3[] = {sn_proc, sm_proc, sn_proc, sn_proc, sn_proc};
+  ProcessNaNsHelper(config,
+                    kDRegSize,
+                    zn_inputs_3,
+                    zm_inputs_3,
+                    zd_expected_3,
+                    StrictNaNPropagation);
+
+  double za_inputs_4[] = {qa, qa, 0.0, 0.0, qa, qa};
+  double zn_inputs_4[] = {qn, 0.0, 0.0, qn, qn, qn};
+  double zm_inputs_4[] = {0.0, qm, qm, qm, qm, 0.0};
+
+  // If `a` is propagated, its sign is inverted by fnmla and fnmls.
+  // If `n` is propagated, its sign is inverted by fmls and fnmla.
+  // If `m` is propagated, its sign is never inverted.
+  uint64_t zd_expected_fmla_4[] =
+      {qa_proc, qa_proc, qm_proc, qn_proc, qa_proc, qa_proc};
+  uint64_t zd_expected_fmls_4[] =
+      {qa_proc, qa_proc, qm_proc, qn_proc_n, qa_proc, qa_proc};
+  uint64_t zd_expected_fnmla_4[] =
+      {qa_proc_n, qa_proc_n, qm_proc, qn_proc_n, qa_proc_n, qa_proc_n};
+  uint64_t zd_expected_fnmls_4[] =
+      {qa_proc_n, qa_proc_n, qm_proc, qn_proc, qa_proc_n, qa_proc_n};
+
+  ProcessNaNsHelper3(config,
+                     kDRegSize,
+                     za_inputs_4,
+                     zn_inputs_4,
+                     zm_inputs_4,
+                     zd_expected_fmla_4,
+                     zd_expected_fmls_4,
+                     zd_expected_fnmla_4,
+                     zd_expected_fnmls_4,
+                     StrictNaNPropagation);
+
+  // Signalling NaNs take precedence over quiet NaNs.
+  double za_inputs_5[] = {qa, qa, sa, sa, sa};
+  double zn_inputs_5[] = {qn, sn, sn, sn, qn};
+  double zm_inputs_5[] = {sm, qm, sm, qa, sm};
+  uint64_t zd_expected_fmla_5[] = {sm_proc, sn_proc, sa_proc, sa_proc, sa_proc};
+  uint64_t zd_expected_fmls_5[] = {sm_proc,
+                                   sn_proc_n,
+                                   sa_proc,
+                                   sa_proc,
+                                   sa_proc};
+  uint64_t zd_expected_fnmla_5[] = {sm_proc,
+                                    sn_proc_n,
+                                    sa_proc_n,
+                                    sa_proc_n,
+                                    sa_proc_n};
+  uint64_t zd_expected_fnmls_5[] = {sm_proc,
+                                    sn_proc,
+                                    sa_proc_n,
+                                    sa_proc_n,
+                                    sa_proc_n};
+
+  ProcessNaNsHelper3(config,
+                     kDRegSize,
+                     za_inputs_5,
+                     zn_inputs_5,
+                     zm_inputs_5,
+                     zd_expected_fmla_5,
+                     zd_expected_fmls_5,
+                     zd_expected_fnmla_5,
+                     zd_expected_fnmls_5,
+                     StrictNaNPropagation);
+
+  const double inf = kFP64PositiveInfinity;
+  const double inf_n = kFP64NegativeInfinity;
+  uint64_t inf_proc = DoubleToRawbits(inf);
+  uint64_t inf_proc_n = DoubleToRawbits(inf_n);
+  uint64_t d_inf_proc = DoubleToRawbits(kFP64DefaultNaN);
+
+  double za_inputs_6[] = {qa, qa, 0.0f, -0.0f, qa, sa};
+  double zn_inputs_6[] = {inf, -0.0f, -0.0f, inf, inf_n, inf};
+  double zm_inputs_6[] = {0.0f, inf_n, inf, inf, inf, 0.0f};
+
+  // quiet_nan + (0.0 * inf) produces the default NaN, not quiet_nan. Ditto for
+  // (inf * 0.0). On the other hand, quiet_nan + (inf * inf) propagates the
+  // quiet_nan.
+  uint64_t zd_expected_fmla_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc, qa_proc, sa_proc};
+  uint64_t zd_expected_fmls_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc_n, qa_proc, sa_proc};
+  uint64_t zd_expected_fnmla_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc_n, qa_proc_n, sa_proc_n};
+  uint64_t zd_expected_fnmls_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc, qa_proc_n, sa_proc_n};
+
+  ProcessNaNsHelper3(config,
+                     kDRegSize,
+                     za_inputs_6,
+                     zn_inputs_6,
+                     zm_inputs_6,
+                     zd_expected_fmla_6,
+                     zd_expected_fmls_6,
+                     zd_expected_fnmla_6,
+                     zd_expected_fnmls_6,
+                     StrictNaNPropagation);
+}
+
+TEST_SVE(sve_process_nans_float) {
+  // Use non-standard NaNs to check that the payload bits are preserved.
+  float sa = RawbitsToFloat(0x7f951111);
+  float sn = RawbitsToFloat(0x7f952222);
+  float sm = RawbitsToFloat(0x7f953333);
+  float qa = RawbitsToFloat(0x7fea1111);
+  float qn = RawbitsToFloat(0x7fea2222);
+  float qm = RawbitsToFloat(0x7fea3333);
+  VIXL_ASSERT(IsSignallingNaN(sa));
+  VIXL_ASSERT(IsSignallingNaN(sn));
+  VIXL_ASSERT(IsSignallingNaN(sm));
+  VIXL_ASSERT(IsQuietNaN(qa));
+  VIXL_ASSERT(IsQuietNaN(qn));
+  VIXL_ASSERT(IsQuietNaN(qm));
+
+  // The input NaNs after passing through ProcessNaN.
+  uint32_t sa_proc = 0x7fd51111;
+  uint32_t sn_proc = 0x7fd52222;
+  uint32_t sm_proc = 0x7fd53333;
+  uint32_t qa_proc = FloatToRawbits(qa);
+  uint32_t qn_proc = FloatToRawbits(qn);
+  uint32_t qm_proc = FloatToRawbits(qm);
+  uint32_t sa_proc_n = sa_proc ^ kSSignMask;
+  uint32_t sn_proc_n = sn_proc ^ kSSignMask;
+  uint32_t qa_proc_n = qa_proc ^ kSSignMask;
+  uint32_t qn_proc_n = qn_proc ^ kSSignMask;
+
+  // Quiet NaNs are propagated.
+  float zn_inputs_1[] = {qn, 0.0f, 0.0f, qm, qn, qm};
+  float zm_inputs_1[] = {0.0f, qn, qm, 0.0f, qm, qn};
+  uint64_t zd_expected_1[] =
+      {qn_proc, qn_proc, qm_proc, qm_proc, qn_proc, qm_proc};
+
+  ProcessNaNsHelper(config,
+                    kSRegSize,
+                    zn_inputs_1,
+                    zm_inputs_1,
+                    zd_expected_1,
+                    StrictNaNPropagation);
+
+  // Signalling NaNs are propagated.
+  float zn_inputs_2[] = {sn, 0.0f, 0.0f, sm, sn, sm};
+  float zm_inputs_2[] = {0.0f, sn, sm, 0.0f, sm, sn};
+  uint64_t zd_expected_2[] =
+      {sn_proc, sn_proc, sm_proc, sm_proc, sn_proc, sm_proc};
+  ProcessNaNsHelper(config,
+                    kSRegSize,
+                    zn_inputs_2,
+                    zm_inputs_2,
+                    zd_expected_2,
+                    StrictNaNPropagation);
+
+  // Signalling NaNs take precedence over quiet NaNs.
+  float zn_inputs_3[] = {sn, qn, sn, sn, qn};
+  float zm_inputs_3[] = {qm, sm, sm, qn, sn};
+  uint64_t zd_expected_3[] = {sn_proc, sm_proc, sn_proc, sn_proc, sn_proc};
+  ProcessNaNsHelper(config,
+                    kSRegSize,
+                    zn_inputs_3,
+                    zm_inputs_3,
+                    zd_expected_3,
+                    StrictNaNPropagation);
+
+  float za_inputs_4[] = {qa, qa, 0.0f, 0.0f, qa, qa};
+  float zn_inputs_4[] = {qn, 0.0f, 0.0f, qn, qn, qn};
+  float zm_inputs_4[] = {0.0f, qm, qm, qm, qm, 0.0f};
+
+  // If `a` is propagated, its sign is inverted by fnmla and fnmls.
+  // If `n` is propagated, its sign is inverted by fmls and fnmla.
+  // If `m` is propagated, its sign is never inverted.
+  uint64_t zd_expected_fmla_4[] =
+      {qa_proc, qa_proc, qm_proc, qn_proc, qa_proc, qa_proc};
+  uint64_t zd_expected_fmls_4[] =
+      {qa_proc, qa_proc, qm_proc, qn_proc_n, qa_proc, qa_proc};
+  uint64_t zd_expected_fnmla_4[] =
+      {qa_proc_n, qa_proc_n, qm_proc, qn_proc_n, qa_proc_n, qa_proc_n};
+  uint64_t zd_expected_fnmls_4[] =
+      {qa_proc_n, qa_proc_n, qm_proc, qn_proc, qa_proc_n, qa_proc_n};
+
+  ProcessNaNsHelper3(config,
+                     kSRegSize,
+                     za_inputs_4,
+                     zn_inputs_4,
+                     zm_inputs_4,
+                     zd_expected_fmla_4,
+                     zd_expected_fmls_4,
+                     zd_expected_fnmla_4,
+                     zd_expected_fnmls_4,
+                     StrictNaNPropagation);
+
+  // Signalling NaNs take precedence over quiet NaNs.
+  float za_inputs_5[] = {qa, qa, sa, sa, sa};
+  float zn_inputs_5[] = {qn, sn, sn, sn, qn};
+  float zm_inputs_5[] = {sm, qm, sm, qa, sm};
+  uint64_t zd_expected_fmla_5[] = {sm_proc, sn_proc, sa_proc, sa_proc, sa_proc};
+  uint64_t zd_expected_fmls_5[] = {sm_proc,
+                                   sn_proc_n,
+                                   sa_proc,
+                                   sa_proc,
+                                   sa_proc};
+  uint64_t zd_expected_fnmla_5[] = {sm_proc,
+                                    sn_proc_n,
+                                    sa_proc_n,
+                                    sa_proc_n,
+                                    sa_proc_n};
+  uint64_t zd_expected_fnmls_5[] = {sm_proc,
+                                    sn_proc,
+                                    sa_proc_n,
+                                    sa_proc_n,
+                                    sa_proc_n};
+
+  ProcessNaNsHelper3(config,
+                     kSRegSize,
+                     za_inputs_5,
+                     zn_inputs_5,
+                     zm_inputs_5,
+                     zd_expected_fmla_5,
+                     zd_expected_fmls_5,
+                     zd_expected_fnmla_5,
+                     zd_expected_fnmls_5,
+                     StrictNaNPropagation);
+
+  const float inf = kFP32PositiveInfinity;
+  const float inf_n = kFP32NegativeInfinity;
+  uint32_t inf_proc = FloatToRawbits(inf);
+  uint32_t inf_proc_n = FloatToRawbits(inf_n);
+  uint32_t d_inf_proc = FloatToRawbits(kFP32DefaultNaN);
+
+  float za_inputs_6[] = {qa, qa, 0.0f, 0.0f, qa, sa};
+  float zn_inputs_6[] = {inf, 0.0f, 0.0f, inf, inf_n, inf};
+  float zm_inputs_6[] = {0.0f, inf_n, inf, inf, inf, 0.0f};
+
+  // quiet_nan + (0.0 * inf) produces the default NaN, not quiet_nan. Ditto for
+  // (inf * 0.0). On the other hand, quiet_nan + (inf * inf) propagates the
+  // quiet_nan.
+  uint64_t zd_expected_fmla_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc, qa_proc, sa_proc};
+  uint64_t zd_expected_fmls_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc_n, qa_proc, sa_proc};
+  uint64_t zd_expected_fnmla_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc_n, qa_proc_n, sa_proc_n};
+  uint64_t zd_expected_fnmls_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc, qa_proc_n, sa_proc_n};
+
+  ProcessNaNsHelper3(config,
+                     kSRegSize,
+                     za_inputs_6,
+                     zn_inputs_6,
+                     zm_inputs_6,
+                     zd_expected_fmla_6,
+                     zd_expected_fmls_6,
+                     zd_expected_fnmla_6,
+                     zd_expected_fnmls_6,
+                     StrictNaNPropagation);
+}
+
+TEST_SVE(sve_process_nans_half) {
+  // Use non-standard NaNs to check that the payload bits are preserved.
+  Float16 sa(RawbitsToFloat16(0x7c11));
+  Float16 sn(RawbitsToFloat16(0x7c22));
+  Float16 sm(RawbitsToFloat16(0x7c33));
+  Float16 qa(RawbitsToFloat16(0x7e44));
+  Float16 qn(RawbitsToFloat16(0x7e55));
+  Float16 qm(RawbitsToFloat16(0x7e66));
+  VIXL_ASSERT(IsSignallingNaN(sa));
+  VIXL_ASSERT(IsSignallingNaN(sn));
+  VIXL_ASSERT(IsSignallingNaN(sm));
+  VIXL_ASSERT(IsQuietNaN(qa));
+  VIXL_ASSERT(IsQuietNaN(qn));
+  VIXL_ASSERT(IsQuietNaN(qm));
+
+  // The input NaNs after passing through ProcessNaN.
+  uint16_t sa_proc = 0x7e11;
+  uint16_t sn_proc = 0x7e22;
+  uint16_t sm_proc = 0x7e33;
+  uint16_t qa_proc = Float16ToRawbits(qa);
+  uint16_t qn_proc = Float16ToRawbits(qn);
+  uint16_t qm_proc = Float16ToRawbits(qm);
+  uint16_t sa_proc_n = sa_proc ^ kHSignMask;
+  uint16_t sn_proc_n = sn_proc ^ kHSignMask;
+  uint16_t qa_proc_n = qa_proc ^ kHSignMask;
+  uint16_t qn_proc_n = qn_proc ^ kHSignMask;
+  Float16 zero(0.0);
+
+  // Quiet NaNs are propagated.
+  Float16 zn_inputs_1[] = {qn, zero, zero, qm, qn, qm};
+  Float16 zm_inputs_1[] = {zero, qn, qm, zero, qm, qn};
+  uint64_t zd_expected_1[] =
+      {qn_proc, qn_proc, qm_proc, qm_proc, qn_proc, qm_proc};
+
+  ProcessNaNsHelper(config,
+                    kHRegSize,
+                    zn_inputs_1,
+                    zm_inputs_1,
+                    zd_expected_1,
+                    StrictNaNPropagation);
+
+  // Signalling NaNs are propagated.
+  Float16 zn_inputs_2[] = {sn, zero, zero, sm, sn, sm};
+  Float16 zm_inputs_2[] = {zero, sn, sm, zero, sm, sn};
+  uint64_t zd_expected_2[] =
+      {sn_proc, sn_proc, sm_proc, sm_proc, sn_proc, sm_proc};
+  ProcessNaNsHelper(config,
+                    kHRegSize,
+                    zn_inputs_2,
+                    zm_inputs_2,
+                    zd_expected_2,
+                    StrictNaNPropagation);
+
+  // Signalling NaNs take precedence over quiet NaNs.
+  Float16 zn_inputs_3[] = {sn, qn, sn, sn, qn};
+  Float16 zm_inputs_3[] = {qm, sm, sm, qn, sn};
+  uint64_t zd_expected_3[] = {sn_proc, sm_proc, sn_proc, sn_proc, sn_proc};
+  ProcessNaNsHelper(config,
+                    kHRegSize,
+                    zn_inputs_3,
+                    zm_inputs_3,
+                    zd_expected_3,
+                    StrictNaNPropagation);
+
+  Float16 za_inputs_4[] = {qa, qa, zero, zero, qa, qa};
+  Float16 zn_inputs_4[] = {qn, zero, zero, qn, qn, qn};
+  Float16 zm_inputs_4[] = {zero, qm, qm, qm, qm, zero};
+
+  // If `a` is propagated, its sign is inverted by fnmla and fnmls.
+  // If `n` is propagated, its sign is inverted by fmls and fnmla.
+  // If `m` is propagated, its sign is never inverted.
+  uint64_t zd_expected_fmla_4[] =
+      {qa_proc, qa_proc, qm_proc, qn_proc, qa_proc, qa_proc};
+  uint64_t zd_expected_fmls_4[] =
+      {qa_proc, qa_proc, qm_proc, qn_proc_n, qa_proc, qa_proc};
+  uint64_t zd_expected_fnmla_4[] =
+      {qa_proc_n, qa_proc_n, qm_proc, qn_proc_n, qa_proc_n, qa_proc_n};
+  uint64_t zd_expected_fnmls_4[] =
+      {qa_proc_n, qa_proc_n, qm_proc, qn_proc, qa_proc_n, qa_proc_n};
+
+  ProcessNaNsHelper3(config,
+                     kHRegSize,
+                     za_inputs_4,
+                     zn_inputs_4,
+                     zm_inputs_4,
+                     zd_expected_fmla_4,
+                     zd_expected_fmls_4,
+                     zd_expected_fnmla_4,
+                     zd_expected_fnmls_4,
+                     StrictNaNPropagation);
+
+  // Signalling NaNs take precedence over quiet NaNs.
+  Float16 za_inputs_5[] = {qa, qa, sa, sa, sa};
+  Float16 zn_inputs_5[] = {qn, sn, sn, sn, qn};
+  Float16 zm_inputs_5[] = {sm, qm, sm, qa, sm};
+  uint64_t zd_expected_fmla_5[] = {sm_proc, sn_proc, sa_proc, sa_proc, sa_proc};
+  uint64_t zd_expected_fmls_5[] = {sm_proc,
+                                   sn_proc_n,
+                                   sa_proc,
+                                   sa_proc,
+                                   sa_proc};
+  uint64_t zd_expected_fnmla_5[] = {sm_proc,
+                                    sn_proc_n,
+                                    sa_proc_n,
+                                    sa_proc_n,
+                                    sa_proc_n};
+  uint64_t zd_expected_fnmls_5[] = {sm_proc,
+                                    sn_proc,
+                                    sa_proc_n,
+                                    sa_proc_n,
+                                    sa_proc_n};
+
+  ProcessNaNsHelper3(config,
+                     kHRegSize,
+                     za_inputs_5,
+                     zn_inputs_5,
+                     zm_inputs_5,
+                     zd_expected_fmla_5,
+                     zd_expected_fmls_5,
+                     zd_expected_fnmla_5,
+                     zd_expected_fnmls_5,
+                     StrictNaNPropagation);
+
+  const Float16 inf = kFP16PositiveInfinity;
+  const Float16 inf_n = kFP16NegativeInfinity;
+  uint64_t inf_proc = Float16ToRawbits(inf);
+  uint64_t inf_proc_n = Float16ToRawbits(inf_n);
+  uint64_t d_inf_proc = Float16ToRawbits(kFP16DefaultNaN);
+
+  Float16 za_inputs_6[] = {qa, qa, zero, zero, qa, sa};
+  Float16 zn_inputs_6[] = {inf, zero, zero, inf, inf_n, inf};
+  Float16 zm_inputs_6[] = {zero, inf_n, inf, inf, inf, zero};
+
+  // quiet_nan + (0.0 * inf) produces the default NaN, not quiet_nan. Ditto for
+  // (inf * 0.0). On the other hand, quiet_nan + (inf * inf) propagates the
+  // quiet_nan.
+  uint64_t zd_expected_fmla_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc, qa_proc, sa_proc};
+  uint64_t zd_expected_fmls_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc_n, qa_proc, sa_proc};
+  uint64_t zd_expected_fnmla_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc_n, qa_proc_n, sa_proc_n};
+  uint64_t zd_expected_fnmls_6[] =
+      {d_inf_proc, d_inf_proc, d_inf_proc, inf_proc, qa_proc_n, sa_proc_n};
+
+  ProcessNaNsHelper3(config,
+                     kHRegSize,
+                     za_inputs_6,
+                     zn_inputs_6,
+                     zm_inputs_6,
+                     zd_expected_fmla_6,
+                     zd_expected_fmls_6,
+                     zd_expected_fnmla_6,
+                     zd_expected_fnmls_6,
+                     StrictNaNPropagation);
+}
+
+typedef void (MacroAssembler::*FCmpFn)(const PRegisterWithLaneSize& pd,
+                                       const PRegisterZ& pg,
+                                       const ZRegister& zn,
+                                       const ZRegister& zm);
+
+typedef void (MacroAssembler::*FCmpZeroFn)(const PRegisterWithLaneSize& pd,
+                                           const PRegisterZ& pg,
+                                           const ZRegister& zn,
+                                           double zero);
+
+typedef void (MacroAssembler::*CmpFn)(const PRegisterWithLaneSize& pd,
+                                      const PRegisterZ& pg,
+                                      const ZRegister& zn,
+                                      const ZRegister& zm);
+
+static FCmpFn GetFpAbsCompareFn(Condition cond) {
+  switch (cond) {
+    case ge:
+      return &MacroAssembler::Facge;
+    case gt:
+      return &MacroAssembler::Facgt;
+    case le:
+      return &MacroAssembler::Facle;
+    case lt:
+      return &MacroAssembler::Faclt;
+    default:
+      VIXL_UNIMPLEMENTED();
+      return NULL;
+  }
+}
+
+static FCmpFn GetFpCompareFn(Condition cond) {
+  switch (cond) {
+    case ge:
+      return &MacroAssembler::Fcmge;
+    case gt:
+      return &MacroAssembler::Fcmgt;
+    case le:
+      return &MacroAssembler::Fcmle;
+    case lt:
+      return &MacroAssembler::Fcmlt;
+    case eq:
+      return &MacroAssembler::Fcmeq;
+    case ne:
+      return &MacroAssembler::Fcmne;
+    case uo:
+      return &MacroAssembler::Fcmuo;
+    default:
+      VIXL_UNIMPLEMENTED();
+      return NULL;
+  }
+}
+
+static FCmpZeroFn GetFpCompareZeroFn(Condition cond) {
+  switch (cond) {
+    case ge:
+      return &MacroAssembler::Fcmge;
+    case gt:
+      return &MacroAssembler::Fcmgt;
+    case le:
+      return &MacroAssembler::Fcmle;
+    case lt:
+      return &MacroAssembler::Fcmlt;
+    case eq:
+      return &MacroAssembler::Fcmeq;
+    case ne:
+      return &MacroAssembler::Fcmne;
+    default:
+      VIXL_UNIMPLEMENTED();
+      return NULL;
+  }
+}
+
+static CmpFn GetIntCompareFn(Condition cond) {
+  switch (cond) {
+    case ge:
+      return &MacroAssembler::Cmpge;
+    case gt:
+      return &MacroAssembler::Cmpgt;
+    case le:
+      return &MacroAssembler::Cmple;
+    case lt:
+      return &MacroAssembler::Cmplt;
+    case eq:
+      return &MacroAssembler::Cmpeq;
+    case ne:
+      return &MacroAssembler::Cmpne;
+    default:
+      VIXL_UNIMPLEMENTED();
+      return NULL;
+  }
+}
+
+template <size_t N>
+static void TestFpCompareHelper(Test* config,
+                                int lane_size_in_bits,
+                                Condition cond,
+                                const double (&zn_inputs)[N],
+                                const double (&zm_inputs)[N],
+                                const int (&pd_expected)[N],
+                                bool is_absolute = false) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  ZRegister zt_int_1 = z1.WithLaneSize(lane_size_in_bits);
+  ZRegister zt_int_2 = z2.WithLaneSize(lane_size_in_bits);
+  ZRegister zt_int_3 = z3.WithLaneSize(lane_size_in_bits);
+  ZRegister zt_fp_1 = z11.WithLaneSize(lane_size_in_bits);
+  ZRegister zt_fp_2 = z12.WithLaneSize(lane_size_in_bits);
+  ZRegister zt_fp_3 = z13.WithLaneSize(lane_size_in_bits);
+  ZRegister fp_one = z31.WithLaneSize(lane_size_in_bits);
+
+  PRegisterWithLaneSize pd_result_int_1 = p15.WithLaneSize(lane_size_in_bits);
+  PRegisterWithLaneSize pd_result_fp_1 = p14.WithLaneSize(lane_size_in_bits);
+  PRegisterWithLaneSize pd_result_int_2 = p13.WithLaneSize(lane_size_in_bits);
+  PRegisterWithLaneSize pd_result_fp_2 = p12.WithLaneSize(lane_size_in_bits);
+
+  FCmpFn fcmp = is_absolute ? GetFpAbsCompareFn(cond) : GetFpCompareFn(cond);
+  __ Ptrue(p1.VnB());
+
+  if (cond != uo) {
+    int pg_inputs[] = {1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1};
+    Initialise(&masm, p0.WithLaneSize(lane_size_in_bits), pg_inputs);
+
+    __ Fdup(fp_one, 0.1f);
+
+    __ Index(zt_int_1, 3, 3);
+    __ Scvtf(zt_fp_1, p0.Merging(), zt_int_1);
+    __ Fadd(zt_fp_1, zt_fp_1, fp_one);
+
+    __ Index(zt_int_2, 3, -10);
+    __ Scvtf(zt_fp_2, p0.Merging(), zt_int_2);
+    __ Fadd(zt_fp_2, zt_fp_2, fp_one);
+
+    __ Index(zt_int_3, 3, 2);
+    __ Scvtf(zt_fp_3, p0.Merging(), zt_int_3);
+    __ Fadd(zt_fp_3, zt_fp_3, fp_one);
+
+
+    // There is no absolute comparison in integer type, use `abs` with `cmp<cc>`
+    // to synthesize the expected result for `fac<cc>`.
+    if (is_absolute == true) {
+      __ Abs(zt_int_2, p1.Merging(), zt_int_2);
+    }
+
+    CmpFn cmp = GetIntCompareFn(cond);
+    (masm.*cmp)(pd_result_int_1, p0.Zeroing(), zt_int_1, zt_int_2);
+    (masm.*fcmp)(pd_result_fp_1, p0.Zeroing(), zt_fp_1, zt_fp_2);
+
+    (masm.*cmp)(pd_result_int_2, p0.Zeroing(), zt_int_1, zt_int_3);
+    (masm.*fcmp)(pd_result_fp_2, p0.Zeroing(), zt_fp_1, zt_fp_3);
+  }
+
+  uint64_t zn_inputs_rawbits[N];
+  uint64_t zm_inputs_rawbits[N];
+  FPToRawbitsWithSize(zn_inputs, zn_inputs_rawbits, lane_size_in_bits);
+  FPToRawbitsWithSize(zm_inputs, zm_inputs_rawbits, lane_size_in_bits);
+
+  ZRegister zn_fp = z14.WithLaneSize(lane_size_in_bits);
+  ZRegister zm_fp = z15.WithLaneSize(lane_size_in_bits);
+  InsrHelper(&masm, zn_fp, zn_inputs_rawbits);
+  InsrHelper(&masm, zm_fp, zm_inputs_rawbits);
+
+  PRegisterWithLaneSize pd_result_fp_3 = p11.WithLaneSize(lane_size_in_bits);
+  (masm.*fcmp)(pd_result_fp_3, p1.Zeroing(), zn_fp, zm_fp);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    if (cond != uo) {
+      ASSERT_EQUAL_SVE(pd_result_int_1, pd_result_fp_1);
+      ASSERT_EQUAL_SVE(pd_result_int_2, pd_result_fp_2);
+    }
+    ASSERT_EQUAL_SVE(pd_expected, pd_result_fp_3);
+  }
+}
+
+TEST_SVE(sve_fp_compare_vectors) {
+  double inf_p = kFP64PositiveInfinity;
+  double inf_n = kFP64NegativeInfinity;
+  double nan = kFP64DefaultNaN;
+
+  // Normal floating point comparison has been tested in the helper.
+  double zn[] = {0.0, inf_n, 1.0, inf_p, inf_p, nan, 0.0, nan};
+  double zm[] = {-0.0, inf_n, inf_n, -2.0, inf_n, nan, nan, inf_p};
+
+  int pd_fcm_gt[] = {0, 0, 1, 1, 1, 0, 0, 0};
+  int pd_fcm_lt[] = {0, 0, 0, 0, 0, 0, 0, 0};
+  int pd_fcm_ge[] = {1, 1, 1, 1, 1, 0, 0, 0};
+  int pd_fcm_le[] = {1, 1, 0, 0, 0, 0, 0, 0};
+  int pd_fcm_eq[] = {1, 1, 0, 0, 0, 0, 0, 0};
+  int pd_fcm_ne[] = {0, 0, 1, 1, 1, 1, 1, 1};
+  int pd_fcm_uo[] = {0, 0, 0, 0, 0, 1, 1, 1};
+  int pd_fac_gt[] = {0, 0, 0, 1, 0, 0, 0, 0};
+  int pd_fac_lt[] = {0, 0, 1, 0, 0, 0, 0, 0};
+  int pd_fac_ge[] = {1, 1, 0, 1, 1, 0, 0, 0};
+  int pd_fac_le[] = {1, 1, 1, 0, 1, 0, 0, 0};
+
+  int lane_sizes[] = {kHRegSize, kSRegSize, kDRegSize};
+
+  for (size_t i = 0; i < ArrayLength(lane_sizes); i++) {
+    int lane_size = lane_sizes[i];
+    // Test floating-point compare vectors.
+    TestFpCompareHelper(config, lane_size, gt, zn, zm, pd_fcm_gt);
+    TestFpCompareHelper(config, lane_size, lt, zn, zm, pd_fcm_lt);
+    TestFpCompareHelper(config, lane_size, ge, zn, zm, pd_fcm_ge);
+    TestFpCompareHelper(config, lane_size, le, zn, zm, pd_fcm_le);
+    TestFpCompareHelper(config, lane_size, eq, zn, zm, pd_fcm_eq);
+    TestFpCompareHelper(config, lane_size, ne, zn, zm, pd_fcm_ne);
+    TestFpCompareHelper(config, lane_size, uo, zn, zm, pd_fcm_uo);
+
+    // Test floating-point absolute compare vectors.
+    TestFpCompareHelper(config, lane_size, gt, zn, zm, pd_fac_gt, true);
+    TestFpCompareHelper(config, lane_size, lt, zn, zm, pd_fac_lt, true);
+    TestFpCompareHelper(config, lane_size, ge, zn, zm, pd_fac_ge, true);
+    TestFpCompareHelper(config, lane_size, le, zn, zm, pd_fac_le, true);
+  }
+}
+
+template <size_t N, typename T>
+static void TestFpCompareZeroHelper(Test* config,
+                                    int lane_size_in_bits,
+                                    Condition cond,
+                                    const T (&zn_inputs)[N],
+                                    const int (&pd_expected)[N]) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  ZRegister zn = z28.WithLaneSize(lane_size_in_bits);
+  PRegisterWithLaneSize pd = p14.WithLaneSize(lane_size_in_bits);
+
+  uint64_t zn_rawbits[N];
+  FPToRawbitsWithSize(zn_inputs, zn_rawbits, lane_size_in_bits);
+  InsrHelper(&masm, zn, zn_rawbits);
+
+  __ Ptrue(p0.VnB());
+  (masm.*GetFpCompareZeroFn(cond))(pd, p0.Zeroing(), zn, 0.0);
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(pd_expected, pd);
+  }
+}
+
+TEST_SVE(sve_fp_compare_vector_zero) {
+  Float16 fp16_inf_p = kFP16PositiveInfinity;
+  Float16 fp16_inf_n = kFP16NegativeInfinity;
+  Float16 fp16_dn = kFP16DefaultNaN;
+  Float16 fp16_sn = RawbitsToFloat16(0x7c22);
+  Float16 fp16_qn = RawbitsToFloat16(0x7e55);
+
+  float fp32_inf_p = kFP32PositiveInfinity;
+  float fp32_inf_n = kFP32NegativeInfinity;
+  float fp32_dn = kFP32DefaultNaN;
+  float fp32_sn = RawbitsToFloat(0x7f952222);
+  float fp32_qn = RawbitsToFloat(0x7fea2222);
+
+  double fp64_inf_p = kFP64PositiveInfinity;
+  double fp64_inf_n = kFP64NegativeInfinity;
+  double fp64_dn = kFP64DefaultNaN;
+  double fp64_sn = RawbitsToDouble(0x7ff5555511111111);
+  double fp64_qn = RawbitsToDouble(0x7ffaaaaa11111111);
+
+  // Normal floating point comparison has been tested in the non-zero form.
+  Float16 zn_inputs_h[] = {Float16(0.0),
+                           Float16(-0.0),
+                           fp16_inf_p,
+                           fp16_inf_n,
+                           fp16_dn,
+                           fp16_sn,
+                           fp16_qn};
+  float zn_inputs_s[] =
+      {0.0, -0.0, fp32_inf_p, fp32_inf_n, fp32_dn, fp32_sn, fp32_qn};
+  double zn_inputs_d[] =
+      {0.0, -0.0, fp64_inf_p, fp64_inf_n, fp64_dn, fp64_sn, fp64_qn};
+
+  int pd_expected_gt[] = {0, 0, 1, 0, 0, 0, 0};
+  int pd_expected_lt[] = {0, 0, 0, 1, 0, 0, 0};
+  int pd_expected_ge[] = {1, 1, 1, 0, 0, 0, 0};
+  int pd_expected_le[] = {1, 1, 0, 1, 0, 0, 0};
+  int pd_expected_eq[] = {1, 1, 0, 0, 0, 0, 0};
+  int pd_expected_ne[] = {0, 0, 1, 1, 1, 1, 1};
+
+  TestFpCompareZeroHelper(config, kDRegSize, gt, zn_inputs_d, pd_expected_gt);
+  TestFpCompareZeroHelper(config, kDRegSize, lt, zn_inputs_d, pd_expected_lt);
+  TestFpCompareZeroHelper(config, kDRegSize, ge, zn_inputs_d, pd_expected_ge);
+  TestFpCompareZeroHelper(config, kDRegSize, le, zn_inputs_d, pd_expected_le);
+  TestFpCompareZeroHelper(config, kDRegSize, eq, zn_inputs_d, pd_expected_eq);
+  TestFpCompareZeroHelper(config, kDRegSize, ne, zn_inputs_d, pd_expected_ne);
+
+  TestFpCompareZeroHelper(config, kSRegSize, gt, zn_inputs_s, pd_expected_gt);
+  TestFpCompareZeroHelper(config, kSRegSize, lt, zn_inputs_s, pd_expected_lt);
+  TestFpCompareZeroHelper(config, kSRegSize, ge, zn_inputs_s, pd_expected_ge);
+  TestFpCompareZeroHelper(config, kSRegSize, le, zn_inputs_s, pd_expected_le);
+  TestFpCompareZeroHelper(config, kSRegSize, eq, zn_inputs_s, pd_expected_eq);
+  TestFpCompareZeroHelper(config, kSRegSize, ne, zn_inputs_s, pd_expected_ne);
+
+  TestFpCompareZeroHelper(config, kHRegSize, gt, zn_inputs_h, pd_expected_gt);
+  TestFpCompareZeroHelper(config, kHRegSize, lt, zn_inputs_h, pd_expected_lt);
+  TestFpCompareZeroHelper(config, kHRegSize, ge, zn_inputs_h, pd_expected_ge);
+  TestFpCompareZeroHelper(config, kHRegSize, le, zn_inputs_h, pd_expected_le);
+  TestFpCompareZeroHelper(config, kHRegSize, eq, zn_inputs_h, pd_expected_eq);
+  TestFpCompareZeroHelper(config, kHRegSize, ne, zn_inputs_h, pd_expected_ne);
+}
+
+typedef void (MacroAssembler::*FPUnaryMFn)(const ZRegister& zd,
+                                           const PRegisterM& pg,
+                                           const ZRegister& zn);
+
+typedef void (MacroAssembler::*FPUnaryZFn)(const ZRegister& zd,
+                                           const PRegisterZ& pg,
+                                           const ZRegister& zn);
+
+template <size_t N, size_t M>
+static void TestFPUnaryPredicatedHelper(Test* config,
+                                        int src_size_in_bits,
+                                        int dst_size_in_bits,
+                                        uint64_t (&zn_inputs)[N],
+                                        const uint64_t (&pg_inputs)[M],
+                                        const uint64_t (&zd_expected)[N],
+                                        FPUnaryMFn macro_m,
+                                        FPUnaryZFn macro_z) {
+  // Provide the full predicate input.
+  VIXL_ASSERT(M == (kPRegMaxSize / kDRegSize));
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  int ds = dst_size_in_bits;
+  int ss = src_size_in_bits;
+  int ls = std::max(ss, ds);
+
+  // When destination type is larger than source type, fill the high parts with
+  // noise values, which should be ignored.
+  if (ds > ss) {
+    VIXL_ASSERT(ss < 64);
+    uint64_t zn_inputs_mod[N];
+    uint64_t sn = GetSignallingNan(ss);
+    for (unsigned i = 0; i < N; i++) {
+      zn_inputs_mod[i] = zn_inputs[i] | ((sn + i) << ss);
+    }
+    InsrHelper(&masm, z29.WithLaneSize(ls), zn_inputs_mod);
+  } else {
+    InsrHelper(&masm, z29.WithLaneSize(ls), zn_inputs);
+  }
+
+  // Make a copy so we can check that constructive operations preserve zn.
+  __ Mov(z28, z29);
+
+  // Run the operation on all lanes.
+  __ Ptrue(p0.WithLaneSize(ls));
+  (masm.*macro_m)(z27.WithLaneSize(ds), p0.Merging(), z28.WithLaneSize(ss));
+
+  Initialise(&masm,
+             p1.VnB(),
+             pg_inputs[3],
+             pg_inputs[2],
+             pg_inputs[1],
+             pg_inputs[0]);
+
+  // Clear the irrelevant lanes.
+  __ Index(z31.WithLaneSize(ls), 0, 1);
+  __ Cmplt(p1.WithLaneSize(ls), p1.Zeroing(), z31.WithLaneSize(ls), N);
+
+  // Check merging predication.
+  __ Index(z11.WithLaneSize(ls), 42, 1);
+  // Preserve the base value so we can derive the expected result.
+  __ Mov(z21, z11);
+  __ Mov(z9, z11);
+  (masm.*macro_m)(z11.WithLaneSize(ds), p1.Merging(), z28.WithLaneSize(ss));
+
+  // Generate expected values using explicit merging operations.
+  InsrHelper(&masm, z25.WithLaneSize(ls), zd_expected);
+  __ Mov(z21.WithLaneSize(ls), p1.Merging(), z25.WithLaneSize(ls));
+
+  // Check zeroing predication.
+  __ Index(z12.WithLaneSize(ds), 42, -1);
+  (masm.*macro_z)(z12.WithLaneSize(ds), p1.Zeroing(), z28.WithLaneSize(ss));
+
+  // Generate expected values using explicit zeroing operations.
+  InsrHelper(&masm, z30.WithLaneSize(ls), zd_expected);
+  // Emulate zeroing predication.
+  __ Dup(z22.WithLaneSize(ls), 0);
+  __ Mov(z22.WithLaneSize(ls), p1.Merging(), z30.WithLaneSize(ls));
+
+  // Check an in-place update.
+  __ Mov(z9.WithLaneSize(ls), p1.Merging(), z28.WithLaneSize(ls));
+  (masm.*macro_m)(z9.WithLaneSize(ds), p1.Merging(), z9.WithLaneSize(ss));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    // Check all lanes.
+    ASSERT_EQUAL_SVE(zd_expected, z27.WithLaneSize(ls));
+
+    // Check that constructive operations preserve their inputs.
+    ASSERT_EQUAL_SVE(z28, z29);
+
+    // Check merging predication.
+    ASSERT_EQUAL_SVE(z21.WithLaneSize(ls), z21.WithLaneSize(ls));
+
+    // Check zeroing predication.
+    ASSERT_EQUAL_SVE(z22.WithLaneSize(ls), z12.WithLaneSize(ls));
+
+    // Check in-place operation where zd == zn.
+    ASSERT_EQUAL_SVE(z21.WithLaneSize(ls), z9.WithLaneSize(ls));
+  }
+}
+
+template <size_t N, typename T>
+static void TestFPUnaryPredicatedHelper(Test* config,
+                                        int src_size_in_bits,
+                                        int dst_size_in_bits,
+                                        T (&zn_inputs)[N],
+                                        const T (&zd_expected)[N],
+                                        FPUnaryMFn macro_m,
+                                        FPUnaryZFn macro_z) {
+  uint64_t pg_inputs[] = {0xa55aa55aa55aa55a,
+                          0xa55aa55aa55aa55a,
+                          0xa55aa55aa55aa55a,
+                          0xa55aa55aa55aa55a};
+
+  TestFPUnaryPredicatedHelper(config,
+                              src_size_in_bits,
+                              dst_size_in_bits,
+                              zn_inputs,
+                              pg_inputs,
+                              zd_expected,
+                              macro_m,
+                              macro_z);
+
+  // The complementary of above precicate to get full input coverage.
+  uint64_t pg_c_inputs[] = {0x5aa55aa55aa55aa5,
+                            0x5aa55aa55aa55aa5,
+                            0x5aa55aa55aa55aa5,
+                            0x5aa55aa55aa55aa5};
+
+  TestFPUnaryPredicatedHelper(config,
+                              src_size_in_bits,
+                              dst_size_in_bits,
+                              zn_inputs,
+                              pg_c_inputs,
+                              zd_expected,
+                              macro_m,
+                              macro_z);
+}
+
+template <size_t N, typename T>
+static void TestFcvtHelper(Test* config,
+                           int src_size_in_bits,
+                           int dst_size_in_bits,
+                           T (&zn_inputs)[N],
+                           const T (&zd_expected)[N]) {
+  TestFPUnaryPredicatedHelper(config,
+                              src_size_in_bits,
+                              dst_size_in_bits,
+                              zn_inputs,
+                              zd_expected,
+                              &MacroAssembler::Fcvt,   // Merging form.
+                              &MacroAssembler::Fcvt);  // Zerging form.
+}
+
+TEST_SVE(sve_fcvt) {
+  uint64_t h_vals[] = {0x7c00,
+                       0xfc00,
+                       0,
+                       0x8000,
+                       0x7bff,   // Max half precision.
+                       0x0400,   // Min positive normal.
+                       0x03ff,   // Max subnormal.
+                       0x0001};  // Min positive subnormal.
+
+  uint64_t s_vals[] = {0x7f800000,
+                       0xff800000,
+                       0,
+                       0x80000000,
+                       0x477fe000,
+                       0x38800000,
+                       0x387fc000,
+                       0x33800000};
+
+  uint64_t d_vals[] = {0x7ff0000000000000,
+                       0xfff0000000000000,
+                       0,
+                       0x8000000000000000,
+                       0x40effc0000000000,
+                       0x3f10000000000000,
+                       0x3f0ff80000000000,
+                       0x3e70000000000000};
+
+  TestFcvtHelper(config, kHRegSize, kSRegSize, h_vals, s_vals);
+  TestFcvtHelper(config, kSRegSize, kHRegSize, s_vals, h_vals);
+  TestFcvtHelper(config, kSRegSize, kDRegSize, s_vals, d_vals);
+  TestFcvtHelper(config, kDRegSize, kSRegSize, d_vals, s_vals);
+  TestFcvtHelper(config, kHRegSize, kDRegSize, h_vals, d_vals);
+  TestFcvtHelper(config, kDRegSize, kHRegSize, d_vals, h_vals);
+}
+
+TEST_SVE(sve_fcvt_nan) {
+  uint64_t h_inputs[] = {0x7e55,   // Quiet NaN.
+                         0x7c22};  // Signalling NaN.
+
+  uint64_t h2s_expected[] = {0x7fcaa000, 0x7fc44000};
+
+  uint64_t h2d_expected[] = {0x7ff9540000000000, 0x7ff8880000000000};
+
+  uint64_t s_inputs[] = {0x7fc12345,   // Quiet NaN.
+                         0x7f812345};  // Signalling NaN.
+
+  uint64_t s2h_expected[] = {0x7e09, 0x7e09};
+
+  uint64_t s2d_expected[] = {0x7ff82468a0000000, 0x7ff82468a0000000};
+
+  uint64_t d_inputs[] = {0x7ffaaaaa22222222,   // Quiet NaN.
+                         0x7ff5555511111111};  // Signalling NaN.
+
+  uint64_t d2h_expected[] = {0x7eaa, 0x7f55};
+
+  uint64_t d2s_expected[] = {0x7fd55551, 0x7feaaaa8};
+
+  TestFcvtHelper(config, kHRegSize, kSRegSize, h_inputs, h2s_expected);
+  TestFcvtHelper(config, kSRegSize, kHRegSize, s_inputs, s2h_expected);
+  TestFcvtHelper(config, kHRegSize, kDRegSize, h_inputs, h2d_expected);
+  TestFcvtHelper(config, kDRegSize, kHRegSize, d_inputs, d2h_expected);
+  TestFcvtHelper(config, kSRegSize, kDRegSize, s_inputs, s2d_expected);
+  TestFcvtHelper(config, kDRegSize, kSRegSize, d_inputs, d2s_expected);
+}
+
+template <size_t N, typename T>
+static void TestFrecpxHelper(Test* config,
+                             int lane_size_in_bits,
+                             T (&zn_inputs)[N],
+                             const T (&zd_expected)[N]) {
+  TestFPUnaryPredicatedHelper(config,
+                              lane_size_in_bits,
+                              lane_size_in_bits,
+                              zn_inputs,
+                              zd_expected,
+                              &MacroAssembler::Frecpx,   // Merging form.
+                              &MacroAssembler::Frecpx);  // Zerging form.
+}
+
+TEST_SVE(sve_frecpx_h) {
+  uint64_t zn_inputs[] = {Float16ToRawbits(kFP16PositiveInfinity),
+                          Float16ToRawbits(kFP16NegativeInfinity),
+                          Float16ToRawbits(Float16(0.0)),
+                          Float16ToRawbits(Float16(-0.0)),
+                          0x0001,   // Smallest positive subnormal number.
+                          0x03ff,   // Largest subnormal number.
+                          0x0400,   // Smallest positive normal number.
+                          0x7bff,   // Largest normal number.
+                          0x3bff,   // Largest number less than one.
+                          0x3c01,   // Smallest number larger than one.
+                          0x7c22,   // Signalling NaN.
+                          0x7e55};  // Quiet NaN.
+
+  uint64_t zd_expected[] = {0,
+                            0x8000,
+                            0x7800,
+                            0xf800,
+                            // Exponent of subnormal numbers are zero.
+                            0x7800,
+                            0x7800,
+                            0x7800,
+                            0x0400,
+                            0x4400,
+                            0x4000,
+                            0x7e22,  // To quiet NaN.
+                            0x7e55};
+
+  TestFrecpxHelper(config, kHRegSize, zn_inputs, zd_expected);
+}
+
+TEST_SVE(sve_frecpx_s) {
+  uint64_t zn_inputs[] = {FloatToRawbits(kFP32PositiveInfinity),
+                          FloatToRawbits(kFP32NegativeInfinity),
+                          FloatToRawbits(65504),       // Max half precision.
+                          FloatToRawbits(6.10352e-5),  // Min positive normal.
+                          FloatToRawbits(6.09756e-5),  // Max subnormal.
+                          FloatToRawbits(
+                              5.96046e-8),       // Min positive subnormal.
+                          FloatToRawbits(5e-9),  // Not representable -> zero.
+                          FloatToRawbits(-0.0),
+                          FloatToRawbits(0.0),
+                          0x7f952222,   // Signalling NaN.
+                          0x7fea2222};  // Quiet NaN;
+
+  uint64_t zd_expected[] = {0,           // 0.0
+                            0x80000000,  // -0.0
+                            0x38800000,  // 6.10352e-05
+                            0x47000000,  // 32768
+                            0x47800000,  // 65536
+                            0x4c800000,  // 6.71089e+07
+                            0x4e000000,  // 5.36871e+08
+                            0xff000000,  // -1.70141e+38
+                            0x7f000000,  // 1.70141e+38
+                            0x7fd52222,
+                            0x7fea2222};
+
+  TestFrecpxHelper(config, kSRegSize, zn_inputs, zd_expected);
+}
+
+TEST_SVE(sve_frecpx_d) {
+  uint64_t zn_inputs[] = {DoubleToRawbits(kFP64PositiveInfinity),
+                          DoubleToRawbits(kFP64NegativeInfinity),
+                          DoubleToRawbits(65504),       // Max half precision.
+                          DoubleToRawbits(6.10352e-5),  // Min positive normal.
+                          DoubleToRawbits(6.09756e-5),  // Max subnormal.
+                          DoubleToRawbits(
+                              5.96046e-8),        // Min positive subnormal.
+                          DoubleToRawbits(5e-9),  // Not representable -> zero.
+                          DoubleToRawbits(-0.0),
+                          DoubleToRawbits(0.0),
+                          0x7ff5555511111111,   // Signalling NaN.
+                          0x7ffaaaaa11111111};  // Quiet NaN;
+
+  uint64_t zd_expected[] = {0,                   // 0.0
+                            0x8000000000000000,  // -0.0
+                            0x3f10000000000000,  // 6.10352e-05
+                            0x40e0000000000000,  // 32768
+                            0x40f0000000000000,  // 65536
+                            0x4190000000000000,  // 6.71089e+07
+                            0x41c0000000000000,  // 5.36871e+08
+                            0xffe0000000000000,  // -1.70141e+38
+                            0x7fe0000000000000,  // 1.70141e+38
+                            0x7ffd555511111111,
+                            0x7ffaaaaa11111111};
+
+  TestFrecpxHelper(config, kDRegSize, zn_inputs, zd_expected);
+}
+
+template <size_t N, typename T>
+static void TestFsqrtHelper(Test* config,
+                            int lane_size_in_bits,
+                            T (&zn_inputs)[N],
+                            const T (&zd_expected)[N]) {
+  TestFPUnaryPredicatedHelper(config,
+                              lane_size_in_bits,
+                              lane_size_in_bits,
+                              zn_inputs,
+                              zd_expected,
+                              &MacroAssembler::Fsqrt,   // Merging form.
+                              &MacroAssembler::Fsqrt);  // Zerging form.
+}
+
+TEST_SVE(sve_fsqrt_h) {
+  uint64_t zn_inputs[] =
+      {Float16ToRawbits(Float16(0.0)),
+       Float16ToRawbits(Float16(-0.0)),
+       Float16ToRawbits(Float16(1.0)),
+       Float16ToRawbits(Float16(65025.0)),
+       Float16ToRawbits(kFP16PositiveInfinity),
+       Float16ToRawbits(kFP16NegativeInfinity),
+       Float16ToRawbits(Float16(6.10352e-5)),  // Min normal positive.
+       Float16ToRawbits(Float16(65504.0)),     // Max normal positive float.
+       Float16ToRawbits(Float16(6.09756e-5)),  // Max subnormal.
+       Float16ToRawbits(Float16(5.96046e-8)),  // Min subnormal positive.
+       0x7c22,                                 // Signaling NaN
+       0x7e55};                                // Quiet NaN
+
+  uint64_t zd_expected[] = {Float16ToRawbits(Float16(0.0)),
+                            Float16ToRawbits(Float16(-0.0)),
+                            Float16ToRawbits(Float16(1.0)),
+                            Float16ToRawbits(Float16(255.0)),
+                            Float16ToRawbits(kFP16PositiveInfinity),
+                            Float16ToRawbits(kFP16DefaultNaN),
+                            0x2000,
+                            0x5bff,
+                            0x1fff,
+                            0x0c00,
+                            0x7e22,  // To quiet NaN.
+                            0x7e55};
+
+  TestFsqrtHelper(config, kHRegSize, zn_inputs, zd_expected);
+}
+
+TEST_SVE(sve_fsqrt_s) {
+  uint64_t zn_inputs[] = {FloatToRawbits(0.0f),
+                          FloatToRawbits(-0.0f),
+                          FloatToRawbits(1.0f),
+                          FloatToRawbits(65536.0f),
+                          FloatToRawbits(kFP32PositiveInfinity),
+                          FloatToRawbits(kFP32NegativeInfinity),
+                          0x00800000,   // Min normal positive, ~1.17e−38
+                          0x7f7fffff,   // Max normal positive, ~3.40e+38
+                          0x00000001,   // Min subnormal positive, ~1.40e−45
+                          0x007fffff,   // Max subnormal, ~1.17e−38
+                          0x7f951111,   // Signaling NaN
+                          0x7fea1111};  // Quiet NaN
+
+  uint64_t zd_expected[] = {FloatToRawbits(0.0f),
+                            FloatToRawbits(-0.0f),
+                            FloatToRawbits(1.0f),
+                            FloatToRawbits(256.0f),
+                            FloatToRawbits(kFP32PositiveInfinity),
+                            FloatToRawbits(kFP32DefaultNaN),
+                            0x20000000,  // ~1.08e-19
+                            0x5f7fffff,  // ~1.84e+19
+                            0x1a3504f3,  // ~3.74e-23
+                            0x1fffffff,  // ~1.08e-19
+                            0x7fd51111,  // To quiet NaN.
+                            0x7fea1111};
+
+  TestFsqrtHelper(config, kSRegSize, zn_inputs, zd_expected);
+}
+
+TEST_SVE(sve_fsqrt_d) {
+  uint64_t zn_inputs[] =
+      {DoubleToRawbits(0.0),
+       DoubleToRawbits(-0.0),
+       DoubleToRawbits(1.0),
+       DoubleToRawbits(65536.0),
+       DoubleToRawbits(kFP64PositiveInfinity),
+       DoubleToRawbits(kFP64NegativeInfinity),
+       0x0010000000000000,  // Min normal positive, ~2.22e-308
+       0x7fefffffffffffff,  // Max normal positive, ~1.79e+308
+       0x0000000000000001,  // Min subnormal positive, 5e-324
+       0x000fffffffffffff,  // Max subnormal, ~2.22e-308
+       0x7ff5555511111111,
+       0x7ffaaaaa11111111};
+
+  uint64_t zd_expected[] = {DoubleToRawbits(0.0),
+                            DoubleToRawbits(-0.0),
+                            DoubleToRawbits(1.0),
+                            DoubleToRawbits(256.0),
+                            DoubleToRawbits(kFP64PositiveInfinity),
+                            DoubleToRawbits(kFP64DefaultNaN),
+                            0x2000000000000000,  // ~1.49e-154
+                            0x5fefffffffffffff,  // ~1.34e+154
+                            0x1e60000000000000,  // ~2.22e-162
+                            0x1fffffffffffffff,  // ~1.49e-154
+                            0x7ffd555511111111,  // To quiet NaN.
+                            0x7ffaaaaa11111111};
+
+  TestFsqrtHelper(config, kDRegSize, zn_inputs, zd_expected);
+}
+
+TEST_SVE(sve_adr) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  __ Index(z0.VnD(), 0x10000000f0000000, 0x1000);
+  __ Index(z1.VnD(), 1, 3);
+  __ Index(z2.VnS(), -1, -1);
+  __ Adr(z3.VnD(), SVEMemOperand(z0.VnD(), z1.VnD()));
+  __ Adr(z4.VnD(), SVEMemOperand(z0.VnD(), z1.VnD(), LSL, 1));
+  __ Adr(z5.VnD(), SVEMemOperand(z0.VnD(), z1.VnD(), LSL, 2));
+  __ Adr(z6.VnD(), SVEMemOperand(z0.VnD(), z1.VnD(), LSL, 3));
+  __ Adr(z7.VnD(), SVEMemOperand(z0.VnD(), z2.VnD(), UXTW));
+  __ Adr(z8.VnD(), SVEMemOperand(z0.VnD(), z2.VnD(), UXTW, 1));
+  __ Adr(z9.VnD(), SVEMemOperand(z0.VnD(), z2.VnD(), UXTW, 2));
+  __ Adr(z10.VnD(), SVEMemOperand(z0.VnD(), z2.VnD(), UXTW, 3));
+  __ Adr(z11.VnD(), SVEMemOperand(z0.VnD(), z2.VnD(), SXTW));
+  __ Adr(z12.VnD(), SVEMemOperand(z0.VnD(), z2.VnD(), SXTW, 1));
+  __ Adr(z13.VnD(), SVEMemOperand(z0.VnD(), z2.VnD(), SXTW, 2));
+  __ Adr(z14.VnD(), SVEMemOperand(z0.VnD(), z2.VnD(), SXTW, 3));
+  __ Adr(z15.VnS(), SVEMemOperand(z0.VnS(), z2.VnS()));
+  __ Adr(z16.VnS(), SVEMemOperand(z0.VnS(), z2.VnS(), LSL, 1));
+  __ Adr(z17.VnS(), SVEMemOperand(z0.VnS(), z2.VnS(), LSL, 2));
+  __ Adr(z18.VnS(), SVEMemOperand(z0.VnS(), z2.VnS(), LSL, 3));
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+    uint64_t expected_z3[] = {0x10000000f0001004, 0x10000000f0000001};
+    uint64_t expected_z4[] = {0x10000000f0001008, 0x10000000f0000002};
+    uint64_t expected_z5[] = {0x10000000f0001010, 0x10000000f0000004};
+    uint64_t expected_z6[] = {0x10000000f0001020, 0x10000000f0000008};
+    uint64_t expected_z7[] = {0x10000001f0000ffd, 0x10000001efffffff};
+    uint64_t expected_z8[] = {0x10000002f0000ffa, 0x10000002effffffe};
+    uint64_t expected_z9[] = {0x10000004f0000ff4, 0x10000004effffffc};
+    uint64_t expected_z10[] = {0x10000008f0000fe8, 0x10000008effffff8};
+    uint64_t expected_z11[] = {0x10000000f0000ffd, 0x10000000efffffff};
+    uint64_t expected_z12[] = {0x10000000f0000ffa, 0x10000000effffffe};
+    uint64_t expected_z13[] = {0x10000000f0000ff4, 0x10000000effffffc};
+    uint64_t expected_z14[] = {0x10000000f0000fe8, 0x10000000effffff8};
+    uint64_t expected_z15[] = {0x0ffffffcf0000ffd, 0x0ffffffeefffffff};
+    uint64_t expected_z16[] = {0x0ffffff8f0000ffa, 0x0ffffffceffffffe};
+    uint64_t expected_z17[] = {0x0ffffff0f0000ff4, 0x0ffffff8effffffc};
+    uint64_t expected_z18[] = {0x0fffffe0f0000fe8, 0x0ffffff0effffff8};
+
+    ASSERT_EQUAL_SVE(expected_z3, z3.VnD());
+    ASSERT_EQUAL_SVE(expected_z4, z4.VnD());
+    ASSERT_EQUAL_SVE(expected_z5, z5.VnD());
+    ASSERT_EQUAL_SVE(expected_z6, z6.VnD());
+    ASSERT_EQUAL_SVE(expected_z7, z7.VnD());
+    ASSERT_EQUAL_SVE(expected_z8, z8.VnD());
+    ASSERT_EQUAL_SVE(expected_z9, z9.VnD());
+    ASSERT_EQUAL_SVE(expected_z10, z10.VnD());
+    ASSERT_EQUAL_SVE(expected_z11, z11.VnD());
+    ASSERT_EQUAL_SVE(expected_z12, z12.VnD());
+    ASSERT_EQUAL_SVE(expected_z13, z13.VnD());
+    ASSERT_EQUAL_SVE(expected_z14, z14.VnD());
+    ASSERT_EQUAL_SVE(expected_z15, z15.VnD());
+    ASSERT_EQUAL_SVE(expected_z16, z16.VnD());
+    ASSERT_EQUAL_SVE(expected_z17, z17.VnD());
+    ASSERT_EQUAL_SVE(expected_z18, z18.VnD());
+  }
+}
+
+// Test loads and broadcast by comparing them with the result of a set of
+// equivalent scalar loads.
+template <typename F>
+static void LoadBcastHelper(Test* config,
+                            unsigned msize_in_bits,
+                            unsigned esize_in_bits,
+                            F sve_ld1,
+                            bool is_signed) {
+  VIXL_ASSERT((esize_in_bits == kBRegSize) || (esize_in_bits == kHRegSize) ||
+              (esize_in_bits == kSRegSize) || (esize_in_bits == kDRegSize));
+  static const unsigned kMaxLaneCount = kZRegMaxSize / kBRegSize;
+
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+  START();
+
+  unsigned msize_in_bytes = msize_in_bits / kBitsPerByte;
+  unsigned esize_in_bytes = esize_in_bits / kBitsPerByte;
+  int vl = config->sve_vl_in_bytes();
+
+  uint64_t offsets[kMaxLaneCount];
+  uint64_t buffer_size = vl * 64;
+  uint64_t data = reinterpret_cast<uintptr_t>(malloc(buffer_size));
+  BufferFillingHelper(data,
+                      buffer_size,
+                      msize_in_bytes,
+                      kMaxLaneCount,
+                      offsets);
+
+  for (unsigned i = 0; i < (kMaxLaneCount / 2); i++) {
+    // Assign encodable offsets into the first part of the offset array so
+    // that both encodable and unencodable offset can be tested.
+    // Note that the encoding bit range of immediate offset is 6 bits.
+    offsets[i] = (offsets[i] % (UINT64_C(1) << 6)) * msize_in_bytes;
+  }
+
+  ZRegister zn = z0.WithLaneSize(esize_in_bits);
+  ZRegister zn_ref = z4.WithLaneSize(esize_in_bits);
+
+  PRegisterZ pg = p0.Zeroing();
+  Initialise(&masm,
+             pg,
+             0x9abcdef012345678,
+             0xabcdef0123456789,
+             0xf4f3f1f0fefdfcfa,
+             0xf9f8f6f5f3f2f0ff);
+
+  __ Mov(x2, data);
+  uint64_t enablable_offset = offsets[0];
+  // Simple check if the operation correct in a single offset.
+  (masm.*sve_ld1)(zn, pg, SVEMemOperand(x2, enablable_offset));
+
+  // Generate a reference result using scalar loads.
+  uint64_t address = data + enablable_offset;
+  uint64_t duplicated_addresses[kMaxLaneCount];
+  for (unsigned i = 0; i < kMaxLaneCount; i++) {
+    duplicated_addresses[i] = address;
+  }
+
+  ScalarLoadHelper(&masm,
+                   vl,
+                   duplicated_addresses,
+                   zn_ref,
+                   pg,
+                   esize_in_bits,
+                   msize_in_bits,
+                   is_signed);
+
+  ZRegister zn_agg = z10.WithLaneSize(esize_in_bits);
+  ZRegister zn_agg_ref = z11.WithLaneSize(esize_in_bits);
+  ZRegister zn_temp = z12.WithLaneSize(esize_in_bits);
+
+  __ Dup(zn_agg, 0);
+  __ Dup(zn_agg_ref, 0);
+
+  // Check if the operation correct in different offsets.
+  for (unsigned i = 0; i < (vl / esize_in_bytes); i++) {
+    (masm.*sve_ld1)(zn_temp, pg, SVEMemOperand(x2, offsets[i]));
+    __ Lastb(x1, pg, zn_temp);
+    __ Insr(zn_agg, x1);
+
+    __ Mov(x3, data + offsets[i]);
+    ScalarLoadHelper(&masm, x1, x3, msize_in_bits, is_signed);
+    __ Insr(zn_agg_ref, x1);
+  }
+
+  END();
+
+  if (CAN_RUN()) {
+    RUN();
+
+    ASSERT_EQUAL_SVE(zn_ref, zn);
+    ASSERT_EQUAL_SVE(zn_agg_ref, zn_agg);
+  }
+
+  free(reinterpret_cast<void*>(data));
+}
+
+TEST_SVE(sve_ld1rb) {
+  LoadBcastHelper(config, kBRegSize, kBRegSize, &MacroAssembler::Ld1rb, false);
+  LoadBcastHelper(config, kBRegSize, kHRegSize, &MacroAssembler::Ld1rb, false);
+  LoadBcastHelper(config, kBRegSize, kSRegSize, &MacroAssembler::Ld1rb, false);
+  LoadBcastHelper(config, kBRegSize, kDRegSize, &MacroAssembler::Ld1rb, false);
+}
+
+TEST_SVE(sve_ld1rh) {
+  LoadBcastHelper(config, kHRegSize, kHRegSize, &MacroAssembler::Ld1rh, false);
+  LoadBcastHelper(config, kHRegSize, kSRegSize, &MacroAssembler::Ld1rh, false);
+  LoadBcastHelper(config, kHRegSize, kDRegSize, &MacroAssembler::Ld1rh, false);
+}
+
+TEST_SVE(sve_ld1rw) {
+  LoadBcastHelper(config, kSRegSize, kSRegSize, &MacroAssembler::Ld1rw, false);
+  LoadBcastHelper(config, kSRegSize, kDRegSize, &MacroAssembler::Ld1rw, false);
+}
+
+TEST_SVE(sve_ld1rd) {
+  LoadBcastHelper(config, kDRegSize, kDRegSize, &MacroAssembler::Ld1rd, false);
+}
+
+TEST_SVE(sve_ld1rsb) {
+  LoadBcastHelper(config, kBRegSize, kHRegSize, &MacroAssembler::Ld1rsb, true);
+  LoadBcastHelper(config, kBRegSize, kSRegSize, &MacroAssembler::Ld1rsb, true);
+  LoadBcastHelper(config, kBRegSize, kDRegSize, &MacroAssembler::Ld1rsb, true);
+}
+
+TEST_SVE(sve_ld1rsh) {
+  LoadBcastHelper(config, kHRegSize, kSRegSize, &MacroAssembler::Ld1rsh, true);
+  LoadBcastHelper(config, kHRegSize, kDRegSize, &MacroAssembler::Ld1rsh, true);
+}
+
+TEST_SVE(sve_ld1rsw) {
+  LoadBcastHelper(config, kSRegSize, kDRegSize, &MacroAssembler::Ld1rsw, true);
+}
+
+TEST_SVE(sve_prefetch_offset) {
+  SVE_SETUP_WITH_FEATURES(CPUFeatures::kSVE);
+
+  START();
+
+  __ Prfb(PLDL1KEEP, p5, SVEMemOperand(z30.VnS(), 0));
+  __ Prfb(PLDL1STRM, p5, SVEMemOperand(x28, -11, SVE_MUL_VL));
+  __ Prfb(PLDL2KEEP, p6, SVEMemOperand(x30, x29));
+  __ Prfb(PLDL2STRM, p6, SVEMemOperand(x7, z12.VnS(), UXTW));
+  __ Prfh(PSTL2KEEP, p6, SVEMemOperand(z0.VnS(), 28));
+  __ Prfh(PSTL2STRM, p4, SVEMemOperand(x17, -3, SVE_MUL_VL));
+  __ Prfh(PSTL3KEEP, p3, SVEMemOperand(x0, x0, LSL, 1));
+  __ Prfh(PSTL3STRM, p4, SVEMemOperand(x20, z0.VnD(), LSL, 1));
+  __ Prfw(PLDL1KEEP, p3, SVEMemOperand(z23.VnD(), 5));
+  __ Prfw(PLDL1STRM, p1, SVEMemOperand(x4, 10, SVE_MUL_VL));
+  __ Prfw(PLDL2KEEP, p2, SVEMemOperand(x22, x22, LSL, 2));
+  __ Prfw(PLDL2STRM, p1, SVEMemOperand(x2, z6.VnS(), SXTW, 2));
+  __ Prfd(PLDL3KEEP, p5, SVEMemOperand(z11.VnD(), 9));
+  __ Prfd(PLDL3STRM, p3, SVEMemOperand(x0, -24, SVE_MUL_VL));
+  __ Prfd(PSTL1KEEP, p7, SVEMemOperand(x5, x5, LSL, 3));
+  __ Prfd(PSTL1STRM, p1, SVEMemOperand(x19, z18.VnS(), SXTW, 3));
+
+  END();
+  if (CAN_RUN()) {
+    RUN();
+  }
+}
+
+}  // namespace aarch64
+}  // namespace vixl
diff --git a/test/aarch64/test-disasm-aarch64.cc b/test/aarch64/test-disasm-aarch64.cc
index 065459a..4c5f595 100644
--- a/test/aarch64/test-disasm-aarch64.cc
+++ b/test/aarch64/test-disasm-aarch64.cc
@@ -92,6 +92,19 @@
   CLEANUP();
 }
 
+TEST(mvn_macro) {
+  SETUP();
+
+  // Mvn uses the destination register as a scratch if it can. This only occurs
+  // when `operand.IsExtendedRegister()`.
+  COMPARE_MACRO(Mvn(x0, Operand(w1, SXTW)),
+                "sxtw x0, w1\n"
+                "mvn x0, x0");
+  COMPARE_MACRO(Mvn(x0, Operand(x0, SXTW)),
+                "sxtw x0, w0\n"
+                "mvn x0, x0");
+}
+
 
 TEST(move_immediate) {
   SETUP();
@@ -1955,11 +1968,10 @@
   const int expected_count = sizeof(expected) / sizeof(expected[0]);
   VIXL_STATIC_ASSERT((1 << ImmPrefetchOperation_width) == expected_count);
 
-  for (int i = 0; i < (1 << ImmPrefetchOperation_width); i++) {
-    PrefetchOperation op = static_cast<PrefetchOperation>(i);
-    COMPARE_PREFIX(prfm(op, INT64_C(0)), expected[i]);
-    COMPARE_PREFIX(prfm(op, MemOperand(x0, 0)), expected[i]);
-    COMPARE_PREFIX(prfm(op, MemOperand(x0, x1)), expected[i]);
+  for (int op = 0; op < (1 << ImmPrefetchOperation_width); op++) {
+    COMPARE_PREFIX(prfm(op, INT64_C(0)), expected[op]);
+    COMPARE_PREFIX(prfm(op, MemOperand(x0, 0)), expected[op]);
+    COMPARE_PREFIX(prfm(op, MemOperand(x0, x1)), expected[op]);
   }
 
   CLEANUP();
@@ -1986,9 +1998,8 @@
   const int expected_count = sizeof(expected) / sizeof(expected[0]);
   VIXL_STATIC_ASSERT((1 << ImmPrefetchOperation_width) == expected_count);
 
-  for (int i = 0; i < (1 << ImmPrefetchOperation_width); i++) {
-    PrefetchOperation op = static_cast<PrefetchOperation>(i);
-    COMPARE_PREFIX(prfum(op, MemOperand(x0, 0)), expected[i]);
+  for (int op = 0; op < (1 << ImmPrefetchOperation_width); op++) {
+    COMPARE_PREFIX(prfum(op, MemOperand(x0, 0)), expected[op]);
   }
 
   CLEANUP();
@@ -2743,6 +2754,53 @@
   CLEANUP();
 }
 
+TEST(add_sub_macro) {
+  SETUP();
+
+  // Add and Sub use their destination register as a scratch if they can.
+  COMPARE_MACRO(Add(x0, x1, 0x4242),
+                "mov x0, #0x4242\n"
+                "add x0, x1, x0");
+  COMPARE_MACRO(Add(x0, x0, 0x4242),
+                "mov x16, #0x4242\n"
+                "add x0, x0, x16");
+  COMPARE_MACRO(Adds(x0, xzr, Operand(w1, SXTW)),
+                "sxtw x0, w1\n"
+                "adds x0, xzr, x0");
+  COMPARE_MACRO(Sub(x0, x1, 0x4242),
+                "mov x0, #0x4242\n"
+                "sub x0, x1, x0");
+  COMPARE_MACRO(Sub(x0, x0, 0x4242),
+                "mov x16, #0x4242\n"
+                "sub x0, x0, x16");
+  COMPARE_MACRO(Subs(x0, xzr, Operand(w1, SXTW)),
+                "sxtw x0, w1\n"
+                "negs x0, x0");
+}
+
+TEST(adc_sbc_macro) {
+  SETUP();
+
+  // Adc and Sbc use their destination register as a scratch if they can.
+  COMPARE_MACRO(Adc(x0, x1, 0x4242),
+                "mov x0, #0x4242\n"
+                "adc x0, x1, x0");
+  COMPARE_MACRO(Adc(x0, x0, 0x4242),
+                "mov x16, #0x4242\n"
+                "adc x0, x0, x16");
+  COMPARE_MACRO(Adcs(x0, xzr, Operand(w1, SXTW)),
+                "sxtw x0, w1\n"
+                "adcs x0, xzr, x0");
+  COMPARE_MACRO(Sbc(x0, x1, 0x4242),
+                "mov x0, #0x4242\n"
+                "sbc x0, x1, x0");
+  COMPARE_MACRO(Sbc(x0, x0, 0x4242),
+                "mov x16, #0x4242\n"
+                "sbc x0, x0, x16");
+  COMPARE_MACRO(Sbcs(x0, xzr, Operand(w1, SXTW)),
+                "sxtw x0, w1\n"
+                "ngcs x0, x0");
+}
 
 TEST(logical_immediate_move) {
   SETUP();
@@ -2793,6 +2851,29 @@
   CLEANUP();
 }
 
+TEST(logical_macro) {
+  SETUP();
+
+  // LogicalMacro uses the destination register as a scratch if it can.
+  COMPARE_MACRO(And(x0, x1, 0x4242),
+                "mov x0, #0x4242\n"
+                "and x0, x1, x0");
+  COMPARE_MACRO(Bic(x0, x0, 0x4242),
+                "mov x16, #0xffffffffffffbdbd\n"
+                "and x0, x0, x16");
+  COMPARE_MACRO(Orn(x0, xzr, Operand(w1, SXTW)),
+                "sxtw x0, w1\n"
+                "mvn x0, x0");
+  COMPARE_MACRO(Orr(x0, x1, 0x4242),
+                "mov x0, #0x4242\n"
+                "orr x0, x1, x0");
+  COMPARE_MACRO(Ands(x0, x0, 0x4242),
+                "mov x16, #0x4242\n"
+                "ands x0, x0, x16");
+  COMPARE_MACRO(Tst(xzr, Operand(w1, SXTW)),
+                "sxtw x16, w1\n"
+                "tst xzr, x16");
+}
 
 TEST(barriers) {
   SETUP();
@@ -2967,11 +3048,11 @@
   COMPARE(hint(BTI_j), "bti j");
   COMPARE(hint(BTI_jc), "bti jc");
 
-  Label dummy1, dummy2, dummy3, dummy4;
-  COMPARE_MACRO(Bind(&dummy1, EmitBTI), "bti");
-  COMPARE_MACRO(Bind(&dummy2, EmitBTI_c), "bti c");
-  COMPARE_MACRO(Bind(&dummy3, EmitBTI_j), "bti j");
-  COMPARE_MACRO(Bind(&dummy4, EmitBTI_jc), "bti jc");
+  Label placeholder1, placeholder2, placeholder3, placeholder4;
+  COMPARE_MACRO(Bind(&placeholder1, EmitBTI), "bti");
+  COMPARE_MACRO(Bind(&placeholder2, EmitBTI_c), "bti c");
+  COMPARE_MACRO(Bind(&placeholder3, EmitBTI_j), "bti j");
+  COMPARE_MACRO(Bind(&placeholder4, EmitBTI_jc), "bti jc");
 
   CLEANUP();
 }
diff --git a/test/aarch64/test-disasm-sve-aarch64.cc b/test/aarch64/test-disasm-sve-aarch64.cc
new file mode 100644
index 0000000..46128d9
--- /dev/null
+++ b/test/aarch64/test-disasm-sve-aarch64.cc
@@ -0,0 +1,6427 @@
+// Copyright 2019, VIXL authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//   * Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//   * Neither the name of ARM Limited nor the names of its contributors may be
+//     used to endorse or promote products derived from this software without
+//     specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#include <cstdio>
+#include <cstring>
+#include <string>
+
+#include "test-runner.h"
+#include "aarch64/test-utils-aarch64.h"
+
+#include "aarch64/disasm-aarch64.h"
+#include "aarch64/macro-assembler-aarch64.h"
+#include "test-disasm-aarch64.h"
+#include "test-utils-aarch64.h"
+
+namespace vixl {
+namespace aarch64 {
+
+TEST(sve) {
+  SETUP();
+
+  // TODO: Replace these tests when the disassembler is more capable.
+  COMPARE_PREFIX(asrr(z0.VnB(), p7.Merging(), z0.VnB(), z1.VnB()),
+                 "asrr z0.b, p7/m, z0.b, z1.b");
+  COMPARE_PREFIX(fcmeq(p6.VnD(), p7.Zeroing(), z0.VnD(), z1.VnD()),
+                 "fcmeq p6.d, p7/z, z0.d, z1.d");
+  COMPARE_PREFIX(mla(z0.VnB(), p7.Merging(), z0.VnB(), z1.VnB()),
+                 "mla z0.b, p7/m, z0.b, z1.b");
+  COMPARE_PREFIX(mla(z1.VnS(), p7.Merging(), z1.VnS(), z0.VnS()),
+                 "mla z1.s, p7/m, z1.s, z0.s");
+  COMPARE_PREFIX(asr(z1.VnB(), z0.VnB(), 8), "asr z1.b, z0.b, #8");
+  COMPARE_PREFIX(lsl(z0.VnH(), z1.VnH(), 15), "lsl z0.h, z1.h, #15");
+  COMPARE_PREFIX(lsr(z1.VnS(), z0.VnS(), 32), "lsr z1.s, z0.s, #32");
+  COMPARE_PREFIX(and_(p6.VnB(), p7.Zeroing(), p6.VnB(), p7.VnB()),
+                 "and p6.b, p7/z, p6.b, p7.b");
+  COMPARE_PREFIX(rev(p7.VnB(), p6.VnB()), "rev p7.b, p6.b");
+  COMPARE_PREFIX(splice(z0.VnH(), p7, z0.VnH(), z1.VnH()),
+                 "splice z0.h, p7, z0.h, z1.h");
+  COMPARE_PREFIX(fnmad(z0.VnD(), p6.Merging(), z1.VnD(), z0.VnD()),
+                 "fnmad z0.d, p6/m, z1.d, z0.d");
+
+  CLEANUP();
+}
+
+TEST(sve_address_generation) {
+  SETUP();
+
+#if 0
+  COMPARE_PREFIX(adr(z19.VnD(), z22.VnD(), z11.VnD()), "adr <Zd>.D, [<Zn>.D, <Zm>.D, SXTW{<amount>}]");
+  COMPARE_PREFIX(adr(z30.VnD(), z14.VnD(), z24.VnD()), "adr <Zd>.D, [<Zn>.D, <Zm>.D, UXTW{<amount>}]");
+  COMPARE_PREFIX(adr(z8.Vn?(), z16.Vn?(), z16.Vn?()), "adr <Zd>.<T>, [<Zn>.<T>, <Zm>.<T>{, <mod> <amount>}]");
+#endif
+  COMPARE_PREFIX(adr(z19.VnD(), SVEMemOperand(z22.VnD(), z11.VnD(), SXTW)),
+                 "adr z19.d, [z22.d, z11.d, sxtw]");
+  COMPARE_PREFIX(adr(z19.VnD(), SVEMemOperand(z22.VnD(), z11.VnD(), SXTW, 1)),
+                 "adr z19.d, [z22.d, z11.d, sxtw #1]");
+  COMPARE_PREFIX(adr(z19.VnD(), SVEMemOperand(z22.VnD(), z11.VnD(), SXTW, 2)),
+                 "adr z19.d, [z22.d, z11.d, sxtw #2]");
+  COMPARE_PREFIX(adr(z19.VnD(), SVEMemOperand(z22.VnD(), z11.VnD(), SXTW, 3)),
+                 "adr z19.d, [z22.d, z11.d, sxtw #3]");
+  COMPARE_PREFIX(adr(z30.VnD(), SVEMemOperand(z14.VnD(), z16.VnD(), UXTW)),
+                 "adr z30.d, [z14.d, z16.d, uxtw]");
+  COMPARE_PREFIX(adr(z30.VnD(), SVEMemOperand(z14.VnD(), z16.VnD(), UXTW, 1)),
+                 "adr z30.d, [z14.d, z16.d, uxtw #1]");
+  COMPARE_PREFIX(adr(z30.VnD(), SVEMemOperand(z14.VnD(), z16.VnD(), UXTW, 2)),
+                 "adr z30.d, [z14.d, z16.d, uxtw #2]");
+  COMPARE_PREFIX(adr(z30.VnD(), SVEMemOperand(z14.VnD(), z16.VnD(), UXTW, 3)),
+                 "adr z30.d, [z14.d, z16.d, uxtw #3]");
+  COMPARE_PREFIX(adr(z8.VnS(), SVEMemOperand(z16.VnS(), z16.VnS())),
+                 "adr z8.s, [z16.s, z16.s]");
+  COMPARE_PREFIX(adr(z8.VnS(), SVEMemOperand(z16.VnS(), z16.VnS(), LSL, 1)),
+                 "adr z8.s, [z16.s, z16.s, lsl #1]");
+  COMPARE_PREFIX(adr(z8.VnS(), SVEMemOperand(z16.VnS(), z16.VnS(), LSL, 2)),
+                 "adr z8.s, [z16.s, z16.s, lsl #2]");
+  COMPARE_PREFIX(adr(z8.VnS(), SVEMemOperand(z16.VnS(), z16.VnS(), LSL, 3)),
+                 "adr z8.s, [z16.s, z16.s, lsl #3]");
+  COMPARE_PREFIX(adr(z9.VnD(), SVEMemOperand(z1.VnD(), z16.VnD())),
+                 "adr z9.d, [z1.d, z16.d]");
+  COMPARE_PREFIX(adr(z9.VnD(), SVEMemOperand(z1.VnD(), z16.VnD(), LSL, 1)),
+                 "adr z9.d, [z1.d, z16.d, lsl #1]");
+  COMPARE_PREFIX(adr(z9.VnD(), SVEMemOperand(z1.VnD(), z16.VnD(), LSL, 2)),
+                 "adr z9.d, [z1.d, z16.d, lsl #2]");
+  COMPARE_PREFIX(adr(z9.VnD(), SVEMemOperand(z1.VnD(), z16.VnD(), LSL, 3)),
+                 "adr z9.d, [z1.d, z16.d, lsl #3]");
+
+
+  CLEANUP();
+}
+
+TEST(sve_calculate_sve_address) {
+  // Shadow the `MacroAssembler` type so that the test macros work without
+  // modification.
+  typedef CalculateSVEAddressMacroAssembler MacroAssembler;
+
+  SETUP();
+
+  // It is important that we cover every branch in this test because most other
+  // tests tend not to check every code path.
+
+  // IsEquivalentToScalar()
+  COMPARE_MACRO(CalculateSVEAddress(x0, SVEMemOperand(x1)), "mov x0, x1");
+  COMPARE_MACRO(CalculateSVEAddress(x4, SVEMemOperand(x2, 0)), "mov x4, x2");
+  COMPARE_MACRO(CalculateSVEAddress(x4, SVEMemOperand(x2, xzr, LSL, 2)),
+                "mov x4, x2");
+
+  // IsScalarPlusImmediate()
+  // Simple immediates just pass through to 'Add'.
+  COMPARE_MACRO(CalculateSVEAddress(x10, SVEMemOperand(x0, 42)),
+                "add x10, x0, #0x2a (42)");
+  COMPARE_MACRO(CalculateSVEAddress(x10, SVEMemOperand(sp, 42)),
+                "add x10, sp, #0x2a (42)");
+  // SVE_MUL_VL variants use `Addpl`, which has its own tests, but
+  // `CalculateSVEAddress` needs to check and handle the access size.
+  COMPARE_MACRO(CalculateSVEAddress(x10, SVEMemOperand(x0, 3, SVE_MUL_VL), 0),
+                "addpl x10, x0, #24");
+  COMPARE_MACRO(CalculateSVEAddress(x10, SVEMemOperand(x0, 3, SVE_MUL_VL), 1),
+                "addpl x10, x0, #12");
+  COMPARE_MACRO(CalculateSVEAddress(x10, SVEMemOperand(x0, 3, SVE_MUL_VL), 2),
+                "addpl x10, x0, #6");
+  COMPARE_MACRO(CalculateSVEAddress(x10, SVEMemOperand(x0, 3, SVE_MUL_VL), 3),
+                "addpl x10, x0, #3");
+
+  // IsScalarPlusScalar()
+  // All forms pass through to `Add`, but SVE_LSL must be handled correctly.
+  COMPARE_MACRO(CalculateSVEAddress(x22, SVEMemOperand(x2, x3)),
+                "add x22, x2, x3");
+  COMPARE_MACRO(CalculateSVEAddress(x22, SVEMemOperand(sp, x3)),
+                "add x22, sp, x3");
+  COMPARE_MACRO(CalculateSVEAddress(x22, SVEMemOperand(x2, x3, LSL, 2)),
+                "add x22, x2, x3, lsl #2");
+  COMPARE_MACRO(CalculateSVEAddress(x22, SVEMemOperand(sp, x3, LSL, 2)),
+                "add x22, sp, x3, lsl #2");
+
+  CLEANUP();
+}
+
+TEST(sve_bitwise_imm) {
+  SETUP();
+
+  // The assembler will necessarily encode an immediate in the simplest bitset.
+  COMPARE_PREFIX(and_(z2.VnD(), z2.VnD(), 0x0000ffff0000ffff),
+                 "and z2.s, z2.s, #0xffff");
+  COMPARE_PREFIX(dupm(z15.VnS(), 0x7f007f00), "dupm z15.h, #0x7f00");
+  COMPARE_PREFIX(eor(z26.VnH(), z26.VnH(), 0x7ff8),
+                 "eor z26.h, z26.h, #0x7ff8");
+  COMPARE_PREFIX(orr(z13.VnB(), z13.VnB(), 0x78), "orr z13.b, z13.b, #0x78");
+
+  // Logical aliases.
+  COMPARE_PREFIX(bic(z21.VnD(), z21.VnD(), 0xffff00000000ffff),
+                 "and z21.d, z21.d, #0xffffffff0000");
+  COMPARE_PREFIX(eon(z31.VnS(), z31.VnS(), 0x1ffe),
+                 "eor z31.s, z31.s, #0xffffe001");
+  COMPARE_PREFIX(orn(z11.VnH(), z11.VnH(), 0x2), "orr z11.h, z11.h, #0xfffd");
+
+  // Mov alias for dupm.
+  COMPARE_PREFIX(mov(z0.VnH(), 0xf00f), "mov z0.h, #0xf00f");
+  COMPARE_MACRO(Mov(z11.VnS(), 0xe0000003), "mov z11.s, #0xe0000003");
+  COMPARE_MACRO(Mov(z22.VnD(), 0x8000), "dupm z22.d, #0x8000");
+
+  // Test dupm versus mov disassembly.
+  COMPARE_PREFIX(dupm(z0.VnH(), 0xfe), "dupm z0.h, #0xfe");
+  COMPARE_PREFIX(dupm(z0.VnH(), 0xff), "dupm z0.h, #0xff");
+  COMPARE_PREFIX(dupm(z0.VnH(), 0x1fe), "mov z0.h, #0x1fe");
+  COMPARE_PREFIX(dupm(z0.VnH(), 0xfe00), "dupm z0.h, #0xfe00");
+  COMPARE_PREFIX(dupm(z0.VnH(), 0xfe01), "mov z0.h, #0xfe01");
+  COMPARE_PREFIX(dupm(z0.VnS(), 0xfe00), "dupm z0.s, #0xfe00");
+  COMPARE_PREFIX(dupm(z0.VnS(), 0xfe000001), "mov z0.s, #0xfe000001");
+  COMPARE_PREFIX(dupm(z0.VnS(), 0xffffff00), "dupm z0.s, #0xffffff00");
+  COMPARE_PREFIX(dupm(z0.VnS(), 0xffffff01), "dupm z0.s, #0xffffff01");
+  COMPARE_PREFIX(dupm(z0.VnS(), 0xfffffe01), "mov z0.s, #0xfffffe01");
+  COMPARE_PREFIX(dupm(z0.VnS(), 0xfff), "mov z0.s, #0xfff");
+  COMPARE_PREFIX(dupm(z0.VnD(), 0xffffffffffffff00),
+                 "dupm z0.d, #0xffffffffffffff00");
+  COMPARE_PREFIX(dupm(z0.VnD(), 0x7fffffffffffff80),
+                 "mov z0.d, #0x7fffffffffffff80");
+  COMPARE_PREFIX(dupm(z0.VnD(), 0x8000), "dupm z0.d, #0x8000");
+  COMPARE_PREFIX(dupm(z0.VnD(), 0x10000), "mov z0.d, #0x10000");
+
+  CLEANUP();
+}
+
+TEST(sve_bitwise_logical_unpredicated) {
+  SETUP();
+
+  COMPARE_PREFIX(and_(z12.VnD(), z5.VnD(), z29.VnD()),
+                 "and z12.d, z5.d, z29.d");
+  COMPARE_PREFIX(bic(z11.VnD(), z15.VnD(), z9.VnD()), "bic z11.d, z15.d, z9.d");
+  COMPARE_PREFIX(eor(z9.VnD(), z31.VnD(), z29.VnD()), "eor z9.d, z31.d, z29.d");
+  COMPARE_PREFIX(orr(z17.VnD(), z8.VnD(), z19.VnD()), "orr z17.d, z8.d, z19.d");
+
+  // Check mov aliases.
+  COMPARE_PREFIX(orr(z17.VnD(), z8.VnD(), z8.VnD()), "mov z17.d, z8.d");
+  COMPARE_PREFIX(mov(z18, z9), "mov z18.d, z9.d");
+  COMPARE_MACRO(Mov(z19, z10), "mov z19.d, z10.d");
+
+  CLEANUP();
+}
+
+TEST(sve_bitwise_shift_predicated) {
+  SETUP();
+
+  COMPARE_PREFIX(asrr(z20.VnB(), p3.Merging(), z20.VnB(), z11.VnB()),
+                 "asrr z20.b, p3/m, z20.b, z11.b");
+  COMPARE_PREFIX(asrr(z20.VnH(), p3.Merging(), z20.VnH(), z11.VnH()),
+                 "asrr z20.h, p3/m, z20.h, z11.h");
+  COMPARE_PREFIX(asrr(z20.VnS(), p3.Merging(), z20.VnS(), z11.VnS()),
+                 "asrr z20.s, p3/m, z20.s, z11.s");
+  COMPARE_PREFIX(asrr(z20.VnD(), p3.Merging(), z20.VnD(), z11.VnD()),
+                 "asrr z20.d, p3/m, z20.d, z11.d");
+  COMPARE_PREFIX(asr(z26.VnB(), p2.Merging(), z26.VnB(), z17.VnB()),
+                 "asr z26.b, p2/m, z26.b, z17.b");
+  COMPARE_PREFIX(asr(z26.VnH(), p2.Merging(), z26.VnH(), z17.VnH()),
+                 "asr z26.h, p2/m, z26.h, z17.h");
+  COMPARE_PREFIX(asr(z26.VnS(), p2.Merging(), z26.VnS(), z17.VnS()),
+                 "asr z26.s, p2/m, z26.s, z17.s");
+  COMPARE_PREFIX(asr(z26.VnD(), p2.Merging(), z26.VnD(), z17.VnD()),
+                 "asr z26.d, p2/m, z26.d, z17.d");
+  COMPARE_PREFIX(lslr(z30.VnB(), p1.Merging(), z30.VnB(), z26.VnB()),
+                 "lslr z30.b, p1/m, z30.b, z26.b");
+  COMPARE_PREFIX(lslr(z30.VnH(), p1.Merging(), z30.VnH(), z26.VnH()),
+                 "lslr z30.h, p1/m, z30.h, z26.h");
+  COMPARE_PREFIX(lslr(z30.VnS(), p1.Merging(), z30.VnS(), z26.VnS()),
+                 "lslr z30.s, p1/m, z30.s, z26.s");
+  COMPARE_PREFIX(lslr(z30.VnD(), p1.Merging(), z30.VnD(), z26.VnD()),
+                 "lslr z30.d, p1/m, z30.d, z26.d");
+  COMPARE_PREFIX(lsl(z14.VnB(), p6.Merging(), z14.VnB(), z25.VnB()),
+                 "lsl z14.b, p6/m, z14.b, z25.b");
+  COMPARE_PREFIX(lsl(z14.VnH(), p6.Merging(), z14.VnH(), z25.VnH()),
+                 "lsl z14.h, p6/m, z14.h, z25.h");
+  COMPARE_PREFIX(lsl(z14.VnS(), p6.Merging(), z14.VnS(), z25.VnS()),
+                 "lsl z14.s, p6/m, z14.s, z25.s");
+  COMPARE_PREFIX(lsl(z14.VnD(), p6.Merging(), z14.VnD(), z25.VnD()),
+                 "lsl z14.d, p6/m, z14.d, z25.d");
+  COMPARE_PREFIX(lsrr(z3.VnB(), p1.Merging(), z3.VnB(), z16.VnB()),
+                 "lsrr z3.b, p1/m, z3.b, z16.b");
+  COMPARE_PREFIX(lsrr(z3.VnH(), p1.Merging(), z3.VnH(), z16.VnH()),
+                 "lsrr z3.h, p1/m, z3.h, z16.h");
+  COMPARE_PREFIX(lsrr(z3.VnS(), p1.Merging(), z3.VnS(), z16.VnS()),
+                 "lsrr z3.s, p1/m, z3.s, z16.s");
+  COMPARE_PREFIX(lsrr(z3.VnD(), p1.Merging(), z3.VnD(), z16.VnD()),
+                 "lsrr z3.d, p1/m, z3.d, z16.d");
+  COMPARE_PREFIX(lsr(z29.VnB(), p7.Merging(), z29.VnB(), z13.VnB()),
+                 "lsr z29.b, p7/m, z29.b, z13.b");
+  COMPARE_PREFIX(lsr(z29.VnH(), p7.Merging(), z29.VnH(), z13.VnH()),
+                 "lsr z29.h, p7/m, z29.h, z13.h");
+  COMPARE_PREFIX(lsr(z29.VnS(), p7.Merging(), z29.VnS(), z13.VnS()),
+                 "lsr z29.s, p7/m, z29.s, z13.s");
+  COMPARE_PREFIX(lsr(z29.VnD(), p7.Merging(), z29.VnD(), z13.VnD()),
+                 "lsr z29.d, p7/m, z29.d, z13.d");
+
+  COMPARE_PREFIX(asr(z4.VnB(), p0.Merging(), z4.VnB(), z30.VnD()),
+                 "asr z4.b, p0/m, z4.b, z30.d");
+  COMPARE_PREFIX(asr(z4.VnH(), p0.Merging(), z4.VnH(), z30.VnD()),
+                 "asr z4.h, p0/m, z4.h, z30.d");
+  COMPARE_PREFIX(asr(z4.VnS(), p0.Merging(), z4.VnS(), z30.VnD()),
+                 "asr z4.s, p0/m, z4.s, z30.d");
+  COMPARE_PREFIX(lsl(z13.VnB(), p7.Merging(), z13.VnB(), z18.VnD()),
+                 "lsl z13.b, p7/m, z13.b, z18.d");
+  COMPARE_PREFIX(lsl(z13.VnH(), p7.Merging(), z13.VnH(), z18.VnD()),
+                 "lsl z13.h, p7/m, z13.h, z18.d");
+  COMPARE_PREFIX(lsl(z13.VnS(), p7.Merging(), z13.VnS(), z18.VnD()),
+                 "lsl z13.s, p7/m, z13.s, z18.d");
+  COMPARE_PREFIX(lsr(z1.VnB(), p4.Merging(), z1.VnB(), z14.VnD()),
+                 "lsr z1.b, p4/m, z1.b, z14.d");
+  COMPARE_PREFIX(lsr(z1.VnH(), p4.Merging(), z1.VnH(), z14.VnD()),
+                 "lsr z1.h, p4/m, z1.h, z14.d");
+  COMPARE_PREFIX(lsr(z1.VnS(), p4.Merging(), z1.VnS(), z14.VnD()),
+                 "lsr z1.s, p4/m, z1.s, z14.d");
+
+  COMPARE_MACRO(Asr(z4.VnB(), p0.Merging(), z4.VnB(), z30.VnB()),
+                "asr z4.b, p0/m, z4.b, z30.b");
+  COMPARE_MACRO(Asr(z4.VnB(), p0.Merging(), z30.VnB(), z4.VnB()),
+                "asrr z4.b, p0/m, z4.b, z30.b");
+  COMPARE_MACRO(Asr(z4.VnB(), p0.Merging(), z10.VnB(), z14.VnB()),
+                "movprfx z4.b, p0/m, z10.b\n"
+                "asr z4.b, p0/m, z4.b, z14.b");
+  COMPARE_MACRO(Lsl(z4.VnB(), p0.Merging(), z4.VnB(), z30.VnB()),
+                "lsl z4.b, p0/m, z4.b, z30.b");
+  COMPARE_MACRO(Lsl(z4.VnB(), p0.Merging(), z30.VnB(), z4.VnB()),
+                "lslr z4.b, p0/m, z4.b, z30.b");
+  COMPARE_MACRO(Lsl(z4.VnB(), p0.Merging(), z10.VnB(), z14.VnB()),
+                "movprfx z4.b, p0/m, z10.b\n"
+                "lsl z4.b, p0/m, z4.b, z14.b");
+  COMPARE_MACRO(Lsr(z4.VnB(), p0.Merging(), z4.VnB(), z30.VnB()),
+                "lsr z4.b, p0/m, z4.b, z30.b");
+  COMPARE_MACRO(Lsr(z4.VnB(), p0.Merging(), z30.VnB(), z4.VnB()),
+                "lsrr z4.b, p0/m, z4.b, z30.b");
+  COMPARE_MACRO(Lsr(z4.VnB(), p0.Merging(), z10.VnB(), z14.VnB()),
+                "movprfx z4.b, p0/m, z10.b\n"
+                "lsr z4.b, p0/m, z4.b, z14.b");
+
+  COMPARE_PREFIX(asrd(z0.VnB(), p4.Merging(), z0.VnB(), 1),
+                 "asrd z0.b, p4/m, z0.b, #1");
+  COMPARE_PREFIX(asrd(z0.VnH(), p4.Merging(), z0.VnH(), 1),
+                 "asrd z0.h, p4/m, z0.h, #1");
+  COMPARE_PREFIX(asrd(z0.VnS(), p4.Merging(), z0.VnS(), 1),
+                 "asrd z0.s, p4/m, z0.s, #1");
+  COMPARE_PREFIX(asrd(z0.VnD(), p4.Merging(), z0.VnD(), 1),
+                 "asrd z0.d, p4/m, z0.d, #1");
+  COMPARE_PREFIX(asr(z8.VnB(), p7.Merging(), z8.VnB(), 3),
+                 "asr z8.b, p7/m, z8.b, #3");
+  COMPARE_PREFIX(asr(z8.VnH(), p7.Merging(), z8.VnH(), 3),
+                 "asr z8.h, p7/m, z8.h, #3");
+  COMPARE_PREFIX(asr(z8.VnS(), p7.Merging(), z8.VnS(), 3),
+                 "asr z8.s, p7/m, z8.s, #3");
+  COMPARE_PREFIX(asr(z8.VnD(), p7.Merging(), z8.VnD(), 3),
+                 "asr z8.d, p7/m, z8.d, #3");
+  COMPARE_PREFIX(lsl(z29.VnB(), p6.Merging(), z29.VnB(), 0),
+                 "lsl z29.b, p6/m, z29.b, #0");
+  COMPARE_PREFIX(lsl(z29.VnH(), p6.Merging(), z29.VnH(), 5),
+                 "lsl z29.h, p6/m, z29.h, #5");
+  COMPARE_PREFIX(lsl(z29.VnS(), p6.Merging(), z29.VnS(), 0),
+                 "lsl z29.s, p6/m, z29.s, #0");
+  COMPARE_PREFIX(lsl(z29.VnD(), p6.Merging(), z29.VnD(), 63),
+                 "lsl z29.d, p6/m, z29.d, #63");
+  COMPARE_PREFIX(lsr(z24.VnB(), p2.Merging(), z24.VnB(), 8),
+                 "lsr z24.b, p2/m, z24.b, #8");
+  COMPARE_PREFIX(lsr(z24.VnH(), p2.Merging(), z24.VnH(), 16),
+                 "lsr z24.h, p2/m, z24.h, #16");
+  COMPARE_PREFIX(lsr(z24.VnS(), p2.Merging(), z24.VnS(), 32),
+                 "lsr z24.s, p2/m, z24.s, #32");
+  COMPARE_PREFIX(lsr(z24.VnD(), p2.Merging(), z24.VnD(), 64),
+                 "lsr z24.d, p2/m, z24.d, #64");
+
+  COMPARE_MACRO(Asrd(z0.VnB(), p4.Merging(), z8.VnB(), 1),
+                "movprfx z0.b, p4/m, z8.b\n"
+                "asrd z0.b, p4/m, z0.b, #1");
+  COMPARE_MACRO(Asr(z8.VnH(), p7.Merging(), z29.VnH(), 3),
+                "movprfx z8.h, p7/m, z29.h\n"
+                "asr z8.h, p7/m, z8.h, #3");
+  COMPARE_MACRO(Lsl(z29.VnS(), p6.Merging(), z24.VnS(), 0),
+                "movprfx z29.s, p6/m, z24.s\n"
+                "lsl z29.s, p6/m, z29.s, #0");
+  COMPARE_MACRO(Lsr(z24.VnD(), p2.Merging(), z0.VnD(), 64),
+                "movprfx z24.d, p2/m, z0.d\n"
+                "lsr z24.d, p2/m, z24.d, #64");
+
+  CLEANUP();
+}
+
+TEST(sve_bitwise_shift_unpredicated) {
+  SETUP();
+
+  // Test lsl with reserved D-sized lane field.
+  COMPARE_PREFIX(dci(0x04ef8e15), "unimplemented");
+  // Test asr with reserved tsz field.
+  COMPARE_PREFIX(dci(0x04209345), "unimplemented");
+
+  COMPARE_PREFIX(asr(z4.VnB(), z27.VnB(), 1), "asr z4.b, z27.b, #1");
+  COMPARE_PREFIX(asr(z5.VnB(), z26.VnB(), 8), "asr z5.b, z26.b, #8");
+  COMPARE_PREFIX(asr(z6.VnH(), z25.VnH(), 1), "asr z6.h, z25.h, #1");
+  COMPARE_PREFIX(asr(z7.VnH(), z24.VnH(), 16), "asr z7.h, z24.h, #16");
+  COMPARE_PREFIX(asr(z8.VnS(), z23.VnS(), 1), "asr z8.s, z23.s, #1");
+  COMPARE_PREFIX(asr(z9.VnS(), z22.VnS(), 32), "asr z9.s, z22.s, #32");
+  COMPARE_PREFIX(asr(z10.VnD(), z21.VnD(), 1), "asr z10.d, z21.d, #1");
+  COMPARE_PREFIX(asr(z11.VnD(), z20.VnD(), 64), "asr z11.d, z20.d, #64");
+  COMPARE_PREFIX(lsr(z4.VnB(), z27.VnB(), 3), "lsr z4.b, z27.b, #3");
+  COMPARE_PREFIX(lsr(z5.VnB(), z26.VnB(), 7), "lsr z5.b, z26.b, #7");
+  COMPARE_PREFIX(lsr(z6.VnH(), z25.VnH(), 8), "lsr z6.h, z25.h, #8");
+  COMPARE_PREFIX(lsr(z7.VnH(), z24.VnH(), 15), "lsr z7.h, z24.h, #15");
+  COMPARE_PREFIX(lsr(z8.VnS(), z23.VnS(), 14), "lsr z8.s, z23.s, #1");
+  COMPARE_PREFIX(lsr(z9.VnS(), z22.VnS(), 31), "lsr z9.s, z22.s, #31");
+  COMPARE_PREFIX(lsr(z10.VnD(), z21.VnD(), 30), "lsr z10.d, z21.d, #30");
+  COMPARE_PREFIX(lsr(z11.VnD(), z20.VnD(), 63), "lsr z11.d, z20.d, #63");
+  COMPARE_PREFIX(lsl(z4.VnB(), z27.VnB(), 4), "lsl z4.b, z27.b, #4");
+  COMPARE_PREFIX(lsl(z5.VnB(), z26.VnB(), 6), "lsl z5.b, z26.b, #6");
+  COMPARE_PREFIX(lsl(z6.VnH(), z25.VnH(), 10), "lsl z6.h, z25.h, #10");
+  COMPARE_PREFIX(lsl(z7.VnH(), z24.VnH(), 14), "lsl z7.h, z24.h, #14");
+  COMPARE_PREFIX(lsl(z8.VnS(), z23.VnS(), 21), "lsl z8.s, z23.s, #21");
+  COMPARE_PREFIX(lsl(z9.VnS(), z22.VnS(), 30), "lsl z9.s, z22.s, #30");
+  COMPARE_PREFIX(lsl(z10.VnD(), z21.VnD(), 44), "lsl z10.d, z21.d, #44");
+  COMPARE_PREFIX(lsl(z11.VnD(), z20.VnD(), 62), "lsl z11.d, z20.d, #62");
+  COMPARE_PREFIX(asr(z12.VnB(), z8.VnB(), z14.VnD()), "asr z12.b, z8.b, z14.d");
+  COMPARE_PREFIX(asr(z14.VnH(), z8.VnH(), z12.VnD()), "asr z14.h, z8.h, z12.d");
+  COMPARE_PREFIX(asr(z16.VnS(), z8.VnS(), z10.VnD()), "asr z16.s, z8.s, z10.d");
+  COMPARE_PREFIX(lsl(z21.VnB(), z16.VnB(), z15.VnD()),
+                 "lsl z21.b, z16.b, z15.d");
+  COMPARE_PREFIX(lsl(z23.VnH(), z16.VnH(), z13.VnD()),
+                 "lsl z23.h, z16.h, z13.d");
+  COMPARE_PREFIX(lsl(z25.VnS(), z16.VnS(), z11.VnD()),
+                 "lsl z25.s, z16.s, z11.d");
+  COMPARE_PREFIX(lsr(z16.VnB(), z19.VnB(), z2.VnD()), "lsr z16.b, z19.b, z2.d");
+  COMPARE_PREFIX(lsr(z18.VnH(), z19.VnH(), z4.VnD()), "lsr z18.h, z19.h, z4.d");
+  COMPARE_PREFIX(lsr(z20.VnS(), z19.VnS(), z6.VnD()), "lsr z20.s, z19.s, z6.d");
+
+  CLEANUP();
+}
+
+
+TEST(sve_element_count) {
+  SETUP();
+
+  COMPARE_MACRO(Cntb(x7), "cntb x7");
+  COMPARE_MACRO(Cntb(x7, SVE_POW2), "cntb x7, pow2");
+  COMPARE_MACRO(Cntb(x7, SVE_VL1), "cntb x7, vl1");
+  COMPARE_MACRO(Cntb(x7, SVE_VL2), "cntb x7, vl2");
+  COMPARE_MACRO(Cntb(x7, SVE_VL16), "cntb x7, vl16");
+  COMPARE_MACRO(Cntb(x7, SVE_VL256), "cntb x7, vl256");
+  COMPARE_MACRO(Cntb(x7, SVE_MUL4), "cntb x7, mul4");
+  COMPARE_MACRO(Cntb(x7, SVE_MUL3), "cntb x7, mul3");
+  COMPARE_MACRO(Cntb(x7, SVE_ALL), "cntb x7");
+
+  COMPARE_MACRO(Cntb(x7, SVE_POW2, 1), "cntb x7, pow2");
+  COMPARE_MACRO(Cntb(x7, SVE_VL1, 16), "cntb x7, vl1, mul #16");
+  COMPARE_MACRO(Cntb(x7, SVE_VL2, 15), "cntb x7, vl2, mul #15");
+  COMPARE_MACRO(Cntb(x7, SVE_VL16, 14), "cntb x7, vl16, mul #14");
+  COMPARE_MACRO(Cntb(x7, SVE_VL256, 8), "cntb x7, vl256, mul #8");
+  COMPARE_MACRO(Cntb(x7, SVE_MUL4, 4), "cntb x7, mul4, mul #4");
+  COMPARE_MACRO(Cntb(x7, SVE_MUL3, 3), "cntb x7, mul3, mul #3");
+  COMPARE_MACRO(Cntb(x7, SVE_ALL, 2), "cntb x7, all, mul #2");
+
+  COMPARE_MACRO(Cntb(x30), "cntb x30");
+  COMPARE_MACRO(Cntd(xzr, SVE_POW2), "cntd xzr, pow2");
+  COMPARE_MACRO(Cntd(xzr, SVE_MUL4, 1), "cntd xzr, mul4");
+  COMPARE_MACRO(Cnth(x29, SVE_MUL3, 4), "cnth x29, mul3, mul #4");
+  COMPARE_MACRO(Cntw(x28, SVE_VL256, 16), "cntw x28, vl256, mul #16");
+
+  CLEANUP();
+}
+
+TEST(sve_incdec_reg_element_count) {
+  SETUP();
+
+  COMPARE_MACRO(Decb(x4), "decb x4");
+  COMPARE_MACRO(Decb(x4, SVE_POW2), "decb x4, pow2");
+  COMPARE_MACRO(Decb(x4, SVE_VL1), "decb x4, vl1");
+  COMPARE_MACRO(Decb(x4, SVE_VL2), "decb x4, vl2");
+  COMPARE_MACRO(Decb(x4, SVE_VL16), "decb x4, vl16");
+  COMPARE_MACRO(Decb(x4, SVE_VL256), "decb x4, vl256");
+  COMPARE_MACRO(Decb(x4, SVE_MUL4), "decb x4, mul4");
+  COMPARE_MACRO(Decb(x4, SVE_MUL3), "decb x4, mul3");
+  COMPARE_MACRO(Decb(x4, SVE_ALL), "decb x4");
+
+  COMPARE_MACRO(Decb(x4, SVE_POW2, 1), "decb x4, pow2");
+  COMPARE_MACRO(Decb(x4, SVE_VL1, 16), "decb x4, vl1, mul #16");
+  COMPARE_MACRO(Decb(x4, SVE_VL2, 15), "decb x4, vl2, mul #15");
+  COMPARE_MACRO(Decb(x4, SVE_VL16, 14), "decb x4, vl16, mul #14");
+  COMPARE_MACRO(Decb(x4, SVE_VL256, 8), "decb x4, vl256, mul #8");
+  COMPARE_MACRO(Decb(x4, SVE_MUL4, 4), "decb x4, mul4, mul #4");
+  COMPARE_MACRO(Decb(x4, SVE_MUL3, 3), "decb x4, mul3, mul #3");
+  COMPARE_MACRO(Decb(x4, SVE_ALL, 2), "decb x4, all, mul #2");
+
+  COMPARE_MACRO(Decb(x30), "decb x30");
+  COMPARE_MACRO(Decd(xzr, SVE_POW2), "decd xzr, pow2");
+  COMPARE_MACRO(Decd(xzr, SVE_MUL4, 1), "decd xzr, mul4");
+  COMPARE_MACRO(Dech(x29, SVE_MUL3, 4), "dech x29, mul3, mul #4");
+  COMPARE_MACRO(Decw(x28, SVE_VL256, 16), "decw x28, vl256, mul #16");
+
+  COMPARE_MACRO(Incb(x17), "incb x17");
+  COMPARE_MACRO(Incb(x17, SVE_POW2), "incb x17, pow2");
+  COMPARE_MACRO(Incb(x17, SVE_VL1), "incb x17, vl1");
+  COMPARE_MACRO(Incb(x17, SVE_VL2), "incb x17, vl2");
+  COMPARE_MACRO(Incb(x17, SVE_VL16), "incb x17, vl16");
+  COMPARE_MACRO(Incb(x17, SVE_VL256), "incb x17, vl256");
+  COMPARE_MACRO(Incb(x17, SVE_MUL4), "incb x17, mul4");
+  COMPARE_MACRO(Incb(x17, SVE_MUL3), "incb x17, mul3");
+  COMPARE_MACRO(Incb(x17, SVE_ALL), "incb x17");
+
+  COMPARE_MACRO(Incb(x17, SVE_POW2, 1), "incb x17, pow2");
+  COMPARE_MACRO(Incb(x17, SVE_VL1, 16), "incb x17, vl1, mul #16");
+  COMPARE_MACRO(Incb(x17, SVE_VL2, 15), "incb x17, vl2, mul #15");
+  COMPARE_MACRO(Incb(x17, SVE_VL16, 14), "incb x17, vl16, mul #14");
+  COMPARE_MACRO(Incb(x17, SVE_VL256, 8), "incb x17, vl256, mul #8");
+  COMPARE_MACRO(Incb(x17, SVE_MUL4, 4), "incb x17, mul4, mul #4");
+  COMPARE_MACRO(Incb(x17, SVE_MUL3, 3), "incb x17, mul3, mul #3");
+  COMPARE_MACRO(Incb(x17, SVE_ALL, 2), "incb x17, all, mul #2");
+
+  COMPARE_MACRO(Incb(x30), "incb x30");
+  COMPARE_MACRO(Incd(xzr, SVE_POW2), "incd xzr, pow2");
+  COMPARE_MACRO(Incd(xzr, SVE_MUL4, 1), "incd xzr, mul4");
+  COMPARE_MACRO(Inch(x29, SVE_MUL3, 4), "inch x29, mul3, mul #4");
+  COMPARE_MACRO(Incw(x28, SVE_VL256, 16), "incw x28, vl256, mul #16");
+
+  CLEANUP();
+}
+
+TEST(sve_signed_sat_incdec_reg_element_count) {
+  SETUP();
+
+  COMPARE_MACRO(Sqdecb(x12, w12), "sqdecb x12, w12");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_POW2), "sqdecb x12, w12, pow2");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_VL1), "sqdecb x12, w12, vl1");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_VL2), "sqdecb x12, w12, vl2");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_VL16), "sqdecb x12, w12, vl16");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_VL256), "sqdecb x12, w12, vl256");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_MUL4), "sqdecb x12, w12, mul4");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_MUL3), "sqdecb x12, w12, mul3");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_ALL), "sqdecb x12, w12");
+
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_POW2, 1), "sqdecb x12, w12, pow2");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_VL1, 16), "sqdecb x12, w12, vl1, mul #16");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_VL2, 15), "sqdecb x12, w12, vl2, mul #15");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_VL16, 14),
+                "sqdecb x12, w12, vl16, mul #14");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_VL256, 8),
+                "sqdecb x12, w12, vl256, mul #8");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_MUL4, 4), "sqdecb x12, w12, mul4, mul #4");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_MUL3, 3), "sqdecb x12, w12, mul3, mul #3");
+  COMPARE_MACRO(Sqdecb(x12, w12, SVE_ALL, 2), "sqdecb x12, w12, all, mul #2");
+
+  COMPARE_MACRO(Sqdecb(xzr, wzr, SVE_POW2), "sqdecb xzr, wzr, pow2");
+  COMPARE_MACRO(Sqdecb(xzr, wzr, SVE_MUL4, 1), "sqdecb xzr, wzr, mul4");
+
+  COMPARE_MACRO(Sqincw(x20, w20, SVE_POW2, 1), "sqincw x20, w20, pow2");
+  COMPARE_MACRO(Sqincd(x20, w20, SVE_VL1, 16), "sqincd x20, w20, vl1, mul #16");
+  COMPARE_MACRO(Sqinch(x20, w20, SVE_VL2, 15), "sqinch x20, w20, vl2, mul #15");
+  COMPARE_MACRO(Sqincw(x20, w20, SVE_VL16, 14),
+                "sqincw x20, w20, vl16, mul #14");
+  COMPARE_MACRO(Sqincd(x20, w20, SVE_VL256, 8),
+                "sqincd x20, w20, vl256, mul #8");
+  COMPARE_MACRO(Sqinch(x20, w20, SVE_MUL4, 4), "sqinch x20, w20, mul4, mul #4");
+  COMPARE_MACRO(Sqincw(x20, w20, SVE_MUL3, 3), "sqincw x20, w20, mul3, mul #3");
+  COMPARE_MACRO(Sqincd(x20, w20, SVE_ALL, 2), "sqincd x20, w20, all, mul #2");
+
+  COMPARE_MACRO(Sqdecb(x5), "sqdecb x5");
+  COMPARE_MACRO(Sqdecb(x5, SVE_POW2), "sqdecb x5, pow2");
+  COMPARE_MACRO(Sqdecb(x5, SVE_VL1), "sqdecb x5, vl1");
+  COMPARE_MACRO(Sqdecb(x5, SVE_VL2), "sqdecb x5, vl2");
+  COMPARE_MACRO(Sqdecb(x5, SVE_VL16), "sqdecb x5, vl16");
+  COMPARE_MACRO(Sqdecb(x5, SVE_VL256), "sqdecb x5, vl256");
+  COMPARE_MACRO(Sqdecb(x5, SVE_MUL4), "sqdecb x5, mul4");
+  COMPARE_MACRO(Sqdecb(x5, SVE_MUL3), "sqdecb x5, mul3");
+  COMPARE_MACRO(Sqdecb(x5, SVE_ALL), "sqdecb x5");
+
+  COMPARE_MACRO(Sqdecb(x5, SVE_POW2, 1), "sqdecb x5, pow2");
+  COMPARE_MACRO(Sqdecb(x5, SVE_VL1, 16), "sqdecb x5, vl1, mul #16");
+  COMPARE_MACRO(Sqdecb(x5, SVE_VL2, 15), "sqdecb x5, vl2, mul #15");
+  COMPARE_MACRO(Sqdecb(x5, SVE_VL16, 14), "sqdecb x5, vl16, mul #14");
+  COMPARE_MACRO(Sqdecb(x5, SVE_VL256, 8), "sqdecb x5, vl256, mul #8");
+  COMPARE_MACRO(Sqdecb(x5, SVE_MUL4, 4), "sqdecb x5, mul4, mul #4");
+  COMPARE_MACRO(Sqdecb(x5, SVE_MUL3, 3), "sqdecb x5, mul3, mul #3");
+  COMPARE_MACRO(Sqdecb(x5, SVE_ALL, 2), "sqdecb x5, all, mul #2");
+
+  COMPARE_MACRO(Sqdecb(xzr, SVE_POW2), "sqdecb xzr, pow2");
+  COMPARE_MACRO(Sqdecb(xzr, SVE_MUL4, 1), "sqdecb xzr, mul4");
+
+  COMPARE_MACRO(Sqincw(x7, SVE_POW2, 1), "sqincw x7, pow2");
+  COMPARE_MACRO(Sqincd(x7, SVE_VL1, 16), "sqincd x7, vl1, mul #16");
+  COMPARE_MACRO(Sqinch(x7, SVE_VL2, 15), "sqinch x7, vl2, mul #15");
+  COMPARE_MACRO(Sqincw(x7, SVE_VL16, 14), "sqincw x7, vl16, mul #14");
+  COMPARE_MACRO(Sqincd(x7, SVE_VL256, 8), "sqincd x7, vl256, mul #8");
+  COMPARE_MACRO(Sqinch(x7, SVE_MUL4, 4), "sqinch x7, mul4, mul #4");
+  COMPARE_MACRO(Sqincw(x7, SVE_MUL3, 3), "sqincw x7, mul3, mul #3");
+  COMPARE_MACRO(Sqincd(x7, SVE_ALL, 2), "sqincd x7, all, mul #2");
+
+  CLEANUP();
+}
+
+TEST(sve_unsigned_sat_incdec_reg_element_count) {
+  SETUP();
+
+  COMPARE_MACRO(Uqdecb(w12), "uqdecb w12");
+  COMPARE_MACRO(Uqdecb(w12, SVE_POW2), "uqdecb w12, pow2");
+  COMPARE_MACRO(Uqdecb(w12, SVE_VL1), "uqdecb w12, vl1");
+  COMPARE_MACRO(Uqdecb(w12, SVE_VL2), "uqdecb w12, vl2");
+  COMPARE_MACRO(Uqdecb(w12, SVE_VL16), "uqdecb w12, vl16");
+  COMPARE_MACRO(Uqdecb(w12, SVE_VL256), "uqdecb w12, vl256");
+  COMPARE_MACRO(Uqdecb(w12, SVE_MUL4), "uqdecb w12, mul4");
+  COMPARE_MACRO(Uqdecb(w12, SVE_MUL3), "uqdecb w12, mul3");
+  COMPARE_MACRO(Uqdecb(w12, SVE_ALL), "uqdecb w12");
+
+  COMPARE_MACRO(Uqdecb(w12, SVE_POW2, 1), "uqdecb w12, pow2");
+  COMPARE_MACRO(Uqdecb(w12, SVE_VL1, 16), "uqdecb w12, vl1, mul #16");
+  COMPARE_MACRO(Uqdecb(w12, SVE_VL2, 15), "uqdecb w12, vl2, mul #15");
+  COMPARE_MACRO(Uqdecb(w12, SVE_VL16, 14), "uqdecb w12, vl16, mul #14");
+  COMPARE_MACRO(Uqdecb(w12, SVE_VL256, 8), "uqdecb w12, vl256, mul #8");
+  COMPARE_MACRO(Uqdecb(w12, SVE_MUL4, 4), "uqdecb w12, mul4, mul #4");
+  COMPARE_MACRO(Uqdecb(w12, SVE_MUL3, 3), "uqdecb w12, mul3, mul #3");
+  COMPARE_MACRO(Uqdecb(w12, SVE_ALL, 2), "uqdecb w12, all, mul #2");
+
+  COMPARE_MACRO(Uqdecb(x30), "uqdecb x30");
+  COMPARE_MACRO(Uqdecb(xzr, SVE_POW2), "uqdecb xzr, pow2");
+  COMPARE_MACRO(Uqdecb(xzr, SVE_MUL4, 1), "uqdecb xzr, mul4");
+
+  COMPARE_MACRO(Uqdecw(w22), "uqdecw w22");
+  COMPARE_MACRO(Uqdecd(w22, SVE_POW2, 1), "uqdecd w22, pow2");
+  COMPARE_MACRO(Uqdech(w22, SVE_VL1, 16), "uqdech w22, vl1, mul #16");
+  COMPARE_MACRO(Uqdecw(x22, SVE_VL2, 15), "uqdecw x22, vl2, mul #15");
+  COMPARE_MACRO(Uqdecd(x22, SVE_VL16, 14), "uqdecd x22, vl16, mul #14");
+  COMPARE_MACRO(Uqdech(x22, SVE_VL256, 8), "uqdech x22, vl256, mul #8");
+  COMPARE_MACRO(Uqdecw(w22, SVE_MUL4, 4), "uqdecw w22, mul4, mul #4");
+  COMPARE_MACRO(Uqdecd(w22, SVE_MUL3, 3), "uqdecd w22, mul3, mul #3");
+  COMPARE_MACRO(Uqdech(w22, SVE_ALL, 2), "uqdech w22, all, mul #2");
+
+  COMPARE_MACRO(Uqincb(w29), "uqincb w29");
+  COMPARE_MACRO(Uqincb(w29, SVE_POW2), "uqincb w29, pow2");
+  COMPARE_MACRO(Uqincb(w29, SVE_VL1), "uqincb w29, vl1");
+  COMPARE_MACRO(Uqincb(w29, SVE_VL2), "uqincb w29, vl2");
+  COMPARE_MACRO(Uqincb(w29, SVE_VL16), "uqincb w29, vl16");
+  COMPARE_MACRO(Uqincb(w29, SVE_VL256), "uqincb w29, vl256");
+  COMPARE_MACRO(Uqincb(w29, SVE_MUL4), "uqincb w29, mul4");
+  COMPARE_MACRO(Uqincb(w29, SVE_MUL3), "uqincb w29, mul3");
+  COMPARE_MACRO(Uqincb(w29, SVE_ALL), "uqincb w29");
+
+  COMPARE_MACRO(Uqincb(w29, SVE_POW2, 1), "uqincb w29, pow2");
+  COMPARE_MACRO(Uqincb(w29, SVE_VL1, 16), "uqincb w29, vl1, mul #16");
+  COMPARE_MACRO(Uqincb(w29, SVE_VL2, 15), "uqincb w29, vl2, mul #15");
+  COMPARE_MACRO(Uqincb(w29, SVE_VL16, 14), "uqincb w29, vl16, mul #14");
+  COMPARE_MACRO(Uqincb(w29, SVE_VL256, 8), "uqincb w29, vl256, mul #8");
+  COMPARE_MACRO(Uqincb(w29, SVE_MUL4, 4), "uqincb w29, mul4, mul #4");
+  COMPARE_MACRO(Uqincb(w29, SVE_MUL3, 3), "uqincb w29, mul3, mul #3");
+  COMPARE_MACRO(Uqincb(w29, SVE_ALL, 2), "uqincb w29, all, mul #2");
+
+  COMPARE_MACRO(Uqincb(x30), "uqincb x30");
+  COMPARE_MACRO(Uqincb(xzr, SVE_POW2), "uqincb xzr, pow2");
+  COMPARE_MACRO(Uqincb(xzr, SVE_MUL4, 1), "uqincb xzr, mul4");
+
+  COMPARE_MACRO(Uqinch(w11), "uqinch w11");
+  COMPARE_MACRO(Uqincw(w11, SVE_POW2), "uqincw w11, pow2");
+  COMPARE_MACRO(Uqincd(w11, SVE_VL1), "uqincd w11, vl1");
+  COMPARE_MACRO(Uqinch(x11, SVE_VL2), "uqinch x11, vl2");
+  COMPARE_MACRO(Uqincw(x11, SVE_VL16), "uqincw x11, vl16");
+  COMPARE_MACRO(Uqincd(x11, SVE_VL256), "uqincd x11, vl256");
+  COMPARE_MACRO(Uqinch(w11, SVE_MUL4), "uqinch w11, mul4");
+  COMPARE_MACRO(Uqincw(w11, SVE_MUL3), "uqincw w11, mul3");
+  COMPARE_MACRO(Uqincd(w11, SVE_ALL), "uqincd w11");
+
+  CLEANUP();
+}
+
+TEST(sve_vector_dec_element_count) {
+  SETUP();
+
+  COMPARE_MACRO(Decd(z14.VnD()), "decd z14.d");
+  COMPARE_MACRO(Decd(z14.VnD(), SVE_POW2), "decd z14.d, pow2");
+  COMPARE_MACRO(Decd(z14.VnD(), SVE_VL1), "decd z14.d, vl1");
+  COMPARE_MACRO(Decd(z14.VnD(), SVE_VL2), "decd z14.d, vl2");
+  COMPARE_MACRO(Decd(z14.VnD(), SVE_VL16), "decd z14.d, vl16");
+  COMPARE_MACRO(Decd(z14.VnD(), SVE_VL256), "decd z14.d, vl256");
+  COMPARE_MACRO(Decd(z14.VnD(), SVE_MUL4), "decd z14.d, mul4");
+  COMPARE_MACRO(Decd(z14.VnD(), SVE_MUL3), "decd z14.d, mul3");
+  COMPARE_MACRO(Decd(z14.VnD(), SVE_ALL), "decd z14.d");
+
+  COMPARE_MACRO(Decd(z19.VnD(), SVE_POW2, 1), "decd z19.d, pow2");
+  COMPARE_MACRO(Decd(z19.VnD(), SVE_VL1, 16), "decd z19.d, vl1, mul #16");
+  COMPARE_MACRO(Decd(z19.VnD(), SVE_VL2, 15), "decd z19.d, vl2, mul #15");
+  COMPARE_MACRO(Decd(z19.VnD(), SVE_VL16, 14), "decd z19.d, vl16, mul #14");
+  COMPARE_MACRO(Decd(z19.VnD(), SVE_VL256, 8), "decd z19.d, vl256, mul #8");
+  COMPARE_MACRO(Decd(z19.VnD(), SVE_MUL4, 4), "decd z19.d, mul4, mul #4");
+  COMPARE_MACRO(Decd(z19.VnD(), SVE_MUL3, 3), "decd z19.d, mul3, mul #3");
+  COMPARE_MACRO(Decd(z19.VnD(), SVE_ALL, 2), "decd z19.d, all, mul #2");
+
+  COMPARE_MACRO(Dech(z27.VnH(), SVE_POW2, 1), "dech z27.h, pow2");
+  COMPARE_MACRO(Decw(z27.VnS(), SVE_VL1, 16), "decw z27.s, vl1, mul #16");
+  COMPARE_MACRO(Dech(z27.VnH(), SVE_VL2, 15), "dech z27.h, vl2, mul #15");
+  COMPARE_MACRO(Decw(z27.VnS(), SVE_VL16, 14), "decw z27.s, vl16, mul #14");
+  COMPARE_MACRO(Dech(z27.VnH(), SVE_VL256, 8), "dech z27.h, vl256, mul #8");
+  COMPARE_MACRO(Decw(z27.VnS(), SVE_MUL4, 4), "decw z27.s, mul4, mul #4");
+  COMPARE_MACRO(Dech(z27.VnH(), SVE_MUL3, 3), "dech z27.h, mul3, mul #3");
+  COMPARE_MACRO(Decw(z27.VnS(), SVE_ALL, 2), "decw z27.s, all, mul #2");
+
+  COMPARE_MACRO(Sqdecd(z13.VnD()), "sqdecd z13.d");
+  COMPARE_MACRO(Sqdecd(z13.VnD(), SVE_POW2), "sqdecd z13.d, pow2");
+  COMPARE_MACRO(Sqdecd(z13.VnD(), SVE_VL1), "sqdecd z13.d, vl1");
+  COMPARE_MACRO(Sqdecd(z13.VnD(), SVE_VL2), "sqdecd z13.d, vl2");
+  COMPARE_MACRO(Sqdecd(z13.VnD(), SVE_VL16), "sqdecd z13.d, vl16");
+  COMPARE_MACRO(Sqdecd(z13.VnD(), SVE_VL256), "sqdecd z13.d, vl256");
+  COMPARE_MACRO(Sqdecd(z13.VnD(), SVE_MUL4), "sqdecd z13.d, mul4");
+  COMPARE_MACRO(Sqdecd(z13.VnD(), SVE_MUL3), "sqdecd z13.d, mul3");
+  COMPARE_MACRO(Sqdecd(z13.VnD(), SVE_ALL), "sqdecd z13.d");
+
+  COMPARE_MACRO(Sqdecd(z9.VnD(), SVE_POW2, 1), "sqdecd z9.d, pow2");
+  COMPARE_MACRO(Sqdecd(z9.VnD(), SVE_VL1, 16), "sqdecd z9.d, vl1, mul #16");
+  COMPARE_MACRO(Sqdecd(z9.VnD(), SVE_VL2, 15), "sqdecd z9.d, vl2, mul #15");
+  COMPARE_MACRO(Sqdecd(z9.VnD(), SVE_VL16, 14), "sqdecd z9.d, vl16, mul #14");
+  COMPARE_MACRO(Sqdecd(z9.VnD(), SVE_VL256, 8), "sqdecd z9.d, vl256, mul #8");
+  COMPARE_MACRO(Sqdecd(z9.VnD(), SVE_MUL4, 4), "sqdecd z9.d, mul4, mul #4");
+  COMPARE_MACRO(Sqdecd(z9.VnD(), SVE_MUL3, 3), "sqdecd z9.d, mul3, mul #3");
+  COMPARE_MACRO(Sqdecd(z9.VnD(), SVE_ALL, 2), "sqdecd z9.d, all, mul #2");
+
+  COMPARE_MACRO(Sqdech(z31.VnH(), SVE_POW2, 1), "sqdech z31.h, pow2");
+  COMPARE_MACRO(Sqdecw(z31.VnS(), SVE_VL1, 16), "sqdecw z31.s, vl1, mul #16");
+  COMPARE_MACRO(Sqdech(z31.VnH(), SVE_VL2, 15), "sqdech z31.h, vl2, mul #15");
+  COMPARE_MACRO(Sqdecw(z31.VnS(), SVE_VL16, 14), "sqdecw z31.s, vl16, mul #14");
+  COMPARE_MACRO(Sqdech(z31.VnH(), SVE_VL256, 8), "sqdech z31.h, vl256, mul #8");
+  COMPARE_MACRO(Sqdecw(z31.VnS(), SVE_MUL4, 4), "sqdecw z31.s, mul4, mul #4");
+  COMPARE_MACRO(Sqdech(z31.VnH(), SVE_MUL3, 3), "sqdech z31.h, mul3, mul #3");
+  COMPARE_MACRO(Sqdecw(z31.VnS(), SVE_ALL, 2), "sqdecw z31.s, all, mul #2");
+
+  COMPARE_MACRO(Uqdecd(z1.VnD()), "uqdecd z1.d");
+  COMPARE_MACRO(Uqdecd(z1.VnD(), SVE_POW2), "uqdecd z1.d, pow2");
+  COMPARE_MACRO(Uqdecd(z1.VnD(), SVE_VL1), "uqdecd z1.d, vl1");
+  COMPARE_MACRO(Uqdecd(z1.VnD(), SVE_VL2), "uqdecd z1.d, vl2");
+  COMPARE_MACRO(Uqdecd(z1.VnD(), SVE_VL16), "uqdecd z1.d, vl16");
+  COMPARE_MACRO(Uqdecd(z1.VnD(), SVE_VL256), "uqdecd z1.d, vl256");
+  COMPARE_MACRO(Uqdecd(z1.VnD(), SVE_MUL4), "uqdecd z1.d, mul4");
+  COMPARE_MACRO(Uqdecd(z1.VnD(), SVE_MUL3), "uqdecd z1.d, mul3");
+  COMPARE_MACRO(Uqdecd(z1.VnD(), SVE_ALL), "uqdecd z1.d");
+
+  COMPARE_MACRO(Uqdecd(z7.VnD(), SVE_POW2, 1), "uqdecd z7.d, pow2");
+  COMPARE_MACRO(Uqdecd(z7.VnD(), SVE_VL1, 16), "uqdecd z7.d, vl1, mul #16");
+  COMPARE_MACRO(Uqdecd(z7.VnD(), SVE_VL2, 15), "uqdecd z7.d, vl2, mul #15");
+  COMPARE_MACRO(Uqdecd(z7.VnD(), SVE_VL16, 14), "uqdecd z7.d, vl16, mul #14");
+  COMPARE_MACRO(Uqdecd(z7.VnD(), SVE_VL256, 8), "uqdecd z7.d, vl256, mul #8");
+  COMPARE_MACRO(Uqdecd(z7.VnD(), SVE_MUL4, 4), "uqdecd z7.d, mul4, mul #4");
+  COMPARE_MACRO(Uqdecd(z7.VnD(), SVE_MUL3, 3), "uqdecd z7.d, mul3, mul #3");
+  COMPARE_MACRO(Uqdecd(z7.VnD(), SVE_ALL, 2), "uqdecd z7.d, all, mul #2");
+
+  COMPARE_MACRO(Uqdech(z26.VnH(), SVE_POW2, 1), "uqdech z26.h, pow2");
+  COMPARE_MACRO(Uqdecw(z26.VnS(), SVE_VL1, 16), "uqdecw z26.s, vl1, mul #16");
+  COMPARE_MACRO(Uqdech(z26.VnH(), SVE_VL2, 15), "uqdech z26.h, vl2, mul #15");
+  COMPARE_MACRO(Uqdecw(z26.VnS(), SVE_VL16, 14), "uqdecw z26.s, vl16, mul #14");
+  COMPARE_MACRO(Uqdech(z26.VnH(), SVE_VL256, 8), "uqdech z26.h, vl256, mul #8");
+  COMPARE_MACRO(Uqdecw(z26.VnS(), SVE_MUL4, 4), "uqdecw z26.s, mul4, mul #4");
+  COMPARE_MACRO(Uqdech(z26.VnH(), SVE_MUL3, 3), "uqdech z26.h, mul3, mul #3");
+  COMPARE_MACRO(Uqdecw(z26.VnS(), SVE_ALL, 2), "uqdecw z26.s, all, mul #2");
+
+  CLEANUP();
+}
+
+TEST(sve_vector_inc_element_count) {
+  SETUP();
+
+  COMPARE_MACRO(Incd(z16.VnD()), "incd z16.d");
+  COMPARE_MACRO(Incd(z16.VnD(), SVE_POW2), "incd z16.d, pow2");
+  COMPARE_MACRO(Incd(z16.VnD(), SVE_VL1), "incd z16.d, vl1");
+  COMPARE_MACRO(Incd(z16.VnD(), SVE_VL2), "incd z16.d, vl2");
+  COMPARE_MACRO(Incd(z16.VnD(), SVE_VL16), "incd z16.d, vl16");
+  COMPARE_MACRO(Incd(z16.VnD(), SVE_VL256), "incd z16.d, vl256");
+  COMPARE_MACRO(Incd(z16.VnD(), SVE_MUL4), "incd z16.d, mul4");
+  COMPARE_MACRO(Incd(z16.VnD(), SVE_MUL3), "incd z16.d, mul3");
+  COMPARE_MACRO(Incd(z16.VnD(), SVE_ALL), "incd z16.d");
+
+  COMPARE_MACRO(Incd(z18.VnD(), SVE_POW2, 1), "incd z18.d, pow2");
+  COMPARE_MACRO(Incd(z18.VnD(), SVE_VL1, 16), "incd z18.d, vl1, mul #16");
+  COMPARE_MACRO(Incd(z18.VnD(), SVE_VL2, 15), "incd z18.d, vl2, mul #15");
+  COMPARE_MACRO(Incd(z18.VnD(), SVE_VL16, 14), "incd z18.d, vl16, mul #14");
+  COMPARE_MACRO(Incd(z18.VnD(), SVE_VL256, 8), "incd z18.d, vl256, mul #8");
+  COMPARE_MACRO(Incd(z18.VnD(), SVE_MUL4, 4), "incd z18.d, mul4, mul #4");
+  COMPARE_MACRO(Incd(z18.VnD(), SVE_MUL3, 3), "incd z18.d, mul3, mul #3");
+  COMPARE_MACRO(Incd(z18.VnD(), SVE_ALL, 2), "incd z18.d, all, mul #2");
+
+  COMPARE_MACRO(Inch(z24.VnH(), SVE_POW2, 1), "inch z24.h, pow2");
+  COMPARE_MACRO(Incw(z24.VnS(), SVE_VL1, 16), "incw z24.s, vl1, mul #16");
+  COMPARE_MACRO(Inch(z24.VnH(), SVE_VL2, 15), "inch z24.h, vl2, mul #15");
+  COMPARE_MACRO(Incw(z24.VnS(), SVE_VL16, 14), "incw z24.s, vl16, mul #14");
+  COMPARE_MACRO(Inch(z24.VnH(), SVE_VL256, 8), "inch z24.h, vl256, mul #8");
+  COMPARE_MACRO(Incw(z24.VnS(), SVE_MUL4, 4), "incw z24.s, mul4, mul #4");
+  COMPARE_MACRO(Inch(z24.VnH(), SVE_MUL3, 3), "inch z24.h, mul3, mul #3");
+  COMPARE_MACRO(Incw(z24.VnS(), SVE_ALL, 2), "incw z24.s, all, mul #2");
+
+  COMPARE_MACRO(Sqincd(z10.VnD()), "sqincd z10.d");
+  COMPARE_MACRO(Sqincd(z10.VnD(), SVE_POW2), "sqincd z10.d, pow2");
+  COMPARE_MACRO(Sqincd(z10.VnD(), SVE_VL1), "sqincd z10.d, vl1");
+  COMPARE_MACRO(Sqincd(z10.VnD(), SVE_VL2), "sqincd z10.d, vl2");
+  COMPARE_MACRO(Sqincd(z10.VnD(), SVE_VL16), "sqincd z10.d, vl16");
+  COMPARE_MACRO(Sqincd(z10.VnD(), SVE_VL256), "sqincd z10.d, vl256");
+  COMPARE_MACRO(Sqincd(z10.VnD(), SVE_MUL4), "sqincd z10.d, mul4");
+  COMPARE_MACRO(Sqincd(z10.VnD(), SVE_MUL3), "sqincd z10.d, mul3");
+  COMPARE_MACRO(Sqincd(z10.VnD(), SVE_ALL), "sqincd z10.d");
+
+  COMPARE_MACRO(Sqincd(z3.VnD(), SVE_POW2, 1), "sqincd z3.d, pow2");
+  COMPARE_MACRO(Sqincd(z3.VnD(), SVE_VL1, 16), "sqincd z3.d, vl1, mul #16");
+  COMPARE_MACRO(Sqincd(z3.VnD(), SVE_VL2, 15), "sqincd z3.d, vl2, mul #15");
+  COMPARE_MACRO(Sqincd(z3.VnD(), SVE_VL16, 14), "sqincd z3.d, vl16, mul #14");
+  COMPARE_MACRO(Sqincd(z3.VnD(), SVE_VL256, 8), "sqincd z3.d, vl256, mul #8");
+  COMPARE_MACRO(Sqincd(z3.VnD(), SVE_MUL4, 4), "sqincd z3.d, mul4, mul #4");
+  COMPARE_MACRO(Sqincd(z3.VnD(), SVE_MUL3, 3), "sqincd z3.d, mul3, mul #3");
+  COMPARE_MACRO(Sqincd(z3.VnD(), SVE_ALL, 2), "sqincd z3.d, all, mul #2");
+
+  COMPARE_MACRO(Sqinch(z24.VnH(), SVE_POW2, 1), "sqinch z24.h, pow2");
+  COMPARE_MACRO(Sqincw(z24.VnS(), SVE_VL1, 16), "sqincw z24.s, vl1, mul #16");
+  COMPARE_MACRO(Sqinch(z24.VnH(), SVE_VL2, 15), "sqinch z24.h, vl2, mul #15");
+  COMPARE_MACRO(Sqincw(z24.VnS(), SVE_VL16, 14), "sqincw z24.s, vl16, mul #14");
+  COMPARE_MACRO(Sqinch(z24.VnH(), SVE_VL256, 8), "sqinch z24.h, vl256, mul #8");
+  COMPARE_MACRO(Sqincw(z24.VnS(), SVE_MUL4, 4), "sqincw z24.s, mul4, mul #4");
+  COMPARE_MACRO(Sqinch(z24.VnH(), SVE_MUL3, 3), "sqinch z24.h, mul3, mul #3");
+  COMPARE_MACRO(Sqincw(z24.VnS(), SVE_ALL, 2), "sqincw z24.s, all, mul #2");
+
+  COMPARE_MACRO(Uqincd(z10.VnD()), "uqincd z10.d");
+  COMPARE_MACRO(Uqincd(z10.VnD(), SVE_POW2), "uqincd z10.d, pow2");
+  COMPARE_MACRO(Uqincd(z10.VnD(), SVE_VL1), "uqincd z10.d, vl1");
+  COMPARE_MACRO(Uqincd(z10.VnD(), SVE_VL2), "uqincd z10.d, vl2");
+  COMPARE_MACRO(Uqincd(z10.VnD(), SVE_VL16), "uqincd z10.d, vl16");
+  COMPARE_MACRO(Uqincd(z10.VnD(), SVE_VL256), "uqincd z10.d, vl256");
+  COMPARE_MACRO(Uqincd(z10.VnD(), SVE_MUL4), "uqincd z10.d, mul4");
+  COMPARE_MACRO(Uqincd(z10.VnD(), SVE_MUL3), "uqincd z10.d, mul3");
+  COMPARE_MACRO(Uqincd(z10.VnD(), SVE_ALL), "uqincd z10.d");
+
+  COMPARE_MACRO(Uqincd(z6.VnD(), SVE_POW2, 1), "uqincd z6.d, pow2");
+  COMPARE_MACRO(Uqincd(z6.VnD(), SVE_VL1, 16), "uqincd z6.d, vl1, mul #16");
+  COMPARE_MACRO(Uqincd(z6.VnD(), SVE_VL2, 15), "uqincd z6.d, vl2, mul #15");
+  COMPARE_MACRO(Uqincd(z6.VnD(), SVE_VL16, 14), "uqincd z6.d, vl16, mul #14");
+  COMPARE_MACRO(Uqincd(z6.VnD(), SVE_VL256, 8), "uqincd z6.d, vl256, mul #8");
+  COMPARE_MACRO(Uqincd(z6.VnD(), SVE_MUL4, 4), "uqincd z6.d, mul4, mul #4");
+  COMPARE_MACRO(Uqincd(z6.VnD(), SVE_MUL3, 3), "uqincd z6.d, mul3, mul #3");
+  COMPARE_MACRO(Uqincd(z6.VnD(), SVE_ALL, 2), "uqincd z6.d, all, mul #2");
+
+  COMPARE_MACRO(Uqinch(z20.VnH(), SVE_POW2, 1), "uqinch z20.h, pow2");
+  COMPARE_MACRO(Uqincw(z20.VnS(), SVE_VL1, 16), "uqincw z20.s, vl1, mul #16");
+  COMPARE_MACRO(Uqinch(z20.VnH(), SVE_VL2, 15), "uqinch z20.h, vl2, mul #15");
+  COMPARE_MACRO(Uqincw(z20.VnS(), SVE_VL16, 14), "uqincw z20.s, vl16, mul #14");
+  COMPARE_MACRO(Uqinch(z20.VnH(), SVE_VL256, 8), "uqinch z20.h, vl256, mul #8");
+  COMPARE_MACRO(Uqincw(z20.VnS(), SVE_MUL4, 4), "uqincw z20.s, mul4, mul #4");
+  COMPARE_MACRO(Uqinch(z20.VnH(), SVE_MUL3, 3), "uqinch z20.h, mul3, mul #3");
+  COMPARE_MACRO(Uqincw(z20.VnS(), SVE_ALL, 2), "uqincw z20.s, all, mul #2");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_accumulating_reduction) {
+  SETUP();
+
+  COMPARE_PREFIX(fadda(h10, p2, h10, z0.VnH()), "fadda h10, p2, h10, z0.h");
+  COMPARE_PREFIX(fadda(s10, p2, s10, z0.VnS()), "fadda s10, p2, s10, z0.s");
+  COMPARE_PREFIX(fadda(d10, p2, d10, z0.VnD()), "fadda d10, p2, d10, z0.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_arithmetic_predicated) {
+  SETUP();
+
+  COMPARE_PREFIX(fdiv(z9.VnH(), p4.Merging(), z9.VnH(), z4.VnH()),
+                 "fdiv z9.h, p4/m, z9.h, z4.h");
+  COMPARE_PREFIX(fdiv(z19.VnS(), p5.Merging(), z19.VnS(), z14.VnS()),
+                 "fdiv z19.s, p5/m, z19.s, z14.s");
+  COMPARE_PREFIX(fdiv(z29.VnD(), p6.Merging(), z29.VnD(), z24.VnD()),
+                 "fdiv z29.d, p6/m, z29.d, z24.d");
+  COMPARE_PREFIX(fdivr(z21.VnH(), p3.Merging(), z21.VnH(), z11.VnH()),
+                 "fdivr z21.h, p3/m, z21.h, z11.h");
+  COMPARE_PREFIX(fdivr(z23.VnS(), p5.Merging(), z23.VnS(), z15.VnS()),
+                 "fdivr z23.s, p5/m, z23.s, z15.s");
+  COMPARE_PREFIX(fdivr(z25.VnD(), p7.Merging(), z25.VnD(), z19.VnD()),
+                 "fdivr z25.d, p7/m, z25.d, z19.d");
+  COMPARE_PREFIX(fmax(z4.VnH(), p1.Merging(), z4.VnH(), z29.VnH()),
+                 "fmax z4.h, p1/m, z4.h, z29.h");
+  COMPARE_PREFIX(fmax(z14.VnS(), p3.Merging(), z14.VnS(), z29.VnS()),
+                 "fmax z14.s, p3/m, z14.s, z29.s");
+  COMPARE_PREFIX(fmax(z24.VnD(), p5.Merging(), z24.VnD(), z29.VnD()),
+                 "fmax z24.d, p5/m, z24.d, z29.d");
+  COMPARE_PREFIX(fmin(z1.VnH(), p2.Merging(), z1.VnH(), z30.VnH()),
+                 "fmin z1.h, p2/m, z1.h, z30.h");
+  COMPARE_PREFIX(fmin(z11.VnS(), p4.Merging(), z11.VnS(), z30.VnS()),
+                 "fmin z11.s, p4/m, z11.s, z30.s");
+  COMPARE_PREFIX(fmin(z21.VnD(), p6.Merging(), z21.VnD(), z30.VnD()),
+                 "fmin z21.d, p6/m, z21.d, z30.d");
+
+  COMPARE_PREFIX(ftmad(z21.VnH(), z21.VnH(), z22.VnH(), 0),
+                 "ftmad z21.h, z21.h, z22.h, #0");
+  COMPARE_PREFIX(ftmad(z21.VnH(), z21.VnH(), z22.VnH(), 2),
+                 "ftmad z21.h, z21.h, z22.h, #2");
+  COMPARE_PREFIX(ftmad(z2.VnH(), z2.VnH(), z21.VnH(), 7),
+                 "ftmad z2.h, z2.h, z21.h, #7");
+  COMPARE_PREFIX(ftmad(z21.VnS(), z21.VnS(), z22.VnS(), 0),
+                 "ftmad z21.s, z21.s, z22.s, #0");
+  COMPARE_PREFIX(ftmad(z21.VnS(), z21.VnS(), z22.VnS(), 2),
+                 "ftmad z21.s, z21.s, z22.s, #2");
+  COMPARE_PREFIX(ftmad(z2.VnS(), z2.VnS(), z21.VnS(), 7),
+                 "ftmad z2.s, z2.s, z21.s, #7");
+  COMPARE_PREFIX(ftmad(z21.VnD(), z21.VnD(), z22.VnD(), 0),
+                 "ftmad z21.d, z21.d, z22.d, #0");
+  COMPARE_PREFIX(ftmad(z21.VnD(), z21.VnD(), z22.VnD(), 2),
+                 "ftmad z21.d, z21.d, z22.d, #2");
+  COMPARE_PREFIX(ftmad(z2.VnD(), z2.VnD(), z21.VnD(), 7),
+                 "ftmad z2.d, z2.d, z21.d, #7");
+
+  COMPARE_MACRO(Ftmad(z3.VnH(), z2.VnH(), z1.VnH(), 1),
+                "movprfx z3, z2\n"
+                "ftmad z3.h, z3.h, z1.h, #1");
+  COMPARE_MACRO(Ftmad(z6.VnS(), z4.VnS(), z6.VnS(), 1),
+                "mov z31.d, z6.d\n"
+                "movprfx z6, z4\n"
+                "ftmad z6.s, z6.s, z31.s, #1");
+
+  COMPARE_PREFIX(fabd(z31.VnH(), p7.Merging(), z31.VnH(), z17.VnH()),
+                 "fabd z31.h, p7/m, z31.h, z17.h");
+  COMPARE_PREFIX(fabd(z31.VnS(), p7.Merging(), z31.VnS(), z17.VnS()),
+                 "fabd z31.s, p7/m, z31.s, z17.s");
+  COMPARE_PREFIX(fabd(z31.VnD(), p7.Merging(), z31.VnD(), z17.VnD()),
+                 "fabd z31.d, p7/m, z31.d, z17.d");
+  COMPARE_PREFIX(fadd(z24.VnH(), p2.Merging(), z24.VnH(), z15.VnH()),
+                 "fadd z24.h, p2/m, z24.h, z15.h");
+  COMPARE_PREFIX(fadd(z24.VnS(), p2.Merging(), z24.VnS(), z15.VnS()),
+                 "fadd z24.s, p2/m, z24.s, z15.s");
+  COMPARE_PREFIX(fadd(z24.VnD(), p2.Merging(), z24.VnD(), z15.VnD()),
+                 "fadd z24.d, p2/m, z24.d, z15.d");
+  COMPARE_PREFIX(fmaxnm(z15.VnH(), p4.Merging(), z15.VnH(), z3.VnH()),
+                 "fmaxnm z15.h, p4/m, z15.h, z3.h");
+  COMPARE_PREFIX(fmaxnm(z15.VnS(), p4.Merging(), z15.VnS(), z3.VnS()),
+                 "fmaxnm z15.s, p4/m, z15.s, z3.s");
+  COMPARE_PREFIX(fmaxnm(z15.VnD(), p4.Merging(), z15.VnD(), z3.VnD()),
+                 "fmaxnm z15.d, p4/m, z15.d, z3.d");
+  COMPARE_PREFIX(fminnm(z19.VnH(), p2.Merging(), z19.VnH(), z29.VnH()),
+                 "fminnm z19.h, p2/m, z19.h, z29.h");
+  COMPARE_PREFIX(fminnm(z19.VnS(), p2.Merging(), z19.VnS(), z29.VnS()),
+                 "fminnm z19.s, p2/m, z19.s, z29.s");
+  COMPARE_PREFIX(fminnm(z19.VnD(), p2.Merging(), z19.VnD(), z29.VnD()),
+                 "fminnm z19.d, p2/m, z19.d, z29.d");
+  COMPARE_PREFIX(fmulx(z30.VnH(), p6.Merging(), z30.VnH(), z20.VnH()),
+                 "fmulx z30.h, p6/m, z30.h, z20.h");
+  COMPARE_PREFIX(fmulx(z30.VnS(), p6.Merging(), z30.VnS(), z20.VnS()),
+                 "fmulx z30.s, p6/m, z30.s, z20.s");
+  COMPARE_PREFIX(fmulx(z30.VnD(), p6.Merging(), z30.VnD(), z20.VnD()),
+                 "fmulx z30.d, p6/m, z30.d, z20.d");
+  COMPARE_PREFIX(fmul(z26.VnH(), p2.Merging(), z26.VnH(), z6.VnH()),
+                 "fmul z26.h, p2/m, z26.h, z6.h");
+  COMPARE_PREFIX(fmul(z26.VnS(), p2.Merging(), z26.VnS(), z6.VnS()),
+                 "fmul z26.s, p2/m, z26.s, z6.s");
+  COMPARE_PREFIX(fmul(z26.VnD(), p2.Merging(), z26.VnD(), z6.VnD()),
+                 "fmul z26.d, p2/m, z26.d, z6.d");
+  COMPARE_PREFIX(fscale(z8.VnH(), p3.Merging(), z8.VnH(), z6.VnH()),
+                 "fscale z8.h, p3/m, z8.h, z6.h");
+  COMPARE_PREFIX(fscale(z8.VnS(), p3.Merging(), z8.VnS(), z6.VnS()),
+                 "fscale z8.s, p3/m, z8.s, z6.s");
+  COMPARE_PREFIX(fscale(z8.VnD(), p3.Merging(), z8.VnD(), z6.VnD()),
+                 "fscale z8.d, p3/m, z8.d, z6.d");
+  COMPARE_PREFIX(fsubr(z16.VnH(), p5.Merging(), z16.VnH(), z15.VnH()),
+                 "fsubr z16.h, p5/m, z16.h, z15.h");
+  COMPARE_PREFIX(fsubr(z16.VnS(), p5.Merging(), z16.VnS(), z15.VnS()),
+                 "fsubr z16.s, p5/m, z16.s, z15.s");
+  COMPARE_PREFIX(fsubr(z16.VnD(), p5.Merging(), z16.VnD(), z15.VnD()),
+                 "fsubr z16.d, p5/m, z16.d, z15.d");
+  COMPARE_PREFIX(fsub(z16.VnH(), p5.Merging(), z16.VnH(), z26.VnH()),
+                 "fsub z16.h, p5/m, z16.h, z26.h");
+  COMPARE_PREFIX(fsub(z16.VnS(), p5.Merging(), z16.VnS(), z26.VnS()),
+                 "fsub z16.s, p5/m, z16.s, z26.s");
+  COMPARE_PREFIX(fsub(z16.VnD(), p5.Merging(), z16.VnD(), z26.VnD()),
+                 "fsub z16.d, p5/m, z16.d, z26.d");
+
+  COMPARE_MACRO(Fsub(z0.VnH(), p0.Merging(), z1.VnH(), z0.VnH()),
+                "fsubr z0.h, p0/m, z0.h, z1.h");
+
+  COMPARE_MACRO(Fadd(z0.VnH(),
+                     p0.Merging(),
+                     z1.VnH(),
+                     z2.VnH(),
+                     FastNaNPropagation),
+                "movprfx z0.h, p0/m, z1.h\n"
+                "fadd z0.h, p0/m, z0.h, z2.h");
+  COMPARE_MACRO(Fadd(z0.VnH(),
+                     p0.Merging(),
+                     z1.VnH(),
+                     z0.VnH(),
+                     FastNaNPropagation),
+                "fadd z0.h, p0/m, z0.h, z1.h");
+  COMPARE_MACRO(Fadd(z0.VnH(),
+                     p0.Merging(),
+                     z1.VnH(),
+                     z0.VnH(),
+                     StrictNaNPropagation),
+                "movprfx z31.h, p0/m, z1.h\n"
+                "fadd z31.h, p0/m, z31.h, z0.h\n"
+                "mov z0.d, z31.d");
+  COMPARE_MACRO(Fmul(z1.VnS(),
+                     p1.Merging(),
+                     z2.VnS(),
+                     z3.VnS(),
+                     FastNaNPropagation),
+                "movprfx z1.s, p1/m, z2.s\n"
+                "fmul z1.s, p1/m, z1.s, z3.s");
+  COMPARE_MACRO(Fmulx(z2.VnD(),
+                      p2.Merging(),
+                      z3.VnD(),
+                      z4.VnD(),
+                      FastNaNPropagation),
+                "movprfx z2.d, p2/m, z3.d\n"
+                "fmulx z2.d, p2/m, z2.d, z4.d");
+  COMPARE_MACRO(Fminnm(z3.VnH(),
+                       p3.Merging(),
+                       z4.VnH(),
+                       z5.VnH(),
+                       FastNaNPropagation),
+                "movprfx z3.h, p3/m, z4.h\n"
+                "fminnm z3.h, p3/m, z3.h, z5.h");
+  COMPARE_MACRO(Fmaxnm(z4.VnS(),
+                       p4.Merging(),
+                       z5.VnS(),
+                       z6.VnS(),
+                       FastNaNPropagation),
+                "movprfx z4.s, p4/m, z5.s\n"
+                "fmaxnm z4.s, p4/m, z4.s, z6.s");
+  COMPARE_MACRO(Fsub(z5.VnD(), p5.Merging(), z6.VnD(), z7.VnD()),
+                "movprfx z5.d, p5/m, z6.d\n"
+                "fsub z5.d, p5/m, z5.d, z7.d");
+  COMPARE_MACRO(Fscale(z6.VnH(), p6.Merging(), z7.VnH(), z8.VnH()),
+                "movprfx z6.h, p6/m, z7.h\n"
+                "fscale z6.h, p6/m, z6.h, z8.h");
+  COMPARE_MACRO(Fscale(z7.VnS(), p7.Merging(), z8.VnS(), z7.VnS()),
+                "mov z31.d, z7.d\n"
+                "movprfx z7.s, p7/m, z8.s\n"
+                "fscale z7.s, p7/m, z7.s, z31.s");
+
+  COMPARE_PREFIX(fadd(z18.VnH(), p0.Merging(), z18.VnH(), 0.5),
+                 "fadd z18.h, p0/m, z18.h, #0.5");
+  COMPARE_PREFIX(fadd(z18.VnS(), p0.Merging(), z18.VnS(), 1.0),
+                 "fadd z18.s, p0/m, z18.s, #1.0");
+  COMPARE_PREFIX(fadd(z18.VnD(), p0.Merging(), z18.VnD(), 1.0),
+                 "fadd z18.d, p0/m, z18.d, #1.0");
+  COMPARE_PREFIX(fmaxnm(z6.VnH(), p1.Merging(), z6.VnH(), 0.0),
+                 "fmaxnm z6.h, p1/m, z6.h, #0.0");
+  COMPARE_PREFIX(fmaxnm(z6.VnS(), p1.Merging(), z6.VnS(), 1.0),
+                 "fmaxnm z6.s, p1/m, z6.s, #1.0");
+  COMPARE_PREFIX(fmaxnm(z6.VnD(), p1.Merging(), z6.VnD(), 1.0),
+                 "fmaxnm z6.d, p1/m, z6.d, #1.0");
+  COMPARE_PREFIX(fmax(z8.VnH(), p6.Merging(), z8.VnH(), 0.0),
+                 "fmax z8.h, p6/m, z8.h, #0.0");
+  COMPARE_PREFIX(fmax(z8.VnS(), p6.Merging(), z8.VnS(), 0.0),
+                 "fmax z8.s, p6/m, z8.s, #0.0");
+  COMPARE_PREFIX(fmax(z8.VnD(), p6.Merging(), z8.VnD(), 1.0),
+                 "fmax z8.d, p6/m, z8.d, #1.0");
+  COMPARE_PREFIX(fminnm(z26.VnH(), p0.Merging(), z26.VnH(), 1.0),
+                 "fminnm z26.h, p0/m, z26.h, #1.0");
+  COMPARE_PREFIX(fminnm(z26.VnS(), p0.Merging(), z26.VnS(), 0.0),
+                 "fminnm z26.s, p0/m, z26.s, #0.0");
+  COMPARE_PREFIX(fminnm(z26.VnD(), p0.Merging(), z26.VnD(), 1.0),
+                 "fminnm z26.d, p0/m, z26.d, #1.0");
+  COMPARE_PREFIX(fmin(z22.VnH(), p0.Merging(), z22.VnH(), 1.0),
+                 "fmin z22.h, p0/m, z22.h, #1.0");
+  COMPARE_PREFIX(fmin(z22.VnS(), p0.Merging(), z22.VnS(), 1.0),
+                 "fmin z22.s, p0/m, z22.s, #1.0");
+  COMPARE_PREFIX(fmin(z22.VnD(), p0.Merging(), z22.VnD(), 0.0),
+                 "fmin z22.d, p0/m, z22.d, #0.0");
+  COMPARE_PREFIX(fmul(z21.VnH(), p3.Merging(), z21.VnH(), 0.5),
+                 "fmul z21.h, p3/m, z21.h, #0.5");
+  COMPARE_PREFIX(fmul(z21.VnS(), p3.Merging(), z21.VnS(), 2.0),
+                 "fmul z21.s, p3/m, z21.s, #2.0");
+  COMPARE_PREFIX(fmul(z21.VnD(), p3.Merging(), z21.VnD(), 2.0),
+                 "fmul z21.d, p3/m, z21.d, #2.0");
+  COMPARE_PREFIX(fsubr(z21.VnH(), p3.Merging(), z21.VnH(), 1.0),
+                 "fsubr z21.h, p3/m, z21.h, #1.0");
+  COMPARE_PREFIX(fsubr(z21.VnS(), p3.Merging(), z21.VnS(), 0.5),
+                 "fsubr z21.s, p3/m, z21.s, #0.5");
+  COMPARE_PREFIX(fsubr(z21.VnD(), p3.Merging(), z21.VnD(), 1.0),
+                 "fsubr z21.d, p3/m, z21.d, #1.0");
+  COMPARE_PREFIX(fsub(z26.VnH(), p4.Merging(), z26.VnH(), 0.5),
+                 "fsub z26.h, p4/m, z26.h, #0.5");
+  COMPARE_PREFIX(fsub(z26.VnS(), p4.Merging(), z26.VnS(), 1.0),
+                 "fsub z26.s, p4/m, z26.s, #1.0");
+  COMPARE_PREFIX(fsub(z26.VnD(), p4.Merging(), z26.VnD(), 0.5),
+                 "fsub z26.d, p4/m, z26.d, #0.5");
+
+  COMPARE_MACRO(Fadd(z18.VnH(), p0.Merging(), z8.VnH(), 1.0),
+                "movprfx z18.h, p0/m, z8.h\n"
+                "fadd z18.h, p0/m, z18.h, #1.0");
+  COMPARE_MACRO(Fsub(z19.VnH(), p1.Merging(), z9.VnH(), 0.5),
+                "movprfx z19.h, p1/m, z9.h\n"
+                "fsub z19.h, p1/m, z19.h, #0.5");
+  COMPARE_MACRO(Fsub(z20.VnH(), p2.Merging(), 1.0, z10.VnH()),
+                "movprfx z20.h, p2/m, z10.h\n"
+                "fsubr z20.h, p2/m, z20.h, #1.0");
+  COMPARE_MACRO(Fmul(z21.VnH(), p3.Merging(), z11.VnH(), 2.0),
+                "movprfx z21.h, p3/m, z11.h\n"
+                "fmul z21.h, p3/m, z21.h, #2.0");
+  COMPARE_MACRO(Fmin(z22.VnH(), p4.Merging(), z12.VnH(), 0.0),
+                "movprfx z22.h, p4/m, z12.h\n"
+                "fmin z22.h, p4/m, z22.h, #0.0");
+  COMPARE_MACRO(Fminnm(z22.VnH(), p4.Merging(), z12.VnH(), 0.0),
+                "movprfx z22.h, p4/m, z12.h\n"
+                "fminnm z22.h, p4/m, z22.h, #0.0");
+  COMPARE_MACRO(Fmax(z23.VnH(), p5.Merging(), z13.VnH(), 1.0),
+                "movprfx z23.h, p5/m, z13.h\n"
+                "fmax z23.h, p5/m, z23.h, #1.0");
+  COMPARE_MACRO(Fmaxnm(z23.VnH(), p5.Merging(), z13.VnH(), 1.0),
+                "movprfx z23.h, p5/m, z13.h\n"
+                "fmaxnm z23.h, p5/m, z23.h, #1.0");
+  CLEANUP();
+}
+
+TEST(sve_fp_arithmetic_predicated_macro_fast_nan_propagation) {
+  // Shadow the `MacroAssembler` type so that the test macros work without
+  // modification.
+  typedef FastNaNPropagationMacroAssembler MacroAssembler;
+
+  SETUP();
+
+  COMPARE_MACRO(Fdiv(z8.VnH(), p4.Merging(), z8.VnH(), z4.VnH()),
+                "fdiv z8.h, p4/m, z8.h, z4.h");
+  COMPARE_MACRO(Fdiv(z18.VnS(), p5.Merging(), z18.VnS(), z14.VnS()),
+                "fdiv z18.s, p5/m, z18.s, z14.s");
+  COMPARE_MACRO(Fdiv(z28.VnD(), p6.Merging(), z28.VnD(), z24.VnD()),
+                "fdiv z28.d, p6/m, z28.d, z24.d");
+  COMPARE_MACRO(Fdiv(z17.VnH(), p2.Merging(), z17.VnH(), z17.VnH()),
+                "fdiv z17.h, p2/m, z17.h, z17.h");
+  COMPARE_MACRO(Fdiv(z20.VnS(), p5.Merging(), z23.VnS(), z20.VnS()),
+                "fdivr z20.s, p5/m, z20.s, z23.s");
+  COMPARE_MACRO(Fdiv(z15.VnD(), p6.Merging(), z30.VnD(), z8.VnD()),
+                "movprfx z15.d, p6/m, z30.d\n"
+                "fdiv z15.d, p6/m, z15.d, z8.d");
+
+  COMPARE_MACRO(Fmax(z8.VnH(), p4.Merging(), z8.VnH(), z4.VnH()),
+                "fmax z8.h, p4/m, z8.h, z4.h");
+  COMPARE_MACRO(Fmax(z18.VnS(), p5.Merging(), z18.VnS(), z14.VnS()),
+                "fmax z18.s, p5/m, z18.s, z14.s");
+  COMPARE_MACRO(Fmax(z28.VnD(), p6.Merging(), z28.VnD(), z24.VnD()),
+                "fmax z28.d, p6/m, z28.d, z24.d");
+  COMPARE_MACRO(Fmax(z17.VnH(), p2.Merging(), z17.VnH(), z17.VnH()),
+                "fmax z17.h, p2/m, z17.h, z17.h");
+  COMPARE_MACRO(Fmax(z20.VnS(), p5.Merging(), z23.VnS(), z20.VnS()),
+                "fmax z20.s, p5/m, z20.s, z23.s");
+  COMPARE_MACRO(Fmax(z15.VnD(), p6.Merging(), z30.VnD(), z8.VnD()),
+                "movprfx z15.d, p6/m, z30.d\n"
+                "fmax z15.d, p6/m, z15.d, z8.d");
+
+  COMPARE_MACRO(Fmin(z8.VnH(), p4.Merging(), z8.VnH(), z4.VnH()),
+                "fmin z8.h, p4/m, z8.h, z4.h");
+  COMPARE_MACRO(Fmin(z18.VnS(), p5.Merging(), z18.VnS(), z14.VnS()),
+                "fmin z18.s, p5/m, z18.s, z14.s");
+  COMPARE_MACRO(Fmin(z28.VnD(), p6.Merging(), z28.VnD(), z24.VnD()),
+                "fmin z28.d, p6/m, z28.d, z24.d");
+  COMPARE_MACRO(Fmin(z17.VnH(), p2.Merging(), z17.VnH(), z17.VnH()),
+                "fmin z17.h, p2/m, z17.h, z17.h");
+  COMPARE_MACRO(Fmin(z20.VnS(), p5.Merging(), z23.VnS(), z20.VnS()),
+                "fmin z20.s, p5/m, z20.s, z23.s");
+  COMPARE_MACRO(Fmin(z15.VnD(), p6.Merging(), z30.VnD(), z8.VnD()),
+                "movprfx z15.d, p6/m, z30.d\n"
+                "fmin z15.d, p6/m, z15.d, z8.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_arithmetic_predicated_macro_strict_nan_propagation) {
+  // Shadow the `MacroAssembler` type so that the test macros work without
+  // modification.
+  typedef StrictNaNPropagationMacroAssembler MacroAssembler;
+
+  SETUP();
+
+  COMPARE_MACRO(Fdiv(z8.VnH(), p4.Merging(), z8.VnH(), z4.VnH()),
+                "fdiv z8.h, p4/m, z8.h, z4.h");
+  COMPARE_MACRO(Fdiv(z18.VnS(), p5.Merging(), z18.VnS(), z14.VnS()),
+                "fdiv z18.s, p5/m, z18.s, z14.s");
+  COMPARE_MACRO(Fdiv(z28.VnD(), p6.Merging(), z28.VnD(), z24.VnD()),
+                "fdiv z28.d, p6/m, z28.d, z24.d");
+  COMPARE_MACRO(Fdiv(z17.VnH(), p2.Merging(), z17.VnH(), z17.VnH()),
+                "fdiv z17.h, p2/m, z17.h, z17.h");
+  COMPARE_MACRO(Fdiv(z20.VnS(), p5.Merging(), z23.VnS(), z20.VnS()),
+                "fdivr z20.s, p5/m, z20.s, z23.s");
+  COMPARE_MACRO(Fdiv(z15.VnD(), p6.Merging(), z30.VnD(), z8.VnD()),
+                "movprfx z15.d, p6/m, z30.d\n"
+                "fdiv z15.d, p6/m, z15.d, z8.d");
+
+  COMPARE_MACRO(Fmax(z8.VnH(), p4.Merging(), z8.VnH(), z4.VnH()),
+                "fmax z8.h, p4/m, z8.h, z4.h");
+  COMPARE_MACRO(Fmax(z18.VnS(), p5.Merging(), z18.VnS(), z14.VnS()),
+                "fmax z18.s, p5/m, z18.s, z14.s");
+  COMPARE_MACRO(Fmax(z28.VnD(), p6.Merging(), z28.VnD(), z24.VnD()),
+                "fmax z28.d, p6/m, z28.d, z24.d");
+  COMPARE_MACRO(Fmax(z17.VnH(), p2.Merging(), z17.VnH(), z17.VnH()),
+                "fmax z17.h, p2/m, z17.h, z17.h");
+  COMPARE_MACRO(Fmax(z20.VnS(), p5.Merging(), z23.VnS(), z20.VnS()),
+                "movprfx z31.s, p5/m, z23.s\n"
+                "fmax z31.s, p5/m, z31.s, z20.s\n"
+                "mov z20.d, z31.d");
+  COMPARE_MACRO(Fmax(z15.VnD(), p6.Merging(), z30.VnD(), z8.VnD()),
+                "movprfx z15.d, p6/m, z30.d\n"
+                "fmax z15.d, p6/m, z15.d, z8.d");
+
+  COMPARE_MACRO(Fmin(z8.VnH(), p4.Merging(), z8.VnH(), z4.VnH()),
+                "fmin z8.h, p4/m, z8.h, z4.h");
+  COMPARE_MACRO(Fmin(z18.VnS(), p5.Merging(), z18.VnS(), z14.VnS()),
+                "fmin z18.s, p5/m, z18.s, z14.s");
+  COMPARE_MACRO(Fmin(z28.VnD(), p6.Merging(), z28.VnD(), z24.VnD()),
+                "fmin z28.d, p6/m, z28.d, z24.d");
+  COMPARE_MACRO(Fmin(z17.VnH(), p2.Merging(), z17.VnH(), z17.VnH()),
+                "fmin z17.h, p2/m, z17.h, z17.h");
+  COMPARE_MACRO(Fmin(z20.VnS(), p5.Merging(), z23.VnS(), z20.VnS()),
+                "movprfx z31.s, p5/m, z23.s\n"
+                "fmin z31.s, p5/m, z31.s, z20.s\n"
+                "mov z20.d, z31.d");
+  COMPARE_MACRO(Fmin(z15.VnD(), p6.Merging(), z30.VnD(), z8.VnD()),
+                "movprfx z15.d, p6/m, z30.d\n"
+                "fmin z15.d, p6/m, z15.d, z8.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_arithmetic_unpredicated) {
+  SETUP();
+
+  COMPARE_PREFIX(fadd(z5.VnH(), z24.VnH(), z11.VnH()),
+                 "fadd z5.h, z24.h, z11.h");
+  COMPARE_PREFIX(fadd(z15.VnS(), z14.VnS(), z12.VnS()),
+                 "fadd z15.s, z14.s, z12.s");
+  COMPARE_PREFIX(fadd(z25.VnD(), z4.VnD(), z13.VnD()),
+                 "fadd z25.d, z4.d, z13.d");
+  COMPARE_PREFIX(fmul(z9.VnH(), z24.VnH(), z10.VnH()),
+                 "fmul z9.h, z24.h, z10.h");
+  COMPARE_PREFIX(fmul(z19.VnS(), z14.VnS(), z0.VnS()),
+                 "fmul z19.s, z14.s, z0.s");
+  COMPARE_PREFIX(fmul(z29.VnD(), z4.VnD(), z20.VnD()),
+                 "fmul z29.d, z4.d, z20.d");
+  COMPARE_PREFIX(fsub(z4.VnH(), z14.VnH(), z29.VnH()),
+                 "fsub z4.h, z14.h, z29.h");
+  COMPARE_PREFIX(fsub(z14.VnS(), z24.VnS(), z9.VnS()),
+                 "fsub z14.s, z24.s, z9.s");
+  COMPARE_PREFIX(fsub(z14.VnD(), z4.VnD(), z19.VnD()),
+                 "fsub z14.d, z4.d, z19.d");
+  COMPARE_PREFIX(frecps(z14.VnH(), z29.VnH(), z18.VnH()),
+                 "frecps z14.h, z29.h, z18.h");
+  COMPARE_PREFIX(frecps(z14.VnS(), z29.VnS(), z18.VnS()),
+                 "frecps z14.s, z29.s, z18.s");
+  COMPARE_PREFIX(frecps(z14.VnD(), z29.VnD(), z18.VnD()),
+                 "frecps z14.d, z29.d, z18.d");
+  COMPARE_PREFIX(frsqrts(z5.VnH(), z6.VnH(), z28.VnH()),
+                 "frsqrts z5.h, z6.h, z28.h");
+  COMPARE_PREFIX(frsqrts(z5.VnS(), z6.VnS(), z28.VnS()),
+                 "frsqrts z5.s, z6.s, z28.s");
+  COMPARE_PREFIX(frsqrts(z5.VnD(), z6.VnD(), z28.VnD()),
+                 "frsqrts z5.d, z6.d, z28.d");
+  COMPARE_PREFIX(ftsmul(z21.VnH(), z17.VnH(), z24.VnH()),
+                 "ftsmul z21.h, z17.h, z24.h");
+  COMPARE_PREFIX(ftsmul(z21.VnS(), z17.VnS(), z24.VnS()),
+                 "ftsmul z21.s, z17.s, z24.s");
+  COMPARE_PREFIX(ftsmul(z21.VnD(), z17.VnD(), z24.VnD()),
+                 "ftsmul z21.d, z17.d, z24.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_compare_vectors) {
+  SETUP();
+
+
+  COMPARE_PREFIX(facge(p1.VnH(), p3.Zeroing(), z22.VnH(), z25.VnH()),
+                 "facge p1.h, p3/z, z22.h, z25.h");
+  COMPARE_PREFIX(facge(p1.VnS(), p3.Zeroing(), z22.VnS(), z25.VnS()),
+                 "facge p1.s, p3/z, z22.s, z25.s");
+  COMPARE_PREFIX(facge(p1.VnD(), p3.Zeroing(), z22.VnD(), z25.VnD()),
+                 "facge p1.d, p3/z, z22.d, z25.d");
+  COMPARE_PREFIX(facgt(p8.VnH(), p7.Zeroing(), z25.VnH(), z17.VnH()),
+                 "facgt p8.h, p7/z, z25.h, z17.h");
+  COMPARE_PREFIX(facgt(p8.VnS(), p7.Zeroing(), z25.VnS(), z17.VnS()),
+                 "facgt p8.s, p7/z, z25.s, z17.s");
+  COMPARE_PREFIX(facgt(p8.VnD(), p7.Zeroing(), z25.VnD(), z17.VnD()),
+                 "facgt p8.d, p7/z, z25.d, z17.d");
+  COMPARE_PREFIX(fcmeq(p10.VnH(), p2.Zeroing(), z1.VnH(), z17.VnH()),
+                 "fcmeq p10.h, p2/z, z1.h, z17.h");
+  COMPARE_PREFIX(fcmeq(p10.VnS(), p2.Zeroing(), z1.VnS(), z17.VnS()),
+                 "fcmeq p10.s, p2/z, z1.s, z17.s");
+  COMPARE_PREFIX(fcmeq(p10.VnD(), p2.Zeroing(), z1.VnD(), z17.VnD()),
+                 "fcmeq p10.d, p2/z, z1.d, z17.d");
+  COMPARE_PREFIX(fcmge(p0.VnH(), p0.Zeroing(), z1.VnH(), z0.VnH()),
+                 "fcmge p0.h, p0/z, z1.h, z0.h");
+  COMPARE_PREFIX(fcmge(p0.VnS(), p0.Zeroing(), z1.VnS(), z0.VnS()),
+                 "fcmge p0.s, p0/z, z1.s, z0.s");
+  COMPARE_PREFIX(fcmge(p0.VnD(), p0.Zeroing(), z1.VnD(), z0.VnD()),
+                 "fcmge p0.d, p0/z, z1.d, z0.d");
+  COMPARE_PREFIX(fcmgt(p15.VnH(), p5.Zeroing(), z26.VnH(), z5.VnH()),
+                 "fcmgt p15.h, p5/z, z26.h, z5.h");
+  COMPARE_PREFIX(fcmgt(p15.VnS(), p5.Zeroing(), z26.VnS(), z5.VnS()),
+                 "fcmgt p15.s, p5/z, z26.s, z5.s");
+  COMPARE_PREFIX(fcmgt(p15.VnD(), p5.Zeroing(), z26.VnD(), z5.VnD()),
+                 "fcmgt p15.d, p5/z, z26.d, z5.d");
+  COMPARE_PREFIX(fcmne(p2.VnH(), p1.Zeroing(), z9.VnH(), z4.VnH()),
+                 "fcmne p2.h, p1/z, z9.h, z4.h");
+  COMPARE_PREFIX(fcmne(p2.VnS(), p1.Zeroing(), z9.VnS(), z4.VnS()),
+                 "fcmne p2.s, p1/z, z9.s, z4.s");
+  COMPARE_PREFIX(fcmne(p2.VnD(), p1.Zeroing(), z9.VnD(), z4.VnD()),
+                 "fcmne p2.d, p1/z, z9.d, z4.d");
+  COMPARE_PREFIX(fcmuo(p6.VnH(), p4.Zeroing(), z10.VnH(), z21.VnH()),
+                 "fcmuo p6.h, p4/z, z10.h, z21.h");
+  COMPARE_PREFIX(fcmuo(p6.VnS(), p4.Zeroing(), z10.VnS(), z21.VnS()),
+                 "fcmuo p6.s, p4/z, z10.s, z21.s");
+  COMPARE_PREFIX(fcmuo(p6.VnD(), p4.Zeroing(), z10.VnD(), z21.VnD()),
+                 "fcmuo p6.d, p4/z, z10.d, z21.d");
+
+  COMPARE_MACRO(Facle(p2.VnH(), p0.Zeroing(), z11.VnH(), z15.VnH()),
+                "facge p2.h, p0/z, z15.h, z11.h");
+  COMPARE_MACRO(Facle(p2.VnS(), p0.Zeroing(), z11.VnS(), z15.VnS()),
+                "facge p2.s, p0/z, z15.s, z11.s");
+  COMPARE_MACRO(Facle(p2.VnD(), p0.Zeroing(), z11.VnD(), z15.VnD()),
+                "facge p2.d, p0/z, z15.d, z11.d");
+  COMPARE_MACRO(Faclt(p9.VnH(), p4.Zeroing(), z27.VnH(), z5.VnH()),
+                "facgt p9.h, p4/z, z5.h, z27.h");
+  COMPARE_MACRO(Faclt(p9.VnS(), p4.Zeroing(), z27.VnS(), z5.VnS()),
+                "facgt p9.s, p4/z, z5.s, z27.s");
+  COMPARE_MACRO(Faclt(p9.VnD(), p4.Zeroing(), z27.VnD(), z5.VnD()),
+                "facgt p9.d, p4/z, z5.d, z27.d");
+
+  COMPARE_MACRO(Fcmle(p12.VnH(), p2.Zeroing(), z21.VnH(), z29.VnH()),
+                "fcmge p12.h, p2/z, z29.h, z21.h");
+  COMPARE_MACRO(Fcmle(p12.VnS(), p2.Zeroing(), z21.VnS(), z29.VnS()),
+                "fcmge p12.s, p2/z, z29.s, z21.s");
+  COMPARE_MACRO(Fcmle(p12.VnD(), p2.Zeroing(), z21.VnD(), z29.VnD()),
+                "fcmge p12.d, p2/z, z29.d, z21.d");
+  COMPARE_MACRO(Fcmlt(p7.VnH(), p3.Zeroing(), z7.VnH(), z14.VnH()),
+                "fcmgt p7.h, p3/z, z14.h, z7.h");
+  COMPARE_MACRO(Fcmlt(p7.VnS(), p3.Zeroing(), z7.VnS(), z14.VnS()),
+                "fcmgt p7.s, p3/z, z14.s, z7.s");
+  COMPARE_MACRO(Fcmlt(p7.VnD(), p3.Zeroing(), z7.VnD(), z14.VnD()),
+                "fcmgt p7.d, p3/z, z14.d, z7.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_compare_with_zero) {
+  SETUP();
+
+  COMPARE_PREFIX(fcmeq(p9.VnH(), p1.Zeroing(), z17.VnH(), 0),
+                 "fcmeq p9.h, p1/z, z17.h, #0.0");
+  COMPARE_PREFIX(fcmeq(p9.VnS(), p1.Zeroing(), z17.VnS(), 0),
+                 "fcmeq p9.s, p1/z, z17.s, #0.0");
+  COMPARE_PREFIX(fcmeq(p9.VnD(), p1.Zeroing(), z17.VnD(), 0),
+                 "fcmeq p9.d, p1/z, z17.d, #0.0");
+  COMPARE_PREFIX(fcmge(p13.VnH(), p3.Zeroing(), z13.VnH(), 0),
+                 "fcmge p13.h, p3/z, z13.h, #0.0");
+  COMPARE_PREFIX(fcmge(p13.VnS(), p3.Zeroing(), z13.VnS(), 0),
+                 "fcmge p13.s, p3/z, z13.s, #0.0");
+  COMPARE_PREFIX(fcmge(p13.VnD(), p3.Zeroing(), z13.VnD(), 0),
+                 "fcmge p13.d, p3/z, z13.d, #0.0");
+  COMPARE_PREFIX(fcmgt(p10.VnH(), p2.Zeroing(), z24.VnH(), 0),
+                 "fcmgt p10.h, p2/z, z24.h, #0.0");
+  COMPARE_PREFIX(fcmgt(p10.VnS(), p2.Zeroing(), z24.VnS(), 0),
+                 "fcmgt p10.s, p2/z, z24.s, #0.0");
+  COMPARE_PREFIX(fcmgt(p10.VnD(), p2.Zeroing(), z24.VnD(), 0),
+                 "fcmgt p10.d, p2/z, z24.d, #0.0");
+  COMPARE_PREFIX(fcmle(p4.VnH(), p7.Zeroing(), z1.VnH(), 0),
+                 "fcmle p4.h, p7/z, z1.h, #0.0");
+  COMPARE_PREFIX(fcmle(p4.VnS(), p7.Zeroing(), z1.VnS(), 0),
+                 "fcmle p4.s, p7/z, z1.s, #0.0");
+  COMPARE_PREFIX(fcmle(p4.VnD(), p7.Zeroing(), z1.VnD(), 0),
+                 "fcmle p4.d, p7/z, z1.d, #0.0");
+  COMPARE_PREFIX(fcmlt(p15.VnH(), p7.Zeroing(), z9.VnH(), 0),
+                 "fcmlt p15.h, p7/z, z9.h, #0.0");
+  COMPARE_PREFIX(fcmlt(p15.VnS(), p7.Zeroing(), z9.VnS(), 0),
+                 "fcmlt p15.s, p7/z, z9.s, #0.0");
+  COMPARE_PREFIX(fcmlt(p15.VnD(), p7.Zeroing(), z9.VnD(), 0),
+                 "fcmlt p15.d, p7/z, z9.d, #0.0");
+  COMPARE_PREFIX(fcmne(p14.VnH(), p7.Zeroing(), z28.VnH(), 0),
+                 "fcmne p14.h, p7/z, z28.h, #0.0");
+  COMPARE_PREFIX(fcmne(p14.VnS(), p7.Zeroing(), z28.VnS(), 0),
+                 "fcmne p14.s, p7/z, z28.s, #0.0");
+  COMPARE_PREFIX(fcmne(p14.VnD(), p7.Zeroing(), z28.VnD(), 0),
+                 "fcmne p14.d, p7/z, z28.d, #0.0");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_complex_addition) {
+  SETUP();
+
+  COMPARE_PREFIX(fcadd(z12.VnH(), p5.Merging(), z12.VnH(), z13.VnH(), 90),
+                 "fcadd z12.h, p5/m, z12.h, z13.h, #90");
+  COMPARE_PREFIX(fcadd(z12.VnS(), p5.Merging(), z12.VnS(), z13.VnS(), 90),
+                 "fcadd z12.s, p5/m, z12.s, z13.s, #90");
+  COMPARE_PREFIX(fcadd(z12.VnD(), p5.Merging(), z12.VnD(), z13.VnD(), 90),
+                 "fcadd z12.d, p5/m, z12.d, z13.d, #90");
+  COMPARE_PREFIX(fcadd(z22.VnH(), p0.Merging(), z22.VnH(), z23.VnH(), 270),
+                 "fcadd z22.h, p0/m, z22.h, z23.h, #270");
+  COMPARE_PREFIX(fcadd(z22.VnS(), p0.Merging(), z22.VnS(), z23.VnS(), 270),
+                 "fcadd z22.s, p0/m, z22.s, z23.s, #270");
+  COMPARE_PREFIX(fcadd(z22.VnD(), p0.Merging(), z22.VnD(), z23.VnD(), 270),
+                 "fcadd z22.d, p0/m, z22.d, z23.d, #270");
+
+  COMPARE_MACRO(Fcadd(z12.VnH(), p5.Merging(), z1.VnH(), z13.VnH(), 90),
+                "movprfx z12.h, p5/m, z1.h\n"
+                "fcadd z12.h, p5/m, z12.h, z13.h, #90");
+  COMPARE_MACRO(Fcadd(z12.VnH(), p5.Merging(), z1.VnH(), z12.VnH(), 90),
+                "movprfx z31.h, p5/m, z1.h\n"
+                "fcadd z31.h, p5/m, z31.h, z12.h, #90\n"
+                "mov z12.d, z31.d");
+  CLEANUP();
+}
+
+TEST(sve_fp_complex_mul_add) {
+  SETUP();
+
+  COMPARE_PREFIX(fcmla(z19.VnH(), p7.Merging(), z16.VnH(), z0.VnH(), 90),
+                 "fcmla z19.h, p7/m, z16.h, z0.h, #90");
+  COMPARE_PREFIX(fcmla(z19.VnS(), p7.Merging(), z16.VnS(), z0.VnS(), 90),
+                 "fcmla z19.s, p7/m, z16.s, z0.s, #90");
+  COMPARE_PREFIX(fcmla(z19.VnD(), p7.Merging(), z16.VnD(), z0.VnD(), 90),
+                 "fcmla z19.d, p7/m, z16.d, z0.d, #90");
+
+  COMPARE_PREFIX(fcmla(z20.VnD(), p6.Merging(), z15.VnD(), z1.VnD(), 0),
+                 "fcmla z20.d, p6/m, z15.d, z1.d, #0");
+  COMPARE_PREFIX(fcmla(z20.VnD(), p6.Merging(), z15.VnD(), z1.VnD(), 180),
+                 "fcmla z20.d, p6/m, z15.d, z1.d, #180");
+  COMPARE_PREFIX(fcmla(z20.VnD(), p6.Merging(), z15.VnD(), z1.VnD(), 270),
+                 "fcmla z20.d, p6/m, z15.d, z1.d, #270");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_complex_mul_add_index) {
+  SETUP();
+
+  COMPARE_PREFIX(fcmla(z30.VnH(), z20.VnH(), z3.VnH(), 0, 0),
+                 "fcmla z30.h, z20.h, z3.h[0], #0");
+  COMPARE_PREFIX(fcmla(z30.VnH(), z20.VnH(), z3.VnH(), 1, 0),
+                 "fcmla z30.h, z20.h, z3.h[1], #0");
+  COMPARE_PREFIX(fcmla(z30.VnH(), z20.VnH(), z3.VnH(), 2, 90),
+                 "fcmla z30.h, z20.h, z3.h[2], #90");
+  COMPARE_PREFIX(fcmla(z30.VnH(), z20.VnH(), z3.VnH(), 0, 270),
+                 "fcmla z30.h, z20.h, z3.h[0], #270");
+  COMPARE_PREFIX(fcmla(z10.VnS(), z20.VnS(), z1.VnS(), 0, 0),
+                 "fcmla z10.s, z20.s, z1.s[0], #0");
+  COMPARE_PREFIX(fcmla(z10.VnS(), z20.VnS(), z1.VnS(), 1, 0),
+                 "fcmla z10.s, z20.s, z1.s[1], #0");
+  COMPARE_PREFIX(fcmla(z10.VnS(), z20.VnS(), z1.VnS(), 1, 90),
+                 "fcmla z10.s, z20.s, z1.s[1], #90");
+  COMPARE_PREFIX(fcmla(z10.VnS(), z20.VnS(), z1.VnS(), 0, 270),
+                 "fcmla z10.s, z20.s, z1.s[0], #270");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_fast_reduction) {
+  SETUP();
+
+  COMPARE_PREFIX(faddv(h26, p6, z16.VnH()), "faddv h26, p6, z16.h");
+  COMPARE_PREFIX(faddv(s26, p6, z16.VnS()), "faddv s26, p6, z16.s");
+  COMPARE_PREFIX(faddv(d26, p6, z16.VnD()), "faddv d26, p6, z16.d");
+  COMPARE_PREFIX(fmaxnmv(h28, p1, z0.VnH()), "fmaxnmv h28, p1, z0.h");
+  COMPARE_PREFIX(fmaxnmv(s28, p1, z0.VnS()), "fmaxnmv s28, p1, z0.s");
+  COMPARE_PREFIX(fmaxnmv(d28, p1, z0.VnD()), "fmaxnmv d28, p1, z0.d");
+  COMPARE_PREFIX(fmaxv(h3, p1, z23.VnH()), "fmaxv h3, p1, z23.h");
+  COMPARE_PREFIX(fmaxv(s3, p1, z23.VnS()), "fmaxv s3, p1, z23.s");
+  COMPARE_PREFIX(fmaxv(d3, p1, z23.VnD()), "fmaxv d3, p1, z23.d");
+  COMPARE_PREFIX(fminnmv(h20, p6, z21.VnH()), "fminnmv h20, p6, z21.h");
+  COMPARE_PREFIX(fminnmv(s20, p6, z21.VnS()), "fminnmv s20, p6, z21.s");
+  COMPARE_PREFIX(fminnmv(d20, p6, z21.VnD()), "fminnmv d20, p6, z21.d");
+  COMPARE_PREFIX(fminv(h10, p4, z27.VnH()), "fminv h10, p4, z27.h");
+  COMPARE_PREFIX(fminv(s10, p4, z27.VnS()), "fminv s10, p4, z27.s");
+  COMPARE_PREFIX(fminv(d10, p4, z27.VnD()), "fminv d10, p4, z27.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_mul_add) {
+  SETUP();
+
+  COMPARE_PREFIX(fmad(z31.VnH(), p2.Merging(), z8.VnH(), z1.VnH()),
+                 "fmad z31.h, p2/m, z8.h, z1.h");
+  COMPARE_PREFIX(fmad(z31.VnS(), p2.Merging(), z8.VnS(), z1.VnS()),
+                 "fmad z31.s, p2/m, z8.s, z1.s");
+  COMPARE_PREFIX(fmad(z31.VnD(), p2.Merging(), z8.VnD(), z1.VnD()),
+                 "fmad z31.d, p2/m, z8.d, z1.d");
+  COMPARE_PREFIX(fmla(z26.VnH(), p7.Merging(), z19.VnH(), z16.VnH()),
+                 "fmla z26.h, p7/m, z19.h, z16.h");
+  COMPARE_PREFIX(fmla(z26.VnS(), p7.Merging(), z19.VnS(), z16.VnS()),
+                 "fmla z26.s, p7/m, z19.s, z16.s");
+  COMPARE_PREFIX(fmla(z26.VnD(), p7.Merging(), z19.VnD(), z16.VnD()),
+                 "fmla z26.d, p7/m, z19.d, z16.d");
+  COMPARE_PREFIX(fmls(z20.VnH(), p6.Merging(), z28.VnH(), z0.VnH()),
+                 "fmls z20.h, p6/m, z28.h, z0.h");
+  COMPARE_PREFIX(fmls(z20.VnS(), p6.Merging(), z28.VnS(), z0.VnS()),
+                 "fmls z20.s, p6/m, z28.s, z0.s");
+  COMPARE_PREFIX(fmls(z20.VnD(), p6.Merging(), z28.VnD(), z0.VnD()),
+                 "fmls z20.d, p6/m, z28.d, z0.d");
+  COMPARE_PREFIX(fmsb(z3.VnH(), p4.Merging(), z8.VnH(), z22.VnH()),
+                 "fmsb z3.h, p4/m, z8.h, z22.h");
+  COMPARE_PREFIX(fmsb(z3.VnS(), p4.Merging(), z8.VnS(), z22.VnS()),
+                 "fmsb z3.s, p4/m, z8.s, z22.s");
+  COMPARE_PREFIX(fmsb(z3.VnD(), p4.Merging(), z8.VnD(), z22.VnD()),
+                 "fmsb z3.d, p4/m, z8.d, z22.d");
+  COMPARE_PREFIX(fnmad(z0.VnH(), p5.Merging(), z20.VnH(), z17.VnH()),
+                 "fnmad z0.h, p5/m, z20.h, z17.h");
+  COMPARE_PREFIX(fnmad(z0.VnS(), p5.Merging(), z20.VnS(), z17.VnS()),
+                 "fnmad z0.s, p5/m, z20.s, z17.s");
+  COMPARE_PREFIX(fnmad(z0.VnD(), p5.Merging(), z20.VnD(), z17.VnD()),
+                 "fnmad z0.d, p5/m, z20.d, z17.d");
+  COMPARE_PREFIX(fnmla(z31.VnH(), p6.Merging(), z14.VnH(), z8.VnH()),
+                 "fnmla z31.h, p6/m, z14.h, z8.h");
+  COMPARE_PREFIX(fnmla(z31.VnS(), p6.Merging(), z14.VnS(), z8.VnS()),
+                 "fnmla z31.s, p6/m, z14.s, z8.s");
+  COMPARE_PREFIX(fnmla(z31.VnD(), p6.Merging(), z14.VnD(), z8.VnD()),
+                 "fnmla z31.d, p6/m, z14.d, z8.d");
+  COMPARE_PREFIX(fnmls(z2.VnH(), p1.Merging(), z23.VnH(), z15.VnH()),
+                 "fnmls z2.h, p1/m, z23.h, z15.h");
+  COMPARE_PREFIX(fnmls(z2.VnS(), p1.Merging(), z23.VnS(), z15.VnS()),
+                 "fnmls z2.s, p1/m, z23.s, z15.s");
+  COMPARE_PREFIX(fnmls(z2.VnD(), p1.Merging(), z23.VnD(), z15.VnD()),
+                 "fnmls z2.d, p1/m, z23.d, z15.d");
+  COMPARE_PREFIX(fnmsb(z28.VnH(), p3.Merging(), z26.VnH(), z11.VnH()),
+                 "fnmsb z28.h, p3/m, z26.h, z11.h");
+  COMPARE_PREFIX(fnmsb(z28.VnS(), p3.Merging(), z26.VnS(), z11.VnS()),
+                 "fnmsb z28.s, p3/m, z26.s, z11.s");
+  COMPARE_PREFIX(fnmsb(z28.VnD(), p3.Merging(), z26.VnD(), z11.VnD()),
+                 "fnmsb z28.d, p3/m, z26.d, z11.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_mul_add_macro_strict_nan_propagation) {
+  // Shadow the `MacroAssembler` type so that the test macros work without
+  // modification.
+  typedef StrictNaNPropagationMacroAssembler MacroAssembler;
+
+  SETUP();
+
+  COMPARE_MACRO(Fmla(z0.VnH(), p1.Merging(), z0.VnH(), z2.VnH(), z4.VnH()),
+                "fmla z0.h, p1/m, z2.h, z4.h");
+  COMPARE_MACRO(Fmla(z3.VnH(), p2.Merging(), z4.VnH(), z3.VnH(), z5.VnH()),
+                "fmad z3.h, p2/m, z5.h, z4.h");
+  COMPARE_MACRO(Fmla(z4.VnS(), p3.Merging(), z5.VnS(), z6.VnS(), z4.VnS()),
+                "movprfx z31.s, p3/m, z5.s\n"
+                "fmla z31.s, p3/m, z6.s, z4.s\n"
+                "mov z4.d, z31.d");
+  COMPARE_MACRO(Fmla(z5.VnD(), p4.Merging(), z6.VnD(), z7.VnD(), z8.VnD()),
+                "movprfx z5.d, p4/m, z6.d\n"
+                "fmla z5.d, p4/m, z7.d, z8.d");
+
+  COMPARE_MACRO(Fmls(z0.VnD(), p1.Merging(), z0.VnD(), z2.VnD(), z4.VnD()),
+                "fmls z0.d, p1/m, z2.d, z4.d");
+  COMPARE_MACRO(Fmls(z3.VnS(), p2.Merging(), z4.VnS(), z3.VnS(), z5.VnS()),
+                "fmsb z3.s, p2/m, z5.s, z4.s");
+  COMPARE_MACRO(Fmls(z4.VnH(), p3.Merging(), z5.VnH(), z6.VnH(), z4.VnH()),
+                "movprfx z31.h, p3/m, z5.h\n"
+                "fmls z31.h, p3/m, z6.h, z4.h\n"
+                "mov z4.d, z31.d");
+  COMPARE_MACRO(Fmls(z5.VnD(), p4.Merging(), z6.VnD(), z7.VnD(), z8.VnD()),
+                "movprfx z5.d, p4/m, z6.d\n"
+                "fmls z5.d, p4/m, z7.d, z8.d");
+
+  COMPARE_MACRO(Fnmla(z10.VnH(), p5.Merging(), z10.VnH(), z12.VnH(), z14.VnH()),
+                "fnmla z10.h, p5/m, z12.h, z14.h");
+  COMPARE_MACRO(Fnmla(z13.VnH(), p6.Merging(), z14.VnH(), z13.VnH(), z15.VnH()),
+                "fnmad z13.h, p6/m, z15.h, z14.h");
+  COMPARE_MACRO(Fnmla(z14.VnS(), p7.Merging(), z15.VnS(), z16.VnS(), z14.VnS()),
+                "movprfx z31.s, p7/m, z15.s\n"
+                "fnmla z31.s, p7/m, z16.s, z14.s\n"
+                "mov z14.d, z31.d");
+  COMPARE_MACRO(Fnmla(z15.VnD(), p0.Merging(), z16.VnD(), z17.VnD(), z18.VnD()),
+                "movprfx z15.d, p0/m, z16.d\n"
+                "fnmla z15.d, p0/m, z17.d, z18.d");
+
+  COMPARE_MACRO(Fnmls(z10.VnD(), p5.Merging(), z10.VnD(), z12.VnD(), z14.VnD()),
+                "fnmls z10.d, p5/m, z12.d, z14.d");
+  COMPARE_MACRO(Fnmls(z13.VnS(), p6.Merging(), z14.VnS(), z13.VnS(), z15.VnS()),
+                "fnmsb z13.s, p6/m, z15.s, z14.s");
+  COMPARE_MACRO(Fnmls(z14.VnH(), p7.Merging(), z15.VnH(), z16.VnH(), z14.VnH()),
+                "movprfx z31.h, p7/m, z15.h\n"
+                "fnmls z31.h, p7/m, z16.h, z14.h\n"
+                "mov z14.d, z31.d");
+  COMPARE_MACRO(Fnmls(z15.VnD(), p0.Merging(), z16.VnD(), z17.VnD(), z18.VnD()),
+                "movprfx z15.d, p0/m, z16.d\n"
+                "fnmls z15.d, p0/m, z17.d, z18.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_mul_add_macro_fast_nan_propagation) {
+  // Shadow the `MacroAssembler` type so that the test macros work without
+  // modification.
+  typedef FastNaNPropagationMacroAssembler MacroAssembler;
+
+  SETUP();
+
+  COMPARE_MACRO(Fmla(z0.VnH(), p1.Merging(), z0.VnH(), z2.VnH(), z4.VnH()),
+                "fmla z0.h, p1/m, z2.h, z4.h");
+  COMPARE_MACRO(Fmla(z3.VnH(), p2.Merging(), z4.VnH(), z3.VnH(), z5.VnH()),
+                "fmad z3.h, p2/m, z5.h, z4.h");
+  COMPARE_MACRO(Fmla(z4.VnS(), p3.Merging(), z5.VnS(), z6.VnS(), z4.VnS()),
+                "fmad z4.s, p3/m, z6.s, z5.s");
+  COMPARE_MACRO(Fmla(z5.VnD(), p4.Merging(), z6.VnD(), z7.VnD(), z8.VnD()),
+                "movprfx z5.d, p4/m, z6.d\n"
+                "fmla z5.d, p4/m, z7.d, z8.d");
+
+  COMPARE_MACRO(Fmls(z0.VnD(), p1.Merging(), z0.VnD(), z2.VnD(), z4.VnD()),
+                "fmls z0.d, p1/m, z2.d, z4.d");
+  COMPARE_MACRO(Fmls(z3.VnS(), p2.Merging(), z4.VnS(), z3.VnS(), z5.VnS()),
+                "fmsb z3.s, p2/m, z5.s, z4.s");
+  COMPARE_MACRO(Fmls(z4.VnH(), p3.Merging(), z5.VnH(), z6.VnH(), z4.VnH()),
+                "fmsb z4.h, p3/m, z6.h, z5.h");
+  COMPARE_MACRO(Fmls(z5.VnD(), p4.Merging(), z6.VnD(), z7.VnD(), z8.VnD()),
+                "movprfx z5.d, p4/m, z6.d\n"
+                "fmls z5.d, p4/m, z7.d, z8.d");
+
+  COMPARE_MACRO(Fnmla(z10.VnH(), p5.Merging(), z10.VnH(), z12.VnH(), z14.VnH()),
+                "fnmla z10.h, p5/m, z12.h, z14.h");
+  COMPARE_MACRO(Fnmla(z13.VnH(), p6.Merging(), z14.VnH(), z13.VnH(), z15.VnH()),
+                "fnmad z13.h, p6/m, z15.h, z14.h");
+  COMPARE_MACRO(Fnmla(z14.VnS(), p7.Merging(), z15.VnS(), z16.VnS(), z14.VnS()),
+                "fnmad z14.s, p7/m, z16.s, z15.s");
+  COMPARE_MACRO(Fnmla(z15.VnD(), p0.Merging(), z16.VnD(), z17.VnD(), z18.VnD()),
+                "movprfx z15.d, p0/m, z16.d\n"
+                "fnmla z15.d, p0/m, z17.d, z18.d");
+
+  COMPARE_MACRO(Fnmls(z10.VnD(), p5.Merging(), z10.VnD(), z12.VnD(), z14.VnD()),
+                "fnmls z10.d, p5/m, z12.d, z14.d");
+  COMPARE_MACRO(Fnmls(z13.VnS(), p6.Merging(), z14.VnS(), z13.VnS(), z15.VnS()),
+                "fnmsb z13.s, p6/m, z15.s, z14.s");
+  COMPARE_MACRO(Fnmls(z14.VnH(), p7.Merging(), z15.VnH(), z16.VnH(), z14.VnH()),
+                "fnmsb z14.h, p7/m, z16.h, z15.h");
+  COMPARE_MACRO(Fnmls(z15.VnD(), p0.Merging(), z16.VnD(), z17.VnD(), z18.VnD()),
+                "movprfx z15.d, p0/m, z16.d\n"
+                "fnmls z15.d, p0/m, z17.d, z18.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_mul_add_index) {
+  SETUP();
+
+  COMPARE_PREFIX(fmla(z25.VnD(), z9.VnD(), z1.VnD(), 0),
+                 "fmla z25.d, z9.d, z1.d[0]");
+  COMPARE_PREFIX(fmla(z25.VnD(), z9.VnD(), z1.VnD(), 1),
+                 "fmla z25.d, z9.d, z1.d[1]");
+
+  COMPARE_PREFIX(fmla(z13.VnH(), z7.VnH(), z7.VnH(), 0),
+                 "fmla z13.h, z7.h, z7.h[0]");
+  COMPARE_PREFIX(fmla(z13.VnH(), z7.VnH(), z7.VnH(), 2),
+                 "fmla z13.h, z7.h, z7.h[2]");
+  COMPARE_PREFIX(fmla(z13.VnH(), z7.VnH(), z7.VnH(), 5),
+                 "fmla z13.h, z7.h, z7.h[5]");
+  COMPARE_PREFIX(fmla(z13.VnH(), z7.VnH(), z7.VnH(), 7),
+                 "fmla z13.h, z7.h, z7.h[7]");
+
+  COMPARE_PREFIX(fmla(z17.VnS(), z27.VnS(), z2.VnS(), 0),
+                 "fmla z17.s, z27.s, z2.s[0]");
+  COMPARE_PREFIX(fmla(z17.VnS(), z27.VnS(), z2.VnS(), 1),
+                 "fmla z17.s, z27.s, z2.s[1]");
+  COMPARE_PREFIX(fmla(z17.VnS(), z27.VnS(), z2.VnS(), 2),
+                 "fmla z17.s, z27.s, z2.s[2]");
+  COMPARE_PREFIX(fmla(z17.VnS(), z27.VnS(), z2.VnS(), 3),
+                 "fmla z17.s, z27.s, z2.s[3]");
+
+  COMPARE_PREFIX(fmls(z28.VnD(), z2.VnD(), z0.VnD(), 0),
+                 "fmls z28.d, z2.d, z0.d[0]");
+  COMPARE_PREFIX(fmls(z28.VnD(), z2.VnD(), z0.VnD(), 1),
+                 "fmls z28.d, z2.d, z0.d[1]");
+
+  COMPARE_PREFIX(fmls(z30.VnH(), z29.VnH(), z7.VnH(), 1),
+                 "fmls z30.h, z29.h, z7.h[1]");
+  COMPARE_PREFIX(fmls(z30.VnH(), z29.VnH(), z7.VnH(), 4),
+                 "fmls z30.h, z29.h, z7.h[4]");
+  COMPARE_PREFIX(fmls(z30.VnH(), z29.VnH(), z7.VnH(), 3),
+                 "fmls z30.h, z29.h, z7.h[3]");
+  COMPARE_PREFIX(fmls(z30.VnH(), z29.VnH(), z7.VnH(), 6),
+                 "fmls z30.h, z29.h, z7.h[6]");
+
+  COMPARE_PREFIX(fmls(z30.VnS(), z1.VnS(), z6.VnS(), 0),
+                 "fmls z30.s, z1.s, z6.s[0]");
+  COMPARE_PREFIX(fmls(z30.VnS(), z1.VnS(), z6.VnS(), 1),
+                 "fmls z30.s, z1.s, z6.s[1]");
+  COMPARE_PREFIX(fmls(z30.VnS(), z1.VnS(), z6.VnS(), 2),
+                 "fmls z30.s, z1.s, z6.s[2]");
+  COMPARE_PREFIX(fmls(z30.VnS(), z1.VnS(), z6.VnS(), 3),
+                 "fmls z30.s, z1.s, z6.s[3]");
+
+  COMPARE_MACRO(Fmla(z10.VnH(), z11.VnH(), z12.VnH(), z4.VnH(), 7),
+                "movprfx z10, z11\n"
+                "fmla z10.h, z12.h, z4.h[7]");
+  COMPARE_MACRO(Fmla(z10.VnH(), z10.VnH(), z12.VnH(), z4.VnH(), 6),
+                "fmla z10.h, z12.h, z4.h[6]");
+  COMPARE_MACRO(Fmla(z11.VnS(), z12.VnS(), z11.VnS(), z5.VnS(), 3),
+                "movprfx z31, z12\n"
+                "fmla z31.s, z11.s, z5.s[3]\n"
+                "mov z11.d, z31.d");
+  COMPARE_MACRO(Fmla(z12.VnD(), z13.VnD(), z14.VnD(), z12.VnD(), 1),
+                "movprfx z31, z13\n"
+                "fmla z31.d, z14.d, z12.d[1]\n"
+                "mov z12.d, z31.d");
+
+  COMPARE_MACRO(Fmls(z10.VnH(), z11.VnH(), z12.VnH(), z4.VnH(), 7),
+                "movprfx z10, z11\n"
+                "fmls z10.h, z12.h, z4.h[7]");
+  COMPARE_MACRO(Fmls(z10.VnH(), z10.VnH(), z12.VnH(), z4.VnH(), 6),
+                "fmls z10.h, z12.h, z4.h[6]");
+  COMPARE_MACRO(Fmls(z11.VnS(), z12.VnS(), z11.VnS(), z5.VnS(), 3),
+                "movprfx z31, z12\n"
+                "fmls z31.s, z11.s, z5.s[3]\n"
+                "mov z11.d, z31.d");
+  COMPARE_MACRO(Fmls(z12.VnD(), z13.VnD(), z14.VnD(), z12.VnD(), 1),
+                "movprfx z31, z13\n"
+                "fmls z31.d, z14.d, z12.d[1]\n"
+                "mov z12.d, z31.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_mul_index) {
+  SETUP();
+
+  COMPARE_PREFIX(fmul(z12.VnD(), z3.VnD(), z4.VnD(), 0),
+                 "fmul z12.d, z3.d, z4.d[0]");
+  COMPARE_PREFIX(fmul(z12.VnD(), z3.VnD(), z4.VnD(), 1),
+                 "fmul z12.d, z3.d, z4.d[1]");
+
+  COMPARE_PREFIX(fmul(z22.VnH(), z2.VnH(), z3.VnH(), 0),
+                 "fmul z22.h, z2.h, z3.h[0]");
+  COMPARE_PREFIX(fmul(z22.VnH(), z2.VnH(), z3.VnH(), 3),
+                 "fmul z22.h, z2.h, z3.h[3]");
+  COMPARE_PREFIX(fmul(z22.VnH(), z2.VnH(), z3.VnH(), 4),
+                 "fmul z22.h, z2.h, z3.h[4]");
+  COMPARE_PREFIX(fmul(z22.VnH(), z2.VnH(), z3.VnH(), 7),
+                 "fmul z22.h, z2.h, z3.h[7]");
+
+  COMPARE_PREFIX(fmul(z2.VnS(), z8.VnS(), z7.VnS(), 0),
+                 "fmul z2.s, z8.s, z7.s[0]");
+  COMPARE_PREFIX(fmul(z2.VnS(), z8.VnS(), z7.VnS(), 1),
+                 "fmul z2.s, z8.s, z7.s[1]");
+  COMPARE_PREFIX(fmul(z2.VnS(), z8.VnS(), z7.VnS(), 2),
+                 "fmul z2.s, z8.s, z7.s[2]");
+  COMPARE_PREFIX(fmul(z2.VnS(), z8.VnS(), z7.VnS(), 3),
+                 "fmul z2.s, z8.s, z7.s[3]");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_unary_op_predicated) {
+  SETUP();
+
+  COMPARE_PREFIX(fcvtzs(z29.VnS(), p5.Merging(), z8.VnD()),
+                 "fcvtzs z29.s, p5/m, z8.d");
+  COMPARE_PREFIX(fcvtzs(z30.VnD(), p5.Merging(), z8.VnD()),
+                 "fcvtzs z30.d, p5/m, z8.d");
+  COMPARE_PREFIX(fcvtzs(z14.VnH(), p1.Merging(), z29.VnH()),
+                 "fcvtzs z14.h, p1/m, z29.h");
+  COMPARE_PREFIX(fcvtzs(z11.VnS(), p3.Merging(), z16.VnH()),
+                 "fcvtzs z11.s, p3/m, z16.h");
+  COMPARE_PREFIX(fcvtzs(z4.VnD(), p7.Merging(), z4.VnH()),
+                 "fcvtzs z4.d, p7/m, z4.h");
+  COMPARE_PREFIX(fcvtzs(z24.VnS(), p1.Merging(), z4.VnS()),
+                 "fcvtzs z24.s, p1/m, z4.s");
+  COMPARE_PREFIX(fcvtzs(z25.VnD(), p4.Merging(), z24.VnS()),
+                 "fcvtzs z25.d, p4/m, z24.s");
+  COMPARE_PREFIX(fcvtzu(z16.VnS(), p7.Merging(), z14.VnD()),
+                 "fcvtzu z16.s, p7/m, z14.d");
+  COMPARE_PREFIX(fcvtzu(z31.VnD(), p1.Merging(), z16.VnD()),
+                 "fcvtzu z31.d, p1/m, z16.d");
+  COMPARE_PREFIX(fcvtzu(z12.VnH(), p2.Merging(), z27.VnH()),
+                 "fcvtzu z12.h, p2/m, z27.h");
+  COMPARE_PREFIX(fcvtzu(z26.VnS(), p6.Merging(), z29.VnH()),
+                 "fcvtzu z26.s, p6/m, z29.h");
+  COMPARE_PREFIX(fcvtzu(z29.VnD(), p5.Merging(), z27.VnH()),
+                 "fcvtzu z29.d, p5/m, z27.h");
+  COMPARE_PREFIX(fcvtzu(z13.VnS(), p2.Merging(), z17.VnS()),
+                 "fcvtzu z13.s, p2/m, z17.s");
+  COMPARE_PREFIX(fcvtzu(z25.VnD(), p7.Merging(), z28.VnS()),
+                 "fcvtzu z25.d, p7/m, z28.s");
+  COMPARE_PREFIX(scvtf(z16.VnH(), p6.Merging(), z5.VnH()),
+                 "scvtf z16.h, p6/m, z5.h");
+  COMPARE_PREFIX(scvtf(z31.VnD(), p5.Merging(), z26.VnS()),
+                 "scvtf z31.d, p5/m, z26.s");
+  COMPARE_PREFIX(scvtf(z0.VnH(), p7.Merging(), z0.VnS()),
+                 "scvtf z0.h, p7/m, z0.s");
+  COMPARE_PREFIX(scvtf(z12.VnS(), p7.Merging(), z0.VnS()),
+                 "scvtf z12.s, p7/m, z0.s");
+  COMPARE_PREFIX(scvtf(z17.VnD(), p1.Merging(), z17.VnD()),
+                 "scvtf z17.d, p1/m, z17.d");
+  COMPARE_PREFIX(scvtf(z2.VnH(), p0.Merging(), z9.VnD()),
+                 "scvtf z2.h, p0/m, z9.d");
+  COMPARE_PREFIX(scvtf(z26.VnS(), p5.Merging(), z4.VnD()),
+                 "scvtf z26.s, p5/m, z4.d");
+  COMPARE_PREFIX(ucvtf(z27.VnH(), p4.Merging(), z25.VnH()),
+                 "ucvtf z27.h, p4/m, z25.h");
+  COMPARE_PREFIX(ucvtf(z3.VnD(), p4.Merging(), z3.VnS()),
+                 "ucvtf z3.d, p4/m, z3.s");
+  COMPARE_PREFIX(ucvtf(z24.VnH(), p2.Merging(), z29.VnS()),
+                 "ucvtf z24.h, p2/m, z29.s");
+  COMPARE_PREFIX(ucvtf(z29.VnS(), p5.Merging(), z14.VnS()),
+                 "ucvtf z29.s, p5/m, z14.s");
+  COMPARE_PREFIX(ucvtf(z7.VnD(), p2.Merging(), z14.VnD()),
+                 "ucvtf z7.d, p2/m, z14.d");
+  COMPARE_PREFIX(ucvtf(z20.VnH(), p2.Merging(), z14.VnD()),
+                 "ucvtf z20.h, p2/m, z14.d");
+  COMPARE_PREFIX(ucvtf(z26.VnS(), p1.Merging(), z18.VnD()),
+                 "ucvtf z26.s, p1/m, z18.d");
+  COMPARE_PREFIX(frinta(z11.VnH(), p0.Merging(), z3.VnH()),
+                 "frinta z11.h, p0/m, z3.h");
+  COMPARE_PREFIX(frinta(z11.VnS(), p0.Merging(), z3.VnS()),
+                 "frinta z11.s, p0/m, z3.s");
+  COMPARE_PREFIX(frinta(z11.VnD(), p0.Merging(), z3.VnD()),
+                 "frinta z11.d, p0/m, z3.d");
+  COMPARE_PREFIX(frinti(z17.VnH(), p0.Merging(), z16.VnH()),
+                 "frinti z17.h, p0/m, z16.h");
+  COMPARE_PREFIX(frinti(z17.VnS(), p0.Merging(), z16.VnS()),
+                 "frinti z17.s, p0/m, z16.s");
+  COMPARE_PREFIX(frinti(z17.VnD(), p0.Merging(), z16.VnD()),
+                 "frinti z17.d, p0/m, z16.d");
+  COMPARE_PREFIX(frintm(z2.VnH(), p7.Merging(), z15.VnH()),
+                 "frintm z2.h, p7/m, z15.h");
+  COMPARE_PREFIX(frintm(z2.VnS(), p7.Merging(), z15.VnS()),
+                 "frintm z2.s, p7/m, z15.s");
+  COMPARE_PREFIX(frintm(z2.VnD(), p7.Merging(), z15.VnD()),
+                 "frintm z2.d, p7/m, z15.d");
+  COMPARE_PREFIX(frintn(z14.VnH(), p5.Merging(), z18.VnH()),
+                 "frintn z14.h, p5/m, z18.h");
+  COMPARE_PREFIX(frintn(z14.VnS(), p5.Merging(), z18.VnS()),
+                 "frintn z14.s, p5/m, z18.s");
+  COMPARE_PREFIX(frintn(z14.VnD(), p5.Merging(), z18.VnD()),
+                 "frintn z14.d, p5/m, z18.d");
+  COMPARE_PREFIX(frintp(z20.VnH(), p6.Merging(), z23.VnH()),
+                 "frintp z20.h, p6/m, z23.h");
+  COMPARE_PREFIX(frintp(z20.VnS(), p6.Merging(), z23.VnS()),
+                 "frintp z20.s, p6/m, z23.s");
+  COMPARE_PREFIX(frintp(z20.VnD(), p6.Merging(), z23.VnD()),
+                 "frintp z20.d, p6/m, z23.d");
+  COMPARE_PREFIX(frintx(z2.VnH(), p6.Merging(), z18.VnH()),
+                 "frintx z2.h, p6/m, z18.h");
+  COMPARE_PREFIX(frintx(z2.VnS(), p6.Merging(), z18.VnS()),
+                 "frintx z2.s, p6/m, z18.s");
+  COMPARE_PREFIX(frintx(z2.VnD(), p6.Merging(), z18.VnD()),
+                 "frintx z2.d, p6/m, z18.d");
+  COMPARE_PREFIX(frintz(z26.VnH(), p7.Merging(), z25.VnH()),
+                 "frintz z26.h, p7/m, z25.h");
+  COMPARE_PREFIX(frintz(z26.VnS(), p7.Merging(), z25.VnS()),
+                 "frintz z26.s, p7/m, z25.s");
+  COMPARE_PREFIX(frintz(z26.VnD(), p7.Merging(), z25.VnD()),
+                 "frintz z26.d, p7/m, z25.d");
+  COMPARE_PREFIX(fcvt(z5.VnH(), p2.Merging(), z11.VnD()),
+                 "fcvt z5.h, p2/m, z11.d");
+  COMPARE_PREFIX(fcvt(z30.VnS(), p7.Merging(), z0.VnD()),
+                 "fcvt z30.s, p7/m, z0.d");
+  COMPARE_PREFIX(fcvt(z10.VnD(), p0.Merging(), z17.VnH()),
+                 "fcvt z10.d, p0/m, z17.h");
+  COMPARE_PREFIX(fcvt(z28.VnS(), p3.Merging(), z27.VnH()),
+                 "fcvt z28.s, p3/m, z27.h");
+  COMPARE_PREFIX(fcvt(z9.VnD(), p7.Merging(), z0.VnS()),
+                 "fcvt z9.d, p7/m, z0.s");
+  COMPARE_PREFIX(fcvt(z27.VnH(), p7.Merging(), z9.VnS()),
+                 "fcvt z27.h, p7/m, z9.s");
+  COMPARE_PREFIX(frecpx(z16.VnH(), p1.Merging(), z29.VnH()),
+                 "frecpx z16.h, p1/m, z29.h");
+  COMPARE_PREFIX(frecpx(z16.VnS(), p1.Merging(), z29.VnS()),
+                 "frecpx z16.s, p1/m, z29.s");
+  COMPARE_PREFIX(frecpx(z16.VnD(), p1.Merging(), z29.VnD()),
+                 "frecpx z16.d, p1/m, z29.d");
+  COMPARE_PREFIX(fsqrt(z30.VnH(), p3.Merging(), z13.VnH()),
+                 "fsqrt z30.h, p3/m, z13.h");
+  COMPARE_PREFIX(fsqrt(z30.VnS(), p3.Merging(), z13.VnS()),
+                 "fsqrt z30.s, p3/m, z13.s");
+  COMPARE_PREFIX(fsqrt(z30.VnD(), p3.Merging(), z13.VnD()),
+                 "fsqrt z30.d, p3/m, z13.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_unary_op_predicated_macro) {
+  SETUP();
+
+  COMPARE_MACRO(Fcvt(z5.VnH(), p2.Zeroing(), z11.VnD()),
+                "movprfx z5.d, p2/z, z11.d\n"
+                "fcvt z5.h, p2/m, z11.d");
+  COMPARE_MACRO(Fcvt(z30.VnS(), p7.Zeroing(), z0.VnD()),
+                "movprfx z30.d, p7/z, z0.d\n"
+                "fcvt z30.s, p7/m, z0.d");
+  COMPARE_MACRO(Fcvt(z10.VnD(), p0.Zeroing(), z17.VnH()),
+                "movprfx z10.d, p0/z, z17.d\n"
+                "fcvt z10.d, p0/m, z17.h");
+  COMPARE_MACRO(Fcvt(z28.VnS(), p3.Zeroing(), z27.VnH()),
+                "movprfx z28.s, p3/z, z27.s\n"
+                "fcvt z28.s, p3/m, z27.h");
+  COMPARE_MACRO(Fcvt(z9.VnD(), p7.Zeroing(), z0.VnS()),
+                "movprfx z9.d, p7/z, z0.d\n"
+                "fcvt z9.d, p7/m, z0.s");
+  COMPARE_MACRO(Fcvt(z27.VnH(), p7.Zeroing(), z9.VnS()),
+                "movprfx z27.s, p7/z, z9.s\n"
+                "fcvt z27.h, p7/m, z9.s");
+  COMPARE_MACRO(Frecpx(z16.VnH(), p1.Zeroing(), z29.VnH()),
+                "movprfx z16.h, p1/z, z29.h\n"
+                "frecpx z16.h, p1/m, z29.h");
+  COMPARE_MACRO(Frecpx(z17.VnS(), p2.Zeroing(), z30.VnS()),
+                "movprfx z17.s, p2/z, z30.s\n"
+                "frecpx z17.s, p2/m, z30.s");
+  COMPARE_MACRO(Frecpx(z18.VnD(), p3.Zeroing(), z31.VnD()),
+                "movprfx z18.d, p3/z, z31.d\n"
+                "frecpx z18.d, p3/m, z31.d");
+  COMPARE_MACRO(Frinta(z6.VnD(), p3.Zeroing(), z12.VnD()),
+                "movprfx z6.d, p3/z, z12.d\n"
+                "frinta z6.d, p3/m, z12.d");
+  COMPARE_MACRO(Frinti(z7.VnS(), p3.Zeroing(), z11.VnS()),
+                "movprfx z7.s, p3/z, z11.s\n"
+                "frinti z7.s, p3/m, z11.s");
+  COMPARE_MACRO(Frintm(z8.VnH(), p3.Zeroing(), z10.VnH()),
+                "movprfx z8.h, p3/z, z10.h\n"
+                "frintm z8.h, p3/m, z10.h");
+  COMPARE_MACRO(Frintn(z9.VnD(), p3.Zeroing(), z9.VnD()),
+                "movprfx z9.d, p3/z, z9.d\n"
+                "frintn z9.d, p3/m, z9.d");
+  COMPARE_MACRO(Frintp(z10.VnS(), p3.Zeroing(), z8.VnS()),
+                "movprfx z10.s, p3/z, z8.s\n"
+                "frintp z10.s, p3/m, z8.s");
+  COMPARE_MACRO(Frintx(z11.VnH(), p3.Zeroing(), z7.VnH()),
+                "movprfx z11.h, p3/z, z7.h\n"
+                "frintx z11.h, p3/m, z7.h");
+  COMPARE_MACRO(Frintz(z12.VnD(), p3.Zeroing(), z6.VnD()),
+                "movprfx z12.d, p3/z, z6.d\n"
+                "frintz z12.d, p3/m, z6.d");
+  COMPARE_MACRO(Fsqrt(z30.VnH(), p3.Zeroing(), z13.VnH()),
+                "movprfx z30.h, p3/z, z13.h\n"
+                "fsqrt z30.h, p3/m, z13.h");
+  COMPARE_MACRO(Fsqrt(z29.VnS(), p3.Zeroing(), z14.VnS()),
+                "movprfx z29.s, p3/z, z14.s\n"
+                "fsqrt z29.s, p3/m, z14.s");
+  COMPARE_MACRO(Fsqrt(z28.VnD(), p3.Zeroing(), z15.VnD()),
+                "movprfx z28.d, p3/z, z15.d\n"
+                "fsqrt z28.d, p3/m, z15.d");
+
+  CLEANUP();
+}
+
+TEST(sve_fp_unary_op_unpredicated) {
+  SETUP();
+
+  COMPARE_PREFIX(frecpe(z0.VnH(), z2.VnH()), "frecpe z0.h, z2.h");
+  COMPARE_PREFIX(frecpe(z0.VnS(), z2.VnS()), "frecpe z0.s, z2.s");
+  COMPARE_PREFIX(frecpe(z0.VnD(), z2.VnD()), "frecpe z0.d, z2.d");
+  COMPARE_PREFIX(frsqrte(z27.VnH(), z14.VnH()), "frsqrte z27.h, z14.h");
+  COMPARE_PREFIX(frsqrte(z27.VnS(), z14.VnS()), "frsqrte z27.s, z14.s");
+  COMPARE_PREFIX(frsqrte(z27.VnD(), z14.VnD()), "frsqrte z27.d, z14.d");
+
+  CLEANUP();
+}
+
+TEST(sve_inc_dec_by_predicate_count) {
+  SETUP();
+
+  COMPARE_PREFIX(decp(x17, p0.VnB()), "decp x17, p0.b");
+  COMPARE_PREFIX(decp(x17, p0.VnH()), "decp x17, p0.h");
+  COMPARE_PREFIX(decp(x17, p0.VnS()), "decp x17, p0.s");
+  COMPARE_PREFIX(decp(x17, p0.VnD()), "decp x17, p0.d");
+  COMPARE_PREFIX(decp(z2.VnH(), p11), "decp z2.h, p11");
+  COMPARE_PREFIX(decp(z2.VnS(), p11), "decp z2.s, p11");
+  COMPARE_PREFIX(decp(z2.VnD(), p11), "decp z2.d, p11");
+  COMPARE_PREFIX(incp(x26, p8.VnB()), "incp x26, p8.b");
+  COMPARE_PREFIX(incp(x26, p8.VnH()), "incp x26, p8.h");
+  COMPARE_PREFIX(incp(x26, p8.VnS()), "incp x26, p8.s");
+  COMPARE_PREFIX(incp(x26, p8.VnD()), "incp x26, p8.d");
+  COMPARE_PREFIX(incp(z27.VnH(), p9), "incp z27.h, p9");
+  COMPARE_PREFIX(incp(z27.VnS(), p9), "incp z27.s, p9");
+  COMPARE_PREFIX(incp(z27.VnD(), p9), "incp z27.d, p9");
+  COMPARE_PREFIX(sqdecp(x12, p7.VnB(), w12), "sqdecp x12, p7.b, w12");
+  COMPARE_PREFIX(sqdecp(x12, p7.VnH(), w12), "sqdecp x12, p7.h, w12");
+  COMPARE_PREFIX(sqdecp(x12, p7.VnS(), w12), "sqdecp x12, p7.s, w12");
+  COMPARE_PREFIX(sqdecp(x12, p7.VnD(), w12), "sqdecp x12, p7.d, w12");
+  COMPARE_PREFIX(sqdecp(x30, p5.VnB()), "sqdecp x30, p5.b");
+  COMPARE_PREFIX(sqdecp(x30, p5.VnH()), "sqdecp x30, p5.h");
+  COMPARE_PREFIX(sqdecp(x30, p5.VnS()), "sqdecp x30, p5.s");
+  COMPARE_PREFIX(sqdecp(x30, p5.VnD()), "sqdecp x30, p5.d");
+  COMPARE_PREFIX(sqdecp(z13.VnH(), p1), "sqdecp z13.h, p1");
+  COMPARE_PREFIX(sqdecp(z13.VnS(), p1), "sqdecp z13.s, p1");
+  COMPARE_PREFIX(sqdecp(z13.VnD(), p1), "sqdecp z13.d, p1");
+  COMPARE_PREFIX(sqincp(x26, p5.VnB(), w26), "sqincp x26, p5.b, w26");
+  COMPARE_PREFIX(sqincp(x26, p5.VnH(), w26), "sqincp x26, p5.h, w26");
+  COMPARE_PREFIX(sqincp(x26, p5.VnS(), w26), "sqincp x26, p5.s, w26");
+  COMPARE_PREFIX(sqincp(x26, p5.VnD(), w26), "sqincp x26, p5.d, w26");
+  COMPARE_PREFIX(sqincp(x5, p15.VnB()), "sqincp x5, p15.b");
+  COMPARE_PREFIX(sqincp(x5, p15.VnH()), "sqincp x5, p15.h");
+  COMPARE_PREFIX(sqincp(x5, p15.VnS()), "sqincp x5, p15.s");
+  COMPARE_PREFIX(sqincp(x5, p15.VnD()), "sqincp x5, p15.d");
+  COMPARE_PREFIX(sqincp(z14.VnH(), p4), "sqincp z14.h, p4");
+  COMPARE_PREFIX(sqincp(z14.VnS(), p4), "sqincp z14.s, p4");
+  COMPARE_PREFIX(sqincp(z14.VnD(), p4), "sqincp z14.d, p4");
+  COMPARE_PREFIX(uqdecp(w3, p13.VnB()), "uqdecp w3, p13.b");
+  COMPARE_PREFIX(uqdecp(w3, p13.VnH()), "uqdecp w3, p13.h");
+  COMPARE_PREFIX(uqdecp(w3, p13.VnS()), "uqdecp w3, p13.s");
+  COMPARE_PREFIX(uqdecp(w3, p13.VnD()), "uqdecp w3, p13.d");
+  COMPARE_PREFIX(uqdecp(x19, p0.VnB()), "uqdecp x19, p0.b");
+  COMPARE_PREFIX(uqdecp(x19, p0.VnH()), "uqdecp x19, p0.h");
+  COMPARE_PREFIX(uqdecp(x19, p0.VnS()), "uqdecp x19, p0.s");
+  COMPARE_PREFIX(uqdecp(x19, p0.VnD()), "uqdecp x19, p0.d");
+  COMPARE_PREFIX(uqdecp(z15.VnH(), p9), "uqdecp z15.h, p9");
+  COMPARE_PREFIX(uqdecp(z15.VnS(), p9), "uqdecp z15.s, p9");
+  COMPARE_PREFIX(uqdecp(z15.VnD(), p9), "uqdecp z15.d, p9");
+  COMPARE_PREFIX(uqincp(w18, p1.VnB()), "uqincp w18, p1.b");
+  COMPARE_PREFIX(uqincp(w18, p1.VnH()), "uqincp w18, p1.h");
+  COMPARE_PREFIX(uqincp(w18, p1.VnS()), "uqincp w18, p1.s");
+  COMPARE_PREFIX(uqincp(w18, p1.VnD()), "uqincp w18, p1.d");
+  COMPARE_PREFIX(uqincp(x17, p15.VnB()), "uqincp x17, p15.b");
+  COMPARE_PREFIX(uqincp(x17, p15.VnH()), "uqincp x17, p15.h");
+  COMPARE_PREFIX(uqincp(x17, p15.VnS()), "uqincp x17, p15.s");
+  COMPARE_PREFIX(uqincp(x17, p15.VnD()), "uqincp x17, p15.d");
+  COMPARE_PREFIX(uqincp(z4.VnH(), p3), "uqincp z4.h, p3");
+  COMPARE_PREFIX(uqincp(z4.VnS(), p3), "uqincp z4.s, p3");
+  COMPARE_PREFIX(uqincp(z4.VnD(), p3), "uqincp z4.d, p3");
+
+  CLEANUP();
+}
+
+TEST(sve_inc_dec_by_predicate_count_macro) {
+  SETUP();
+
+  // The MacroAssembler automatically generates movprfx where it can.
+  COMPARE_MACRO(Decp(z0.VnD(), p1), "decp z0.d, p1");
+  COMPARE_MACRO(Decp(z2.VnS(), p3, z2.VnS()), "decp z2.s, p3");
+  COMPARE_MACRO(Decp(z3.VnS(), p3, z3.VnS()), "decp z3.s, p3");
+  COMPARE_MACRO(Decp(z4.VnH(), p5, z6.VnH()),
+                "movprfx z4, z6\n"
+                "decp z4.h, p5");
+  COMPARE_MACRO(Incp(z7.VnD(), p8), "incp z7.d, p8");
+  COMPARE_MACRO(Incp(z9.VnS(), p10, z9.VnS()), "incp z9.s, p10");
+  COMPARE_MACRO(Incp(z10.VnS(), p10, z10.VnS()), "incp z10.s, p10");
+  COMPARE_MACRO(Incp(z10.VnH(), p11, z12.VnH()),
+                "movprfx z10, z12\n"
+                "incp z10.h, p11");
+  COMPARE_MACRO(Sqdecp(z0.VnD(), p1), "sqdecp z0.d, p1");
+  COMPARE_MACRO(Sqdecp(z2.VnS(), p3, z2.VnS()), "sqdecp z2.s, p3");
+  COMPARE_MACRO(Sqdecp(z3.VnS(), p3, z3.VnS()), "sqdecp z3.s, p3");
+  COMPARE_MACRO(Sqdecp(z4.VnH(), p5, z6.VnH()),
+                "movprfx z4, z6\n"
+                "sqdecp z4.h, p5");
+  COMPARE_MACRO(Sqincp(z7.VnD(), p8), "sqincp z7.d, p8");
+  COMPARE_MACRO(Sqincp(z9.VnS(), p10, z9.VnS()), "sqincp z9.s, p10");
+  COMPARE_MACRO(Sqincp(z10.VnS(), p10, z10.VnS()), "sqincp z10.s, p10");
+  COMPARE_MACRO(Sqincp(z10.VnH(), p11, z12.VnH()),
+                "movprfx z10, z12\n"
+                "sqincp z10.h, p11");
+  COMPARE_MACRO(Uqdecp(z0.VnD(), p1), "uqdecp z0.d, p1");
+  COMPARE_MACRO(Uqdecp(z2.VnS(), p3, z2.VnS()), "uqdecp z2.s, p3");
+  COMPARE_MACRO(Uqdecp(z3.VnS(), p3, z3.VnS()), "uqdecp z3.s, p3");
+  COMPARE_MACRO(Uqdecp(z4.VnH(), p5, z6.VnH()),
+                "movprfx z4, z6\n"
+                "uqdecp z4.h, p5");
+  COMPARE_MACRO(Uqincp(z7.VnD(), p8), "uqincp z7.d, p8");
+  COMPARE_MACRO(Uqincp(z9.VnS(), p10, z9.VnS()), "uqincp z9.s, p10");
+  COMPARE_MACRO(Uqincp(z10.VnS(), p10, z10.VnS()), "uqincp z10.s, p10");
+  COMPARE_MACRO(Uqincp(z10.VnH(), p11, z12.VnH()),
+                "movprfx z10, z12\n"
+                "uqincp z10.h, p11");
+
+  // Sqdecp cannot write into a W register, but Uqdecp can.
+  COMPARE_MACRO(Uqdecp(w6, p7.VnD()), "uqdecp w6, p7.d");
+  COMPARE_MACRO(Uqdecp(x10, p11.VnH()), "uqdecp x10, p11.h");
+  COMPARE_MACRO(Uqdecp(x12, p13.VnS()), "uqdecp x12, p13.s");
+  COMPARE_MACRO(Uqdecp(w14, p15.VnD()), "uqdecp w14, p15.d");
+
+  CLEANUP();
+}
+
+TEST(sve_index_generation) {
+  SETUP();
+
+  COMPARE_PREFIX(index(z21.VnB(), -16, 15), "index z21.b, #-16, #15");
+  COMPARE_PREFIX(index(z22.VnB(), -2, 1), "index z22.b, #-2, #1");
+  COMPARE_PREFIX(index(z23.VnH(), -1, 0), "index z23.h, #-1, #0");
+  COMPARE_PREFIX(index(z24.VnS(), 0, -1), "index z24.s, #0, #-1");
+  COMPARE_PREFIX(index(z25.VnD(), 1, -2), "index z25.d, #1, #-2");
+  COMPARE_PREFIX(index(z26.VnB(), 15, -16), "index z26.b, #15, #-16");
+  COMPARE_PREFIX(index(z23.VnB(), -16, w8), "index z23.b, #-16, w8");
+  COMPARE_PREFIX(index(z24.VnH(), -1, x9), "index z24.h, #-1, w9");
+  COMPARE_PREFIX(index(z25.VnS(), 0, w10), "index z25.s, #0, w10");
+  COMPARE_PREFIX(index(z26.VnD(), 15, x11), "index z26.d, #15, x11");
+  COMPARE_PREFIX(index(z14.VnB(), w15, 15), "index z14.b, w15, #15");
+  COMPARE_PREFIX(index(z15.VnH(), x16, 1), "index z15.h, w16, #1");
+  COMPARE_PREFIX(index(z16.VnS(), w17, 0), "index z16.s, w17, #0");
+  COMPARE_PREFIX(index(z17.VnD(), x18, -16), "index z17.d, x18, #-16");
+  COMPARE_PREFIX(index(z20.VnB(), w23, w21), "index z20.b, w23, w21");
+  COMPARE_PREFIX(index(z21.VnH(), x24, w22), "index z21.h, w24, w22");
+  COMPARE_PREFIX(index(z22.VnS(), w25, x23), "index z22.s, w25, w23");
+  COMPARE_PREFIX(index(z23.VnD(), x26, x24), "index z23.d, x26, x24");
+
+  // Simple pass-through macros.
+  COMPARE_MACRO(Index(z21.VnB(), -16, 15), "index z21.b, #-16, #15");
+  COMPARE_MACRO(Index(z22.VnB(), -2, 1), "index z22.b, #-2, #1");
+  COMPARE_MACRO(Index(z23.VnH(), -1, 0), "index z23.h, #-1, #0");
+  COMPARE_MACRO(Index(z24.VnS(), 0, -1), "index z24.s, #0, #-1");
+  COMPARE_MACRO(Index(z25.VnD(), 1, -2), "index z25.d, #1, #-2");
+  COMPARE_MACRO(Index(z26.VnB(), 15, -16), "index z26.b, #15, #-16");
+  COMPARE_MACRO(Index(z23.VnB(), -16, w8), "index z23.b, #-16, w8");
+  COMPARE_MACRO(Index(z24.VnH(), -1, x9), "index z24.h, #-1, w9");
+  COMPARE_MACRO(Index(z25.VnS(), 0, w10), "index z25.s, #0, w10");
+  COMPARE_MACRO(Index(z26.VnD(), 15, x11), "index z26.d, #15, x11");
+  COMPARE_MACRO(Index(z14.VnB(), w15, 15), "index z14.b, w15, #15");
+  COMPARE_MACRO(Index(z15.VnH(), x16, 1), "index z15.h, w16, #1");
+  COMPARE_MACRO(Index(z16.VnS(), w17, 0), "index z16.s, w17, #0");
+  COMPARE_MACRO(Index(z17.VnD(), x18, -16), "index z17.d, x18, #-16");
+  COMPARE_MACRO(Index(z20.VnB(), w23, w21), "index z20.b, w23, w21");
+  COMPARE_MACRO(Index(z21.VnH(), x24, w22), "index z21.h, w24, w22");
+  COMPARE_MACRO(Index(z22.VnS(), w25, x23), "index z22.s, w25, w23");
+  COMPARE_MACRO(Index(z23.VnD(), x26, x24), "index z23.d, x26, x24");
+
+  // Argument synthesis.
+  COMPARE_MACRO(Index(z0.VnB(), 16, -17),
+                "mov w16, #0x10\n"
+                "mov w17, #0xffffffef\n"
+                "index z0.b, w16, w17");
+  COMPARE_MACRO(Index(z1.VnH(), x2, -17),
+                "mov w16, #0xffffffef\n"
+                "index z1.h, w2, w16");
+  COMPARE_MACRO(Index(z3.VnS(), 16, w4),
+                "mov w16, #0x10\n"
+                "index z3.s, w16, w4");
+  COMPARE_MACRO(Index(z4.VnD(), -17, 16),
+                "mov x16, #0xffffffffffffffef\n"
+                "mov x17, #0x10\n"
+                "index z4.d, x16, x17");
+
+  CLEANUP();
+}
+
+TEST(sve_int_arithmetic_unpredicated) {
+  SETUP();
+
+  COMPARE_PREFIX(add(z23.VnB(), z30.VnB(), z31.VnB()),
+                 "add z23.b, z30.b, z31.b");
+  COMPARE_PREFIX(add(z24.VnH(), z29.VnH(), z30.VnH()),
+                 "add z24.h, z29.h, z30.h");
+  COMPARE_PREFIX(add(z25.VnS(), z28.VnS(), z29.VnS()),
+                 "add z25.s, z28.s, z29.s");
+  COMPARE_PREFIX(add(z26.VnD(), z27.VnD(), z28.VnD()),
+                 "add z26.d, z27.d, z28.d");
+  COMPARE_PREFIX(sqadd(z26.VnB(), z21.VnB(), z1.VnB()),
+                 "sqadd z26.b, z21.b, z1.b");
+  COMPARE_PREFIX(sqadd(z25.VnH(), z20.VnH(), z2.VnH()),
+                 "sqadd z25.h, z20.h, z2.h");
+  COMPARE_PREFIX(sqadd(z24.VnS(), z19.VnS(), z3.VnS()),
+                 "sqadd z24.s, z19.s, z3.s");
+  COMPARE_PREFIX(sqadd(z23.VnD(), z18.VnD(), z4.VnD()),
+                 "sqadd z23.d, z18.d, z4.d");
+  COMPARE_PREFIX(sqsub(z1.VnB(), z10.VnB(), z0.VnB()),
+                 "sqsub z1.b, z10.b, z0.b");
+  COMPARE_PREFIX(sqsub(z2.VnH(), z11.VnH(), z1.VnH()),
+                 "sqsub z2.h, z11.h, z1.h");
+  COMPARE_PREFIX(sqsub(z3.VnS(), z12.VnS(), z2.VnS()),
+                 "sqsub z3.s, z12.s, z2.s");
+  COMPARE_PREFIX(sqsub(z4.VnD(), z13.VnD(), z3.VnD()),
+                 "sqsub z4.d, z13.d, z3.d");
+  COMPARE_PREFIX(sub(z9.VnB(), z7.VnB(), z25.VnB()), "sub z9.b, z7.b, z25.b");
+  COMPARE_PREFIX(sub(z8.VnH(), z8.VnH(), z26.VnH()), "sub z8.h, z8.h, z26.h");
+  COMPARE_PREFIX(sub(z7.VnS(), z9.VnS(), z27.VnS()), "sub z7.s, z9.s, z27.s");
+  COMPARE_PREFIX(sub(z6.VnD(), z10.VnD(), z28.VnD()), "sub z6.d, z10.d, z28.d");
+  COMPARE_PREFIX(uqadd(z13.VnB(), z15.VnB(), z3.VnB()),
+                 "uqadd z13.b, z15.b, z3.b");
+  COMPARE_PREFIX(uqadd(z12.VnH(), z16.VnH(), z2.VnH()),
+                 "uqadd z12.h, z16.h, z2.h");
+  COMPARE_PREFIX(uqadd(z11.VnS(), z17.VnS(), z1.VnS()),
+                 "uqadd z11.s, z17.s, z1.s");
+  COMPARE_PREFIX(uqadd(z10.VnD(), z18.VnD(), z0.VnD()),
+                 "uqadd z10.d, z18.d, z0.d");
+  COMPARE_PREFIX(uqsub(z9.VnB(), z13.VnB(), z13.VnB()),
+                 "uqsub z9.b, z13.b, z13.b");
+  COMPARE_PREFIX(uqsub(z11.VnH(), z15.VnH(), z11.VnH()),
+                 "uqsub z11.h, z15.h, z11.h");
+  COMPARE_PREFIX(uqsub(z13.VnS(), z17.VnS(), z13.VnS()),
+                 "uqsub z13.s, z17.s, z13.s");
+  COMPARE_PREFIX(uqsub(z15.VnD(), z19.VnD(), z15.VnD()),
+                 "uqsub z15.d, z19.d, z15.d");
+
+  CLEANUP();
+}
+
+TEST(sve_int_binary_arithmetic_predicated) {
+  SETUP();
+
+  COMPARE_PREFIX(add(z22.VnB(), p4.Merging(), z22.VnB(), z20.VnB()),
+                 "add z22.b, p4/m, z22.b, z20.b");
+  COMPARE_PREFIX(add(z22.VnH(), p4.Merging(), z22.VnH(), z20.VnH()),
+                 "add z22.h, p4/m, z22.h, z20.h");
+  COMPARE_PREFIX(add(z22.VnS(), p4.Merging(), z22.VnS(), z20.VnS()),
+                 "add z22.s, p4/m, z22.s, z20.s");
+  COMPARE_PREFIX(add(z22.VnD(), p4.Merging(), z22.VnD(), z20.VnD()),
+                 "add z22.d, p4/m, z22.d, z20.d");
+  COMPARE_PREFIX(and_(z22.VnB(), p3.Merging(), z22.VnB(), z3.VnB()),
+                 "and z22.b, p3/m, z22.b, z3.b");
+  COMPARE_PREFIX(and_(z22.VnH(), p3.Merging(), z22.VnH(), z3.VnH()),
+                 "and z22.h, p3/m, z22.h, z3.h");
+  COMPARE_PREFIX(and_(z22.VnS(), p3.Merging(), z22.VnS(), z3.VnS()),
+                 "and z22.s, p3/m, z22.s, z3.s");
+  COMPARE_PREFIX(and_(z22.VnD(), p3.Merging(), z22.VnD(), z3.VnD()),
+                 "and z22.d, p3/m, z22.d, z3.d");
+  COMPARE_PREFIX(bic(z17.VnB(), p7.Merging(), z17.VnB(), z10.VnB()),
+                 "bic z17.b, p7/m, z17.b, z10.b");
+  COMPARE_PREFIX(bic(z17.VnH(), p7.Merging(), z17.VnH(), z10.VnH()),
+                 "bic z17.h, p7/m, z17.h, z10.h");
+  COMPARE_PREFIX(bic(z17.VnS(), p7.Merging(), z17.VnS(), z10.VnS()),
+                 "bic z17.s, p7/m, z17.s, z10.s");
+  COMPARE_PREFIX(bic(z17.VnD(), p7.Merging(), z17.VnD(), z10.VnD()),
+                 "bic z17.d, p7/m, z17.d, z10.d");
+  COMPARE_PREFIX(eor(z23.VnB(), p4.Merging(), z23.VnB(), z15.VnB()),
+                 "eor z23.b, p4/m, z23.b, z15.b");
+  COMPARE_PREFIX(eor(z23.VnH(), p4.Merging(), z23.VnH(), z15.VnH()),
+                 "eor z23.h, p4/m, z23.h, z15.h");
+  COMPARE_PREFIX(eor(z23.VnS(), p4.Merging(), z23.VnS(), z15.VnS()),
+                 "eor z23.s, p4/m, z23.s, z15.s");
+  COMPARE_PREFIX(eor(z23.VnD(), p4.Merging(), z23.VnD(), z15.VnD()),
+                 "eor z23.d, p4/m, z23.d, z15.d");
+  COMPARE_PREFIX(mul(z15.VnB(), p5.Merging(), z15.VnB(), z15.VnB()),
+                 "mul z15.b, p5/m, z15.b, z15.b");
+  COMPARE_PREFIX(mul(z15.VnH(), p5.Merging(), z15.VnH(), z15.VnH()),
+                 "mul z15.h, p5/m, z15.h, z15.h");
+  COMPARE_PREFIX(mul(z15.VnS(), p5.Merging(), z15.VnS(), z15.VnS()),
+                 "mul z15.s, p5/m, z15.s, z15.s");
+  COMPARE_PREFIX(mul(z15.VnD(), p5.Merging(), z15.VnD(), z15.VnD()),
+                 "mul z15.d, p5/m, z15.d, z15.d");
+  COMPARE_PREFIX(orr(z9.VnB(), p1.Merging(), z9.VnB(), z28.VnB()),
+                 "orr z9.b, p1/m, z9.b, z28.b");
+  COMPARE_PREFIX(orr(z9.VnH(), p1.Merging(), z9.VnH(), z28.VnH()),
+                 "orr z9.h, p1/m, z9.h, z28.h");
+  COMPARE_PREFIX(orr(z9.VnS(), p1.Merging(), z9.VnS(), z28.VnS()),
+                 "orr z9.s, p1/m, z9.s, z28.s");
+  COMPARE_PREFIX(orr(z9.VnD(), p1.Merging(), z9.VnD(), z28.VnD()),
+                 "orr z9.d, p1/m, z9.d, z28.d");
+  COMPARE_PREFIX(sabd(z11.VnB(), p6.Merging(), z11.VnB(), z31.VnB()),
+                 "sabd z11.b, p6/m, z11.b, z31.b");
+  COMPARE_PREFIX(sabd(z11.VnH(), p6.Merging(), z11.VnH(), z31.VnH()),
+                 "sabd z11.h, p6/m, z11.h, z31.h");
+  COMPARE_PREFIX(sabd(z11.VnS(), p6.Merging(), z11.VnS(), z31.VnS()),
+                 "sabd z11.s, p6/m, z11.s, z31.s");
+  COMPARE_PREFIX(sabd(z11.VnD(), p6.Merging(), z11.VnD(), z31.VnD()),
+                 "sabd z11.d, p6/m, z11.d, z31.d");
+  COMPARE_PREFIX(sdivr(z20.VnS(), p5.Merging(), z20.VnS(), z23.VnS()),
+                 "sdivr z20.s, p5/m, z20.s, z23.s");
+  COMPARE_PREFIX(sdiv(z15.VnD(), p6.Merging(), z15.VnD(), z8.VnD()),
+                 "sdiv z15.d, p6/m, z15.d, z8.d");
+  COMPARE_PREFIX(smax(z30.VnB(), p4.Merging(), z30.VnB(), z30.VnB()),
+                 "smax z30.b, p4/m, z30.b, z30.b");
+  COMPARE_PREFIX(smax(z30.VnH(), p4.Merging(), z30.VnH(), z30.VnH()),
+                 "smax z30.h, p4/m, z30.h, z30.h");
+  COMPARE_PREFIX(smax(z30.VnS(), p4.Merging(), z30.VnS(), z30.VnS()),
+                 "smax z30.s, p4/m, z30.s, z30.s");
+  COMPARE_PREFIX(smax(z30.VnD(), p4.Merging(), z30.VnD(), z30.VnD()),
+                 "smax z30.d, p4/m, z30.d, z30.d");
+  COMPARE_PREFIX(smin(z20.VnB(), p7.Merging(), z20.VnB(), z19.VnB()),
+                 "smin z20.b, p7/m, z20.b, z19.b");
+  COMPARE_PREFIX(smin(z20.VnH(), p7.Merging(), z20.VnH(), z19.VnH()),
+                 "smin z20.h, p7/m, z20.h, z19.h");
+  COMPARE_PREFIX(smin(z20.VnS(), p7.Merging(), z20.VnS(), z19.VnS()),
+                 "smin z20.s, p7/m, z20.s, z19.s");
+  COMPARE_PREFIX(smin(z20.VnD(), p7.Merging(), z20.VnD(), z19.VnD()),
+                 "smin z20.d, p7/m, z20.d, z19.d");
+  COMPARE_PREFIX(smulh(z23.VnB(), p0.Merging(), z23.VnB(), z3.VnB()),
+                 "smulh z23.b, p0/m, z23.b, z3.b");
+  COMPARE_PREFIX(smulh(z23.VnH(), p0.Merging(), z23.VnH(), z3.VnH()),
+                 "smulh z23.h, p0/m, z23.h, z3.h");
+  COMPARE_PREFIX(smulh(z23.VnS(), p0.Merging(), z23.VnS(), z3.VnS()),
+                 "smulh z23.s, p0/m, z23.s, z3.s");
+  COMPARE_PREFIX(smulh(z23.VnD(), p0.Merging(), z23.VnD(), z3.VnD()),
+                 "smulh z23.d, p0/m, z23.d, z3.d");
+  COMPARE_PREFIX(subr(z1.VnB(), p6.Merging(), z1.VnB(), z1.VnB()),
+                 "subr z1.b, p6/m, z1.b, z1.b");
+  COMPARE_PREFIX(subr(z1.VnH(), p6.Merging(), z1.VnH(), z1.VnH()),
+                 "subr z1.h, p6/m, z1.h, z1.h");
+  COMPARE_PREFIX(subr(z1.VnS(), p6.Merging(), z1.VnS(), z1.VnS()),
+                 "subr z1.s, p6/m, z1.s, z1.s");
+  COMPARE_PREFIX(subr(z1.VnD(), p6.Merging(), z1.VnD(), z1.VnD()),
+                 "subr z1.d, p6/m, z1.d, z1.d");
+  COMPARE_PREFIX(sub(z28.VnB(), p2.Merging(), z28.VnB(), z0.VnB()),
+                 "sub z28.b, p2/m, z28.b, z0.b");
+  COMPARE_PREFIX(sub(z28.VnH(), p2.Merging(), z28.VnH(), z0.VnH()),
+                 "sub z28.h, p2/m, z28.h, z0.h");
+  COMPARE_PREFIX(sub(z28.VnS(), p2.Merging(), z28.VnS(), z0.VnS()),
+                 "sub z28.s, p2/m, z28.s, z0.s");
+  COMPARE_PREFIX(sub(z28.VnD(), p2.Merging(), z28.VnD(), z0.VnD()),
+                 "sub z28.d, p2/m, z28.d, z0.d");
+  COMPARE_PREFIX(uabd(z14.VnB(), p6.Merging(), z14.VnB(), z22.VnB()),
+                 "uabd z14.b, p6/m, z14.b, z22.b");
+  COMPARE_PREFIX(uabd(z14.VnH(), p6.Merging(), z14.VnH(), z22.VnH()),
+                 "uabd z14.h, p6/m, z14.h, z22.h");
+  COMPARE_PREFIX(uabd(z14.VnS(), p6.Merging(), z14.VnS(), z22.VnS()),
+                 "uabd z14.s, p6/m, z14.s, z22.s");
+  COMPARE_PREFIX(uabd(z14.VnD(), p6.Merging(), z14.VnD(), z22.VnD()),
+                 "uabd z14.d, p6/m, z14.d, z22.d");
+  COMPARE_PREFIX(udivr(z27.VnS(), p5.Merging(), z27.VnS(), z31.VnS()),
+                 "udivr z27.s, p5/m, z27.s, z31.s");
+  COMPARE_PREFIX(udiv(z13.VnD(), p4.Merging(), z13.VnD(), z11.VnD()),
+                 "udiv z13.d, p4/m, z13.d, z11.d");
+  COMPARE_PREFIX(umax(z0.VnB(), p5.Merging(), z0.VnB(), z14.VnB()),
+                 "umax z0.b, p5/m, z0.b, z14.b");
+  COMPARE_PREFIX(umax(z0.VnH(), p5.Merging(), z0.VnH(), z14.VnH()),
+                 "umax z0.h, p5/m, z0.h, z14.h");
+  COMPARE_PREFIX(umax(z0.VnS(), p5.Merging(), z0.VnS(), z14.VnS()),
+                 "umax z0.s, p5/m, z0.s, z14.s");
+  COMPARE_PREFIX(umax(z0.VnD(), p5.Merging(), z0.VnD(), z14.VnD()),
+                 "umax z0.d, p5/m, z0.d, z14.d");
+  COMPARE_PREFIX(umin(z26.VnB(), p5.Merging(), z26.VnB(), z12.VnB()),
+                 "umin z26.b, p5/m, z26.b, z12.b");
+  COMPARE_PREFIX(umin(z26.VnH(), p5.Merging(), z26.VnH(), z12.VnH()),
+                 "umin z26.h, p5/m, z26.h, z12.h");
+  COMPARE_PREFIX(umin(z26.VnS(), p5.Merging(), z26.VnS(), z12.VnS()),
+                 "umin z26.s, p5/m, z26.s, z12.s");
+  COMPARE_PREFIX(umin(z26.VnD(), p5.Merging(), z26.VnD(), z12.VnD()),
+                 "umin z26.d, p5/m, z26.d, z12.d");
+  COMPARE_PREFIX(umulh(z12.VnB(), p2.Merging(), z12.VnB(), z17.VnB()),
+                 "umulh z12.b, p2/m, z12.b, z17.b");
+  COMPARE_PREFIX(umulh(z12.VnH(), p2.Merging(), z12.VnH(), z17.VnH()),
+                 "umulh z12.h, p2/m, z12.h, z17.h");
+  COMPARE_PREFIX(umulh(z12.VnS(), p2.Merging(), z12.VnS(), z17.VnS()),
+                 "umulh z12.s, p2/m, z12.s, z17.s");
+  COMPARE_PREFIX(umulh(z12.VnD(), p2.Merging(), z12.VnD(), z17.VnD()),
+                 "umulh z12.d, p2/m, z12.d, z17.d");
+  CLEANUP();
+}
+
+TEST(sve_int_binary_arithmetic_predicated_macro) {
+  SETUP();
+
+  COMPARE_MACRO(Add(z22.VnB(), p4.Merging(), z22.VnB(), z20.VnB()),
+                "add z22.b, p4/m, z22.b, z20.b");
+  COMPARE_MACRO(Add(z22.VnH(), p4.Merging(), z20.VnH(), z22.VnH()),
+                "add z22.h, p4/m, z22.h, z20.h");
+  COMPARE_MACRO(Add(z22.VnS(), p4.Merging(), z21.VnS(), z20.VnS()),
+                "movprfx z22.s, p4/m, z21.s\n"
+                "add z22.s, p4/m, z22.s, z20.s");
+
+  COMPARE_MACRO(And(z22.VnH(), p3.Merging(), z22.VnH(), z3.VnH()),
+                "and z22.h, p3/m, z22.h, z3.h");
+  COMPARE_MACRO(And(z22.VnS(), p3.Merging(), z3.VnS(), z22.VnS()),
+                "and z22.s, p3/m, z22.s, z3.s");
+  COMPARE_MACRO(And(z22.VnD(), p3.Merging(), z2.VnD(), z3.VnD()),
+                "movprfx z22.d, p3/m, z2.d\n"
+                "and z22.d, p3/m, z22.d, z3.d");
+
+  COMPARE_MACRO(Bic(z17.VnB(), p7.Merging(), z17.VnB(), z10.VnB()),
+                "bic z17.b, p7/m, z17.b, z10.b");
+  COMPARE_MACRO(Bic(z17.VnS(), p7.Merging(), z10.VnS(), z17.VnS()),
+                "bic z17.s, p7/m, z17.s, z10.s");
+  COMPARE_MACRO(Bic(z17.VnD(), p7.Merging(), z7.VnD(), z27.VnD()),
+                "movprfx z17.d, p7/m, z7.d\n"
+                "bic z17.d, p7/m, z17.d, z27.d");
+
+  COMPARE_MACRO(Eor(z23.VnB(), p4.Merging(), z23.VnB(), z15.VnB()),
+                "eor z23.b, p4/m, z23.b, z15.b");
+  COMPARE_MACRO(Eor(z23.VnH(), p4.Merging(), z23.VnH(), z15.VnH()),
+                "eor z23.h, p4/m, z23.h, z15.h");
+  COMPARE_MACRO(Eor(z23.VnD(), p4.Merging(), z18.VnD(), z15.VnD()),
+                "movprfx z23.d, p4/m, z18.d\n"
+                "eor z23.d, p4/m, z23.d, z15.d");
+
+  COMPARE_MACRO(Mul(z15.VnB(), p5.Merging(), z15.VnB(), z15.VnB()),
+                "mul z15.b, p5/m, z15.b, z15.b");
+  COMPARE_MACRO(Mul(z15.VnH(), p5.Merging(), z7.VnH(), z15.VnH()),
+                "mul z15.h, p5/m, z15.h, z7.h");
+  COMPARE_MACRO(Mul(z15.VnS(), p5.Merging(), z0.VnS(), z1.VnS()),
+                "movprfx z15.s, p5/m, z0.s\n"
+                "mul z15.s, p5/m, z15.s, z1.s");
+
+  COMPARE_MACRO(Orr(z9.VnH(), p1.Merging(), z9.VnH(), z28.VnH()),
+                "orr z9.h, p1/m, z9.h, z28.h");
+  COMPARE_MACRO(Orr(z9.VnS(), p1.Merging(), z9.VnS(), z28.VnS()),
+                "orr z9.s, p1/m, z9.s, z28.s");
+  COMPARE_MACRO(Orr(z9.VnD(), p1.Merging(), z6.VnD(), z7.VnD()),
+                "movprfx z9.d, p1/m, z6.d\n"
+                "orr z9.d, p1/m, z9.d, z7.d");
+
+  COMPARE_MACRO(Sabd(z11.VnB(), p6.Merging(), z11.VnB(), z31.VnB()),
+                "sabd z11.b, p6/m, z11.b, z31.b");
+  COMPARE_MACRO(Sabd(z11.VnH(), p6.Merging(), z31.VnH(), z11.VnH()),
+                "sabd z11.h, p6/m, z11.h, z31.h");
+  COMPARE_MACRO(Sabd(z11.VnS(), p6.Merging(), z21.VnS(), z31.VnS()),
+                "movprfx z11.s, p6/m, z21.s\n"
+                "sabd z11.s, p6/m, z11.s, z31.s");
+
+  COMPARE_MACRO(Sdiv(z20.VnS(), p5.Merging(), z23.VnS(), z20.VnS()),
+                "sdivr z20.s, p5/m, z20.s, z23.s");
+  COMPARE_MACRO(Sdiv(z15.VnD(), p6.Merging(), z30.VnD(), z8.VnD()),
+                "movprfx z15.d, p6/m, z30.d\n"
+                "sdiv z15.d, p6/m, z15.d, z8.d");
+
+  COMPARE_MACRO(Smax(z30.VnB(), p4.Merging(), z30.VnB(), z31.VnB()),
+                "smax z30.b, p4/m, z30.b, z31.b");
+  COMPARE_MACRO(Smax(z30.VnS(), p4.Merging(), z3.VnS(), z30.VnS()),
+                "smax z30.s, p4/m, z30.s, z3.s");
+  COMPARE_MACRO(Smax(z30.VnD(), p4.Merging(), z1.VnD(), z5.VnD()),
+                "movprfx z30.d, p4/m, z1.d\n"
+                "smax z30.d, p4/m, z30.d, z5.d");
+
+  COMPARE_MACRO(Smin(z20.VnH(), p7.Merging(), z20.VnH(), z19.VnH()),
+                "smin z20.h, p7/m, z20.h, z19.h");
+  COMPARE_MACRO(Smin(z20.VnS(), p7.Merging(), z19.VnS(), z20.VnS()),
+                "smin z20.s, p7/m, z20.s, z19.s");
+  COMPARE_MACRO(Smin(z20.VnD(), p7.Merging(), z14.VnD(), z15.VnD()),
+                "movprfx z20.d, p7/m, z14.d\n"
+                "smin z20.d, p7/m, z20.d, z15.d");
+
+  COMPARE_MACRO(Smulh(z23.VnB(), p0.Merging(), z23.VnB(), z3.VnB()),
+                "smulh z23.b, p0/m, z23.b, z3.b");
+  COMPARE_MACRO(Smulh(z23.VnH(), p0.Merging(), z13.VnH(), z23.VnH()),
+                "smulh z23.h, p0/m, z23.h, z13.h");
+  COMPARE_MACRO(Smulh(z23.VnD(), p0.Merging(), z30.VnD(), z31.VnD()),
+                "movprfx z23.d, p0/m, z30.d\n"
+                "smulh z23.d, p0/m, z23.d, z31.d");
+
+  COMPARE_MACRO(Sub(z28.VnB(), p2.Merging(), z28.VnB(), z0.VnB()),
+                "sub z28.b, p2/m, z28.b, z0.b");
+  COMPARE_MACRO(Sub(z28.VnH(), p2.Merging(), z14.VnH(), z28.VnH()),
+                "subr z28.h, p2/m, z28.h, z14.h");
+  COMPARE_MACRO(Sub(z28.VnS(), p2.Merging(), z7.VnS(), z13.VnS()),
+                "movprfx z28.s, p2/m, z7.s\n"
+                "sub z28.s, p2/m, z28.s, z13.s");
+
+  COMPARE_MACRO(Uabd(z14.VnH(), p6.Merging(), z14.VnH(), z22.VnH()),
+                "uabd z14.h, p6/m, z14.h, z22.h");
+  COMPARE_MACRO(Uabd(z14.VnS(), p6.Merging(), z14.VnS(), z22.VnS()),
+                "uabd z14.s, p6/m, z14.s, z22.s");
+  COMPARE_MACRO(Uabd(z14.VnD(), p6.Merging(), z13.VnD(), z22.VnD()),
+                "movprfx z14.d, p6/m, z13.d\n"
+                "uabd z14.d, p6/m, z14.d, z22.d");
+
+  COMPARE_MACRO(Udiv(z27.VnS(), p5.Merging(), z16.VnS(), z27.VnS()),
+                "udivr z27.s, p5/m, z27.s, z16.s");
+  COMPARE_MACRO(Udiv(z13.VnD(), p4.Merging(), z22.VnD(), z11.VnD()),
+                "movprfx z13.d, p4/m, z22.d\n"
+                "udiv z13.d, p4/m, z13.d, z11.d");
+
+  COMPARE_MACRO(Umax(z0.VnB(), p5.Merging(), z0.VnB(), z14.VnB()),
+                "umax z0.b, p5/m, z0.b, z14.b");
+  COMPARE_MACRO(Umax(z0.VnS(), p5.Merging(), z14.VnS(), z0.VnS()),
+                "umax z0.s, p5/m, z0.s, z14.s");
+  COMPARE_MACRO(Umax(z0.VnD(), p5.Merging(), z29.VnD(), z14.VnD()),
+                "movprfx z0.d, p5/m, z29.d\n"
+                "umax z0.d, p5/m, z0.d, z14.d");
+
+  COMPARE_MACRO(Umin(z26.VnB(), p5.Merging(), z26.VnB(), z12.VnB()),
+                "umin z26.b, p5/m, z26.b, z12.b");
+  COMPARE_MACRO(Umin(z26.VnH(), p5.Merging(), z27.VnH(), z26.VnH()),
+                "umin z26.h, p5/m, z26.h, z27.h");
+  COMPARE_MACRO(Umin(z26.VnD(), p5.Merging(), z13.VnD(), z12.VnD()),
+                "movprfx z26.d, p5/m, z13.d\n"
+                "umin z26.d, p5/m, z26.d, z12.d");
+
+  COMPARE_MACRO(Umulh(z12.VnB(), p2.Merging(), z12.VnB(), z17.VnB()),
+                "umulh z12.b, p2/m, z12.b, z17.b");
+  COMPARE_MACRO(Umulh(z12.VnH(), p2.Merging(), z0.VnH(), z12.VnH()),
+                "umulh z12.h, p2/m, z12.h, z0.h");
+  COMPARE_MACRO(Umulh(z12.VnS(), p2.Merging(), z25.VnS(), z17.VnS()),
+                "movprfx z12.s, p2/m, z25.s\n"
+                "umulh z12.s, p2/m, z12.s, z17.s");
+
+  CLEANUP();
+}
+
+TEST(sve_int_compare_scalars) {
+  SETUP();
+
+  COMPARE_PREFIX(ctermeq(w30, w26), "ctermeq w30, w26");
+  COMPARE_PREFIX(ctermne(x21, x18), "ctermne x21, x18");
+  COMPARE_PREFIX(whilele(p10.VnB(), x11, x6), "whilele p10.b, x11, x6");
+  COMPARE_PREFIX(whilele(p10.VnH(), w11, w6), "whilele p10.h, w11, w6");
+  COMPARE_PREFIX(whilele(p10.VnH(), x11, x6), "whilele p10.h, x11, x6");
+  COMPARE_PREFIX(whilele(p10.VnS(), w11, w6), "whilele p10.s, w11, w6");
+  COMPARE_PREFIX(whilele(p10.VnD(), x11, x6), "whilele p10.d, x11, x6");
+  COMPARE_PREFIX(whilelo(p4.VnB(), w3, w25), "whilelo p4.b, w3, w25");
+  COMPARE_PREFIX(whilelo(p4.VnH(), x3, x25), "whilelo p4.h, x3, x25");
+  COMPARE_PREFIX(whilelo(p4.VnS(), w3, w25), "whilelo p4.s, w3, w25");
+  COMPARE_PREFIX(whilelo(p4.VnD(), x3, x25), "whilelo p4.d, x3, x25");
+  COMPARE_PREFIX(whilels(p7.VnB(), w15, w15), "whilels p7.b, w15, w15");
+  COMPARE_PREFIX(whilels(p7.VnH(), x15, x15), "whilels p7.h, x15, x15");
+  COMPARE_PREFIX(whilels(p7.VnS(), w15, w15), "whilels p7.s, w15, w15");
+  COMPARE_PREFIX(whilels(p7.VnD(), x15, x15), "whilels p7.d, x15, x15");
+  COMPARE_PREFIX(whilelt(p14.VnB(), w11, w14), "whilelt p14.b, w11, w14");
+  COMPARE_PREFIX(whilelt(p14.VnH(), x11, x14), "whilelt p14.h, x11, x14");
+  COMPARE_PREFIX(whilelt(p14.VnS(), w11, w14), "whilelt p14.s, w11, w14");
+  COMPARE_PREFIX(whilelt(p14.VnD(), x11, x14), "whilelt p14.d, x11, x14");
+
+  CLEANUP();
+}
+
+TEST(sve_int_compare_signed_imm) {
+  SETUP();
+
+  COMPARE_PREFIX(cmpeq(p0.VnB(), p3.Zeroing(), z1.VnB(), 15),
+                 "cmpeq p0.b, p3/z, z1.b, #15");
+  COMPARE_PREFIX(cmpeq(p0.VnH(), p3.Zeroing(), z1.VnH(), 7),
+                 "cmpeq p0.h, p3/z, z1.h, #7");
+  COMPARE_PREFIX(cmpeq(p0.VnS(), p3.Zeroing(), z1.VnS(), -3),
+                 "cmpeq p0.s, p3/z, z1.s, #-3");
+  COMPARE_PREFIX(cmpeq(p0.VnD(), p3.Zeroing(), z1.VnD(), -14),
+                 "cmpeq p0.d, p3/z, z1.d, #-14");
+  COMPARE_PREFIX(cmpge(p9.VnB(), p6.Zeroing(), z12.VnB(), 14),
+                 "cmpge p9.b, p6/z, z12.b, #14");
+  COMPARE_PREFIX(cmpge(p9.VnH(), p6.Zeroing(), z12.VnH(), 6),
+                 "cmpge p9.h, p6/z, z12.h, #6");
+  COMPARE_PREFIX(cmpge(p9.VnS(), p6.Zeroing(), z12.VnS(), -4),
+                 "cmpge p9.s, p6/z, z12.s, #-4");
+  COMPARE_PREFIX(cmpge(p9.VnD(), p6.Zeroing(), z12.VnD(), -13),
+                 "cmpge p9.d, p6/z, z12.d, #-13");
+  COMPARE_PREFIX(cmpgt(p15.VnB(), p4.Zeroing(), z23.VnB(), 13),
+                 "cmpgt p15.b, p4/z, z23.b, #13");
+  COMPARE_PREFIX(cmpgt(p15.VnH(), p4.Zeroing(), z23.VnH(), 5),
+                 "cmpgt p15.h, p4/z, z23.h, #5");
+  COMPARE_PREFIX(cmpgt(p15.VnS(), p4.Zeroing(), z23.VnS(), -12),
+                 "cmpgt p15.s, p4/z, z23.s, #-12");
+  COMPARE_PREFIX(cmpgt(p15.VnD(), p4.Zeroing(), z23.VnD(), -5),
+                 "cmpgt p15.d, p4/z, z23.d, #-5");
+  COMPARE_PREFIX(cmple(p4.VnB(), p3.Zeroing(), z5.VnB(), 12),
+                 "cmple p4.b, p3/z, z5.b, #12");
+  COMPARE_PREFIX(cmple(p4.VnH(), p3.Zeroing(), z5.VnH(), 4),
+                 "cmple p4.h, p3/z, z5.h, #4");
+  COMPARE_PREFIX(cmple(p4.VnS(), p3.Zeroing(), z5.VnS(), -11),
+                 "cmple p4.s, p3/z, z5.s, #-11");
+  COMPARE_PREFIX(cmple(p4.VnD(), p3.Zeroing(), z5.VnD(), -6),
+                 "cmple p4.d, p3/z, z5.d, #-6");
+  COMPARE_PREFIX(cmplt(p3.VnB(), p7.Zeroing(), z15.VnB(), 11),
+                 "cmplt p3.b, p7/z, z15.b, #11");
+  COMPARE_PREFIX(cmplt(p3.VnH(), p7.Zeroing(), z15.VnH(), 3),
+                 "cmplt p3.h, p7/z, z15.h, #3");
+  COMPARE_PREFIX(cmplt(p3.VnS(), p7.Zeroing(), z15.VnS(), -10),
+                 "cmplt p3.s, p7/z, z15.s, #-10");
+  COMPARE_PREFIX(cmplt(p3.VnD(), p7.Zeroing(), z15.VnD(), -7),
+                 "cmplt p3.d, p7/z, z15.d, #-7");
+  COMPARE_PREFIX(cmpne(p13.VnB(), p5.Zeroing(), z20.VnB(), 10),
+                 "cmpne p13.b, p5/z, z20.b, #10");
+  COMPARE_PREFIX(cmpne(p13.VnH(), p5.Zeroing(), z20.VnH(), 2),
+                 "cmpne p13.h, p5/z, z20.h, #2");
+  COMPARE_PREFIX(cmpne(p13.VnS(), p5.Zeroing(), z20.VnS(), -9),
+                 "cmpne p13.s, p5/z, z20.s, #-9");
+  COMPARE_PREFIX(cmpne(p13.VnD(), p5.Zeroing(), z20.VnD(), -8),
+                 "cmpne p13.d, p5/z, z20.d, #-8");
+
+  CLEANUP();
+}
+
+TEST(sve_int_compare_unsigned_imm) {
+  SETUP();
+
+  COMPARE_PREFIX(cmphi(p8.VnB(), p6.Zeroing(), z1.VnB(), 127),
+                 "cmphi p8.b, p6/z, z1.b, #127");
+  COMPARE_PREFIX(cmphi(p8.VnH(), p6.Zeroing(), z1.VnH(), 126),
+                 "cmphi p8.h, p6/z, z1.h, #126");
+  COMPARE_PREFIX(cmphi(p8.VnS(), p6.Zeroing(), z1.VnS(), 99),
+                 "cmphi p8.s, p6/z, z1.s, #99");
+  COMPARE_PREFIX(cmphi(p8.VnD(), p6.Zeroing(), z1.VnD(), 78),
+                 "cmphi p8.d, p6/z, z1.d, #78");
+  COMPARE_PREFIX(cmphs(p11.VnB(), p2.Zeroing(), z8.VnB(), 67),
+                 "cmphs p11.b, p2/z, z8.b, #67");
+  COMPARE_PREFIX(cmphs(p11.VnH(), p2.Zeroing(), z8.VnH(), 63),
+                 "cmphs p11.h, p2/z, z8.h, #63");
+  COMPARE_PREFIX(cmphs(p11.VnS(), p2.Zeroing(), z8.VnS(), 51),
+                 "cmphs p11.s, p2/z, z8.s, #51");
+  COMPARE_PREFIX(cmphs(p11.VnD(), p2.Zeroing(), z8.VnD(), 40),
+                 "cmphs p11.d, p2/z, z8.d, #40");
+  COMPARE_PREFIX(cmplo(p9.VnB(), p4.Zeroing(), z4.VnB(), 32),
+                 "cmplo p9.b, p4/z, z4.b, #32");
+  COMPARE_PREFIX(cmplo(p9.VnH(), p4.Zeroing(), z4.VnH(), 22),
+                 "cmplo p9.h, p4/z, z4.h, #22");
+  COMPARE_PREFIX(cmplo(p9.VnS(), p4.Zeroing(), z4.VnS(), 15),
+                 "cmplo p9.s, p4/z, z4.s, #15");
+  COMPARE_PREFIX(cmplo(p9.VnD(), p4.Zeroing(), z4.VnD(), 11),
+                 "cmplo p9.d, p4/z, z4.d, #11");
+  COMPARE_PREFIX(cmpls(p14.VnB(), p5.Zeroing(), z9.VnB(), 7),
+                 "cmpls p14.b, p5/z, z9.b, #7");
+  COMPARE_PREFIX(cmpls(p14.VnH(), p5.Zeroing(), z9.VnH(), 4),
+                 "cmpls p14.h, p5/z, z9.h, #4");
+  COMPARE_PREFIX(cmpls(p14.VnS(), p5.Zeroing(), z9.VnS(), 3),
+                 "cmpls p14.s, p5/z, z9.s, #3");
+  COMPARE_PREFIX(cmpls(p14.VnD(), p5.Zeroing(), z9.VnD(), 1),
+                 "cmpls p14.d, p5/z, z9.d, #1");
+
+  CLEANUP();
+}
+
+TEST(sve_int_compare_vectors) {
+  SETUP();
+
+  COMPARE_PREFIX(cmpeq(p13.VnB(), p0.Zeroing(), z26.VnB(), z10.VnD()),
+                 "cmpeq p13.b, p0/z, z26.b, z10.d");
+  COMPARE_PREFIX(cmpeq(p13.VnH(), p0.Zeroing(), z26.VnH(), z10.VnD()),
+                 "cmpeq p13.h, p0/z, z26.h, z10.d");
+  COMPARE_PREFIX(cmpeq(p13.VnS(), p0.Zeroing(), z26.VnS(), z10.VnD()),
+                 "cmpeq p13.s, p0/z, z26.s, z10.d");
+  COMPARE_PREFIX(cmpeq(p14.VnB(), p3.Zeroing(), z18.VnB(), z15.VnB()),
+                 "cmpeq p14.b, p3/z, z18.b, z15.b");
+  COMPARE_PREFIX(cmpeq(p14.VnH(), p3.Zeroing(), z18.VnH(), z15.VnH()),
+                 "cmpeq p14.h, p3/z, z18.h, z15.h");
+  COMPARE_PREFIX(cmpeq(p14.VnS(), p3.Zeroing(), z18.VnS(), z15.VnS()),
+                 "cmpeq p14.s, p3/z, z18.s, z15.s");
+  COMPARE_PREFIX(cmpeq(p14.VnD(), p3.Zeroing(), z18.VnD(), z15.VnD()),
+                 "cmpeq p14.d, p3/z, z18.d, z15.d");
+  COMPARE_PREFIX(cmpge(p8.VnB(), p3.Zeroing(), z13.VnB(), z0.VnD()),
+                 "cmpge p8.b, p3/z, z13.b, z0.d");
+  COMPARE_PREFIX(cmpge(p8.VnH(), p3.Zeroing(), z13.VnH(), z0.VnD()),
+                 "cmpge p8.h, p3/z, z13.h, z0.d");
+  COMPARE_PREFIX(cmpge(p8.VnS(), p3.Zeroing(), z13.VnS(), z0.VnD()),
+                 "cmpge p8.s, p3/z, z13.s, z0.d");
+  COMPARE_PREFIX(cmpge(p3.VnB(), p4.Zeroing(), z6.VnB(), z1.VnB()),
+                 "cmpge p3.b, p4/z, z6.b, z1.b");
+  COMPARE_PREFIX(cmpge(p3.VnH(), p4.Zeroing(), z6.VnH(), z1.VnH()),
+                 "cmpge p3.h, p4/z, z6.h, z1.h");
+  COMPARE_PREFIX(cmpge(p3.VnS(), p4.Zeroing(), z6.VnS(), z1.VnS()),
+                 "cmpge p3.s, p4/z, z6.s, z1.s");
+  COMPARE_PREFIX(cmpge(p3.VnD(), p4.Zeroing(), z6.VnD(), z1.VnD()),
+                 "cmpge p3.d, p4/z, z6.d, z1.d");
+  COMPARE_PREFIX(cmpgt(p4.VnB(), p2.Zeroing(), z24.VnB(), z1.VnD()),
+                 "cmpgt p4.b, p2/z, z24.b, z1.d");
+  COMPARE_PREFIX(cmpgt(p4.VnH(), p2.Zeroing(), z24.VnH(), z1.VnD()),
+                 "cmpgt p4.h, p2/z, z24.h, z1.d");
+  COMPARE_PREFIX(cmpgt(p4.VnS(), p2.Zeroing(), z24.VnS(), z1.VnD()),
+                 "cmpgt p4.s, p2/z, z24.s, z1.d");
+  COMPARE_PREFIX(cmpgt(p10.VnB(), p3.Zeroing(), z23.VnB(), z19.VnB()),
+                 "cmpgt p10.b, p3/z, z23.b, z19.b");
+  COMPARE_PREFIX(cmpgt(p10.VnH(), p3.Zeroing(), z23.VnH(), z19.VnH()),
+                 "cmpgt p10.h, p3/z, z23.h, z19.h");
+  COMPARE_PREFIX(cmpgt(p10.VnS(), p3.Zeroing(), z23.VnS(), z19.VnS()),
+                 "cmpgt p10.s, p3/z, z23.s, z19.s");
+  COMPARE_PREFIX(cmpgt(p10.VnD(), p3.Zeroing(), z23.VnD(), z19.VnD()),
+                 "cmpgt p10.d, p3/z, z23.d, z19.d");
+  COMPARE_PREFIX(cmphi(p10.VnB(), p6.Zeroing(), z6.VnB(), z11.VnD()),
+                 "cmphi p10.b, p6/z, z6.b, z11.d");
+  COMPARE_PREFIX(cmphi(p10.VnH(), p6.Zeroing(), z6.VnH(), z11.VnD()),
+                 "cmphi p10.h, p6/z, z6.h, z11.d");
+  COMPARE_PREFIX(cmphi(p10.VnS(), p6.Zeroing(), z6.VnS(), z11.VnD()),
+                 "cmphi p10.s, p6/z, z6.s, z11.d");
+  COMPARE_PREFIX(cmphi(p1.VnB(), p0.Zeroing(), z4.VnB(), z2.VnB()),
+                 "cmphi p1.b, p0/z, z4.b, z2.b");
+  COMPARE_PREFIX(cmphi(p1.VnH(), p0.Zeroing(), z4.VnH(), z2.VnH()),
+                 "cmphi p1.h, p0/z, z4.h, z2.h");
+  COMPARE_PREFIX(cmphi(p1.VnS(), p0.Zeroing(), z4.VnS(), z2.VnS()),
+                 "cmphi p1.s, p0/z, z4.s, z2.s");
+  COMPARE_PREFIX(cmphi(p1.VnD(), p0.Zeroing(), z4.VnD(), z2.VnD()),
+                 "cmphi p1.d, p0/z, z4.d, z2.d");
+  COMPARE_PREFIX(cmphs(p10.VnB(), p5.Zeroing(), z22.VnB(), z5.VnD()),
+                 "cmphs p10.b, p5/z, z22.b, z5.d");
+  COMPARE_PREFIX(cmphs(p10.VnH(), p5.Zeroing(), z22.VnH(), z5.VnD()),
+                 "cmphs p10.h, p5/z, z22.h, z5.d");
+  COMPARE_PREFIX(cmphs(p10.VnS(), p5.Zeroing(), z22.VnS(), z5.VnD()),
+                 "cmphs p10.s, p5/z, z22.s, z5.d");
+  COMPARE_PREFIX(cmphs(p12.VnB(), p6.Zeroing(), z20.VnB(), z24.VnB()),
+                 "cmphs p12.b, p6/z, z20.b, z24.b");
+  COMPARE_PREFIX(cmphs(p12.VnH(), p6.Zeroing(), z20.VnH(), z24.VnH()),
+                 "cmphs p12.h, p6/z, z20.h, z24.h");
+  COMPARE_PREFIX(cmphs(p12.VnS(), p6.Zeroing(), z20.VnS(), z24.VnS()),
+                 "cmphs p12.s, p6/z, z20.s, z24.s");
+  COMPARE_PREFIX(cmphs(p12.VnD(), p6.Zeroing(), z20.VnD(), z24.VnD()),
+                 "cmphs p12.d, p6/z, z20.d, z24.d");
+  COMPARE_PREFIX(cmple(p11.VnB(), p2.Zeroing(), z18.VnB(), z0.VnD()),
+                 "cmple p11.b, p2/z, z18.b, z0.d");
+  COMPARE_PREFIX(cmple(p11.VnH(), p2.Zeroing(), z18.VnH(), z0.VnD()),
+                 "cmple p11.h, p2/z, z18.h, z0.d");
+  COMPARE_PREFIX(cmple(p11.VnS(), p2.Zeroing(), z18.VnS(), z0.VnD()),
+                 "cmple p11.s, p2/z, z18.s, z0.d");
+  COMPARE_PREFIX(cmplo(p12.VnB(), p6.Zeroing(), z21.VnB(), z10.VnD()),
+                 "cmplo p12.b, p6/z, z21.b, z10.d");
+  COMPARE_PREFIX(cmplo(p12.VnH(), p6.Zeroing(), z21.VnH(), z10.VnD()),
+                 "cmplo p12.h, p6/z, z21.h, z10.d");
+  COMPARE_PREFIX(cmplo(p12.VnS(), p6.Zeroing(), z21.VnS(), z10.VnD()),
+                 "cmplo p12.s, p6/z, z21.s, z10.d");
+  COMPARE_PREFIX(cmpls(p8.VnB(), p4.Zeroing(), z9.VnB(), z15.VnD()),
+                 "cmpls p8.b, p4/z, z9.b, z15.d");
+  COMPARE_PREFIX(cmpls(p8.VnH(), p4.Zeroing(), z9.VnH(), z15.VnD()),
+                 "cmpls p8.h, p4/z, z9.h, z15.d");
+  COMPARE_PREFIX(cmpls(p8.VnS(), p4.Zeroing(), z9.VnS(), z15.VnD()),
+                 "cmpls p8.s, p4/z, z9.s, z15.d");
+  COMPARE_PREFIX(cmplt(p6.VnB(), p6.Zeroing(), z4.VnB(), z8.VnD()),
+                 "cmplt p6.b, p6/z, z4.b, z8.d");
+  COMPARE_PREFIX(cmplt(p6.VnH(), p6.Zeroing(), z4.VnH(), z8.VnD()),
+                 "cmplt p6.h, p6/z, z4.h, z8.d");
+  COMPARE_PREFIX(cmplt(p6.VnS(), p6.Zeroing(), z4.VnS(), z8.VnD()),
+                 "cmplt p6.s, p6/z, z4.s, z8.d");
+  COMPARE_PREFIX(cmpne(p1.VnB(), p6.Zeroing(), z31.VnB(), z16.VnD()),
+                 "cmpne p1.b, p6/z, z31.b, z16.d");
+  COMPARE_PREFIX(cmpne(p1.VnH(), p6.Zeroing(), z31.VnH(), z16.VnD()),
+                 "cmpne p1.h, p6/z, z31.h, z16.d");
+  COMPARE_PREFIX(cmpne(p1.VnS(), p6.Zeroing(), z31.VnS(), z16.VnD()),
+                 "cmpne p1.s, p6/z, z31.s, z16.d");
+  COMPARE_PREFIX(cmpne(p11.VnB(), p1.Zeroing(), z3.VnB(), z24.VnB()),
+                 "cmpne p11.b, p1/z, z3.b, z24.b");
+  COMPARE_PREFIX(cmpne(p11.VnH(), p1.Zeroing(), z3.VnH(), z24.VnH()),
+                 "cmpne p11.h, p1/z, z3.h, z24.h");
+  COMPARE_PREFIX(cmpne(p11.VnS(), p1.Zeroing(), z3.VnS(), z24.VnS()),
+                 "cmpne p11.s, p1/z, z3.s, z24.s");
+  COMPARE_PREFIX(cmpne(p11.VnD(), p1.Zeroing(), z3.VnD(), z24.VnD()),
+                 "cmpne p11.d, p1/z, z3.d, z24.d");
+  COMPARE_PREFIX(cmpls(p8.VnB(), p4.Zeroing(), z9.VnB(), z15.VnB()),
+                 "cmphs p8.b, p4/z, z15.b, z9.b");
+  COMPARE_PREFIX(cmpls(p8.VnH(), p4.Zeroing(), z9.VnH(), z15.VnH()),
+                 "cmphs p8.h, p4/z, z15.h, z9.h");
+  COMPARE_PREFIX(cmpls(p8.VnS(), p4.Zeroing(), z9.VnS(), z15.VnS()),
+                 "cmphs p8.s, p4/z, z15.s, z9.s");
+  COMPARE_PREFIX(cmpls(p8.VnD(), p4.Zeroing(), z9.VnD(), z15.VnD()),
+                 "cmphs p8.d, p4/z, z15.d, z9.d");
+  COMPARE_PREFIX(cmplo(p10.VnB(), p3.Zeroing(), z14.VnB(), z20.VnB()),
+                 "cmphi p10.b, p3/z, z20.b, z14.b");
+  COMPARE_PREFIX(cmplo(p10.VnH(), p3.Zeroing(), z14.VnH(), z20.VnH()),
+                 "cmphi p10.h, p3/z, z20.h, z14.h");
+  COMPARE_PREFIX(cmplo(p10.VnS(), p3.Zeroing(), z14.VnS(), z20.VnS()),
+                 "cmphi p10.s, p3/z, z20.s, z14.s");
+  COMPARE_PREFIX(cmplo(p10.VnD(), p3.Zeroing(), z14.VnD(), z20.VnD()),
+                 "cmphi p10.d, p3/z, z20.d, z14.d");
+  COMPARE_PREFIX(cmple(p12.VnB(), p2.Zeroing(), z19.VnB(), z25.VnB()),
+                 "cmpge p12.b, p2/z, z25.b, z19.b");
+  COMPARE_PREFIX(cmple(p12.VnH(), p2.Zeroing(), z19.VnH(), z25.VnH()),
+                 "cmpge p12.h, p2/z, z25.h, z19.h");
+  COMPARE_PREFIX(cmple(p12.VnS(), p2.Zeroing(), z19.VnS(), z25.VnS()),
+                 "cmpge p12.s, p2/z, z25.s, z19.s");
+  COMPARE_PREFIX(cmple(p12.VnD(), p2.Zeroing(), z19.VnD(), z25.VnD()),
+                 "cmpge p12.d, p2/z, z25.d, z19.d");
+  COMPARE_PREFIX(cmplt(p14.VnB(), p1.Zeroing(), z24.VnB(), z30.VnB()),
+                 "cmpgt p14.b, p1/z, z30.b, z24.b");
+  COMPARE_PREFIX(cmplt(p14.VnH(), p1.Zeroing(), z24.VnH(), z30.VnH()),
+                 "cmpgt p14.h, p1/z, z30.h, z24.h");
+  COMPARE_PREFIX(cmplt(p14.VnS(), p1.Zeroing(), z24.VnS(), z30.VnS()),
+                 "cmpgt p14.s, p1/z, z30.s, z24.s");
+  COMPARE_PREFIX(cmplt(p14.VnD(), p1.Zeroing(), z24.VnD(), z30.VnD()),
+                 "cmpgt p14.d, p1/z, z30.d, z24.d");
+
+  CLEANUP();
+}
+
+TEST(sve_int_misc_unpredicated) {
+  SETUP();
+
+  COMPARE_PREFIX(fexpa(z5.VnH(), z9.VnH()), "fexpa z5.h, z9.h");
+  COMPARE_PREFIX(fexpa(z5.VnS(), z9.VnS()), "fexpa z5.s, z9.s");
+  COMPARE_PREFIX(fexpa(z5.VnD(), z9.VnD()), "fexpa z5.d, z9.d");
+  COMPARE_PREFIX(ftssel(z17.VnH(), z24.VnH(), z14.VnH()),
+                 "ftssel z17.h, z24.h, z14.h");
+  COMPARE_PREFIX(ftssel(z17.VnS(), z24.VnS(), z14.VnS()),
+                 "ftssel z17.s, z24.s, z14.s");
+  COMPARE_PREFIX(ftssel(z17.VnD(), z24.VnD(), z14.VnD()),
+                 "ftssel z17.d, z24.d, z14.d");
+  COMPARE_PREFIX(movprfx(z24, z1), "movprfx z24, z1");
+
+  CLEANUP();
+}
+
+TEST(sve_int_mul_add_predicated) {
+  SETUP();
+
+  COMPARE_PREFIX(mad(z29.VnB(), p6.Merging(), z22.VnB(), z21.VnB()),
+                 "mad z29.b, p6/m, z22.b, z21.b");
+  COMPARE_PREFIX(mad(z29.VnH(), p6.Merging(), z22.VnH(), z21.VnH()),
+                 "mad z29.h, p6/m, z22.h, z21.h");
+  COMPARE_PREFIX(mad(z29.VnS(), p6.Merging(), z22.VnS(), z21.VnS()),
+                 "mad z29.s, p6/m, z22.s, z21.s");
+  COMPARE_PREFIX(mad(z29.VnD(), p6.Merging(), z22.VnD(), z21.VnD()),
+                 "mad z29.d, p6/m, z22.d, z21.d");
+  COMPARE_PREFIX(mla(z23.VnB(), p1.Merging(), z21.VnB(), z23.VnB()),
+                 "mla z23.b, p1/m, z21.b, z23.b");
+  COMPARE_PREFIX(mla(z23.VnH(), p1.Merging(), z21.VnH(), z23.VnH()),
+                 "mla z23.h, p1/m, z21.h, z23.h");
+  COMPARE_PREFIX(mla(z23.VnS(), p1.Merging(), z21.VnS(), z23.VnS()),
+                 "mla z23.s, p1/m, z21.s, z23.s");
+  COMPARE_PREFIX(mla(z23.VnD(), p1.Merging(), z21.VnD(), z23.VnD()),
+                 "mla z23.d, p1/m, z21.d, z23.d");
+  COMPARE_PREFIX(mls(z4.VnB(), p6.Merging(), z17.VnB(), z28.VnB()),
+                 "mls z4.b, p6/m, z17.b, z28.b");
+  COMPARE_PREFIX(mls(z4.VnH(), p6.Merging(), z17.VnH(), z28.VnH()),
+                 "mls z4.h, p6/m, z17.h, z28.h");
+  COMPARE_PREFIX(mls(z4.VnS(), p6.Merging(), z17.VnS(), z28.VnS()),
+                 "mls z4.s, p6/m, z17.s, z28.s");
+  COMPARE_PREFIX(mls(z4.VnD(), p6.Merging(), z17.VnD(), z28.VnD()),
+                 "mls z4.d, p6/m, z17.d, z28.d");
+  COMPARE_PREFIX(msb(z27.VnB(), p7.Merging(), z29.VnB(), z1.VnB()),
+                 "msb z27.b, p7/m, z29.b, z1.b");
+  COMPARE_PREFIX(msb(z27.VnH(), p7.Merging(), z29.VnH(), z1.VnH()),
+                 "msb z27.h, p7/m, z29.h, z1.h");
+  COMPARE_PREFIX(msb(z27.VnS(), p7.Merging(), z29.VnS(), z1.VnS()),
+                 "msb z27.s, p7/m, z29.s, z1.s");
+  COMPARE_PREFIX(msb(z27.VnD(), p7.Merging(), z29.VnD(), z1.VnD()),
+                 "msb z27.d, p7/m, z29.d, z1.d");
+
+  CLEANUP();
+}
+
+TEST(sve_int_mul_add_predicated_macro) {
+  SETUP();
+
+  COMPARE_MACRO(Mla(z0.VnB(), p1.Merging(), z0.VnB(), z2.VnB(), z4.VnB()),
+                "mla z0.b, p1/m, z2.b, z4.b");
+  COMPARE_MACRO(Mla(z3.VnH(), p2.Merging(), z4.VnH(), z3.VnH(), z5.VnH()),
+                "mad z3.h, p2/m, z5.h, z4.h");
+  COMPARE_MACRO(Mla(z4.VnS(), p3.Merging(), z5.VnS(), z6.VnS(), z4.VnS()),
+                "mad z4.s, p3/m, z6.s, z5.s");
+  COMPARE_MACRO(Mla(z5.VnD(), p4.Merging(), z6.VnD(), z7.VnD(), z8.VnD()),
+                "movprfx z5.d, p4/m, z6.d\n"
+                "mla z5.d, p4/m, z7.d, z8.d");
+
+  COMPARE_MACRO(Mls(z0.VnD(), p1.Merging(), z0.VnD(), z2.VnD(), z4.VnD()),
+                "mls z0.d, p1/m, z2.d, z4.d");
+  COMPARE_MACRO(Mls(z3.VnS(), p2.Merging(), z4.VnS(), z3.VnS(), z5.VnS()),
+                "msb z3.s, p2/m, z5.s, z4.s");
+  COMPARE_MACRO(Mls(z4.VnH(), p3.Merging(), z5.VnH(), z6.VnH(), z4.VnH()),
+                "msb z4.h, p3/m, z6.h, z5.h");
+  COMPARE_MACRO(Mls(z5.VnB(), p4.Merging(), z6.VnB(), z7.VnB(), z8.VnB()),
+                "movprfx z5.b, p4/m, z6.b\n"
+                "mls z5.b, p4/m, z7.b, z8.b");
+
+  CLEANUP();
+}
+
+TEST(sve_int_mul_add_unpredicated) {
+  SETUP();
+
+  COMPARE_PREFIX(sdot(z13.VnS(), z12.VnB(), z12.VnB()),
+                 "sdot z13.s, z12.b, z12.b");
+  COMPARE_PREFIX(sdot(z18.VnD(), z27.VnH(), z22.VnH()),
+                 "sdot z18.d, z27.h, z22.h");
+  COMPARE_PREFIX(udot(z23.VnS(), z22.VnB(), z11.VnB()),
+                 "udot z23.s, z22.b, z11.b");
+  COMPARE_PREFIX(udot(z21.VnD(), z27.VnH(), z27.VnH()),
+                 "udot z21.d, z27.h, z27.h");
+
+  CLEANUP();
+}
+
+TEST(sve_int_mul_add_unpredicated_macro) {
+  SETUP();
+
+  COMPARE_MACRO(Sdot(z0.VnS(), z0.VnS(), z2.VnB(), z4.VnB()),
+                "sdot z0.s, z2.b, z4.b");
+  COMPARE_MACRO(Sdot(z3.VnD(), z4.VnD(), z3.VnH(), z5.VnH()),
+                "movprfx z31, z4\n"
+                "sdot z31.d, z3.h, z5.h\n"
+                "mov z3.d, z31.d");
+  COMPARE_MACRO(Sdot(z4.VnS(), z5.VnS(), z6.VnB(), z4.VnB()),
+                "movprfx z31, z5\n"
+                "sdot z31.s, z6.b, z4.b\n"
+                "mov z4.d, z31.d");
+  COMPARE_MACRO(Sdot(z6.VnD(), z7.VnD(), z8.VnH(), z9.VnH()),
+                "movprfx z6, z7\n"
+                "sdot z6.d, z8.h, z9.h");
+  COMPARE_MACRO(Sdot(z5.VnD(), z5.VnD(), z5.VnH(), z5.VnH()),
+                "sdot z5.d, z5.h, z5.h");
+
+  COMPARE_MACRO(Udot(z0.VnD(), z0.VnD(), z2.VnH(), z4.VnH()),
+                "udot z0.d, z2.h, z4.h");
+  COMPARE_MACRO(Udot(z3.VnS(), z4.VnS(), z3.VnB(), z5.VnB()),
+                "movprfx z31, z4\n"
+                "udot z31.s, z3.b, z5.b\n"
+                "mov z3.d, z31.d");
+  COMPARE_MACRO(Udot(z4.VnD(), z5.VnD(), z6.VnH(), z4.VnH()),
+                "movprfx z31, z5\n"
+                "udot z31.d, z6.h, z4.h\n"
+                "mov z4.d, z31.d");
+  COMPARE_MACRO(Udot(z6.VnS(), z7.VnS(), z8.VnB(), z9.VnB()),
+                "movprfx z6, z7\n"
+                "udot z6.s, z8.b, z9.b");
+  COMPARE_MACRO(Udot(z5.VnS(), z5.VnS(), z5.VnB(), z5.VnB()),
+                "udot z5.s, z5.b, z5.b");
+  CLEANUP();
+}
+
+TEST(sve_int_reduction) {
+  SETUP();
+
+  COMPARE_PREFIX(andv(b15, p1, z4.VnB()), "andv b15, p1, z4.b");
+  COMPARE_PREFIX(andv(h14, p2, z3.VnH()), "andv h14, p2, z3.h");
+  COMPARE_PREFIX(andv(s13, p3, z2.VnS()), "andv s13, p3, z2.s");
+  COMPARE_PREFIX(andv(d12, p4, z1.VnD()), "andv d12, p4, z1.d");
+  COMPARE_PREFIX(eorv(b12, p0, z30.VnB()), "eorv b12, p0, z30.b");
+  COMPARE_PREFIX(eorv(h11, p1, z29.VnH()), "eorv h11, p1, z29.h");
+  COMPARE_PREFIX(eorv(s10, p2, z28.VnS()), "eorv s10, p2, z28.s");
+  COMPARE_PREFIX(eorv(d9, p3, z27.VnD()), "eorv d9, p3, z27.d");
+  COMPARE_PREFIX(movprfx(z30.VnB(), p2.Zeroing(), z23.VnB()),
+                 "movprfx z30.b, p2/z, z23.b");
+  COMPARE_PREFIX(movprfx(z10.VnH(), p0.Merging(), z10.VnH()),
+                 "movprfx z10.h, p0/m, z10.h");
+  COMPARE_PREFIX(movprfx(z0.VnS(), p2.Zeroing(), z23.VnS()),
+                 "movprfx z0.s, p2/z, z23.s");
+  COMPARE_PREFIX(movprfx(z31.VnD(), p7.Merging(), z23.VnD()),
+                 "movprfx z31.d, p7/m, z23.d");
+  COMPARE_PREFIX(orv(b4, p0, z16.VnB()), "orv b4, p0, z16.b");
+  COMPARE_PREFIX(orv(h6, p2, z18.VnH()), "orv h6, p2, z18.h");
+  COMPARE_PREFIX(orv(s8, p4, z20.VnS()), "orv s8, p4, z20.s");
+  COMPARE_PREFIX(orv(d10, p6, z22.VnD()), "orv d10, p6, z22.d");
+  COMPARE_PREFIX(saddv(d20, p1, z12.VnB()), "saddv d20, p1, z12.b");
+  COMPARE_PREFIX(saddv(d22, p3, z15.VnH()), "saddv d22, p3, z15.h");
+  COMPARE_PREFIX(saddv(d24, p5, z18.VnS()), "saddv d24, p5, z18.s");
+  COMPARE_PREFIX(smaxv(b9, p3, z1.VnB()), "smaxv b9, p3, z1.b");
+  COMPARE_PREFIX(smaxv(h19, p2, z1.VnH()), "smaxv h19, p2, z1.h");
+  COMPARE_PREFIX(smaxv(s29, p1, z1.VnS()), "smaxv s29, p1, z1.s");
+  COMPARE_PREFIX(smaxv(d9, p0, z1.VnD()), "smaxv d9, p0, z1.d");
+  COMPARE_PREFIX(sminv(b8, p3, z14.VnB()), "sminv b8, p3, z14.b");
+  COMPARE_PREFIX(sminv(h18, p2, z4.VnH()), "sminv h18, p2, z4.h");
+  COMPARE_PREFIX(sminv(s28, p1, z4.VnS()), "sminv s28, p1, z4.s");
+  COMPARE_PREFIX(sminv(d8, p0, z24.VnD()), "sminv d8, p0, z24.d");
+  COMPARE_PREFIX(uaddv(d13, p0, z15.VnB()), "uaddv d13, p0, z15.b");
+  COMPARE_PREFIX(uaddv(d15, p2, z20.VnH()), "uaddv d15, p2, z20.h");
+  COMPARE_PREFIX(uaddv(d17, p4, z25.VnS()), "uaddv d17, p4, z25.s");
+  COMPARE_PREFIX(uaddv(d19, p6, z30.VnD()), "uaddv d19, p6, z30.d");
+  COMPARE_PREFIX(umaxv(b28, p3, z4.VnB()), "umaxv b28, p3, z4.b");
+  COMPARE_PREFIX(umaxv(h18, p6, z2.VnH()), "umaxv h18, p6, z2.h");
+  COMPARE_PREFIX(umaxv(s18, p4, z29.VnS()), "umaxv s18, p4, z29.s");
+  COMPARE_PREFIX(umaxv(d28, p1, z24.VnD()), "umaxv d28, p1, z24.d");
+  COMPARE_PREFIX(uminv(b16, p3, z0.VnB()), "uminv b16, p3, z0.b");
+  COMPARE_PREFIX(uminv(h16, p2, z3.VnH()), "uminv h16, p2, z3.h");
+  COMPARE_PREFIX(uminv(s16, p1, z5.VnS()), "uminv s16, p1, z5.s");
+  COMPARE_PREFIX(uminv(d16, p7, z7.VnD()), "uminv d16, p7, z7.d");
+
+  CLEANUP();
+}
+
+TEST(sve_int_unary_arithmetic_predicated) {
+  SETUP();
+
+  COMPARE_PREFIX(abs(z5.VnB(), p5.Merging(), z31.VnB()),
+                 "abs z5.b, p5/m, z31.b");
+  COMPARE_PREFIX(abs(z29.VnH(), p5.Merging(), z17.VnH()),
+                 "abs z29.h, p5/m, z17.h");
+  COMPARE_PREFIX(abs(z6.VnS(), p4.Merging(), z24.VnS()),
+                 "abs z6.s, p4/m, z24.s");
+  COMPARE_PREFIX(abs(z19.VnD(), p3.Merging(), z25.VnD()),
+                 "abs z19.d, p3/m, z25.d");
+  COMPARE_PREFIX(cls(z4.VnB(), p0.Merging(), z20.VnB()),
+                 "cls z4.b, p0/m, z20.b");
+  COMPARE_PREFIX(cls(z11.VnH(), p0.Merging(), z26.VnH()),
+                 "cls z11.h, p0/m, z26.h");
+  COMPARE_PREFIX(cls(z10.VnS(), p1.Merging(), z10.VnS()),
+                 "cls z10.s, p1/m, z10.s");
+  COMPARE_PREFIX(cls(z5.VnD(), p1.Merging(), z4.VnD()), "cls z5.d, p1/m, z4.d");
+  COMPARE_PREFIX(clz(z18.VnB(), p3.Merging(), z1.VnB()),
+                 "clz z18.b, p3/m, z1.b");
+  COMPARE_PREFIX(clz(z13.VnH(), p4.Merging(), z18.VnH()),
+                 "clz z13.h, p4/m, z18.h");
+  COMPARE_PREFIX(clz(z15.VnS(), p4.Merging(), z24.VnS()),
+                 "clz z15.s, p4/m, z24.s");
+  COMPARE_PREFIX(clz(z29.VnD(), p2.Merging(), z22.VnD()),
+                 "clz z29.d, p2/m, z22.d");
+  COMPARE_PREFIX(cnot(z16.VnB(), p6.Merging(), z20.VnB()),
+                 "cnot z16.b, p6/m, z20.b");
+  COMPARE_PREFIX(cnot(z10.VnH(), p5.Merging(), z12.VnH()),
+                 "cnot z10.h, p5/m, z12.h");
+  COMPARE_PREFIX(cnot(z8.VnS(), p5.Merging(), z21.VnS()),
+                 "cnot z8.s, p5/m, z21.s");
+  COMPARE_PREFIX(cnot(z3.VnD(), p3.Merging(), z18.VnD()),
+                 "cnot z3.d, p3/m, z18.d");
+  COMPARE_PREFIX(cnt(z29.VnB(), p3.Merging(), z7.VnB()),
+                 "cnt z29.b, p3/m, z7.b");
+  COMPARE_PREFIX(cnt(z3.VnH(), p6.Merging(), z31.VnH()),
+                 "cnt z3.h, p6/m, z31.h");
+  COMPARE_PREFIX(cnt(z2.VnS(), p4.Merging(), z16.VnS()),
+                 "cnt z2.s, p4/m, z16.s");
+  COMPARE_PREFIX(cnt(z0.VnD(), p0.Merging(), z24.VnD()),
+                 "cnt z0.d, p0/m, z24.d");
+  COMPARE_PREFIX(fabs(z17.VnH(), p7.Merging(), z15.VnH()),
+                 "fabs z17.h, p7/m, z15.h");
+  COMPARE_PREFIX(fabs(z18.VnS(), p0.Merging(), z29.VnS()),
+                 "fabs z18.s, p0/m, z29.s");
+  COMPARE_PREFIX(fabs(z17.VnD(), p1.Merging(), z9.VnD()),
+                 "fabs z17.d, p1/m, z9.d");
+  COMPARE_PREFIX(fneg(z25.VnH(), p1.Merging(), z28.VnH()),
+                 "fneg z25.h, p1/m, z28.h");
+  COMPARE_PREFIX(fneg(z5.VnS(), p1.Merging(), z25.VnS()),
+                 "fneg z5.s, p1/m, z25.s");
+  COMPARE_PREFIX(fneg(z6.VnD(), p1.Merging(), z17.VnD()),
+                 "fneg z6.d, p1/m, z17.d");
+  COMPARE_PREFIX(neg(z25.VnB(), p4.Merging(), z8.VnB()),
+                 "neg z25.b, p4/m, z8.b");
+  COMPARE_PREFIX(neg(z30.VnH(), p3.Merging(), z23.VnH()),
+                 "neg z30.h, p3/m, z23.h");
+  COMPARE_PREFIX(neg(z7.VnS(), p2.Merging(), z26.VnS()),
+                 "neg z7.s, p2/m, z26.s");
+  COMPARE_PREFIX(neg(z21.VnD(), p3.Merging(), z5.VnD()),
+                 "neg z21.d, p3/m, z5.d");
+  COMPARE_PREFIX(not_(z24.VnB(), p1.Merging(), z27.VnB()),
+                 "not z24.b, p1/m, z27.b");
+  COMPARE_PREFIX(not_(z31.VnH(), p6.Merging(), z19.VnH()),
+                 "not z31.h, p6/m, z19.h");
+  COMPARE_PREFIX(not_(z18.VnS(), p5.Merging(), z13.VnS()),
+                 "not z18.s, p5/m, z13.s");
+  COMPARE_PREFIX(not_(z12.VnD(), p2.Merging(), z28.VnD()),
+                 "not z12.d, p2/m, z28.d");
+  COMPARE_PREFIX(sxtb(z19.VnH(), p7.Merging(), z3.VnH()),
+                 "sxtb z19.h, p7/m, z3.h");
+  COMPARE_PREFIX(sxtb(z3.VnS(), p1.Merging(), z17.VnS()),
+                 "sxtb z3.s, p1/m, z17.s");
+  COMPARE_PREFIX(sxtb(z27.VnD(), p0.Merging(), z12.VnD()),
+                 "sxtb z27.d, p0/m, z12.d");
+  COMPARE_PREFIX(sxth(z6.VnS(), p1.Merging(), z17.VnS()),
+                 "sxth z6.s, p1/m, z17.s");
+  COMPARE_PREFIX(sxth(z8.VnD(), p6.Merging(), z2.VnD()),
+                 "sxth z8.d, p6/m, z2.d");
+  COMPARE_PREFIX(sxtw(z13.VnD(), p3.Merging(), z27.VnD()),
+                 "sxtw z13.d, p3/m, z27.d");
+  COMPARE_PREFIX(uxtb(z23.VnH(), p3.Merging(), z21.VnH()),
+                 "uxtb z23.h, p3/m, z21.h");
+  COMPARE_PREFIX(uxtb(z0.VnS(), p2.Merging(), z13.VnS()),
+                 "uxtb z0.s, p2/m, z13.s");
+  COMPARE_PREFIX(uxtb(z1.VnD(), p3.Merging(), z13.VnD()),
+                 "uxtb z1.d, p3/m, z13.d");
+  COMPARE_PREFIX(uxth(z27.VnS(), p0.Merging(), z29.VnS()),
+                 "uxth z27.s, p0/m, z29.s");
+  COMPARE_PREFIX(uxth(z22.VnD(), p4.Merging(), z20.VnD()),
+                 "uxth z22.d, p4/m, z20.d");
+  COMPARE_PREFIX(uxtw(z14.VnD(), p1.Merging(), z13.VnD()),
+                 "uxtw z14.d, p1/m, z13.d");
+
+  CLEANUP();
+}
+
+TEST(sve_neg_macro) {
+  SETUP();
+
+  COMPARE_MACRO(Neg(z0.VnB(), z0.VnB()), "subr z0.b, z0.b, #0");
+  COMPARE_MACRO(Neg(z1.VnH(), z2.VnH()),
+                "movprfx z1, z2\n"
+                "subr z1.h, z1.h, #0");
+  COMPARE_MACRO(Neg(z29.VnS(), z29.VnS()), "subr z29.s, z29.s, #0");
+  COMPARE_MACRO(Neg(z30.VnD(), z31.VnD()),
+                "movprfx z30, z31\n"
+                "subr z30.d, z30.d, #0");
+
+  CLEANUP();
+}
+
+TEST(sve_cpy_fcpy_imm) {
+  SETUP();
+
+  COMPARE_PREFIX(cpy(z25.VnB(), p13.Zeroing(), -1), "mov z25.b, p13/z, #-1");
+  COMPARE_PREFIX(cpy(z25.VnB(), p13.Merging(), -1), "mov z25.b, p13/m, #-1");
+  COMPARE_PREFIX(cpy(z25.VnH(), p13.Merging(), 127), "mov z25.h, p13/m, #127");
+  COMPARE_PREFIX(cpy(z25.VnS(), p13.Merging(), 10752),
+                 "mov z25.s, p13/m, #42, lsl #8");
+  COMPARE_PREFIX(cpy(z25.VnD(), p13.Merging(), -10752),
+                 "mov z25.d, p13/m, #-42, lsl #8");
+  COMPARE_PREFIX(mov(z25.VnD(), p13.Merging(), -10752),
+                 "mov z25.d, p13/m, #-42, lsl #8");
+
+  COMPARE_PREFIX(fcpy(z20.VnH(), p11.Merging(), 29.0),
+                 "fmov z20.h, p11/m, #0x3d (29.0000)");
+  COMPARE_PREFIX(fmov(z20.VnS(), p11.Merging(), -31.0),
+                 "fmov z20.s, p11/m, #0xbf (-31.0000)");
+  COMPARE_PREFIX(fcpy(z20.VnD(), p11.Merging(), 1.0),
+                 "fmov z20.d, p11/m, #0x70 (1.0000)");
+
+  CLEANUP();
+}
+
+TEST(sve_fmov_zero) {
+  SETUP();
+
+  // Predicated `fmov` is an alias for either `fcpy` or `cpy`.
+  COMPARE_PREFIX(fmov(z13.VnS(), p0.Merging(), 1.0),
+                 "fmov z13.s, p0/m, #0x70 (1.0000)");
+  COMPARE_PREFIX(fmov(z13.VnS(), p0.Merging(), 0.0), "mov z13.s, p0/m, #0");
+  COMPARE_MACRO(Fmov(z13.VnD(), p0.Merging(), 1.0),
+                "fmov z13.d, p0/m, #0x70 (1.0000)");
+  COMPARE_MACRO(Fmov(z13.VnD(), p0.Merging(), 0.0), "mov z13.d, p0/m, #0");
+
+  // Unpredicated `fmov` is an alias for either `fdup` or `dup`.
+  COMPARE_PREFIX(fmov(z13.VnS(), 1.0), "fmov z13.s, #0x70 (1.0000)");
+  COMPARE_PREFIX(fmov(z13.VnS(), 0.0), "mov z13.s, #0");
+  COMPARE_MACRO(Fmov(z13.VnD(), 1.0), "fmov z13.d, #0x70 (1.0000)");
+  COMPARE_MACRO(Fmov(z13.VnD(), 0.0), "mov z13.d, #0");
+
+  // -0.0 cannot be encoded by this alias, but is handled by the MacroAssembler.
+  COMPARE_MACRO(Fmov(z13.VnD(), p0.Merging(), -0.0),
+                "mov x16, #0x8000000000000000\n"
+                "mov z13.d, p0/m, x16");
+  COMPARE_MACRO(Fmov(z13.VnD(), -0.0), "mov z13.d, #0x8000000000000000");
+
+  CLEANUP();
+}
+
+TEST(sve_int_wide_imm_unpredicated) {
+  SETUP();
+
+  COMPARE_PREFIX(add(z12.VnB(), z12.VnB(), 0), "add z12.b, z12.b, #0");
+  COMPARE_PREFIX(add(z13.VnH(), z13.VnH(), 255), "add z13.h, z13.h, #255");
+  COMPARE_PREFIX(add(z14.VnS(), z14.VnS(), 256),
+                 "add z14.s, z14.s, #1, lsl #8");
+  COMPARE_PREFIX(add(z15.VnD(), z15.VnD(), 255 * 256),
+                 "add z15.d, z15.d, #255, lsl #8");
+
+  COMPARE_PREFIX(dup(z6.VnB(), -128), "mov z6.b, #-128");
+  COMPARE_PREFIX(dup(z7.VnH(), 127), "mov z7.h, #127");
+  COMPARE_PREFIX(dup(z8.VnS(), -128 * 256), "mov z8.s, #-128, lsl #8");
+  COMPARE_PREFIX(dup(z9.VnD(), 127 * 256), "mov z9.d, #127, lsl #8");
+  COMPARE_PREFIX(mov(z8.VnS(), -128 * 256, -1), "mov z8.s, #-128, lsl #8");
+  COMPARE_PREFIX(mov(z9.VnD(), 127 * 256, -1), "mov z9.d, #127, lsl #8");
+
+  COMPARE_PREFIX(sqadd(z7.VnB(), z7.VnB(), 124), "sqadd z7.b, z7.b, #124");
+  COMPARE_PREFIX(sqadd(z8.VnH(), z8.VnH(), 131), "sqadd z8.h, z8.h, #131");
+  COMPARE_PREFIX(sqadd(z9.VnS(), z9.VnS(), 252 * 256),
+                 "sqadd z9.s, z9.s, #252, lsl #8");
+  COMPARE_PREFIX(sqadd(z10.VnD(), z10.VnD(), 20 * 256),
+                 "sqadd z10.d, z10.d, #20, lsl #8");
+
+  COMPARE_PREFIX(sqsub(z31.VnB(), z31.VnB(), 132), "sqsub z31.b, z31.b, #132");
+  COMPARE_PREFIX(sqsub(z30.VnH(), z30.VnH(), 251), "sqsub z30.h, z30.h, #251");
+  COMPARE_PREFIX(sqsub(z29.VnS(), z29.VnS(), 21 * 256),
+                 "sqsub z29.s, z29.s, #21, lsl #8");
+  COMPARE_PREFIX(sqsub(z28.VnD(), z28.VnD(), 123 * 256),
+                 "sqsub z28.d, z28.d, #123, lsl #8");
+
+  COMPARE_PREFIX(subr(z20.VnB(), z20.VnB(), 250), "subr z20.b, z20.b, #250");
+  COMPARE_PREFIX(subr(z21.VnH(), z21.VnH(), 22), "subr z21.h, z21.h, #22");
+  COMPARE_PREFIX(subr(z22.VnS(), z22.VnS(), 122 * 256),
+                 "subr z22.s, z22.s, #122, lsl #8");
+  COMPARE_PREFIX(subr(z23.VnD(), z23.VnD(), 133 * 256),
+                 "subr z23.d, z23.d, #133, lsl #8");
+
+  COMPARE_PREFIX(sub(z18.VnB(), z18.VnB(), 23), "sub z18.b, z18.b, #23");
+  COMPARE_PREFIX(sub(z19.VnH(), z19.VnH(), 121), "sub z19.h, z19.h, #121");
+  COMPARE_PREFIX(sub(z20.VnS(), z20.VnS(), 134 * 256),
+                 "sub z20.s, z20.s, #134, lsl #8");
+  COMPARE_PREFIX(sub(z21.VnD(), z21.VnD(), 249 * 256),
+                 "sub z21.d, z21.d, #249, lsl #8");
+
+  COMPARE_PREFIX(uqadd(z21.VnB(), z21.VnB(), 246), "uqadd z21.b, z21.b, #246");
+  COMPARE_PREFIX(uqadd(z22.VnH(), z22.VnH(), 26), "uqadd z22.h, z22.h, #26");
+  COMPARE_PREFIX(uqadd(z23.VnS(), z23.VnS(), 118 * 256),
+                 "uqadd z23.s, z23.s, #118, lsl #8");
+  COMPARE_PREFIX(uqadd(z24.VnD(), z24.VnD(), 137 * 256),
+                 "uqadd z24.d, z24.d, #137, lsl #8");
+
+  COMPARE_PREFIX(uqsub(z10.VnB(), z10.VnB(), 27), "uqsub z10.b, z10.b, #27");
+  COMPARE_PREFIX(uqsub(z11.VnH(), z11.VnH(), 117), "uqsub z11.h, z11.h, #117");
+  COMPARE_PREFIX(uqsub(z12.VnS(), z12.VnS(), 138 * 256),
+                 "uqsub z12.s, z12.s, #138, lsl #8");
+  COMPARE_PREFIX(uqsub(z13.VnD(), z13.VnD(), 245 * 256),
+                 "uqsub z13.d, z13.d, #245, lsl #8");
+
+  COMPARE_PREFIX(fdup(z26.VnH(), Float16(-5.0f)),
+                 "fmov z26.h, #0x94 (-5.0000)");
+  COMPARE_PREFIX(fdup(z27.VnS(), -13.0f), "fmov z27.s, #0xaa (-13.0000)");
+  COMPARE_PREFIX(fdup(z28.VnD(), 1.0f), "fmov z28.d, #0x70 (1.0000)");
+  COMPARE_PREFIX(fmov(z28.VnD(), 1.0f), "fmov z28.d, #0x70 (1.0000)");
+
+  COMPARE_PREFIX(mul(z15.VnB(), z15.VnB(), -128), "mul z15.b, z15.b, #-128");
+  COMPARE_PREFIX(mul(z16.VnH(), z16.VnH(), -1), "mul z16.h, z16.h, #-1");
+  COMPARE_PREFIX(mul(z17.VnS(), z17.VnS(), 17), "mul z17.s, z17.s, #17");
+  COMPARE_PREFIX(mul(z18.VnD(), z18.VnD(), 127), "mul z18.d, z18.d, #127");
+
+  COMPARE_PREFIX(smax(z7.VnB(), z7.VnB(), -2), "smax z7.b, z7.b, #-2");
+  COMPARE_PREFIX(smax(z8.VnH(), z8.VnH(), 18), "smax z8.h, z8.h, #18");
+  COMPARE_PREFIX(smax(z9.VnS(), z9.VnS(), 126), "smax z9.s, z9.s, #126");
+  COMPARE_PREFIX(smax(z10.VnD(), z10.VnD(), -127), "smax z10.d, z10.d, #-127");
+
+  COMPARE_PREFIX(smin(z5.VnB(), z5.VnB(), 19), "smin z5.b, z5.b, #19");
+  COMPARE_PREFIX(smin(z6.VnH(), z6.VnH(), 125), "smin z6.h, z6.h, #125");
+  COMPARE_PREFIX(smin(z7.VnS(), z7.VnS(), -126), "smin z7.s, z7.s, #-126");
+  COMPARE_PREFIX(smin(z8.VnD(), z8.VnD(), -3), "smin z8.d, z8.d, #-3");
+
+  COMPARE_PREFIX(umax(z15.VnB(), z15.VnB(), 120), "umax z15.b, z15.b, #120");
+  COMPARE_PREFIX(umax(z16.VnH(), z16.VnH(), 135), "umax z16.h, z16.h, #135");
+  COMPARE_PREFIX(umax(z17.VnS(), z17.VnS(), 248), "umax z17.s, z17.s, #248");
+  COMPARE_PREFIX(umax(z18.VnD(), z18.VnD(), 24), "umax z18.d, z18.d, #24");
+
+  COMPARE_PREFIX(umin(z22.VnB(), z22.VnB(), 136), "umin z22.b, z22.b, #136");
+  COMPARE_PREFIX(umin(z23.VnH(), z23.VnH(), 247), "umin z23.h, z23.h, #247");
+  COMPARE_PREFIX(umin(z24.VnS(), z24.VnS(), 25), "umin z24.s, z24.s, #25");
+  COMPARE_PREFIX(umin(z25.VnD(), z25.VnD(), 119), "umin z25.d, z25.d, #119");
+
+  CLEANUP();
+}
+
+TEST(sve_add_sub_imm_macro) {
+  SETUP();
+
+  // The MacroAssembler automatically generates movprfx where necessary.
+  COMPARE_MACRO(Add(z12.VnB(), z13.VnB(), 0),
+                "movprfx z12, z13\n"
+                "add z12.b, z12.b, #0");
+  COMPARE_MACRO(Sub(z20.VnB(), 250, z2.VnB()),
+                "movprfx z20, z2\n"
+                "subr z20.b, z20.b, #250");
+  COMPARE_MACRO(Sub(z19.VnH(), z4.VnH(), 121),
+                "movprfx z19, z4\n"
+                "sub z19.h, z19.h, #121");
+
+  // Add and Sub can make use of two's complement equivalences.
+  COMPARE_MACRO(Add(z13.VnH(), z13.VnH(), 0xffff), "sub z13.h, z13.h, #1");
+  COMPARE_MACRO(Add(z15.VnD(), z15.VnD(), 0xffffffffffffffd6),
+                "sub z15.d, z15.d, #42");
+  COMPARE_MACRO(Add(z16.VnH(), z16.VnH(), 0xff00),
+                "add z16.h, z16.h, #255, lsl #8");
+  COMPARE_MACRO(Sub(z17.VnH(), z17.VnH(), 0xfffe), "add z17.h, z17.h, #2");
+  COMPARE_MACRO(Sub(z14.VnB(), z14.VnB(), 0x80), "sub z14.b, z14.b, #128");
+
+  // The MacroAssembler automatically generates dup if an immediate isn't
+  // encodable.
+  COMPARE_MACRO(Add(z15.VnD(), z20.VnD(), 1234567890),
+                "mov x16, #0x2d2\n"
+                "movk x16, #0x4996, lsl #16\n"
+                "mov z31.d, x16\n"
+                "add z15.d, z20.d, z31.d");
+  COMPARE_MACRO(Sub(z22.VnS(), 256 * 256, z2.VnS()),
+                "mov z31.s, #0x10000\n"
+                "sub z22.s, z31.s, z2.s");
+  COMPARE_MACRO(Sub(z21.VnD(), z11.VnD(), 111111111111),
+                "mov x16, #0x1c7\n"
+                "movk x16, #0xdebd, lsl #16\n"
+                "movk x16, #0x19, lsl #32\n"
+                "mov z31.d, x16\n"
+                "sub z21.d, z11.d, z31.d");
+
+  CLEANUP();
+}
+
+TEST(sve_uqadd_uqsub_imm_macro) {
+  SETUP();
+
+  // The MacroAssembler automatically generates movprfx where necessary.
+  COMPARE_MACRO(Uqadd(z21.VnB(), z14.VnB(), 246),
+                "movprfx z21, z14\n"
+                "uqadd z21.b, z21.b, #246");
+  COMPARE_MACRO(Uqsub(z10.VnB(), z27.VnB(), 27),
+                "movprfx z10, z27\n"
+                "uqsub z10.b, z10.b, #27");
+  COMPARE_MACRO(Uqadd(z1.VnS(), z2.VnS(), 42 * 256),
+                "movprfx z1, z2\n"
+                "uqadd z1.s, z1.s, #42, lsl #8");
+
+  COMPARE_MACRO(Uqsub(z3.VnB(), z3.VnB(), 0xff), "uqsub z3.b, z3.b, #255");
+  COMPARE_MACRO(Uqadd(z8.VnS(), z8.VnS(), 0xff00),
+                "uqadd z8.s, z8.s, #255, lsl #8");
+
+  CLEANUP();
+}
+
+TEST(sve_sqadd_sqsub_imm_macro) {
+  SETUP();
+
+  // The MacroAssembler automatically generates movprfx where necessary.
+  COMPARE_MACRO(Sqadd(z21.VnB(), z14.VnB(), 123),
+                "movprfx z21, z14\n"
+                "sqadd z21.b, z21.b, #123");
+  COMPARE_MACRO(Sqsub(z10.VnB(), z27.VnB(), 27),
+                "movprfx z10, z27\n"
+                "sqsub z10.b, z10.b, #27");
+  COMPARE_MACRO(Sqadd(z22.VnS(), z15.VnS(), 256),
+                "movprfx z22, z15\n"
+                "sqadd z22.s, z22.s, #1, lsl #8");
+
+  COMPARE_MACRO(Sqsub(z3.VnB(), z3.VnB(), 0xff), "sqsub z3.b, z3.b, #255");
+  COMPARE_MACRO(Sqadd(z4.VnH(), z4.VnH(), 0xff00),
+                "sqadd z4.h, z4.h, #255, lsl #8");
+
+  CLEANUP();
+}
+
+TEST(sve_int_wide_imm_unpredicated_macro) {
+  SETUP();
+
+  // The MacroAssembler automatically generates movprfx where it can.
+  COMPARE_MACRO(Mul(z1.VnD(), z18.VnD(), 127),
+                "movprfx z1, z18\n"
+                "mul z1.d, z1.d, #127");
+  COMPARE_MACRO(Smax(z3.VnS(), z9.VnS(), 126),
+                "movprfx z3, z9\n"
+                "smax z3.s, z3.s, #126");
+  COMPARE_MACRO(Smin(z26.VnH(), z6.VnH(), 125),
+                "movprfx z26, z6\n"
+                "smin z26.h, z26.h, #125");
+  COMPARE_MACRO(Umax(z25.VnB(), z15.VnB(), 120),
+                "movprfx z25, z15\n"
+                "umax z25.b, z25.b, #120");
+  COMPARE_MACRO(Umin(z13.VnD(), z25.VnD(), 119),
+                "movprfx z13, z25\n"
+                "umin z13.d, z13.d, #119");
+  COMPARE_MACRO(Dup(z8.VnS(), -7654321),
+                "mov w16, #0x344f\n"
+                "movk w16, #0xff8b, lsl #16\n"
+                "mov z8.s, w16");
+
+  // The MacroAssembler automatically generates dup if an immediate isn't
+  // encodable, when it is out-of-range for example.
+  COMPARE_MACRO(Dup(z9.VnD(), 0x80000000), "mov z9.d, #0x80000000");
+  COMPARE_MACRO(Mov(z9.VnD(), 0x80000000), "mov z9.d, #0x80000000");
+  COMPARE_MACRO(Fdup(z26.VnH(), Float16(0.0)), "mov z26.h, #0");
+  COMPARE_MACRO(Fdup(z26.VnH(), Float16(0.0)), "mov z26.h, #0");
+  COMPARE_MACRO(Fdup(z27.VnS(), 255.0f),
+                "mov w16, #0x437f0000\n"
+                "mov z27.s, w16");
+  COMPARE_MACRO(Fdup(z28.VnD(), 12.3456),
+                "mov x16, #0xfec5\n"
+                "movk x16, #0x7bb2, lsl #16\n"
+                "movk x16, #0xb0f2, lsl #32\n"
+                "movk x16, #0x4028, lsl #48\n"
+                "mov z28.d, x16");
+  COMPARE_MACRO(Fmov(z26.VnH(), Float16(0.0)), "mov z26.h, #0");
+  COMPARE_MACRO(Fmov(z26.VnH(), Float16(0.0)), "mov z26.h, #0");
+  COMPARE_MACRO(Fmov(z27.VnS(), 255.0f),
+                "mov w16, #0x437f0000\n"
+                "mov z27.s, w16");
+  COMPARE_MACRO(Fmov(z28.VnD(), 12.3456),
+                "mov x16, #0xfec5\n"
+                "movk x16, #0x7bb2, lsl #16\n"
+                "movk x16, #0xb0f2, lsl #32\n"
+                "movk x16, #0x4028, lsl #48\n"
+                "mov z28.d, x16");
+
+  // Only predicated version of instruction is supported for unencodable
+  // immediate.
+  {
+    UseScratchRegisterScope temps(&masm);
+    temps.Include(p7, p15);
+    COMPARE_MACRO(Mul(z18.VnD(), z18.VnD(), -1270000000),
+                  "ptrue p7.d\n"
+                  "mov x16, #0xffffffffffff5680\n"
+                  "movk x16, #0xb44d, lsl #16\n"
+                  "mov z31.d, x16\n"
+                  "mul z18.d, p7/m, z18.d, z31.d");
+    COMPARE_MACRO(Smax(z9.VnS(), z11.VnS(), -0x70000001),
+                  "ptrue p7.s\n"
+                  "mov z9.s, #0x8fffffff\n"
+                  "smax z9.s, p7/m, z9.s, z11.s");
+    COMPARE_MACRO(Smin(z6.VnH(), z6.VnH(), -0x7eef),
+                  "ptrue p7.h\n"
+                  "mov w16, #0xffff8111\n"
+                  "mov z31.h, w16\n"
+                  "smin z6.h, p7/m, z6.h, z31.h");
+    COMPARE_MACRO(Umax(z15.VnH(), z7.VnH(), 0xfeee),
+                  "ptrue p7.h\n"
+                  "mov w16, #0xfeee\n"
+                  "mov z15.h, w16\n"
+                  "umax z15.h, p7/m, z15.h, z7.h");
+    COMPARE_MACRO(Umin(z25.VnD(), z25.VnD(), 123123123),
+                  "ptrue p7.d\n"
+                  "mov x16, #0xb5b3\n"
+                  "movk x16, #0x756, lsl #16\n"
+                  "mov z31.d, x16\n"
+                  "umin z25.d, p7/m, z25.d, z31.d");
+  }
+}
+
+TEST(sve_mem_32bit_gather_vector_plus_immediate_macro) {
+  SETUP();
+
+  // Simple cases.
+  COMPARE_MACRO(Ld1b(z4.VnS(), p4.Zeroing(), SVEMemOperand(z12.VnS(), 31)),
+                "ld1b {z4.s}, p4/z, [z12.s, #31]");
+  COMPARE_MACRO(Ld1h(z10.VnS(), p6.Zeroing(), SVEMemOperand(z4.VnS(), 10)),
+                "ld1h {z10.s}, p6/z, [z4.s, #10]");
+  COMPARE_MACRO(Ld1w(z16.VnS(), p0.Zeroing(), SVEMemOperand(z26.VnS(), 124)),
+                "ld1w {z16.s}, p0/z, [z26.s, #124]");
+  COMPARE_MACRO(Ld1sb(z9.VnS(), p3.Zeroing(), SVEMemOperand(z22.VnS())),
+                "ld1sb {z9.s}, p3/z, [z22.s]");
+  COMPARE_MACRO(Ld1sh(z22.VnS(), p1.Zeroing(), SVEMemOperand(z9.VnS(), 62)),
+                "ld1sh {z22.s}, p1/z, [z9.s, #62]");
+  COMPARE_MACRO(Ldff1b(z17.VnS(), p2.Zeroing(), SVEMemOperand(z29.VnS(), 0)),
+                "ldff1b {z17.s}, p2/z, [z29.s]");
+  COMPARE_MACRO(Ldff1h(z16.VnS(), p3.Zeroing(), SVEMemOperand(z15.VnS())),
+                "ldff1h {z16.s}, p3/z, [z15.s]");
+  COMPARE_MACRO(Ldff1w(z7.VnS(), p3.Zeroing(), SVEMemOperand(z20.VnS(), 4)),
+                "ldff1w {z7.s}, p3/z, [z20.s, #4]");
+  COMPARE_MACRO(Ldff1sb(z7.VnS(), p1.Zeroing(), SVEMemOperand(z10.VnS(), 21)),
+                "ldff1sb {z7.s}, p1/z, [z10.s, #21]");
+  COMPARE_MACRO(Ldff1sh(z0.VnS(), p1.Zeroing(), SVEMemOperand(z23.VnS(), 42)),
+                "ldff1sh {z0.s}, p1/z, [z23.s, #42]");
+
+  // Unencodable cases use a scalar-plus-vector form.
+  COMPARE_MACRO(Ld1b(z17.VnS(), p2.Zeroing(), SVEMemOperand(z11.VnS(), 32)),
+                "mov x16, #0x20\n"
+                "ld1b {z17.s}, p2/z, [x16, z11.s, uxtw]");
+  COMPARE_MACRO(Ld1h(z11.VnS(), p1.Zeroing(), SVEMemOperand(z8.VnS(), -2)),
+                "mov x16, #0xfffffffffffffffe\n"
+                "ld1h {z11.s}, p1/z, [x16, z8.s, uxtw]");
+  COMPARE_MACRO(Ld1w(z5.VnS(), p6.Zeroing(), SVEMemOperand(z9.VnS(), 42)),
+                "mov x16, #0x2a\n"
+                "ld1w {z5.s}, p6/z, [x16, z9.s, uxtw]");
+  COMPARE_MACRO(Ld1sb(z28.VnS(), p5.Zeroing(), SVEMemOperand(z12.VnS(), -1)),
+                "mov x16, #0xffffffffffffffff\n"
+                "ld1sb {z28.s}, p5/z, [x16, z12.s, uxtw]");
+  COMPARE_MACRO(Ld1sh(z30.VnS(), p5.Zeroing(), SVEMemOperand(z21.VnS(), 64)),
+                "mov x16, #0x40\n"
+                "ld1sh {z30.s}, p5/z, [x16, z21.s, uxtw]");
+  COMPARE_MACRO(Ldff1b(z19.VnS(), p6.Zeroing(), SVEMemOperand(z24.VnS(), 32)),
+                "mov x16, #0x20\n"
+                "ldff1b {z19.s}, p6/z, [x16, z24.s, uxtw]");
+  COMPARE_MACRO(Ldff1h(z5.VnS(), p1.Zeroing(), SVEMemOperand(z24.VnS(), -2)),
+                "mov x16, #0xfffffffffffffffe\n"
+                "ldff1h {z5.s}, p1/z, [x16, z24.s, uxtw]");
+  COMPARE_MACRO(Ldff1w(z17.VnS(), p6.Zeroing(), SVEMemOperand(z18.VnS(), 42)),
+                "mov x16, #0x2a\n"
+                "ldff1w {z17.s}, p6/z, [x16, z18.s, uxtw]");
+  COMPARE_MACRO(Ldff1sb(z31.VnS(), p5.Zeroing(), SVEMemOperand(z21.VnS(), -1)),
+                "mov x16, #0xffffffffffffffff\n"
+                "ldff1sb {z31.s}, p5/z, [x16, z21.s, uxtw]");
+  COMPARE_MACRO(Ldff1sh(z6.VnS(), p5.Zeroing(), SVEMemOperand(z22.VnS(), 64)),
+                "mov x16, #0x40\n"
+                "ldff1sh {z6.s}, p5/z, [x16, z22.s, uxtw]");
+
+  CLEANUP();
+}
+
+TEST(sve_mem_32bit_gather_and_unsized_contiguous) {
+  SETUP();
+
+  // 32-bit gather load in scalar-plus-vector vform with unscaled offset.
+  COMPARE_PREFIX(ld1b(z9.VnS(),
+                      p5.Zeroing(),
+                      SVEMemOperand(x2, z1.VnS(), SXTW)),
+                 "ld1b {z9.s}, p5/z, [x2, z1.s, sxtw]");
+  COMPARE_PREFIX(ld1b(z9.VnS(),
+                      p5.Zeroing(),
+                      SVEMemOperand(sp, z1.VnS(), UXTW)),
+                 "ld1b {z9.s}, p5/z, [sp, z1.s, uxtw]");
+  COMPARE_PREFIX(ld1h(z17.VnS(),
+                      p2.Zeroing(),
+                      SVEMemOperand(x11, z24.VnS(), SXTW)),
+                 "ld1h {z17.s}, p2/z, [x11, z24.s, sxtw]");
+  COMPARE_PREFIX(ld1w(z22.VnS(),
+                      p6.Zeroing(),
+                      SVEMemOperand(sp, z5.VnS(), UXTW)),
+                 "ld1w {z22.s}, p6/z, [sp, z5.s, uxtw]");
+  COMPARE_PREFIX(ld1sb(z12.VnS(),
+                       p7.Zeroing(),
+                       SVEMemOperand(x17, z23.VnS(), UXTW)),
+                 "ld1sb {z12.s}, p7/z, [x17, z23.s, uxtw]");
+  COMPARE_PREFIX(ld1sb(z22.VnS(),
+                       p3.Zeroing(),
+                       SVEMemOperand(x23, z23.VnS(), SXTW)),
+                 "ld1sb {z22.s}, p3/z, [x23, z23.s, sxtw]");
+  COMPARE_PREFIX(ld1sh(z11.VnS(),
+                       p2.Zeroing(),
+                       SVEMemOperand(x18, z10.VnS(), UXTW)),
+                 "ld1sh {z11.s}, p2/z, [x18, z10.s, uxtw]");
+
+  // 32-bit gather load in scalar-plus-vector vform with scaled offset.
+  COMPARE_PREFIX(ld1h(z9.VnS(),
+                      p3.Zeroing(),
+                      SVEMemOperand(sp, z4.VnS(), UXTW, 1)),
+                 "ld1h {z9.s}, p3/z, [sp, z4.s, uxtw #1]");
+  COMPARE_PREFIX(ld1w(z0.VnS(),
+                      p6.Zeroing(),
+                      SVEMemOperand(x28, z21.VnS(), SXTW, 2)),
+                 "ld1w {z0.s}, p6/z, [x28, z21.s, sxtw #2]");
+  COMPARE_PREFIX(ld1sh(z11.VnS(),
+                       p4.Zeroing(),
+                       SVEMemOperand(sp, z0.VnS(), SXTW, 1)),
+                 "ld1sh {z11.s}, p4/z, [sp, z0.s, sxtw #1]");
+
+  // 32-bit gather first-fault load in scalar-plus-vector vform with 32-bit
+  // unpacked unscaled offset.
+  COMPARE_PREFIX(ldff1b(z18.VnS(),
+                        p6.Zeroing(),
+                        SVEMemOperand(x27, z24.VnS(), UXTW)),
+                 "ldff1b {z18.s}, p6/z, [x27, z24.s, uxtw]");
+  COMPARE_PREFIX(ldff1h(z28.VnS(),
+                        p6.Zeroing(),
+                        SVEMemOperand(x1, z30.VnS(), UXTW)),
+                 "ldff1h {z28.s}, p6/z, [x1, z30.s, uxtw]");
+  COMPARE_PREFIX(ldff1w(z12.VnS(),
+                        p3.Zeroing(),
+                        SVEMemOperand(x25, z27.VnS(), SXTW)),
+                 "ldff1w {z12.s}, p3/z, [x25, z27.s, sxtw]");
+  COMPARE_PREFIX(ldff1sb(z15.VnS(),
+                         p5.Zeroing(),
+                         SVEMemOperand(x5, z14.VnS(), SXTW)),
+                 "ldff1sb {z15.s}, p5/z, [x5, z14.s, sxtw]");
+  COMPARE_PREFIX(ldff1sh(z18.VnS(),
+                         p4.Zeroing(),
+                         SVEMemOperand(x25, z25.VnS(), SXTW)),
+                 "ldff1sh {z18.s}, p4/z, [x25, z25.s, sxtw]");
+
+  // 32-bit gather first-fault load in scalar-plus-vector vform with 32-bit
+  // scaled offset.
+  COMPARE_PREFIX(ldff1h(z25.VnS(),
+                        p3.Zeroing(),
+                        SVEMemOperand(x17, z15.VnS(), SXTW, 1)),
+                 "ldff1h {z25.s}, p3/z, [x17, z15.s, sxtw #1]");
+  COMPARE_PREFIX(ldff1w(z5.VnS(),
+                        p4.Zeroing(),
+                        SVEMemOperand(x23, z31.VnS(), UXTW, 2)),
+                 "ldff1w {z5.s}, p4/z, [x23, z31.s, uxtw #2]");
+  COMPARE_PREFIX(ldff1sh(z10.VnS(),
+                         p0.Zeroing(),
+                         SVEMemOperand(x19, z15.VnS(), UXTW, 1)),
+                 "ldff1sh {z10.s}, p0/z, [x19, z15.s, uxtw #1]");
+
+  // Load and broadcast data to vector.
+  COMPARE_PREFIX(ld1rb(z2.VnH(), p0.Zeroing(), SVEMemOperand(x30, 0)),
+                 "ld1rb {z2.h}, p0/z, [x30]");
+  COMPARE_PREFIX(ld1rb(z14.VnS(), p2.Zeroing(), SVEMemOperand(x11, 63)),
+                 "ld1rb {z14.s}, p2/z, [x11, #63]");
+  COMPARE_PREFIX(ld1rb(z27.VnD(), p1.Zeroing(), SVEMemOperand(x29, 2)),
+                 "ld1rb {z27.d}, p1/z, [x29, #2]");
+  COMPARE_PREFIX(ld1rb(z0.VnB(), p3.Zeroing(), SVEMemOperand(sp, 59)),
+                 "ld1rb {z0.b}, p3/z, [sp, #59]");
+  COMPARE_PREFIX(ld1rh(z19.VnH(), p5.Zeroing(), SVEMemOperand(x1, 0)),
+                 "ld1rh {z19.h}, p5/z, [x1]");
+  COMPARE_PREFIX(ld1rh(z4.VnS(), p7.Zeroing(), SVEMemOperand(x29, 126)),
+                 "ld1rh {z4.s}, p7/z, [x29, #126]");
+  COMPARE_PREFIX(ld1rh(z24.VnD(), p0.Zeroing(), SVEMemOperand(sp, 78)),
+                 "ld1rh {z24.d}, p0/z, [sp, #78]");
+  COMPARE_PREFIX(ld1rw(z19.VnS(), p5.Zeroing(), SVEMemOperand(x4, 252)),
+                 "ld1rw {z19.s}, p5/z, [x4, #252]");
+  COMPARE_PREFIX(ld1rw(z13.VnD(), p3.Zeroing(), SVEMemOperand(x2, 100)),
+                 "ld1rw {z13.d}, p3/z, [x2, #100]");
+  COMPARE_PREFIX(ld1rd(z19.VnD(), p7.Zeroing(), SVEMemOperand(x14, 504)),
+                 "ld1rd {z19.d}, p7/z, [x14, #504]");
+  COMPARE_PREFIX(ld1rsb(z16.VnH(), p1.Zeroing(), SVEMemOperand(x29, 0)),
+                 "ld1rsb {z16.h}, p1/z, [x29]");
+  COMPARE_PREFIX(ld1rsb(z8.VnS(), p6.Zeroing(), SVEMemOperand(sp, 33)),
+                 "ld1rsb {z8.s}, p6/z, [sp, #33]");
+  COMPARE_PREFIX(ld1rsb(z25.VnD(), p2.Zeroing(), SVEMemOperand(x18, 63)),
+                 "ld1rsb {z25.d}, p2/z, [x18, #63]");
+  COMPARE_PREFIX(ld1rsh(z11.VnS(), p5.Zeroing(), SVEMemOperand(x14, 2)),
+                 "ld1rsh {z11.s}, p5/z, [x14, #2]");
+  COMPARE_PREFIX(ld1rsh(z28.VnD(), p1.Zeroing(), SVEMemOperand(x19, 124)),
+                 "ld1rsh {z28.d}, p1/z, [x19, #124]");
+  COMPARE_PREFIX(ld1rsw(z23.VnD(), p4.Zeroing(), SVEMemOperand(x10, 8)),
+                 "ld1rsw {z23.d}, p4/z, [x10, #8]");
+
+  CLEANUP();
+}
+
+TEST(sve_mem_32bit_gather_and_unsized_contiguous_macro) {
+  SETUP();
+
+  COMPARE_MACRO(Ld1rb(z2.VnB(), p0.Zeroing(), SVEMemOperand(x30, 100)),
+                "add x16, x30, #0x64 (100)\n"
+                "ld1rb {z2.b}, p0/z, [x16]");
+  COMPARE_MACRO(Ld1rh(z4.VnH(), p1.Zeroing(), SVEMemOperand(x21, 201)),
+                "add x16, x21, #0xc9 (201)\n"
+                "ld1rh {z4.h}, p1/z, [x16]");
+  COMPARE_MACRO(Ld1rw(z6.VnS(), p2.Zeroing(), SVEMemOperand(x14, 512)),
+                "add x16, x14, #0x200 (512)\n"
+                "ld1rw {z6.s}, p2/z, [x16]");
+  COMPARE_MACRO(Ld1rd(z8.VnD(), p3.Zeroing(), SVEMemOperand(x3, 1024)),
+                "add x16, x3, #0x400 (1024)\n"
+                "ld1rd {z8.d}, p3/z, [x16]");
+  COMPARE_MACRO(Ld1rsb(z10.VnH(), p4.Zeroing(), SVEMemOperand(sp, -100)),
+                "sub x16, sp, #0x64 (100)\n"
+                "ld1rsb {z10.h}, p4/z, [x16]");
+  COMPARE_MACRO(Ld1rsh(z12.VnS(), p5.Zeroing(), SVEMemOperand(x30, -255)),
+                "sub x16, x30, #0xff (255)\n"
+                "ld1rsh {z12.s}, p5/z, [x16]");
+  COMPARE_MACRO(Ld1rsw(z14.VnD(), p6.Zeroing(), SVEMemOperand(x1, -1024)),
+                "sub x16, x1, #0x400 (1024)\n"
+                "ld1rsw {z14.d}, p6/z, [x16]");
+}
+
+TEST(sve_mem_64bit_gather_vector_plus_immediate) {
+  SETUP();
+
+  COMPARE_PREFIX(ld1b(z2.VnD(), p2.Zeroing(), SVEMemOperand(z12.VnD(), 31)),
+                 "ld1b {z2.d}, p2/z, [z12.d, #31]");
+  COMPARE_PREFIX(ld1h(z30.VnD(), p7.Zeroing(), SVEMemOperand(z28.VnD(), 10)),
+                 "ld1h {z30.d}, p7/z, [z28.d, #10]");
+  COMPARE_PREFIX(ld1w(z10.VnD(), p5.Zeroing(), SVEMemOperand(z4.VnD(), 124)),
+                 "ld1w {z10.d}, p5/z, [z4.d, #124]");
+  COMPARE_PREFIX(ld1d(z13.VnD(), p3.Zeroing(), SVEMemOperand(z19.VnD(), 248)),
+                 "ld1d {z13.d}, p3/z, [z19.d, #248]");
+  COMPARE_PREFIX(ld1sb(z16.VnD(), p7.Zeroing(), SVEMemOperand(z31.VnD())),
+                 "ld1sb {z16.d}, p7/z, [z31.d]");
+  COMPARE_PREFIX(ld1sh(z20.VnD(), p2.Zeroing(), SVEMemOperand(z2.VnD(), 62)),
+                 "ld1sh {z20.d}, p2/z, [z2.d, #62]");
+  COMPARE_PREFIX(ld1sw(z2.VnD(), p7.Zeroing(), SVEMemOperand(z25.VnD())),
+                 "ld1sw {z2.d}, p7/z, [z25.d]");
+  COMPARE_PREFIX(ldff1b(z24.VnD(), p5.Zeroing(), SVEMemOperand(z8.VnD(), 0)),
+                 "ldff1b {z24.d}, p5/z, [z8.d]");
+  COMPARE_PREFIX(ldff1h(z9.VnD(), p3.Zeroing(), SVEMemOperand(z19.VnD())),
+                 "ldff1h {z9.d}, p3/z, [z19.d]");
+  COMPARE_PREFIX(ldff1w(z26.VnD(), p6.Zeroing(), SVEMemOperand(z15.VnD(), 4)),
+                 "ldff1w {z26.d}, p6/z, [z15.d, #4]");
+  COMPARE_PREFIX(ldff1d(z19.VnD(), p1.Zeroing(), SVEMemOperand(z14.VnD())),
+                 "ldff1d {z19.d}, p1/z, [z14.d]");
+  COMPARE_PREFIX(ldff1sb(z26.VnD(), p5.Zeroing(), SVEMemOperand(z14.VnD(), 21)),
+                 "ldff1sb {z26.d}, p5/z, [z14.d, #21]");
+  COMPARE_PREFIX(ldff1sh(z6.VnD(), p3.Zeroing(), SVEMemOperand(z19.VnD(), 42)),
+                 "ldff1sh {z6.d}, p3/z, [z19.d, #42]");
+  COMPARE_PREFIX(ldff1sw(z19.VnD(), p7.Zeroing(), SVEMemOperand(z14.VnD(), 84)),
+                 "ldff1sw {z19.d}, p7/z, [z14.d, #84]");
+
+  CLEANUP();
+}
+
+TEST(sve_mem_64bit_gather_vector_plus_immediate_macro) {
+  SETUP();
+
+  // Simple cases.
+  COMPARE_MACRO(Ld1b(z18.VnD(), p6.Zeroing(), SVEMemOperand(z31.VnD(), 31)),
+                "ld1b {z18.d}, p6/z, [z31.d, #31]");
+  COMPARE_MACRO(Ld1h(z5.VnD(), p3.Zeroing(), SVEMemOperand(z18.VnD(), 10)),
+                "ld1h {z5.d}, p3/z, [z18.d, #10]");
+  COMPARE_MACRO(Ld1w(z0.VnD(), p6.Zeroing(), SVEMemOperand(z22.VnD(), 124)),
+                "ld1w {z0.d}, p6/z, [z22.d, #124]");
+  COMPARE_MACRO(Ld1d(z18.VnD(), p3.Zeroing(), SVEMemOperand(z19.VnD(), 248)),
+                "ld1d {z18.d}, p3/z, [z19.d, #248]");
+  COMPARE_MACRO(Ld1sb(z18.VnD(), p6.Zeroing(), SVEMemOperand(z17.VnD())),
+                "ld1sb {z18.d}, p6/z, [z17.d]");
+  COMPARE_MACRO(Ld1sh(z14.VnD(), p3.Zeroing(), SVEMemOperand(z11.VnD(), 62)),
+                "ld1sh {z14.d}, p3/z, [z11.d, #62]");
+  COMPARE_MACRO(Ld1sw(z18.VnD(), p5.Zeroing(), SVEMemOperand(z14.VnD())),
+                "ld1sw {z18.d}, p5/z, [z14.d]");
+  COMPARE_MACRO(Ldff1b(z20.VnD(), p5.Zeroing(), SVEMemOperand(z17.VnD(), 0)),
+                "ldff1b {z20.d}, p5/z, [z17.d]");
+  COMPARE_MACRO(Ldff1h(z20.VnD(), p5.Zeroing(), SVEMemOperand(z16.VnD())),
+                "ldff1h {z20.d}, p5/z, [z16.d]");
+  COMPARE_MACRO(Ldff1w(z1.VnD(), p6.Zeroing(), SVEMemOperand(z16.VnD(), 4)),
+                "ldff1w {z1.d}, p6/z, [z16.d, #4]");
+  COMPARE_MACRO(Ldff1d(z16.VnD(), p1.Zeroing(), SVEMemOperand(z3.VnD())),
+                "ldff1d {z16.d}, p1/z, [z3.d]");
+  COMPARE_MACRO(Ldff1sb(z26.VnD(), p7.Zeroing(), SVEMemOperand(z3.VnD(), 21)),
+                "ldff1sb {z26.d}, p7/z, [z3.d, #21]");
+  COMPARE_MACRO(Ldff1sh(z1.VnD(), p7.Zeroing(), SVEMemOperand(z9.VnD(), 42)),
+                "ldff1sh {z1.d}, p7/z, [z9.d, #42]");
+  COMPARE_MACRO(Ldff1sw(z19.VnD(), p4.Zeroing(), SVEMemOperand(z3.VnD(), 84)),
+                "ldff1sw {z19.d}, p4/z, [z3.d, #84]");
+
+  // Unencodable cases use a scalar-plus-vector form.
+  COMPARE_MACRO(Ld1b(z23.VnD(), p6.Zeroing(), SVEMemOperand(z16.VnD(), 32)),
+                "mov x16, #0x20\n"
+                "ld1b {z23.d}, p6/z, [x16, z16.d]");
+  COMPARE_MACRO(Ld1h(z10.VnD(), p6.Zeroing(), SVEMemOperand(z11.VnD(), -2)),
+                "mov x16, #0xfffffffffffffffe\n"
+                "ld1h {z10.d}, p6/z, [x16, z11.d]");
+  COMPARE_MACRO(Ld1w(z14.VnD(), p3.Zeroing(), SVEMemOperand(z11.VnD(), 42)),
+                "mov x16, #0x2a\n"
+                "ld1w {z14.d}, p3/z, [x16, z11.d]");
+  COMPARE_MACRO(Ld1d(z10.VnD(), p4.Zeroing(), SVEMemOperand(z3.VnD(), 256)),
+                "mov x16, #0x100\n"
+                "ld1d {z10.d}, p4/z, [x16, z3.d]");
+  COMPARE_MACRO(Ld1sb(z14.VnD(), p2.Zeroing(), SVEMemOperand(z11.VnD(), -1)),
+                "mov x16, #0xffffffffffffffff\n"
+                "ld1sb {z14.d}, p2/z, [x16, z11.d]");
+  COMPARE_MACRO(Ld1sh(z20.VnD(), p7.Zeroing(), SVEMemOperand(z12.VnD(), 64)),
+                "mov x16, #0x40\n"
+                "ld1sh {z20.d}, p7/z, [x16, z12.d]");
+  COMPARE_MACRO(Ld1sw(z15.VnD(), p6.Zeroing(), SVEMemOperand(z18.VnD(), 42)),
+                "mov x16, #0x2a\n"
+                "ld1sw {z15.d}, p6/z, [x16, z18.d]");
+  COMPARE_MACRO(Ldff1b(z15.VnD(), p0.Zeroing(), SVEMemOperand(z0.VnD(), 32)),
+                "mov x16, #0x20\n"
+                "ldff1b {z15.d}, p0/z, [x16, z0.d]");
+  COMPARE_MACRO(Ldff1h(z23.VnD(), p3.Zeroing(), SVEMemOperand(z31.VnD(), -2)),
+                "mov x16, #0xfffffffffffffffe\n"
+                "ldff1h {z23.d}, p3/z, [x16, z31.d]");
+  COMPARE_MACRO(Ldff1w(z28.VnD(), p3.Zeroing(), SVEMemOperand(z17.VnD(), 42)),
+                "mov x16, #0x2a\n"
+                "ldff1w {z28.d}, p3/z, [x16, z17.d]");
+  COMPARE_MACRO(Ldff1d(z18.VnD(), p3.Zeroing(), SVEMemOperand(z13.VnD(), 256)),
+                "mov x16, #0x100\n"
+                "ldff1d {z18.d}, p3/z, [x16, z13.d]");
+  COMPARE_MACRO(Ldff1sb(z31.VnD(), p7.Zeroing(), SVEMemOperand(z3.VnD(), -1)),
+                "mov x16, #0xffffffffffffffff\n"
+                "ldff1sb {z31.d}, p7/z, [x16, z3.d]");
+  COMPARE_MACRO(Ldff1sh(z13.VnD(), p0.Zeroing(), SVEMemOperand(z15.VnD(), 64)),
+                "mov x16, #0x40\n"
+                "ldff1sh {z13.d}, p0/z, [x16, z15.d]");
+  COMPARE_MACRO(Ldff1sw(z30.VnD(), p7.Zeroing(), SVEMemOperand(z10.VnD(), 42)),
+                "mov x16, #0x2a\n"
+                "ldff1sw {z30.d}, p7/z, [x16, z10.d]");
+
+  CLEANUP();
+}
+
+TEST(sve_mem_64bit_gather_scalar_plus_vector) {
+  SETUP();
+
+  COMPARE_PREFIX(ld1b(z30.VnD(), p6.Zeroing(), SVEMemOperand(sp, z24.VnD())),
+                 "ld1b {z30.d}, p6/z, [sp, z24.d]");
+  COMPARE_PREFIX(ld1d(z18.VnD(), p5.Zeroing(), SVEMemOperand(x11, z11.VnD())),
+                 "ld1d {z18.d}, p5/z, [x11, z11.d]");
+  COMPARE_PREFIX(ld1h(z2.VnD(), p3.Zeroing(), SVEMemOperand(x16, z18.VnD())),
+                 "ld1h {z2.d}, p3/z, [x16, z18.d]");
+  COMPARE_PREFIX(ld1sb(z11.VnD(), p3.Zeroing(), SVEMemOperand(x24, z21.VnD())),
+                 "ld1sb {z11.d}, p3/z, [x24, z21.d]");
+  COMPARE_PREFIX(ld1sh(z7.VnD(), p7.Zeroing(), SVEMemOperand(x28, z23.VnD())),
+                 "ld1sh {z7.d}, p7/z, [x28, z23.d]");
+  COMPARE_PREFIX(ld1sw(z29.VnD(), p7.Zeroing(), SVEMemOperand(x27, z4.VnD())),
+                 "ld1sw {z29.d}, p7/z, [x27, z4.d]");
+  COMPARE_PREFIX(ld1w(z19.VnD(), p1.Zeroing(), SVEMemOperand(x27, z4.VnD())),
+                 "ld1w {z19.d}, p1/z, [x27, z4.d]");
+
+  COMPARE_PREFIX(ld1d(z20.VnD(),
+                      p3.Zeroing(),
+                      SVEMemOperand(x3, z15.VnD(), LSL, 3)),
+                 "ld1d {z20.d}, p3/z, [x3, z15.d, lsl #3]");
+  COMPARE_PREFIX(ld1h(z24.VnD(),
+                      p4.Zeroing(),
+                      SVEMemOperand(x6, z11.VnD(), LSL, 1)),
+                 "ld1h {z24.d}, p4/z, [x6, z11.d, lsl #1]");
+  COMPARE_PREFIX(ld1sh(z22.VnD(),
+                       p6.Zeroing(),
+                       SVEMemOperand(x7, z31.VnD(), LSL, 1)),
+                 "ld1sh {z22.d}, p6/z, [x7, z31.d, lsl #1]");
+  COMPARE_PREFIX(ld1sw(z9.VnD(),
+                       p0.Zeroing(),
+                       SVEMemOperand(x2, z27.VnD(), LSL, 2)),
+                 "ld1sw {z9.d}, p0/z, [x2, z27.d, lsl #2]");
+  COMPARE_PREFIX(ld1w(z9.VnD(),
+                      p2.Zeroing(),
+                      SVEMemOperand(x0, z0.VnD(), LSL, 2)),
+                 "ld1w {z9.d}, p2/z, [x0, z0.d, lsl #2]");
+
+  COMPARE_PREFIX(ld1b(z19.VnD(),
+                      p5.Zeroing(),
+                      SVEMemOperand(x21, z29.VnD(), UXTW)),
+                 "ld1b {z19.d}, p5/z, [x21, z29.d, uxtw]");
+  COMPARE_PREFIX(ld1d(z9.VnD(),
+                      p5.Zeroing(),
+                      SVEMemOperand(x5, z21.VnD(), SXTW)),
+                 "ld1d {z9.d}, p5/z, [x5, z21.d, sxtw]");
+  COMPARE_PREFIX(ld1h(z26.VnD(),
+                      p3.Zeroing(),
+                      SVEMemOperand(x1, z10.VnD(), UXTW)),
+                 "ld1h {z26.d}, p3/z, [x1, z10.d, uxtw]");
+  COMPARE_PREFIX(ld1sb(z4.VnD(),
+                       p1.Zeroing(),
+                       SVEMemOperand(x24, z15.VnD(), SXTW)),
+                 "ld1sb {z4.d}, p1/z, [x24, z15.d, sxtw]");
+  COMPARE_PREFIX(ld1sh(z9.VnD(),
+                       p1.Zeroing(),
+                       SVEMemOperand(x0, z12.VnD(), UXTW)),
+                 "ld1sh {z9.d}, p1/z, [x0, z12.d, uxtw]");
+  COMPARE_PREFIX(ld1sw(z19.VnD(),
+                       p2.Zeroing(),
+                       SVEMemOperand(x19, z16.VnD(), SXTW)),
+                 "ld1sw {z19.d}, p2/z, [x19, z16.d, sxtw]");
+  COMPARE_PREFIX(ld1w(z13.VnD(),
+                      p3.Zeroing(),
+                      SVEMemOperand(x8, z10.VnD(), UXTW)),
+                 "ld1w {z13.d}, p3/z, [x8, z10.d, uxtw]");
+
+  COMPARE_PREFIX(ld1d(z25.VnD(),
+                      p3.Zeroing(),
+                      SVEMemOperand(x14, z0.VnD(), UXTW, 3)),
+                 "ld1d {z25.d}, p3/z, [x14, z0.d, uxtw #3]");
+  COMPARE_PREFIX(ld1h(z21.VnD(),
+                      p5.Zeroing(),
+                      SVEMemOperand(x13, z8.VnD(), SXTW, 1)),
+                 "ld1h {z21.d}, p5/z, [x13, z8.d, sxtw #1]");
+  COMPARE_PREFIX(ld1sh(z29.VnD(),
+                       p0.Zeroing(),
+                       SVEMemOperand(x9, z10.VnD(), UXTW, 1)),
+                 "ld1sh {z29.d}, p0/z, [x9, z10.d, uxtw #1]");
+  COMPARE_PREFIX(ld1sw(z5.VnD(),
+                       p2.Zeroing(),
+                       SVEMemOperand(x1, z23.VnD(), SXTW, 2)),
+                 "ld1sw {z5.d}, p2/z, [x1, z23.d, sxtw #2]");
+  COMPARE_PREFIX(ld1w(z21.VnD(),
+                      p1.Zeroing(),
+                      SVEMemOperand(x7, z8.VnD(), UXTW, 2)),
+                 "ld1w {z21.d}, p1/z, [x7, z8.d, uxtw #2]");
+
+  CLEANUP();
+}
+
+TEST(sve_mem_prefetch) {
+  SETUP();
+
+  // Test every encodable prefetch operation.
+  const char* expected[] = {" pldl1keep",
+                            " pldl1strm",
+                            " pldl2keep",
+                            " pldl2strm",
+                            " pldl3keep",
+                            " pldl3strm",
+                            " pstl1keep",
+                            " pstl1strm",
+                            " pstl2keep",
+                            " pstl2strm",
+                            " pstl3keep",
+                            " pstl3strm"};
+
+  const PrefetchOperation kSVEPrfOperations[] = {PLDL1KEEP,
+                                                 PLDL1STRM,
+                                                 PLDL2KEEP,
+                                                 PLDL2STRM,
+                                                 PLDL3KEEP,
+                                                 PLDL3STRM,
+                                                 PSTL1KEEP,
+                                                 PSTL1STRM,
+                                                 PSTL2KEEP,
+                                                 PSTL2STRM,
+                                                 PSTL3KEEP,
+                                                 PSTL3STRM};
+
+  VIXL_STATIC_ASSERT(ArrayLength(expected) == ArrayLength(kSVEPrfOperations));
+
+
+#define VIXL_DISAM_PREFETCH_TEST(INSN, NAME, SH)                               \
+  do {                                                                         \
+    for (size_t i = 0; i < ArrayLength(kSVEPrfOperations); i++) {              \
+      PrefetchOperation op = kSVEPrfOperations[i];                             \
+      std::string str(NAME);                                                   \
+      str.append(expected[i]);                                                 \
+      /* Vector plus immediate */                                              \
+      COMPARE_PREFIX(INSN(op, p6, SVEMemOperand(z30.VnS(), 31)), str.c_str()); \
+      COMPARE_PREFIX(INSN(op, p5, SVEMemOperand(z29.VnD(), 17)), str.c_str()); \
+      /* Scalar plus immediate */                                              \
+      COMPARE_PREFIX(INSN(op, p4, SVEMemOperand(x11, -32, SVE_MUL_VL)),        \
+                     str.c_str());                                             \
+      COMPARE_PREFIX(INSN(op, p4, SVEMemOperand(sp, 31, SVE_MUL_VL)),          \
+                     str.c_str());                                             \
+      /* Scalar plus vector */                                                 \
+      COMPARE_PREFIX(INSN(op, p3, SVEMemOperand(x24, z22.VnS(), UXTW, SH)),    \
+                     str.c_str());                                             \
+      COMPARE_PREFIX(INSN(op, p2, SVEMemOperand(x24, z22.VnD(), SXTW, SH)),    \
+                     str.c_str());                                             \
+      COMPARE_PREFIX(INSN(op, p1, SVEMemOperand(x4, z2.VnD(), LSL, SH)),       \
+                     str.c_str());                                             \
+      /* Scalar plus scalar */                                                 \
+      COMPARE_PREFIX(INSN(op, p1, SVEMemOperand(x8, x29, LSL, SH)),            \
+                     str.c_str());                                             \
+      COMPARE_PREFIX(INSN(op, p0, SVEMemOperand(sp, x6, LSL, SH)),             \
+                     str.c_str());                                             \
+    }                                                                          \
+  } while (0)
+
+  VIXL_DISAM_PREFETCH_TEST(prfh, "prfh", 1);
+  VIXL_DISAM_PREFETCH_TEST(prfw, "prfw", 2);
+  VIXL_DISAM_PREFETCH_TEST(prfd, "prfd", 3);
+#undef VIXL_DISAM_PREFETCH_TEST
+
+  COMPARE_PREFIX(prfb(PLDL1KEEP, p5, SVEMemOperand(z30.VnS(), 0)),
+                 "prfb pldl1keep, p5, [z30.s]");
+  COMPARE_PREFIX(prfb(PLDL1STRM, p5, SVEMemOperand(x28, -11, SVE_MUL_VL)),
+                 "prfb pldl1strm, p5, [x28, #-11, mul vl]");
+  COMPARE_PREFIX(prfb(PLDL2KEEP, p6, SVEMemOperand(x30, x29)),
+                 "prfb pldl2keep, p6, [x30, x29]");
+  COMPARE_PREFIX(prfb(PLDL2STRM, p6, SVEMemOperand(x7, z12.VnD())),
+                 "prfb pldl2strm, p6, [x7, z12.d]");
+  COMPARE_PREFIX(prfb(PLDL2STRM, p6, SVEMemOperand(x7, z12.VnS(), UXTW)),
+                 "prfb pldl2strm, p6, [x7, z12.s, uxtw]");
+  COMPARE_PREFIX(prfd(PLDL3KEEP, p5, SVEMemOperand(z11.VnD(), 9)),
+                 "prfd pldl3keep, p5, [z11.d, #9]");
+  COMPARE_PREFIX(prfd(PLDL3STRM, p3, SVEMemOperand(x0, 0, SVE_MUL_VL)),
+                 "prfd pldl3strm, p3, [x0]");
+  COMPARE_PREFIX(prfd(PSTL1KEEP, p7, SVEMemOperand(x5, x5, LSL, 3)),
+                 "prfd pstl1keep, p7, [x5, x5, lsl #3]");
+  COMPARE_PREFIX(prfd(PSTL1STRM, p1, SVEMemOperand(x19, z18.VnS(), SXTW, 3)),
+                 "prfd pstl1strm, p1, [x19, z18.s, sxtw #3]");
+  COMPARE_PREFIX(prfh(PSTL2KEEP, p6, SVEMemOperand(z0.VnS(), 31)),
+                 "prfh pstl2keep, p6, [z0.s, #31]");
+  COMPARE_PREFIX(prfh(PSTL2STRM, p4, SVEMemOperand(x17, -3, SVE_MUL_VL)),
+                 "prfh pstl2strm, p4, [x17, #-3, mul vl]");
+  COMPARE_PREFIX(prfh(PSTL3KEEP, p3, SVEMemOperand(x0, x0, LSL, 1)),
+                 "prfh pstl3keep, p3, [x0, x0, lsl #1]");
+  COMPARE_PREFIX(prfh(PSTL3STRM, p4, SVEMemOperand(x20, z0.VnD(), LSL, 1)),
+                 "prfh pstl3strm, p4, [x20, z0.d, lsl #1]");
+  COMPARE_PREFIX(prfw(PLDL1KEEP, p3, SVEMemOperand(z23.VnD(), 5)),
+                 "prfw pldl1keep, p3, [z23.d, #5]");
+  COMPARE_PREFIX(prfw(PLDL1STRM, p1, SVEMemOperand(x4, 31, SVE_MUL_VL)),
+                 "prfw pldl1strm, p1, [x4, #31, mul vl]");
+  COMPARE_PREFIX(prfw(PLDL2KEEP, p2, SVEMemOperand(x22, x22, LSL, 2)),
+                 "prfw pldl2keep, p2, [x22, x22, lsl #2]");
+  COMPARE_PREFIX(prfw(PLDL2STRM, p1, SVEMemOperand(x2, z6.VnS(), SXTW, 2)),
+                 "prfw pldl2strm, p1, [x2, z6.s, sxtw #2]");
+
+  CLEANUP();
+}
+
+TEST(sve_mem_64bit_ff_gather_scalar_plus_vector) {
+  SETUP();
+
+  // 64-bit unscaled offset.
+  COMPARE_PREFIX(ldff1b(z18.VnD(), p6.Zeroing(), SVEMemOperand(x27, z24.VnD())),
+                 "ldff1b {z18.d}, p6/z, [x27, z24.d]");
+  COMPARE_PREFIX(ldff1h(z28.VnD(), p6.Zeroing(), SVEMemOperand(x1, z30.VnD())),
+                 "ldff1h {z28.d}, p6/z, [x1, z30.d]");
+  COMPARE_PREFIX(ldff1w(z12.VnD(), p3.Zeroing(), SVEMemOperand(x25, z27.VnD())),
+                 "ldff1w {z12.d}, p3/z, [x25, z27.d]");
+  COMPARE_PREFIX(ldff1d(z23.VnD(), p5.Zeroing(), SVEMemOperand(x29, z31.VnD())),
+                 "ldff1d {z23.d}, p5/z, [x29, z31.d]");
+  COMPARE_PREFIX(ldff1sb(z15.VnD(), p5.Zeroing(), SVEMemOperand(x5, z14.VnD())),
+                 "ldff1sb {z15.d}, p5/z, [x5, z14.d]");
+  COMPARE_PREFIX(ldff1sh(z18.VnD(),
+                         p4.Zeroing(),
+                         SVEMemOperand(x25, z25.VnD())),
+                 "ldff1sh {z18.d}, p4/z, [x25, z25.d]");
+  COMPARE_PREFIX(ldff1sw(z12.VnD(),
+                         p3.Zeroing(),
+                         SVEMemOperand(x25, z27.VnD())),
+                 "ldff1sw {z12.d}, p3/z, [x25, z27.d]");
+
+  // 64-bit scaled offset.
+  COMPARE_PREFIX(ldff1h(z25.VnD(),
+                        p3.Zeroing(),
+                        SVEMemOperand(x17, z15.VnD(), LSL, 1)),
+                 "ldff1h {z25.d}, p3/z, [x17, z15.d, lsl #1]");
+  COMPARE_PREFIX(ldff1w(z5.VnD(),
+                        p4.Zeroing(),
+                        SVEMemOperand(x23, z31.VnD(), LSL, 2)),
+                 "ldff1w {z5.d}, p4/z, [x23, z31.d, lsl #2]");
+  COMPARE_PREFIX(ldff1d(z2.VnD(),
+                        p0.Zeroing(),
+                        SVEMemOperand(sp, z7.VnD(), LSL, 3)),
+                 "ldff1d {z2.d}, p0/z, [sp, z7.d, lsl #3]");
+  COMPARE_PREFIX(ldff1sh(z10.VnD(),
+                         p0.Zeroing(),
+                         SVEMemOperand(x19, z15.VnD(), LSL, 1)),
+                 "ldff1sh {z10.d}, p0/z, [x19, z15.d, lsl #1]");
+  COMPARE_PREFIX(ldff1sw(z5.VnD(),
+                         p4.Zeroing(),
+                         SVEMemOperand(x23, z31.VnD(), LSL, 2)),
+                 "ldff1sw {z5.d}, p4/z, [x23, z31.d, lsl #2]");
+
+  // 32-bit unpacked unscaled offset
+  COMPARE_PREFIX(ldff1b(z18.VnD(),
+                        p6.Zeroing(),
+                        SVEMemOperand(sp, z24.VnD(), UXTW)),
+                 "ldff1b {z18.d}, p6/z, [sp, z24.d, uxtw]");
+  COMPARE_PREFIX(ldff1h(z20.VnD(),
+                        p5.Zeroing(),
+                        SVEMemOperand(x7, z14.VnD(), SXTW)),
+                 "ldff1h {z20.d}, p5/z, [x7, z14.d, sxtw]");
+  COMPARE_PREFIX(ldff1w(z22.VnD(),
+                        p4.Zeroing(),
+                        SVEMemOperand(x17, z4.VnD(), UXTW)),
+                 "ldff1w {z22.d}, p4/z, [x17, z4.d, uxtw]");
+  COMPARE_PREFIX(ldff1d(z24.VnD(),
+                        p3.Zeroing(),
+                        SVEMemOperand(x3, z24.VnD(), SXTW)),
+                 "ldff1d {z24.d}, p3/z, [x3, z24.d, sxtw]");
+  COMPARE_PREFIX(ldff1sb(z26.VnD(),
+                         p2.Zeroing(),
+                         SVEMemOperand(x13, z14.VnD(), UXTW)),
+                 "ldff1sb {z26.d}, p2/z, [x13, z14.d, uxtw]");
+  COMPARE_PREFIX(ldff1sh(z28.VnD(),
+                         p1.Zeroing(),
+                         SVEMemOperand(x23, z4.VnD(), SXTW)),
+                 "ldff1sh {z28.d}, p1/z, [x23, z4.d, sxtw]");
+  COMPARE_PREFIX(ldff1sw(z30.VnD(),
+                         p0.Zeroing(),
+                         SVEMemOperand(x8, z24.VnD(), UXTW)),
+                 "ldff1sw {z30.d}, p0/z, [x8, z24.d, uxtw]");
+
+  // 32-bit unpacked scaled offset
+  COMPARE_PREFIX(ldff1h(z4.VnD(),
+                        p5.Zeroing(),
+                        SVEMemOperand(x7, z1.VnD(), SXTW, 1)),
+                 "ldff1h {z4.d}, p5/z, [x7, z1.d, sxtw #1]");
+  COMPARE_PREFIX(ldff1w(z5.VnD(),
+                        p4.Zeroing(),
+                        SVEMemOperand(x17, z11.VnD(), UXTW, 2)),
+                 "ldff1w {z5.d}, p4/z, [x17, z11.d, uxtw #2]");
+  COMPARE_PREFIX(ldff1d(z6.VnD(),
+                        p3.Zeroing(),
+                        SVEMemOperand(x3, z31.VnD(), SXTW, 3)),
+                 "ldff1d {z6.d}, p3/z, [x3, z31.d, sxtw #3]");
+  COMPARE_PREFIX(ldff1sh(z7.VnD(),
+                         p1.Zeroing(),
+                         SVEMemOperand(x23, z7.VnD(), UXTW, 1)),
+                 "ldff1sh {z7.d}, p1/z, [x23, z7.d, uxtw #1]");
+  COMPARE_PREFIX(ldff1sw(z8.VnD(),
+                         p0.Zeroing(),
+                         SVEMemOperand(x8, z17.VnD(), SXTW, 2)),
+                 "ldff1sw {z8.d}, p0/z, [x8, z17.d, sxtw #2]");
+
+  CLEANUP();
+}
+
+TEST(sve_ld2_scalar_plus_immediate) {
+  SETUP();
+
+  COMPARE_PREFIX(ld2b(z31.VnB(), z0.VnB(), p6.Zeroing(), SVEMemOperand(x19)),
+                 "ld2b {z31.b, z0.b}, p6/z, [x19]");
+  COMPARE_PREFIX(ld2b(z31.VnB(),
+                      z0.VnB(),
+                      p6.Zeroing(),
+                      SVEMemOperand(x19, 14, SVE_MUL_VL)),
+                 "ld2b {z31.b, z0.b}, p6/z, [x19, #14, mul vl]");
+  COMPARE_PREFIX(ld2b(z15.VnB(),
+                      z16.VnB(),
+                      p6.Zeroing(),
+                      SVEMemOperand(x19, -16, SVE_MUL_VL)),
+                 "ld2b {z15.b, z16.b}, p6/z, [x19, #-16, mul vl]");
+
+  COMPARE_PREFIX(ld2h(z15.VnH(), z16.VnH(), p6.Zeroing(), SVEMemOperand(x19)),
+                 "ld2h {z15.h, z16.h}, p6/z, [x19]");
+  COMPARE_PREFIX(ld2h(z15.VnH(),
+                      z16.VnH(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x19, 14, SVE_MUL_VL)),
+                 "ld2h {z15.h, z16.h}, p0/z, [x19, #14, mul vl]");
+  COMPARE_PREFIX(ld2h(z15.VnH(),
+                      z16.VnH(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x19, -16, SVE_MUL_VL)),
+                 "ld2h {z15.h, z16.h}, p0/z, [x19, #-16, mul vl]");
+
+  COMPARE_PREFIX(ld2w(z0.VnS(), z1.VnS(), p0.Zeroing(), SVEMemOperand(x19)),
+                 "ld2w {z0.s, z1.s}, p0/z, [x19]");
+  COMPARE_PREFIX(ld2w(z0.VnS(),
+                      z1.VnS(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x19, 14, SVE_MUL_VL)),
+                 "ld2w {z0.s, z1.s}, p0/z, [x19, #14, mul vl]");
+  COMPARE_PREFIX(ld2w(z0.VnS(),
+                      z1.VnS(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x19, -16, SVE_MUL_VL)),
+                 "ld2w {z0.s, z1.s}, p7/z, [x19, #-16, mul vl]");
+
+  COMPARE_PREFIX(ld2d(z0.VnD(), z1.VnD(), p7.Zeroing(), SVEMemOperand(x19)),
+                 "ld2d {z0.d, z1.d}, p7/z, [x19]");
+  COMPARE_PREFIX(ld2d(z31.VnD(),
+                      z0.VnD(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x19, 14, SVE_MUL_VL)),
+                 "ld2d {z31.d, z0.d}, p7/z, [x19, #14, mul vl]");
+  COMPARE_PREFIX(ld2d(z31.VnD(),
+                      z0.VnD(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x19, -16, SVE_MUL_VL)),
+                 "ld2d {z31.d, z0.d}, p7/z, [x19, #-16, mul vl]");
+
+  CLEANUP();
+}
+
+TEST(sve_ld3_scalar_plus_immediate) {
+  SETUP();
+
+  COMPARE_PREFIX(ld3b(z30.VnB(),
+                      z31.VnB(),
+                      z0.VnB(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x19)),
+                 "ld3b {z30.b, z31.b, z0.b}, p7/z, [x19]");
+  COMPARE_PREFIX(ld3b(z30.VnB(),
+                      z31.VnB(),
+                      z0.VnB(),
+                      p6.Zeroing(),
+                      SVEMemOperand(x19, 21, SVE_MUL_VL)),
+                 "ld3b {z30.b, z31.b, z0.b}, p6/z, [x19, #21, mul vl]");
+  COMPARE_PREFIX(ld3b(z30.VnB(),
+                      z31.VnB(),
+                      z0.VnB(),
+                      p6.Zeroing(),
+                      SVEMemOperand(x19, -24, SVE_MUL_VL)),
+                 "ld3b {z30.b, z31.b, z0.b}, p6/z, [x19, #-24, mul vl]");
+
+  COMPARE_PREFIX(ld3h(z15.VnH(),
+                      z16.VnH(),
+                      z17.VnH(),
+                      p6.Zeroing(),
+                      SVEMemOperand(x19)),
+                 "ld3h {z15.h, z16.h, z17.h}, p6/z, [x19]");
+  COMPARE_PREFIX(ld3h(z15.VnH(),
+                      z16.VnH(),
+                      z17.VnH(),
+                      p6.Zeroing(),
+                      SVEMemOperand(x19, 21, SVE_MUL_VL)),
+                 "ld3h {z15.h, z16.h, z17.h}, p6/z, [x19, #21, mul vl]");
+  COMPARE_PREFIX(ld3h(z15.VnH(),
+                      z16.VnH(),
+                      z17.VnH(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x19, -24, SVE_MUL_VL)),
+                 "ld3h {z15.h, z16.h, z17.h}, p0/z, [x19, #-24, mul vl]");
+
+  COMPARE_PREFIX(ld3w(z15.VnS(),
+                      z16.VnS(),
+                      z17.VnS(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x19)),
+                 "ld3w {z15.s, z16.s, z17.s}, p0/z, [x19]");
+  COMPARE_PREFIX(ld3w(z0.VnS(),
+                      z1.VnS(),
+                      z2.VnS(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x19, 21, SVE_MUL_VL)),
+                 "ld3w {z0.s, z1.s, z2.s}, p0/z, [x19, #21, mul vl]");
+  COMPARE_PREFIX(ld3w(z0.VnS(),
+                      z1.VnS(),
+                      z2.VnS(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x19, -24, SVE_MUL_VL)),
+                 "ld3w {z0.s, z1.s, z2.s}, p0/z, [x19, #-24, mul vl]");
+
+  COMPARE_PREFIX(ld3d(z0.VnD(),
+                      z1.VnD(),
+                      z2.VnD(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x19)),
+                 "ld3d {z0.d, z1.d, z2.d}, p7/z, [x19]");
+  COMPARE_PREFIX(ld3d(z0.VnD(),
+                      z1.VnD(),
+                      z2.VnD(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x19, 21, SVE_MUL_VL)),
+                 "ld3d {z0.d, z1.d, z2.d}, p7/z, [x19, #21, mul vl]");
+  COMPARE_PREFIX(ld3d(z30.VnD(),
+                      z31.VnD(),
+                      z0.VnD(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x19, -24, SVE_MUL_VL)),
+                 "ld3d {z30.d, z31.d, z0.d}, p7/z, [x19, #-24, mul vl]");
+
+  CLEANUP();
+}
+
+TEST(sve_ld4_scalar_plus_immediate) {
+  SETUP();
+
+  COMPARE_PREFIX(ld4b(z31.VnB(),
+                      z0.VnB(),
+                      z1.VnB(),
+                      z2.VnB(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x19)),
+                 "ld4b {z31.b, z0.b, z1.b, z2.b}, p7/z, [x19]");
+  COMPARE_PREFIX(ld4b(z31.VnB(),
+                      z0.VnB(),
+                      z1.VnB(),
+                      z2.VnB(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x19, 28, SVE_MUL_VL)),
+                 "ld4b {z31.b, z0.b, z1.b, z2.b}, p7/z, [x19, #28, mul vl]");
+  COMPARE_PREFIX(ld4b(z31.VnB(),
+                      z0.VnB(),
+                      z1.VnB(),
+                      z2.VnB(),
+                      p6.Zeroing(),
+                      SVEMemOperand(x19, -32, SVE_MUL_VL)),
+                 "ld4b {z31.b, z0.b, z1.b, z2.b}, p6/z, [x19, #-32, mul vl]");
+
+  COMPARE_PREFIX(ld4h(z31.VnH(),
+                      z0.VnH(),
+                      z1.VnH(),
+                      z2.VnH(),
+                      p6.Zeroing(),
+                      SVEMemOperand(x19)),
+                 "ld4h {z31.h, z0.h, z1.h, z2.h}, p6/z, [x19]");
+  COMPARE_PREFIX(ld4h(z15.VnH(),
+                      z16.VnH(),
+                      z17.VnH(),
+                      z18.VnH(),
+                      p6.Zeroing(),
+                      SVEMemOperand(x19, 28, SVE_MUL_VL)),
+                 "ld4h {z15.h, z16.h, z17.h, z18.h}, p6/z, "
+                 "[x19, #28, mul vl]");
+  COMPARE_PREFIX(ld4h(z15.VnH(),
+                      z16.VnH(),
+                      z17.VnH(),
+                      z18.VnH(),
+                      p6.Zeroing(),
+                      SVEMemOperand(x19, -32, SVE_MUL_VL)),
+                 "ld4h {z15.h, z16.h, z17.h, z18.h}, p6/z, "
+                 "[x19, #-32, mul vl]");
+
+  COMPARE_PREFIX(ld4w(z15.VnS(),
+                      z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x19)),
+                 "ld4w {z15.s, z16.s, z17.s, z18.s}, p0/z, [x19]");
+  COMPARE_PREFIX(ld4w(z15.VnS(),
+                      z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x19, 28, SVE_MUL_VL)),
+                 "ld4w {z15.s, z16.s, z17.s, z18.s}, p0/z, "
+                 "[x19, #28, mul vl]");
+  COMPARE_PREFIX(ld4w(z0.VnS(),
+                      z1.VnS(),
+                      z2.VnS(),
+                      z3.VnS(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x19, -32, SVE_MUL_VL)),
+                 "ld4w {z0.s, z1.s, z2.s, z3.s}, p0/z, [x19, #-32, mul vl]");
+
+  COMPARE_PREFIX(ld4d(z0.VnD(),
+                      z1.VnD(),
+                      z2.VnD(),
+                      z3.VnD(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x19)),
+                 "ld4d {z0.d, z1.d, z2.d, z3.d}, p0/z, [x19]");
+  COMPARE_PREFIX(ld4d(z0.VnD(),
+                      z1.VnD(),
+                      z2.VnD(),
+                      z3.VnD(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x19, 28, SVE_MUL_VL)),
+                 "ld4d {z0.d, z1.d, z2.d, z3.d}, p7/z, [x19, #28, mul vl]");
+  COMPARE_PREFIX(ld4d(z0.VnD(),
+                      z1.VnD(),
+                      z2.VnD(),
+                      z3.VnD(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x19, -32, SVE_MUL_VL)),
+                 "ld4d {z0.d, z1.d, z2.d, z3.d}, p7/z, [x19, #-32, mul vl]");
+
+  CLEANUP();
+}
+
+TEST(sve_ld2_scalar_plus_scalar) {
+  SETUP();
+
+  COMPARE_PREFIX(ld2b(z25.VnB(),
+                      z26.VnB(),
+                      p1.Zeroing(),
+                      SVEMemOperand(x20, x19)),
+                 "ld2b {z25.b, z26.b}, p1/z, [x20, x19]");
+  COMPARE_PREFIX(ld2b(z25.VnB(),
+                      z26.VnB(),
+                      p1.Zeroing(),
+                      SVEMemOperand(sp, x19)),
+                 "ld2b {z25.b, z26.b}, p1/z, [sp, x19]");
+  COMPARE_PREFIX(ld2b(z31.VnB(),
+                      z0.VnB(),
+                      p1.Zeroing(),
+                      SVEMemOperand(sp, x19)),
+                 "ld2b {z31.b, z0.b}, p1/z, [sp, x19]");
+
+  COMPARE_PREFIX(ld2h(z31.VnH(),
+                      z0.VnH(),
+                      p1.Zeroing(),
+                      SVEMemOperand(x20, x19, LSL, 1)),
+                 "ld2h {z31.h, z0.h}, p1/z, [x20, x19, lsl #1]");
+  COMPARE_PREFIX(ld2h(z31.VnH(),
+                      z0.VnH(),
+                      p7.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 1)),
+                 "ld2h {z31.h, z0.h}, p7/z, [sp, x19, lsl #1]");
+  COMPARE_PREFIX(ld2h(z31.VnH(),
+                      z0.VnH(),
+                      p7.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 1)),
+                 "ld2h {z31.h, z0.h}, p7/z, [sp, x19, lsl #1]");
+
+  COMPARE_PREFIX(ld2w(z16.VnS(),
+                      z17.VnS(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x20, x19, LSL, 2)),
+                 "ld2w {z16.s, z17.s}, p7/z, [x20, x19, lsl #2]");
+  COMPARE_PREFIX(ld2w(z16.VnS(),
+                      z17.VnS(),
+                      p7.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 2)),
+                 "ld2w {z16.s, z17.s}, p7/z, [sp, x19, lsl #2]");
+  COMPARE_PREFIX(ld2w(z16.VnS(),
+                      z17.VnS(),
+                      p0.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 2)),
+                 "ld2w {z16.s, z17.s}, p0/z, [sp, x19, lsl #2]");
+
+  COMPARE_PREFIX(ld2d(z16.VnD(),
+                      z17.VnD(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x20, x19, LSL, 3)),
+                 "ld2d {z16.d, z17.d}, p0/z, [x20, x19, lsl #3]");
+  COMPARE_PREFIX(ld2d(z25.VnD(),
+                      z26.VnD(),
+                      p0.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 3)),
+                 "ld2d {z25.d, z26.d}, p0/z, [sp, x19, lsl #3]");
+  COMPARE_PREFIX(ld2d(z25.VnD(),
+                      z26.VnD(),
+                      p0.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 3)),
+                 "ld2d {z25.d, z26.d}, p0/z, [sp, x19, lsl #3]");
+
+  CLEANUP();
+}
+
+TEST(sve_ld3_scalar_plus_scalar) {
+  SETUP();
+
+  COMPARE_PREFIX(ld3b(z25.VnB(),
+                      z26.VnB(),
+                      z27.VnB(),
+                      p1.Zeroing(),
+                      SVEMemOperand(x20, x19)),
+                 "ld3b {z25.b, z26.b, z27.b}, p1/z, [x20, x19]");
+  COMPARE_PREFIX(ld3b(z25.VnB(),
+                      z26.VnB(),
+                      z27.VnB(),
+                      p1.Zeroing(),
+                      SVEMemOperand(sp, x19)),
+                 "ld3b {z25.b, z26.b, z27.b}, p1/z, [sp, x19]");
+  COMPARE_PREFIX(ld3b(z30.VnB(),
+                      z31.VnB(),
+                      z0.VnB(),
+                      p1.Zeroing(),
+                      SVEMemOperand(sp, x19)),
+                 "ld3b {z30.b, z31.b, z0.b}, p1/z, [sp, x19]");
+
+  COMPARE_PREFIX(ld3h(z30.VnH(),
+                      z31.VnH(),
+                      z0.VnH(),
+                      p1.Zeroing(),
+                      SVEMemOperand(x20, x19, LSL, 1)),
+                 "ld3h {z30.h, z31.h, z0.h}, p1/z, [x20, x19, lsl #1]");
+  COMPARE_PREFIX(ld3h(z30.VnH(),
+                      z31.VnH(),
+                      z0.VnH(),
+                      p7.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 1)),
+                 "ld3h {z30.h, z31.h, z0.h}, p7/z, [sp, x19, lsl #1]");
+  COMPARE_PREFIX(ld3h(z30.VnH(),
+                      z31.VnH(),
+                      z0.VnH(),
+                      p7.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 1)),
+                 "ld3h {z30.h, z31.h, z0.h}, p7/z, [sp, x19, lsl #1]");
+
+  COMPARE_PREFIX(ld3w(z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x20, x19, LSL, 2)),
+                 "ld3w {z16.s, z17.s, z18.s}, p7/z, [x20, x19, lsl #2]");
+  COMPARE_PREFIX(ld3w(z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      p7.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 2)),
+                 "ld3w {z16.s, z17.s, z18.s}, p7/z, [sp, x19, lsl #2]");
+  COMPARE_PREFIX(ld3w(z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      p0.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 2)),
+                 "ld3w {z16.s, z17.s, z18.s}, p0/z, [sp, x19, lsl #2]");
+
+  COMPARE_PREFIX(ld3d(z16.VnD(),
+                      z17.VnD(),
+                      z18.VnD(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x20, x19, LSL, 3)),
+                 "ld3d {z16.d, z17.d, z18.d}, p0/z, [x20, x19, lsl #3]");
+  COMPARE_PREFIX(ld3d(z25.VnD(),
+                      z26.VnD(),
+                      z27.VnD(),
+                      p0.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 3)),
+                 "ld3d {z25.d, z26.d, z27.d}, p0/z, [sp, x19, lsl #3]");
+  COMPARE_PREFIX(ld3d(z25.VnD(),
+                      z26.VnD(),
+                      z27.VnD(),
+                      p0.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 3)),
+                 "ld3d {z25.d, z26.d, z27.d}, p0/z, [sp, x19, lsl #3]");
+
+  CLEANUP();
+}
+
+TEST(sve_ld4_scalar_plus_scalar) {
+  SETUP();
+
+  COMPARE_PREFIX(ld4b(z25.VnB(),
+                      z26.VnB(),
+                      z27.VnB(),
+                      z28.VnB(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x20, x19)),
+                 "ld4b {z25.b, z26.b, z27.b, z28.b}, p0/z, [x20, x19]");
+  COMPARE_PREFIX(ld4b(z25.VnB(),
+                      z26.VnB(),
+                      z27.VnB(),
+                      z28.VnB(),
+                      p1.Zeroing(),
+                      SVEMemOperand(sp, x19)),
+                 "ld4b {z25.b, z26.b, z27.b, z28.b}, p1/z, [sp, x19]");
+  COMPARE_PREFIX(ld4b(z25.VnB(),
+                      z26.VnB(),
+                      z27.VnB(),
+                      z28.VnB(),
+                      p1.Zeroing(),
+                      SVEMemOperand(sp, x19)),
+                 "ld4b {z25.b, z26.b, z27.b, z28.b}, p1/z, [sp, x19]");
+
+  COMPARE_PREFIX(ld4h(z31.VnH(),
+                      z0.VnH(),
+                      z1.VnH(),
+                      z2.VnH(),
+                      p1.Zeroing(),
+                      SVEMemOperand(x20, x19, LSL, 1)),
+                 "ld4h {z31.h, z0.h, z1.h, z2.h}, p1/z, [x20, x19, lsl #1]");
+  COMPARE_PREFIX(ld4h(z31.VnH(),
+                      z0.VnH(),
+                      z1.VnH(),
+                      z2.VnH(),
+                      p1.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 1)),
+                 "ld4h {z31.h, z0.h, z1.h, z2.h}, p1/z, [sp, x19, lsl #1]");
+  COMPARE_PREFIX(ld4h(z31.VnH(),
+                      z0.VnH(),
+                      z1.VnH(),
+                      z2.VnH(),
+                      p7.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 1)),
+                 "ld4h {z31.h, z0.h, z1.h, z2.h}, p7/z, [sp, x19, lsl #1]");
+
+  COMPARE_PREFIX(ld4w(z31.VnS(),
+                      z0.VnS(),
+                      z1.VnS(),
+                      z2.VnS(),
+                      p7.Zeroing(),
+                      SVEMemOperand(x20, x19, LSL, 2)),
+                 "ld4w {z31.s, z0.s, z1.s, z2.s}, p7/z, [x20, x19, lsl #2]");
+  COMPARE_PREFIX(ld4w(z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      z19.VnS(),
+                      p7.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 2)),
+                 "ld4w {z16.s, z17.s, z18.s, z19.s}, p7/z, "
+                 "[sp, x19, lsl #2]");
+  COMPARE_PREFIX(ld4w(z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      z19.VnS(),
+                      p7.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 2)),
+                 "ld4w {z16.s, z17.s, z18.s, z19.s}, p7/z, "
+                 "[sp, x19, lsl #2]");
+
+  COMPARE_PREFIX(ld4d(z16.VnD(),
+                      z17.VnD(),
+                      z18.VnD(),
+                      z19.VnD(),
+                      p0.Zeroing(),
+                      SVEMemOperand(x20, x19, LSL, 3)),
+                 "ld4d {z16.d, z17.d, z18.d, z19.d}, p0/z, "
+                 "[x20, x19, lsl #3]");
+  COMPARE_PREFIX(ld4d(z16.VnD(),
+                      z17.VnD(),
+                      z18.VnD(),
+                      z19.VnD(),
+                      p0.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 3)),
+                 "ld4d {z16.d, z17.d, z18.d, z19.d}, p0/z, "
+                 "[sp, x19, lsl #3]");
+  COMPARE_PREFIX(ld4d(z25.VnD(),
+                      z26.VnD(),
+                      z27.VnD(),
+                      z28.VnD(),
+                      p0.Zeroing(),
+                      SVEMemOperand(sp, x19, LSL, 3)),
+                 "ld4d {z25.d, z26.d, z27.d, z28.d}, p0/z, "
+                 "[sp, x19, lsl #3]");
+
+  CLEANUP();
+}
+
+TEST(sve_ff_contiguous) {
+  SETUP();
+
+  COMPARE_PREFIX(ldff1b(z24.VnB(), p1.Zeroing(), SVEMemOperand(x21)),
+                 "ldff1b {z24.b}, p1/z, [x21]");
+  COMPARE_PREFIX(ldff1b(z22.VnH(), p5.Zeroing(), SVEMemOperand(x5, x28)),
+                 "ldff1b {z22.h}, p5/z, [x5, x28]");
+  COMPARE_PREFIX(ldff1b(z2.VnS(), p5.Zeroing(), SVEMemOperand(sp, x11)),
+                 "ldff1b {z2.s}, p5/z, [sp, x11]");
+  COMPARE_PREFIX(ldff1b(z12.VnD(), p3.Zeroing(), SVEMemOperand(x26, xzr)),
+                 "ldff1b {z12.d}, p3/z, [x26]");
+  COMPARE_PREFIX(ldff1h(z21.VnH(), p3.Zeroing(), SVEMemOperand(x27)),
+                 "ldff1h {z21.h}, p3/z, [x27]");
+  COMPARE_PREFIX(ldff1h(z11.VnS(),
+                        p6.Zeroing(),
+                        SVEMemOperand(sp, x15, LSL, 1)),
+                 "ldff1h {z11.s}, p6/z, [sp, x15, lsl #1]");
+  COMPARE_PREFIX(ldff1h(z6.VnD(), p7.Zeroing(), SVEMemOperand(x8, xzr, LSL, 1)),
+                 "ldff1h {z6.d}, p7/z, [x8]");
+  COMPARE_PREFIX(ldff1w(z11.VnS(), p7.Zeroing(), SVEMemOperand(sp)),
+                 "ldff1w {z11.s}, p7/z, [sp]");
+  COMPARE_PREFIX(ldff1w(z6.VnD(), p6.Zeroing(), SVEMemOperand(x5, x0, LSL, 2)),
+                 "ldff1w {z6.d}, p6/z, [x5, x0, lsl #2]");
+  COMPARE_PREFIX(ldff1d(z0.VnD(), p3.Zeroing(), SVEMemOperand(x15, x1, LSL, 3)),
+                 "ldff1d {z0.d}, p3/z, [x15, x1, lsl #3]");
+
+  COMPARE_PREFIX(ldff1sb(z31.VnH(), p4.Zeroing(), SVEMemOperand(x10, x25)),
+                 "ldff1sb {z31.h}, p4/z, [x10, x25]");
+  COMPARE_PREFIX(ldff1sb(z25.VnS(), p7.Zeroing(), SVEMemOperand(sp, x20)),
+                 "ldff1sb {z25.s}, p7/z, [sp, x20]");
+  COMPARE_PREFIX(ldff1sb(z20.VnD(), p3.Zeroing(), SVEMemOperand(x19, xzr)),
+                 "ldff1sb {z20.d}, p3/z, [x19]");
+  COMPARE_PREFIX(ldff1sh(z18.VnS(),
+                         p3.Zeroing(),
+                         SVEMemOperand(sp, x0, LSL, 1)),
+                 "ldff1sh {z18.s}, p3/z, [sp, x0, lsl #1]");
+  COMPARE_PREFIX(ldff1sh(z30.VnD(),
+                         p1.Zeroing(),
+                         SVEMemOperand(x28, xzr, LSL, 1)),
+                 "ldff1sh {z30.d}, p1/z, [x28]");
+  COMPARE_PREFIX(ldff1sw(z3.VnD(),
+                         p4.Zeroing(),
+                         SVEMemOperand(x22, x18, LSL, 2)),
+                 "ldff1sw {z3.d}, p4/z, [x22, x18, lsl #2]");
+
+  CLEANUP();
+}
+
+TEST(sve_mem_contiguous_load) {
+  SETUP();
+
+  COMPARE_PREFIX(ld1rqb(z3.VnB(), p2.Zeroing(), SVEMemOperand(x22, x18)),
+                 "ld1rqb {z3.b}, p2/z, [x22, x18]");
+  COMPARE_PREFIX(ld1rqd(z6.VnD(), p0.Zeroing(), SVEMemOperand(x18, x9, LSL, 3)),
+                 "ld1rqd {z6.d}, p0/z, [x18, x9, lsl #3]");
+  COMPARE_PREFIX(ld1rqh(z1.VnH(), p7.Zeroing(), SVEMemOperand(x9, x6, LSL, 1)),
+                 "ld1rqh {z1.h}, p7/z, [x9, x6, lsl #1]");
+  COMPARE_PREFIX(ld1rqw(z12.VnS(),
+                        p4.Zeroing(),
+                        SVEMemOperand(sp, xzr, LSL, 2)),
+                 "ld1rqw {z12.s}, p4/z, [sp, xzr, lsl #2]");
+  COMPARE_PREFIX(ld1rqb(z18.VnB(), p2.Zeroing(), SVEMemOperand(x18, 0)),
+                 "ld1rqb {z18.b}, p2/z, [x18]");
+  COMPARE_PREFIX(ld1rqb(z18.VnB(), p2.Zeroing(), SVEMemOperand(x18, 16)),
+                 "ld1rqb {z18.b}, p2/z, [x18, #16]");
+  COMPARE_PREFIX(ld1rqd(z11.VnD(), p1.Zeroing(), SVEMemOperand(x23, -16)),
+                 "ld1rqd {z11.d}, p1/z, [x23, #-16]");
+  COMPARE_PREFIX(ld1rqh(z11.VnH(), p1.Zeroing(), SVEMemOperand(x0, 112)),
+                 "ld1rqh {z11.h}, p1/z, [x0, #112]");
+  COMPARE_PREFIX(ld1rqw(z22.VnS(), p3.Zeroing(), SVEMemOperand(sp, -128)),
+                 "ld1rqw {z22.s}, p3/z, [sp, #-128]");
+
+  COMPARE_MACRO(Ld1rqb(z0.VnB(), p0.Zeroing(), SVEMemOperand(x0, 2222)),
+                "add x16, x0, #0x8ae (2222)\n"
+                "ld1rqb {z0.b}, p0/z, [x16]");
+  COMPARE_MACRO(Ld1rqw(z0.VnS(), p0.Zeroing(), SVEMemOperand(x0, x1)),
+                "add x16, x0, x1\n"
+                "ld1rqw {z0.s}, p0/z, [x16]");
+  COMPARE_MACRO(Ld1rqd(z0.VnD(), p0.Zeroing(), SVEMemOperand(x0, x1, LSL, 1)),
+                "add x16, x0, x1, lsl #1\n"
+                "ld1rqd {z0.d}, p0/z, [x16]");
+
+  COMPARE_PREFIX(ldnt1b(z21.VnB(), p5.Zeroing(), SVEMemOperand(x1, x23)),
+                 "ldnt1b {z21.b}, p5/z, [x1, x23]");
+  COMPARE_PREFIX(ldnt1d(z10.VnD(),
+                        p0.Zeroing(),
+                        SVEMemOperand(x23, x6, LSL, 3)),
+                 "ldnt1d {z10.d}, p0/z, [x23, x6, lsl #3]");
+  COMPARE_PREFIX(ldnt1h(z30.VnH(),
+                        p4.Zeroing(),
+                        SVEMemOperand(x6, x11, LSL, 1)),
+                 "ldnt1h {z30.h}, p4/z, [x6, x11, lsl #1]");
+  COMPARE_PREFIX(ldnt1w(z0.VnS(), p4.Zeroing(), SVEMemOperand(x11, x1, LSL, 2)),
+                 "ldnt1w {z0.s}, p4/z, [x11, x1, lsl #2]");
+  COMPARE_PREFIX(ldnt1w(z0.VnS(), p4.Zeroing(), SVEMemOperand(sp, xzr, LSL, 2)),
+                 "ldnt1w {z0.s}, p4/z, [sp, xzr, lsl #2]");
+
+  COMPARE_PREFIX(ldnt1b(z1.VnB(), p3.Zeroing(), SVEMemOperand(x11)),
+                 "ldnt1b {z1.b}, p3/z, [x11]");
+  COMPARE_PREFIX(ldnt1b(z2.VnB(),
+                        p2.Zeroing(),
+                        SVEMemOperand(x12, -8, SVE_MUL_VL)),
+                 "ldnt1b {z2.b}, p2/z, [x12, #-8, mul vl]");
+  COMPARE_PREFIX(ldnt1d(z2.VnD(),
+                        p7.Zeroing(),
+                        SVEMemOperand(x13, -2, SVE_MUL_VL)),
+                 "ldnt1d {z2.d}, p7/z, [x13, #-2, mul vl]");
+  COMPARE_PREFIX(ldnt1h(z26.VnH(),
+                        p4.Zeroing(),
+                        SVEMemOperand(x16, 3, SVE_MUL_VL)),
+                 "ldnt1h {z26.h}, p4/z, [x16, #3, mul vl]");
+  COMPARE_PREFIX(ldnt1w(z17.VnS(),
+                        p4.Zeroing(),
+                        SVEMemOperand(x15, 7, SVE_MUL_VL)),
+                 "ldnt1w {z17.s}, p4/z, [x15, #7, mul vl]");
+  COMPARE_PREFIX(ldnt1w(z17.VnS(),
+                        p4.Zeroing(),
+                        SVEMemOperand(sp, 7, SVE_MUL_VL)),
+                 "ldnt1w {z17.s}, p4/z, [sp, #7, mul vl]");
+
+  COMPARE_MACRO(Ldnt1b(z2.VnB(),
+                       p0.Zeroing(),
+                       SVEMemOperand(x10, 42, SVE_MUL_VL)),
+                "mov x16, #0x2a\n"
+                "rdvl x17, #1\n"
+                "madd x16, x16, x17, x10\n"
+                "ldnt1b {z2.b}, p0/z, [x16]");
+  COMPARE_MACRO(Ldnt1h(z3.VnH(),
+                       p1.Zeroing(),
+                       SVEMemOperand(x11, 31, SVE_MUL_VL)),
+                "addvl x16, x11, #31\n"
+                "ldnt1h {z3.h}, p1/z, [x16]");
+  COMPARE_MACRO(Ldnt1w(z4.VnS(),
+                       p2.Zeroing(),
+                       SVEMemOperand(x12, -35, SVE_MUL_VL)),
+                "mov x16, #0xffffffffffffffdd\n"
+                "rdvl x17, #1\n"
+                "madd x16, x16, x17, x12\n"
+                "ldnt1w {z4.s}, p2/z, [x16]");
+  COMPARE_MACRO(Ldnt1d(z5.VnD(), p3.Zeroing(), SVEMemOperand(x13, 3)),
+                "add x16, x13, #0x3 (3)\n"
+                "ldnt1d {z5.d}, p3/z, [x16]");
+
+  COMPARE_PREFIX(ldnf1b(z1.VnH(),
+                        p0.Zeroing(),
+                        SVEMemOperand(x25, -8, SVE_MUL_VL)),
+                 "ldnf1b {z1.h}, p0/z, [x25, #-8, mul vl]");
+  COMPARE_PREFIX(ldnf1b(z0.VnS(),
+                        p0.Zeroing(),
+                        SVEMemOperand(x2, 7, SVE_MUL_VL)),
+                 "ldnf1b {z0.s}, p0/z, [x2, #7, mul vl]");
+  COMPARE_PREFIX(ldnf1b(z31.VnD(),
+                        p6.Zeroing(),
+                        SVEMemOperand(x0, -7, SVE_MUL_VL)),
+                 "ldnf1b {z31.d}, p6/z, [x0, #-7, mul vl]");
+  COMPARE_PREFIX(ldnf1b(z25.VnB(),
+                        p1.Zeroing(),
+                        SVEMemOperand(x5, 6, SVE_MUL_VL)),
+                 "ldnf1b {z25.b}, p1/z, [x5, #6, mul vl]");
+  COMPARE_PREFIX(ldnf1d(z25.VnD(),
+                        p0.Zeroing(),
+                        SVEMemOperand(x11, -6, SVE_MUL_VL)),
+                 "ldnf1d {z25.d}, p0/z, [x11, #-6, mul vl]");
+  COMPARE_PREFIX(ldnf1h(z22.VnH(),
+                        p4.Zeroing(),
+                        SVEMemOperand(x7, 5, SVE_MUL_VL)),
+                 "ldnf1h {z22.h}, p4/z, [x7, #5, mul vl]");
+  COMPARE_PREFIX(ldnf1h(z7.VnS(),
+                        p2.Zeroing(),
+                        SVEMemOperand(x1, -5, SVE_MUL_VL)),
+                 "ldnf1h {z7.s}, p2/z, [x1, #-5, mul vl]");
+  COMPARE_PREFIX(ldnf1h(z5.VnD(),
+                        p3.Zeroing(),
+                        SVEMemOperand(x29, 4, SVE_MUL_VL)),
+                 "ldnf1h {z5.d}, p3/z, [x29, #4, mul vl]");
+  COMPARE_PREFIX(ldnf1sb(z12.VnH(),
+                         p5.Zeroing(),
+                         SVEMemOperand(x27, -4, SVE_MUL_VL)),
+                 "ldnf1sb {z12.h}, p5/z, [x27, #-4, mul vl]");
+  COMPARE_PREFIX(ldnf1sb(z10.VnS(),
+                         p2.Zeroing(),
+                         SVEMemOperand(x13, 3, SVE_MUL_VL)),
+                 "ldnf1sb {z10.s}, p2/z, [x13, #3, mul vl]");
+  COMPARE_PREFIX(ldnf1sb(z25.VnD(),
+                         p6.Zeroing(),
+                         SVEMemOperand(x26, -3, SVE_MUL_VL)),
+                 "ldnf1sb {z25.d}, p6/z, [x26, #-3, mul vl]");
+  COMPARE_PREFIX(ldnf1sh(z3.VnS(),
+                         p5.Zeroing(),
+                         SVEMemOperand(x1, 2, SVE_MUL_VL)),
+                 "ldnf1sh {z3.s}, p5/z, [x1, #2, mul vl]");
+  COMPARE_PREFIX(ldnf1sh(z8.VnD(),
+                         p6.Zeroing(),
+                         SVEMemOperand(x13, -2, SVE_MUL_VL)),
+                 "ldnf1sh {z8.d}, p6/z, [x13, #-2, mul vl]");
+  COMPARE_PREFIX(ldnf1sw(z5.VnD(),
+                         p6.Zeroing(),
+                         SVEMemOperand(x2, 1, SVE_MUL_VL)),
+                 "ldnf1sw {z5.d}, p6/z, [x2, #1, mul vl]");
+  COMPARE_PREFIX(ldnf1w(z11.VnS(),
+                        p3.Zeroing(),
+                        SVEMemOperand(sp, -1, SVE_MUL_VL)),
+                 "ldnf1w {z11.s}, p3/z, [sp, #-1, mul vl]");
+  COMPARE_PREFIX(ldnf1w(z10.VnD(), p6.Zeroing(), SVEMemOperand(x12)),
+                 "ldnf1w {z10.d}, p6/z, [x12]");
+
+  CLEANUP();
+}
+
+TEST(sve_mem_contiguous_store) {
+  SETUP();
+
+  COMPARE_PREFIX(stnt1b(z21.VnB(), p5.Zeroing(), SVEMemOperand(x1, x23)),
+                 "stnt1b {z21.b}, p5, [x1, x23]");
+  COMPARE_PREFIX(stnt1d(z10.VnD(),
+                        p0.Zeroing(),
+                        SVEMemOperand(x23, x6, LSL, 3)),
+                 "stnt1d {z10.d}, p0, [x23, x6, lsl #3]");
+  COMPARE_PREFIX(stnt1h(z30.VnH(),
+                        p4.Zeroing(),
+                        SVEMemOperand(x6, x11, LSL, 1)),
+                 "stnt1h {z30.h}, p4, [x6, x11, lsl #1]");
+  COMPARE_PREFIX(stnt1w(z0.VnS(), p4.Zeroing(), SVEMemOperand(x11, x1, LSL, 2)),
+                 "stnt1w {z0.s}, p4, [x11, x1, lsl #2]");
+  COMPARE_PREFIX(stnt1w(z0.VnS(), p4.Zeroing(), SVEMemOperand(sp, xzr, LSL, 2)),
+                 "stnt1w {z0.s}, p4, [sp, xzr, lsl #2]");
+
+  COMPARE_PREFIX(stnt1b(z1.VnB(), p3.Zeroing(), SVEMemOperand(x11)),
+                 "stnt1b {z1.b}, p3, [x11]");
+  COMPARE_PREFIX(stnt1b(z2.VnB(),
+                        p2.Zeroing(),
+                        SVEMemOperand(x12, -8, SVE_MUL_VL)),
+                 "stnt1b {z2.b}, p2, [x12, #-8, mul vl]");
+  COMPARE_PREFIX(stnt1d(z2.VnD(),
+                        p7.Zeroing(),
+                        SVEMemOperand(x13, -2, SVE_MUL_VL)),
+                 "stnt1d {z2.d}, p7, [x13, #-2, mul vl]");
+  COMPARE_PREFIX(stnt1h(z26.VnH(),
+                        p4.Zeroing(),
+                        SVEMemOperand(x16, 3, SVE_MUL_VL)),
+                 "stnt1h {z26.h}, p4, [x16, #3, mul vl]");
+  COMPARE_PREFIX(stnt1w(z17.VnS(),
+                        p4.Zeroing(),
+                        SVEMemOperand(x15, 7, SVE_MUL_VL)),
+                 "stnt1w {z17.s}, p4, [x15, #7, mul vl]");
+  COMPARE_PREFIX(stnt1w(z17.VnS(),
+                        p4.Zeroing(),
+                        SVEMemOperand(sp, 7, SVE_MUL_VL)),
+                 "stnt1w {z17.s}, p4, [sp, #7, mul vl]");
+
+  COMPARE_MACRO(Stnt1b(z2.VnB(),
+                       p0.Zeroing(),
+                       SVEMemOperand(x10, 42, SVE_MUL_VL)),
+                "mov x16, #0x2a\n"
+                "rdvl x17, #1\n"
+                "madd x16, x16, x17, x10\n"
+                "stnt1b {z2.b}, p0, [x16]");
+  COMPARE_MACRO(Stnt1h(z3.VnH(),
+                       p1.Zeroing(),
+                       SVEMemOperand(x11, 31, SVE_MUL_VL)),
+                "addvl x16, x11, #31\n"
+                "stnt1h {z3.h}, p1, [x16]");
+  COMPARE_MACRO(Stnt1w(z4.VnS(),
+                       p2.Zeroing(),
+                       SVEMemOperand(x12, -35, SVE_MUL_VL)),
+                "mov x16, #0xffffffffffffffdd\n"
+                "rdvl x17, #1\n"
+                "madd x16, x16, x17, x12\n"
+                "stnt1w {z4.s}, p2, [x16]");
+
+  CLEANUP();
+}
+
+TEST(sve_ldr_str_simple) {
+  SETUP();
+
+  COMPARE_PREFIX(str(p14, SVEMemOperand(x0)), "str p14, [x0]");
+  COMPARE_PREFIX(str(z14, SVEMemOperand(sp)), "str z14, [sp]");
+  COMPARE_PREFIX(ldr(p4, SVEMemOperand(x0)), "ldr p4, [x0]");
+  COMPARE_PREFIX(ldr(z4, SVEMemOperand(sp)), "ldr z4, [sp]");
+  COMPARE_PREFIX(str(p15, SVEMemOperand(sp, -256, SVE_MUL_VL)),
+                 "str p15, [sp, #-256, mul vl]");
+  COMPARE_PREFIX(str(z16, SVEMemOperand(x13, 255, SVE_MUL_VL)),
+                 "str z16, [x13, #255, mul vl]");
+  COMPARE_PREFIX(ldr(p5, SVEMemOperand(sp, -42, SVE_MUL_VL)),
+                 "ldr p5, [sp, #-42, mul vl]");
+  COMPARE_PREFIX(ldr(z6, SVEMemOperand(x28, 42, SVE_MUL_VL)),
+                 "ldr z6, [x28, #42, mul vl]");
+
+  COMPARE_MACRO(Str(p14, SVEMemOperand(x0)), "str p14, [x0]");
+  COMPARE_MACRO(Str(z14, SVEMemOperand(sp)), "str z14, [sp]");
+  COMPARE_MACRO(Ldr(p4, SVEMemOperand(x0)), "ldr p4, [x0]");
+  COMPARE_MACRO(Ldr(z4, SVEMemOperand(sp)), "ldr z4, [sp]");
+  COMPARE_MACRO(Str(p15, SVEMemOperand(sp, -256, SVE_MUL_VL)),
+                "str p15, [sp, #-256, mul vl]");
+  COMPARE_MACRO(Str(z16, SVEMemOperand(x13, 255, SVE_MUL_VL)),
+                "str z16, [x13, #255, mul vl]");
+  COMPARE_MACRO(Ldr(p5, SVEMemOperand(sp, -42, SVE_MUL_VL)),
+                "ldr p5, [sp, #-42, mul vl]");
+  COMPARE_MACRO(Ldr(z6, SVEMemOperand(x28, 42, SVE_MUL_VL)),
+                "ldr z6, [x28, #42, mul vl]");
+
+  COMPARE_MACRO(Ldr(z6, SVEMemOperand(x28, 42, SVE_MUL_VL)),
+                "ldr z6, [x28, #42, mul vl]");
+
+  // IsEquivalentToScalar
+  COMPARE_MACRO(Str(p0, SVEMemOperand(x0, xzr)), "str p0, [x0]");
+  COMPARE_MACRO(Ldr(p1, SVEMemOperand(sp, xzr)), "ldr p1, [sp]");
+  COMPARE_MACRO(Str(z2, SVEMemOperand(x12, xzr)), "str z2, [x12]");
+  COMPARE_MACRO(Ldr(z3, SVEMemOperand(x7, xzr)), "ldr z3, [x7]");
+
+  // Other cases fall back on Adr. We test Adr separately, so here we just test
+  // sequences that stress scratch register allocation.
+  COMPARE_MACRO(Str(p4, SVEMemOperand(x5, 4242, SVE_MUL_VL)),
+                "mov x16, #0x1092\n"
+                "rdvl x17, #1\n"
+                "mul x16, x16, x17\n"
+                "add x16, x5, x16, asr #3\n"
+                "str p4, [x16]");
+  COMPARE_MACRO(Ldr(p6, SVEMemOperand(sp, 4242, SVE_MUL_VL)),
+                "mov x16, #0x1092\n"
+                "rdvl x17, #1\n"
+                "mul x16, x16, x17\n"
+                "asr x16, x16, #3\n"
+                "add x16, sp, x16\n"
+                "ldr p6, [x16]");
+  COMPARE_MACRO(Str(z7, SVEMemOperand(sp, 4242, SVE_MUL_VL)),
+                "mov x16, #0x1092\n"
+                "rdvl x17, #1\n"
+                "mul x16, x16, x17\n"
+                "add x16, sp, x16\n"
+                "str z7, [x16]");
+  COMPARE_MACRO(Ldr(z8, SVEMemOperand(x9, 4242, SVE_MUL_VL)),
+                "mov x16, #0x1092\n"
+                "rdvl x17, #1\n"
+                "madd x16, x16, x17, x9\n"
+                "ldr z8, [x16]");
+
+  CLEANUP();
+}
+
+TEST(sve_ld1_st1) {
+  SETUP();
+
+  COMPARE_PREFIX(st1b(z11.VnB(), p0, SVEMemOperand(x22)),
+                 "st1b {z11.b}, p0, [x22]");
+  COMPARE_PREFIX(st1b(z15.VnH(), p1, SVEMemOperand(x15, 7, SVE_MUL_VL)),
+                 "st1b {z15.h}, p1, [x15, #7, mul vl]");
+  COMPARE_PREFIX(st1b(z19.VnS(), p2, SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                 "st1b {z19.s}, p2, [sp, #-8, mul vl]");
+  COMPARE_PREFIX(st1b(z23.VnD(), p3, SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                 "st1b {z23.d}, p3, [x1]");
+  COMPARE_PREFIX(st1b(z2.VnB(), p4, SVEMemOperand(x1, x2)),
+                 "st1b {z2.b}, p4, [x1, x2]");
+  COMPARE_PREFIX(st1b(z31.VnD(), p7, SVEMemOperand(x9, x9, LSL, 0)),
+                 "st1b {z31.d}, p7, [x9, x9]");
+  COMPARE_PREFIX(st1b(z3.VnS(), p0, SVEMemOperand(z14.VnS(), 30)),
+                 "st1b {z3.s}, p0, [z14.s, #30]");
+  COMPARE_PREFIX(st1b(z14.VnD(), p4, SVEMemOperand(z3.VnD(), 31)),
+                 "st1b {z14.d}, p4, [z3.d, #31]");
+  COMPARE_PREFIX(st1b(z15.VnD(), p5, SVEMemOperand(x0, z5.VnD())),
+                 "st1b {z15.d}, p5, [x0, z5.d]");
+  COMPARE_PREFIX(st1b(z15.VnS(), p5, SVEMemOperand(sp, z2.VnS(), UXTW)),
+                 "st1b {z15.s}, p5, [sp, z2.s, uxtw]");
+  COMPARE_PREFIX(st1b(z15.VnD(), p5, SVEMemOperand(x0, z25.VnD(), SXTW)),
+                 "st1b {z15.d}, p5, [x0, z25.d, sxtw]");
+
+  COMPARE_PREFIX(st1h(z15.VnH(), p1, SVEMemOperand(x15, 7, SVE_MUL_VL)),
+                 "st1h {z15.h}, p1, [x15, #7, mul vl]");
+  COMPARE_PREFIX(st1h(z19.VnS(), p2, SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                 "st1h {z19.s}, p2, [sp, #-8, mul vl]");
+  COMPARE_PREFIX(st1h(z23.VnD(), p3, SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                 "st1h {z23.d}, p3, [x1]");
+  COMPARE_PREFIX(st1h(z2.VnH(), p4, SVEMemOperand(x1, x2, LSL, 1)),
+                 "st1h {z2.h}, p4, [x1, x2, lsl #1]");
+  COMPARE_PREFIX(st1h(z31.VnD(), p7, SVEMemOperand(x9, x9, LSL, 1)),
+                 "st1h {z31.d}, p7, [x9, x9, lsl #1]");
+  COMPARE_PREFIX(st1h(z3.VnS(), p0, SVEMemOperand(z14.VnS(), 30)),
+                 "st1h {z3.s}, p0, [z14.s, #30]");
+  COMPARE_PREFIX(st1h(z14.VnD(), p4, SVEMemOperand(z3.VnD(), 62)),
+                 "st1h {z14.d}, p4, [z3.d, #62]");
+  COMPARE_PREFIX(st1h(z15.VnD(), p6, SVEMemOperand(sp, z6.VnD())),
+                 "st1h {z15.d}, p6, [sp, z6.d]");
+  COMPARE_PREFIX(st1h(z15.VnD(), p6, SVEMemOperand(sp, z6.VnD(), LSL, 1)),
+                 "st1h {z15.d}, p6, [sp, z6.d, lsl #1]");
+  COMPARE_PREFIX(st1h(z15.VnS(), p3, SVEMemOperand(x25, z3.VnS(), SXTW)),
+                 "st1h {z15.s}, p3, [x25, z3.s, sxtw]");
+  COMPARE_PREFIX(st1h(z15.VnS(), p6, SVEMemOperand(x7, z15.VnS(), SXTW, 1)),
+                 "st1h {z15.s}, p6, [x7, z15.s, sxtw #1]");
+  COMPARE_PREFIX(st1h(z17.VnD(), p3, SVEMemOperand(sp, z26.VnD(), SXTW)),
+                 "st1h {z17.d}, p3, [sp, z26.d, sxtw]");
+  COMPARE_PREFIX(st1h(z15.VnD(), p6, SVEMemOperand(x13, z9.VnD(), UXTW, 1)),
+                 "st1h {z15.d}, p6, [x13, z9.d, uxtw #1]");
+
+  COMPARE_PREFIX(st1w(z19.VnS(), p2, SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                 "st1w {z19.s}, p2, [sp, #-8, mul vl]");
+  COMPARE_PREFIX(st1w(z23.VnD(), p3, SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                 "st1w {z23.d}, p3, [x1]");
+  COMPARE_PREFIX(st1w(z2.VnS(), p4, SVEMemOperand(x1, x2, LSL, 2)),
+                 "st1w {z2.s}, p4, [x1, x2, lsl #2]");
+  COMPARE_PREFIX(st1w(z31.VnD(), p7, SVEMemOperand(x9, x9, LSL, 2)),
+                 "st1w {z31.d}, p7, [x9, x9, lsl #2]");
+  COMPARE_PREFIX(st1w(z3.VnS(), p0, SVEMemOperand(z14.VnS(), 32)),
+                 "st1w {z3.s}, p0, [z14.s, #32]");
+  COMPARE_PREFIX(st1w(z14.VnD(), p4, SVEMemOperand(z3.VnD(), 124)),
+                 "st1w {z14.d}, p4, [z3.d, #124]");
+  COMPARE_PREFIX(st1w(z17.VnD(), p2, SVEMemOperand(x30, z5.VnD())),
+                 "st1w {z17.d}, p2, [x30, z5.d]");
+  COMPARE_PREFIX(st1w(z17.VnD(), p2, SVEMemOperand(x30, z5.VnD(), LSL, 2)),
+                 "st1w {z17.d}, p2, [x30, z5.d, lsl #2]");
+  COMPARE_PREFIX(st1w(z15.VnS(), p7, SVEMemOperand(x26, z4.VnS(), UXTW)),
+                 "st1w {z15.s}, p7, [x26, z4.s, uxtw]");
+  COMPARE_PREFIX(st1w(z15.VnS(), p4, SVEMemOperand(x8, z16.VnS(), UXTW, 2)),
+                 "st1w {z15.s}, p4, [x8, z16.s, uxtw #2]");
+  COMPARE_PREFIX(st1w(z19.VnD(), p7, SVEMemOperand(x1, z27.VnD(), UXTW)),
+                 "st1w {z19.d}, p7, [x1, z27.d, uxtw]");
+  COMPARE_PREFIX(st1w(z15.VnD(), p4, SVEMemOperand(sp, z10.VnD(), SXTW, 2)),
+                 "st1w {z15.d}, p4, [sp, z10.d, sxtw #2]");
+
+  COMPARE_PREFIX(st1d(z23.VnD(), p3, SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                 "st1d {z23.d}, p3, [x1]");
+  COMPARE_PREFIX(st1d(z31.VnD(), p7, SVEMemOperand(x9, x9, LSL, 3)),
+                 "st1d {z31.d}, p7, [x9, x9, lsl #3]");
+  COMPARE_PREFIX(st1d(z14.VnD(), p4, SVEMemOperand(z3.VnD(), 32)),
+                 "st1d {z14.d}, p4, [z3.d, #32]");
+  COMPARE_PREFIX(st1d(z14.VnD(), p4, SVEMemOperand(z3.VnD(), 248)),
+                 "st1d {z14.d}, p4, [z3.d, #248]");
+  COMPARE_PREFIX(st1d(z19.VnD(), p2, SVEMemOperand(x29, z22.VnD())),
+                 "st1d {z19.d}, p2, [x29, z22.d]");
+  COMPARE_PREFIX(st1d(z19.VnD(), p2, SVEMemOperand(x29, z22.VnD(), LSL, 3)),
+                 "st1d {z19.d}, p2, [x29, z22.d, lsl #3]");
+  COMPARE_PREFIX(st1d(z21.VnD(), p1, SVEMemOperand(x2, z28.VnD(), SXTW)),
+                 "st1d {z21.d}, p1, [x2, z28.d, sxtw]");
+  COMPARE_PREFIX(st1d(z15.VnD(), p2, SVEMemOperand(x14, z11.VnD(), UXTW, 3)),
+                 "st1d {z15.d}, p2, [x14, z11.d, uxtw #3]");
+
+  COMPARE_PREFIX(ld1b(z11.VnB(), p0.Zeroing(), SVEMemOperand(x22)),
+                 "ld1b {z11.b}, p0/z, [x22]");
+  COMPARE_PREFIX(ld1b(z15.VnH(),
+                      p1.Zeroing(),
+                      SVEMemOperand(x15, 7, SVE_MUL_VL)),
+                 "ld1b {z15.h}, p1/z, [x15, #7, mul vl]");
+  COMPARE_PREFIX(ld1b(z19.VnS(),
+                      p2.Zeroing(),
+                      SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                 "ld1b {z19.s}, p2/z, [sp, #-8, mul vl]");
+  COMPARE_PREFIX(ld1b(z23.VnD(),
+                      p3.Zeroing(),
+                      SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                 "ld1b {z23.d}, p3/z, [x1]");
+  COMPARE_PREFIX(ld1b(z2.VnB(), p4.Zeroing(), SVEMemOperand(x1, x2)),
+                 "ld1b {z2.b}, p4/z, [x1, x2]");
+  COMPARE_PREFIX(ld1b(z31.VnD(), p7.Zeroing(), SVEMemOperand(x9, x9, LSL, 0)),
+                 "ld1b {z31.d}, p7/z, [x9, x9]");
+
+  COMPARE_PREFIX(ld1h(z15.VnH(),
+                      p1.Zeroing(),
+                      SVEMemOperand(x15, 7, SVE_MUL_VL)),
+                 "ld1h {z15.h}, p1/z, [x15, #7, mul vl]");
+  COMPARE_PREFIX(ld1h(z19.VnS(),
+                      p2.Zeroing(),
+                      SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                 "ld1h {z19.s}, p2/z, [sp, #-8, mul vl]");
+  COMPARE_PREFIX(ld1h(z23.VnD(),
+                      p3.Zeroing(),
+                      SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                 "ld1h {z23.d}, p3/z, [x1]");
+  COMPARE_PREFIX(ld1h(z2.VnH(), p4.Zeroing(), SVEMemOperand(x1, x2, LSL, 1)),
+                 "ld1h {z2.h}, p4/z, [x1, x2, lsl #1]");
+  COMPARE_PREFIX(ld1h(z31.VnD(), p7.Zeroing(), SVEMemOperand(x9, x9, LSL, 1)),
+                 "ld1h {z31.d}, p7/z, [x9, x9, lsl #1]");
+
+  COMPARE_PREFIX(ld1w(z19.VnS(),
+                      p2.Zeroing(),
+                      SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                 "ld1w {z19.s}, p2/z, [sp, #-8, mul vl]");
+  COMPARE_PREFIX(ld1w(z23.VnD(),
+                      p3.Zeroing(),
+                      SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                 "ld1w {z23.d}, p3/z, [x1]");
+  COMPARE_PREFIX(ld1w(z2.VnS(), p4.Zeroing(), SVEMemOperand(x1, x2, LSL, 2)),
+                 "ld1w {z2.s}, p4/z, [x1, x2, lsl #2]");
+  COMPARE_PREFIX(ld1w(z31.VnD(), p7.Zeroing(), SVEMemOperand(x9, x9, LSL, 2)),
+                 "ld1w {z31.d}, p7/z, [x9, x9, lsl #2]");
+
+  COMPARE_PREFIX(ld1d(z23.VnD(),
+                      p3.Zeroing(),
+                      SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                 "ld1d {z23.d}, p3/z, [x1]");
+  COMPARE_PREFIX(ld1d(z31.VnD(), p7.Zeroing(), SVEMemOperand(x9, x9, LSL, 3)),
+                 "ld1d {z31.d}, p7/z, [x9, x9, lsl #3]");
+
+  COMPARE_PREFIX(ld1sb(z15.VnH(),
+                       p1.Zeroing(),
+                       SVEMemOperand(x15, 7, SVE_MUL_VL)),
+                 "ld1sb {z15.h}, p1/z, [x15, #7, mul vl]");
+  COMPARE_PREFIX(ld1sb(z19.VnS(),
+                       p2.Zeroing(),
+                       SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                 "ld1sb {z19.s}, p2/z, [sp, #-8, mul vl]");
+  COMPARE_PREFIX(ld1d(z23.VnD(),
+                      p3.Zeroing(),
+                      SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                 "ld1d {z23.d}, p3/z, [x1]");
+  COMPARE_PREFIX(ld1sb(z5.VnH(), p1.Zeroing(), SVEMemOperand(x15, x1, LSL, 0)),
+                 "ld1sb {z5.h}, p1/z, [x15, x1]");
+  COMPARE_PREFIX(ld1sb(z9.VnS(), p2.Zeroing(), SVEMemOperand(x29, x3, LSL, 0)),
+                 "ld1sb {z9.s}, p2/z, [x29, x3]");
+  COMPARE_PREFIX(ld1sb(z31.VnD(), p7.Zeroing(), SVEMemOperand(x9, x9, LSL, 0)),
+                 "ld1sb {z31.d}, p7/z, [x9, x9]");
+
+  COMPARE_PREFIX(ld1sh(z19.VnS(),
+                       p2.Zeroing(),
+                       SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                 "ld1sh {z19.s}, p2/z, [sp, #-8, mul vl]");
+  COMPARE_PREFIX(ld1sh(z23.VnD(),
+                       p3.Zeroing(),
+                       SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                 "ld1sh {z23.d}, p3/z, [x1]");
+  COMPARE_PREFIX(ld1sh(z11.VnS(),
+                       p4.Zeroing(),
+                       SVEMemOperand(x22, x10, LSL, 1)),
+                 "ld1sh {z11.s}, p4/z, [x22, x10, lsl #1]");
+  COMPARE_PREFIX(ld1sh(z31.VnD(), p7.Zeroing(), SVEMemOperand(x9, x9, LSL, 1)),
+                 "ld1sh {z31.d}, p7/z, [x9, x9, lsl #1]");
+
+  COMPARE_PREFIX(ld1sw(z23.VnD(),
+                       p3.Zeroing(),
+                       SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                 "ld1sw {z23.d}, p3/z, [x1]");
+  COMPARE_PREFIX(ld1sw(z31.VnD(), p7.Zeroing(), SVEMemOperand(x9, x9, LSL, 2)),
+                 "ld1sw {z31.d}, p7/z, [x9, x9, lsl #2]");
+
+  CLEANUP();
+}
+
+TEST(sve_ld1_st1_macro) {
+  SETUP();
+
+  // Pass-through cases.
+  COMPARE_MACRO(St1b(z11.VnB(), p0, SVEMemOperand(x22)),
+                "st1b {z11.b}, p0, [x22]");
+  COMPARE_MACRO(St1b(z15.VnH(), p1, SVEMemOperand(x15, 7, SVE_MUL_VL)),
+                "st1b {z15.h}, p1, [x15, #7, mul vl]");
+  COMPARE_MACRO(St1b(z19.VnS(), p2, SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                "st1b {z19.s}, p2, [sp, #-8, mul vl]");
+  COMPARE_MACRO(St1b(z23.VnD(), p3, SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                "st1b {z23.d}, p3, [x1]");
+  COMPARE_MACRO(St1b(z2.VnB(), p4, SVEMemOperand(x1, x2)),
+                "st1b {z2.b}, p4, [x1, x2]");
+  COMPARE_MACRO(St1b(z31.VnD(), p7, SVEMemOperand(x9, x9, LSL, 0)),
+                "st1b {z31.d}, p7, [x9, x9]");
+  COMPARE_MACRO(St1b(z3.VnS(), p6, SVEMemOperand(z4.VnS(), 22)),
+                "st1b {z3.s}, p6, [z4.s, #22]");
+
+  COMPARE_MACRO(St1h(z15.VnH(), p1, SVEMemOperand(x15, 7, SVE_MUL_VL)),
+                "st1h {z15.h}, p1, [x15, #7, mul vl]");
+  COMPARE_MACRO(St1h(z19.VnS(), p2, SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                "st1h {z19.s}, p2, [sp, #-8, mul vl]");
+  COMPARE_MACRO(St1h(z23.VnD(), p3, SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                "st1h {z23.d}, p3, [x1]");
+  COMPARE_MACRO(St1h(z2.VnH(), p4, SVEMemOperand(x1, x2, LSL, 1)),
+                "st1h {z2.h}, p4, [x1, x2, lsl #1]");
+  COMPARE_MACRO(St1h(z31.VnD(), p7, SVEMemOperand(x9, x9, LSL, 1)),
+                "st1h {z31.d}, p7, [x9, x9, lsl #1]");
+  COMPARE_MACRO(St1h(z3.VnD(), p5, SVEMemOperand(z0.VnD())),
+                "st1h {z3.d}, p5, [z0.d]");
+
+  COMPARE_MACRO(St1w(z19.VnS(), p2, SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                "st1w {z19.s}, p2, [sp, #-8, mul vl]");
+  COMPARE_MACRO(St1w(z23.VnD(), p3, SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                "st1w {z23.d}, p3, [x1]");
+  COMPARE_MACRO(St1w(z2.VnS(), p4, SVEMemOperand(x1, x2, LSL, 2)),
+                "st1w {z2.s}, p4, [x1, x2, lsl #2]");
+  COMPARE_MACRO(St1w(z31.VnD(), p7, SVEMemOperand(x9, x9, LSL, 2)),
+                "st1w {z31.d}, p7, [x9, x9, lsl #2]");
+  COMPARE_MACRO(St1w(z12.VnS(), p2, SVEMemOperand(z13.VnS(), 124)),
+                "st1w {z12.s}, p2, [z13.s, #124]");
+
+  COMPARE_MACRO(St1d(z23.VnD(), p3, SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                "st1d {z23.d}, p3, [x1]");
+  COMPARE_MACRO(St1d(z31.VnD(), p7, SVEMemOperand(x9, x9, LSL, 3)),
+                "st1d {z31.d}, p7, [x9, x9, lsl #3]");
+  COMPARE_MACRO(St1d(z13.VnD(), p3, SVEMemOperand(z12.VnD(), 248)),
+                "st1d {z13.d}, p3, [z12.d, #248]");
+
+  // SVEMemOperand synthesis.
+  // Check that the MacroAssembler falls back on `CalculateSVEAddress` at the
+  // boundary conditions. We test this helper independently.
+  COMPARE_MACRO(St1b(z10.VnB(), p7, SVEMemOperand(x0, 8, SVE_MUL_VL)),
+                "addvl x16, x0, #8\n"
+                "st1b {z10.b}, p7, [x16]");
+  COMPARE_MACRO(St1h(z11.VnS(), p5, SVEMemOperand(sp, -9, SVE_MUL_VL)),
+                "mov x16, #0xffffffffffffffdc\n"
+                "rdvl x17, #1\n"
+                "mul x16, x16, x17\n"
+                "asr x16, x16, #3\n"
+                "add x16, sp, x16\n"
+                "st1h {z11.s}, p5, [x16]");
+  COMPARE_MACRO(St1w(z22.VnS(), p3, SVEMemOperand(sp, 42)),
+                "add x16, sp, #0x2a (42)\n"
+                "st1w {z22.s}, p3, [x16]");
+  COMPARE_MACRO(St1d(z22.VnD(), p1, SVEMemOperand(x3, x4)),
+                "add x16, x3, x4\n"
+                "st1d {z22.d}, p1, [x16]");
+  COMPARE_MACRO(St1b(z30.VnD(), p0, SVEMemOperand(x9, xzr)),
+                "st1b {z30.d}, p0, [x9]");
+
+// TODO: Fix these - they need scatter-store-to-scalar-plus-vector support.
+#if 0
+  COMPARE_MACRO(St1b(z1.VnD(), p6, SVEMemOperand(z0.VnD(), 32)), "mov x16, #0x20\n" "st1b {z1.d}, p6/z, [x16, z0.d]");
+  COMPARE_MACRO(St1h(z1.VnS(), p6, SVEMemOperand(z0.VnS(), -1)), "mov x16, #0xffffffffffffffff\n" "st1h {z1.s}, p6/z, [x16, z0.s]");
+#endif
+
+  COMPARE_MACRO(Ld1b(z11.VnB(), p0.Zeroing(), SVEMemOperand(x22)),
+                "ld1b {z11.b}, p0/z, [x22]");
+  COMPARE_MACRO(Ld1b(z15.VnH(),
+                     p1.Zeroing(),
+                     SVEMemOperand(x15, 7, SVE_MUL_VL)),
+                "ld1b {z15.h}, p1/z, [x15, #7, mul vl]");
+  COMPARE_MACRO(Ld1b(z19.VnS(),
+                     p2.Zeroing(),
+                     SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                "ld1b {z19.s}, p2/z, [sp, #-8, mul vl]");
+  COMPARE_MACRO(Ld1b(z23.VnD(), p3.Zeroing(), SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                "ld1b {z23.d}, p3/z, [x1]");
+  COMPARE_MACRO(Ld1b(z2.VnB(), p4.Zeroing(), SVEMemOperand(x1, x2)),
+                "ld1b {z2.b}, p4/z, [x1, x2]");
+  COMPARE_MACRO(Ld1b(z31.VnD(), p7.Zeroing(), SVEMemOperand(x9, x9, LSL, 0)),
+                "ld1b {z31.d}, p7/z, [x9, x9]");
+
+  COMPARE_MACRO(Ld1h(z15.VnH(),
+                     p1.Zeroing(),
+                     SVEMemOperand(x15, 7, SVE_MUL_VL)),
+                "ld1h {z15.h}, p1/z, [x15, #7, mul vl]");
+  COMPARE_MACRO(Ld1h(z19.VnS(),
+                     p2.Zeroing(),
+                     SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                "ld1h {z19.s}, p2/z, [sp, #-8, mul vl]");
+  COMPARE_MACRO(Ld1h(z23.VnD(), p3.Zeroing(), SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                "ld1h {z23.d}, p3/z, [x1]");
+  COMPARE_MACRO(Ld1h(z2.VnH(), p4.Zeroing(), SVEMemOperand(x1, x2, LSL, 1)),
+                "ld1h {z2.h}, p4/z, [x1, x2, lsl #1]");
+  COMPARE_MACRO(Ld1h(z31.VnD(), p7.Zeroing(), SVEMemOperand(x9, x9, LSL, 1)),
+                "ld1h {z31.d}, p7/z, [x9, x9, lsl #1]");
+
+  COMPARE_MACRO(Ld1w(z19.VnS(),
+                     p2.Zeroing(),
+                     SVEMemOperand(sp, -8, SVE_MUL_VL)),
+                "ld1w {z19.s}, p2/z, [sp, #-8, mul vl]");
+  COMPARE_MACRO(Ld1w(z23.VnD(), p3.Zeroing(), SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                "ld1w {z23.d}, p3/z, [x1]");
+  COMPARE_MACRO(Ld1w(z2.VnS(), p4.Zeroing(), SVEMemOperand(x1, x2, LSL, 2)),
+                "ld1w {z2.s}, p4/z, [x1, x2, lsl #2]");
+  COMPARE_MACRO(Ld1w(z31.VnD(), p7.Zeroing(), SVEMemOperand(x9, x9, LSL, 2)),
+                "ld1w {z31.d}, p7/z, [x9, x9, lsl #2]");
+
+  COMPARE_MACRO(Ld1d(z23.VnD(), p3.Zeroing(), SVEMemOperand(x1, 0, SVE_MUL_VL)),
+                "ld1d {z23.d}, p3/z, [x1]");
+  COMPARE_MACRO(Ld1d(z31.VnD(), p7.Zeroing(), SVEMemOperand(x9, x9, LSL, 3)),
+                "ld1d {z31.d}, p7/z, [x9, x9, lsl #3]");
+
+  // SVEMemOperand synthesis.
+  // Check that the MacroAssembler falls back on `CalculateSVEAddress` at the
+  // boundary conditions. We test this helper independently.
+  COMPARE_MACRO(Ld1b(z10.VnB(), p7.Zeroing(), SVEMemOperand(x0, 8, SVE_MUL_VL)),
+                "addvl x16, x0, #8\n"
+                "ld1b {z10.b}, p7/z, [x16]");
+  COMPARE_MACRO(Ld1h(z11.VnS(),
+                     p5.Zeroing(),
+                     SVEMemOperand(sp, -9, SVE_MUL_VL)),
+                "mov x16, #0xffffffffffffffdc\n"
+                "rdvl x17, #1\n"
+                "mul x16, x16, x17\n"
+                "asr x16, x16, #3\n"
+                "add x16, sp, x16\n"
+                "ld1h {z11.s}, p5/z, [x16]");
+  COMPARE_MACRO(Ld1w(z22.VnS(), p3.Zeroing(), SVEMemOperand(sp, 42)),
+                "add x16, sp, #0x2a (42)\n"
+                "ld1w {z22.s}, p3/z, [x16]");
+  COMPARE_MACRO(Ld1d(z22.VnD(), p1.Zeroing(), SVEMemOperand(x3, x4)),
+                "add x16, x3, x4\n"
+                "ld1d {z22.d}, p1/z, [x16]");
+  COMPARE_MACRO(Ld1b(z30.VnD(), p0.Zeroing(), SVEMemOperand(x9, xzr)),
+                "ld1b {z30.d}, p0/z, [x9]");
+  CLEANUP();
+}
+
+TEST(sve_st2_scalar_plus_immediate) {
+  SETUP();
+
+  COMPARE_PREFIX(st2b(z31.VnB(), z0.VnB(), p6, SVEMemOperand(x19)),
+                 "st2b {z31.b, z0.b}, p6, [x19]");
+  COMPARE_PREFIX(st2b(z31.VnB(),
+                      z0.VnB(),
+                      p6,
+                      SVEMemOperand(x19, 14, SVE_MUL_VL)),
+                 "st2b {z31.b, z0.b}, p6, [x19, #14, mul vl]");
+  COMPARE_PREFIX(st2b(z15.VnB(),
+                      z16.VnB(),
+                      p6,
+                      SVEMemOperand(x19, -16, SVE_MUL_VL)),
+                 "st2b {z15.b, z16.b}, p6, [x19, #-16, mul vl]");
+
+  COMPARE_PREFIX(st2h(z15.VnH(), z16.VnH(), p6, SVEMemOperand(x19)),
+                 "st2h {z15.h, z16.h}, p6, [x19]");
+  COMPARE_PREFIX(st2h(z15.VnH(),
+                      z16.VnH(),
+                      p0,
+                      SVEMemOperand(x19, 14, SVE_MUL_VL)),
+                 "st2h {z15.h, z16.h}, p0, [x19, #14, mul vl]");
+  COMPARE_PREFIX(st2h(z15.VnH(),
+                      z16.VnH(),
+                      p0,
+                      SVEMemOperand(x19, -16, SVE_MUL_VL)),
+                 "st2h {z15.h, z16.h}, p0, [x19, #-16, mul vl]");
+
+  COMPARE_PREFIX(st2w(z0.VnS(), z1.VnS(), p0, SVEMemOperand(x19)),
+                 "st2w {z0.s, z1.s}, p0, [x19]");
+  COMPARE_PREFIX(st2w(z0.VnS(),
+                      z1.VnS(),
+                      p0,
+                      SVEMemOperand(x19, 14, SVE_MUL_VL)),
+                 "st2w {z0.s, z1.s}, p0, [x19, #14, mul vl]");
+  COMPARE_PREFIX(st2w(z0.VnS(),
+                      z1.VnS(),
+                      p7,
+                      SVEMemOperand(x19, -16, SVE_MUL_VL)),
+                 "st2w {z0.s, z1.s}, p7, [x19, #-16, mul vl]");
+
+  COMPARE_PREFIX(st2d(z0.VnD(), z1.VnD(), p7, SVEMemOperand(x19)),
+                 "st2d {z0.d, z1.d}, p7, [x19]");
+  COMPARE_PREFIX(st2d(z31.VnD(),
+                      z0.VnD(),
+                      p7,
+                      SVEMemOperand(x19, 14, SVE_MUL_VL)),
+                 "st2d {z31.d, z0.d}, p7, [x19, #14, mul vl]");
+  COMPARE_PREFIX(st2d(z31.VnD(),
+                      z0.VnD(),
+                      p7,
+                      SVEMemOperand(x19, -16, SVE_MUL_VL)),
+                 "st2d {z31.d, z0.d}, p7, [x19, #-16, mul vl]");
+
+  CLEANUP();
+}
+
+TEST(sve_st3_scalar_plus_immediate) {
+  SETUP();
+
+  COMPARE_PREFIX(st3b(z30.VnB(), z31.VnB(), z0.VnB(), p7, SVEMemOperand(x19)),
+                 "st3b {z30.b, z31.b, z0.b}, p7, [x19]");
+  COMPARE_PREFIX(st3b(z30.VnB(),
+                      z31.VnB(),
+                      z0.VnB(),
+                      p6,
+                      SVEMemOperand(x19, 21, SVE_MUL_VL)),
+                 "st3b {z30.b, z31.b, z0.b}, p6, [x19, #21, mul vl]");
+  COMPARE_PREFIX(st3b(z30.VnB(),
+                      z31.VnB(),
+                      z0.VnB(),
+                      p6,
+                      SVEMemOperand(x19, -24, SVE_MUL_VL)),
+                 "st3b {z30.b, z31.b, z0.b}, p6, [x19, #-24, mul vl]");
+
+  COMPARE_PREFIX(st3h(z15.VnH(), z16.VnH(), z17.VnH(), p6, SVEMemOperand(x19)),
+                 "st3h {z15.h, z16.h, z17.h}, p6, [x19]");
+  COMPARE_PREFIX(st3h(z15.VnH(),
+                      z16.VnH(),
+                      z17.VnH(),
+                      p6,
+                      SVEMemOperand(x19, 21, SVE_MUL_VL)),
+                 "st3h {z15.h, z16.h, z17.h}, p6, [x19, #21, mul vl]");
+  COMPARE_PREFIX(st3h(z15.VnH(),
+                      z16.VnH(),
+                      z17.VnH(),
+                      p0,
+                      SVEMemOperand(x19, -24, SVE_MUL_VL)),
+                 "st3h {z15.h, z16.h, z17.h}, p0, [x19, #-24, mul vl]");
+
+  COMPARE_PREFIX(st3w(z15.VnS(), z16.VnS(), z17.VnS(), p0, SVEMemOperand(x19)),
+                 "st3w {z15.s, z16.s, z17.s}, p0, [x19]");
+  COMPARE_PREFIX(st3w(z0.VnS(),
+                      z1.VnS(),
+                      z2.VnS(),
+                      p0,
+                      SVEMemOperand(x19, 21, SVE_MUL_VL)),
+                 "st3w {z0.s, z1.s, z2.s}, p0, [x19, #21, mul vl]");
+  COMPARE_PREFIX(st3w(z0.VnS(),
+                      z1.VnS(),
+                      z2.VnS(),
+                      p0,
+                      SVEMemOperand(x19, -24, SVE_MUL_VL)),
+                 "st3w {z0.s, z1.s, z2.s}, p0, [x19, #-24, mul vl]");
+
+  COMPARE_PREFIX(st3d(z0.VnD(), z1.VnD(), z2.VnD(), p7, SVEMemOperand(x19)),
+                 "st3d {z0.d, z1.d, z2.d}, p7, [x19]");
+  COMPARE_PREFIX(st3d(z0.VnD(),
+                      z1.VnD(),
+                      z2.VnD(),
+                      p7,
+                      SVEMemOperand(x19, 21, SVE_MUL_VL)),
+                 "st3d {z0.d, z1.d, z2.d}, p7, [x19, #21, mul vl]");
+  COMPARE_PREFIX(st3d(z30.VnD(),
+                      z31.VnD(),
+                      z0.VnD(),
+                      p7,
+                      SVEMemOperand(x19, -24, SVE_MUL_VL)),
+                 "st3d {z30.d, z31.d, z0.d}, p7, [x19, #-24, mul vl]");
+
+  CLEANUP();
+}
+
+TEST(sve_st4_scalar_plus_immediate) {
+  SETUP();
+
+  COMPARE_PREFIX(st4b(z31.VnB(),
+                      z0.VnB(),
+                      z1.VnB(),
+                      z2.VnB(),
+                      p7,
+                      SVEMemOperand(x19)),
+                 "st4b {z31.b, z0.b, z1.b, z2.b}, p7, [x19]");
+  COMPARE_PREFIX(st4b(z31.VnB(),
+                      z0.VnB(),
+                      z1.VnB(),
+                      z2.VnB(),
+                      p7,
+                      SVEMemOperand(x19, 28, SVE_MUL_VL)),
+                 "st4b {z31.b, z0.b, z1.b, z2.b}, p7, [x19, #28, mul vl]");
+  COMPARE_PREFIX(st4b(z31.VnB(),
+                      z0.VnB(),
+                      z1.VnB(),
+                      z2.VnB(),
+                      p6,
+                      SVEMemOperand(x19, -32, SVE_MUL_VL)),
+                 "st4b {z31.b, z0.b, z1.b, z2.b}, p6, [x19, #-32, mul vl]");
+
+  COMPARE_PREFIX(st4h(z31.VnH(),
+                      z0.VnH(),
+                      z1.VnH(),
+                      z2.VnH(),
+                      p6,
+                      SVEMemOperand(x19)),
+                 "st4h {z31.h, z0.h, z1.h, z2.h}, p6, [x19]");
+  COMPARE_PREFIX(st4h(z15.VnH(),
+                      z16.VnH(),
+                      z17.VnH(),
+                      z18.VnH(),
+                      p6,
+                      SVEMemOperand(x19, 28, SVE_MUL_VL)),
+                 "st4h {z15.h, z16.h, z17.h, z18.h}, p6, [x19, #28, mul vl]");
+  COMPARE_PREFIX(st4h(z15.VnH(),
+                      z16.VnH(),
+                      z17.VnH(),
+                      z18.VnH(),
+                      p6,
+                      SVEMemOperand(x19, -32, SVE_MUL_VL)),
+                 "st4h {z15.h, z16.h, z17.h, z18.h}, p6, "
+                 "[x19, #-32, mul vl]");
+
+  COMPARE_PREFIX(st4w(z15.VnS(),
+                      z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      p0,
+                      SVEMemOperand(x19)),
+                 "st4w {z15.s, z16.s, z17.s, z18.s}, p0, [x19]");
+  COMPARE_PREFIX(st4w(z15.VnS(),
+                      z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      p0,
+                      SVEMemOperand(x19, 28, SVE_MUL_VL)),
+                 "st4w {z15.s, z16.s, z17.s, z18.s}, p0, [x19, #28, mul vl]");
+  COMPARE_PREFIX(st4w(z0.VnS(),
+                      z1.VnS(),
+                      z2.VnS(),
+                      z3.VnS(),
+                      p0,
+                      SVEMemOperand(x19, -32, SVE_MUL_VL)),
+                 "st4w {z0.s, z1.s, z2.s, z3.s}, p0, [x19, #-32, mul vl]");
+
+  COMPARE_PREFIX(st4d(z0.VnD(),
+                      z1.VnD(),
+                      z2.VnD(),
+                      z3.VnD(),
+                      p0,
+                      SVEMemOperand(x19)),
+                 "st4d {z0.d, z1.d, z2.d, z3.d}, p0, [x19]");
+  COMPARE_PREFIX(st4d(z0.VnD(),
+                      z1.VnD(),
+                      z2.VnD(),
+                      z3.VnD(),
+                      p7,
+                      SVEMemOperand(x19, 28, SVE_MUL_VL)),
+                 "st4d {z0.d, z1.d, z2.d, z3.d}, p7, [x19, #28, mul vl]");
+  COMPARE_PREFIX(st4d(z0.VnD(),
+                      z1.VnD(),
+                      z2.VnD(),
+                      z3.VnD(),
+                      p7,
+                      SVEMemOperand(x19, -32, SVE_MUL_VL)),
+                 "st4d {z0.d, z1.d, z2.d, z3.d}, p7, [x19, #-32, mul vl]");
+
+  CLEANUP();
+}
+
+TEST(sve_st2_scalar_plus_scalar) {
+  SETUP();
+
+  COMPARE_PREFIX(st2b(z25.VnB(), z26.VnB(), p1, SVEMemOperand(x20, x19)),
+                 "st2b {z25.b, z26.b}, p1, [x20, x19]");
+  COMPARE_PREFIX(st2b(z25.VnB(), z26.VnB(), p1, SVEMemOperand(sp, x19)),
+                 "st2b {z25.b, z26.b}, p1, [sp, x19]");
+  COMPARE_PREFIX(st2b(z31.VnB(), z0.VnB(), p1, SVEMemOperand(sp, x19)),
+                 "st2b {z31.b, z0.b}, p1, [sp, x19]");
+
+  COMPARE_PREFIX(st2h(z31.VnH(), z0.VnH(), p1, SVEMemOperand(x20, x19, LSL, 1)),
+                 "st2h {z31.h, z0.h}, p1, [x20, x19, lsl #1]");
+  COMPARE_PREFIX(st2h(z31.VnH(), z0.VnH(), p7, SVEMemOperand(sp, x19, LSL, 1)),
+                 "st2h {z31.h, z0.h}, p7, [sp, x19, lsl #1]");
+  COMPARE_PREFIX(st2h(z31.VnH(), z0.VnH(), p7, SVEMemOperand(sp, x19, LSL, 1)),
+                 "st2h {z31.h, z0.h}, p7, [sp, x19, lsl #1]");
+
+  COMPARE_PREFIX(st2w(z16.VnS(),
+                      z17.VnS(),
+                      p7,
+                      SVEMemOperand(x20, x19, LSL, 2)),
+                 "st2w {z16.s, z17.s}, p7, [x20, x19, lsl #2]");
+  COMPARE_PREFIX(st2w(z16.VnS(), z17.VnS(), p7, SVEMemOperand(sp, x19, LSL, 2)),
+                 "st2w {z16.s, z17.s}, p7, [sp, x19, lsl #2]");
+  COMPARE_PREFIX(st2w(z16.VnS(), z17.VnS(), p0, SVEMemOperand(sp, x19, LSL, 2)),
+                 "st2w {z16.s, z17.s}, p0, [sp, x19, lsl #2]");
+
+  COMPARE_PREFIX(st2d(z16.VnD(),
+                      z17.VnD(),
+                      p0,
+                      SVEMemOperand(x20, x19, LSL, 3)),
+                 "st2d {z16.d, z17.d}, p0, [x20, x19, lsl #3]");
+  COMPARE_PREFIX(st2d(z25.VnD(), z26.VnD(), p0, SVEMemOperand(sp, x19, LSL, 3)),
+                 "st2d {z25.d, z26.d}, p0, [sp, x19, lsl #3]");
+  COMPARE_PREFIX(st2d(z25.VnD(), z26.VnD(), p0, SVEMemOperand(sp, x19, LSL, 3)),
+                 "st2d {z25.d, z26.d}, p0, [sp, x19, lsl #3]");
+
+  CLEANUP();
+}
+
+TEST(sve_st3_scalar_plus_scalar) {
+  SETUP();
+
+  COMPARE_PREFIX(st3b(z25.VnB(),
+                      z26.VnB(),
+                      z27.VnB(),
+                      p1,
+                      SVEMemOperand(x20, x19)),
+                 "st3b {z25.b, z26.b, z27.b}, p1, [x20, x19]");
+  COMPARE_PREFIX(st3b(z25.VnB(),
+                      z26.VnB(),
+                      z27.VnB(),
+                      p1,
+                      SVEMemOperand(sp, x19)),
+                 "st3b {z25.b, z26.b, z27.b}, p1, [sp, x19]");
+  COMPARE_PREFIX(st3b(z30.VnB(),
+                      z31.VnB(),
+                      z0.VnB(),
+                      p1,
+                      SVEMemOperand(sp, x19)),
+                 "st3b {z30.b, z31.b, z0.b}, p1, [sp, x19]");
+
+  COMPARE_PREFIX(st3h(z30.VnH(),
+                      z31.VnH(),
+                      z0.VnH(),
+                      p1,
+                      SVEMemOperand(x20, x19, LSL, 1)),
+                 "st3h {z30.h, z31.h, z0.h}, p1, [x20, x19, lsl #1]");
+  COMPARE_PREFIX(st3h(z30.VnH(),
+                      z31.VnH(),
+                      z0.VnH(),
+                      p7,
+                      SVEMemOperand(sp, x19, LSL, 1)),
+                 "st3h {z30.h, z31.h, z0.h}, p7, [sp, x19, lsl #1]");
+  COMPARE_PREFIX(st3h(z30.VnH(),
+                      z31.VnH(),
+                      z0.VnH(),
+                      p7,
+                      SVEMemOperand(sp, x19, LSL, 1)),
+                 "st3h {z30.h, z31.h, z0.h}, p7, [sp, x19, lsl #1]");
+
+  COMPARE_PREFIX(st3w(z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      p7,
+                      SVEMemOperand(x20, x19, LSL, 2)),
+                 "st3w {z16.s, z17.s, z18.s}, p7, [x20, x19, lsl #2]");
+  COMPARE_PREFIX(st3w(z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      p7,
+                      SVEMemOperand(sp, x19, LSL, 2)),
+                 "st3w {z16.s, z17.s, z18.s}, p7, [sp, x19, lsl #2]");
+  COMPARE_PREFIX(st3w(z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      p0,
+                      SVEMemOperand(sp, x19, LSL, 2)),
+                 "st3w {z16.s, z17.s, z18.s}, p0, [sp, x19, lsl #2]");
+
+  COMPARE_PREFIX(st3d(z16.VnD(),
+                      z17.VnD(),
+                      z18.VnD(),
+                      p0,
+                      SVEMemOperand(x20, x19, LSL, 3)),
+                 "st3d {z16.d, z17.d, z18.d}, p0, [x20, x19, lsl #3]");
+  COMPARE_PREFIX(st3d(z25.VnD(),
+                      z26.VnD(),
+                      z27.VnD(),
+                      p0,
+                      SVEMemOperand(sp, x19, LSL, 3)),
+                 "st3d {z25.d, z26.d, z27.d}, p0, [sp, x19, lsl #3]");
+  COMPARE_PREFIX(st3d(z25.VnD(),
+                      z26.VnD(),
+                      z27.VnD(),
+                      p0,
+                      SVEMemOperand(sp, x19, LSL, 3)),
+                 "st3d {z25.d, z26.d, z27.d}, p0, [sp, x19, lsl #3]");
+
+  CLEANUP();
+}
+
+TEST(sve_st4_scalar_plus_scalar) {
+  SETUP();
+
+  COMPARE_PREFIX(st4b(z25.VnB(),
+                      z26.VnB(),
+                      z27.VnB(),
+                      z28.VnB(),
+                      p0,
+                      SVEMemOperand(x20, x19)),
+                 "st4b {z25.b, z26.b, z27.b, z28.b}, p0, [x20, x19]");
+  COMPARE_PREFIX(st4b(z25.VnB(),
+                      z26.VnB(),
+                      z27.VnB(),
+                      z28.VnB(),
+                      p1,
+                      SVEMemOperand(sp, x19)),
+                 "st4b {z25.b, z26.b, z27.b, z28.b}, p1, [sp, x19]");
+  COMPARE_PREFIX(st4b(z25.VnB(),
+                      z26.VnB(),
+                      z27.VnB(),
+                      z28.VnB(),
+                      p1,
+                      SVEMemOperand(sp, x19)),
+                 "st4b {z25.b, z26.b, z27.b, z28.b}, p1, [sp, x19]");
+
+  COMPARE_PREFIX(st4h(z31.VnH(),
+                      z0.VnH(),
+                      z1.VnH(),
+                      z2.VnH(),
+                      p1,
+                      SVEMemOperand(x20, x19, LSL, 1)),
+                 "st4h {z31.h, z0.h, z1.h, z2.h}, p1, [x20, x19, lsl #1]");
+  COMPARE_PREFIX(st4h(z31.VnH(),
+                      z0.VnH(),
+                      z1.VnH(),
+                      z2.VnH(),
+                      p1,
+                      SVEMemOperand(sp, x19, LSL, 1)),
+                 "st4h {z31.h, z0.h, z1.h, z2.h}, p1, [sp, x19, lsl #1]");
+  COMPARE_PREFIX(st4h(z31.VnH(),
+                      z0.VnH(),
+                      z1.VnH(),
+                      z2.VnH(),
+                      p7,
+                      SVEMemOperand(sp, x19, LSL, 1)),
+                 "st4h {z31.h, z0.h, z1.h, z2.h}, p7, [sp, x19, lsl #1]");
+
+  COMPARE_PREFIX(st4w(z31.VnS(),
+                      z0.VnS(),
+                      z1.VnS(),
+                      z2.VnS(),
+                      p7,
+                      SVEMemOperand(x20, x19, LSL, 2)),
+                 "st4w {z31.s, z0.s, z1.s, z2.s}, p7, [x20, x19, lsl #2]");
+  COMPARE_PREFIX(st4w(z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      z19.VnS(),
+                      p7,
+                      SVEMemOperand(sp, x19, LSL, 2)),
+                 "st4w {z16.s, z17.s, z18.s, z19.s}, p7, [sp, x19, lsl #2]");
+  COMPARE_PREFIX(st4w(z16.VnS(),
+                      z17.VnS(),
+                      z18.VnS(),
+                      z19.VnS(),
+                      p7,
+                      SVEMemOperand(sp, x19, LSL, 2)),
+                 "st4w {z16.s, z17.s, z18.s, z19.s}, p7, [sp, x19, lsl #2]");
+
+  COMPARE_PREFIX(st4d(z16.VnD(),
+                      z17.VnD(),
+                      z18.VnD(),
+                      z19.VnD(),
+                      p0,
+                      SVEMemOperand(x20, x19, LSL, 3)),
+                 "st4d {z16.d, z17.d, z18.d, z19.d}, p0, [x20, x19, lsl #3]");
+  COMPARE_PREFIX(st4d(z16.VnD(),
+                      z17.VnD(),
+                      z18.VnD(),
+                      z19.VnD(),
+                      p0,
+                      SVEMemOperand(sp, x19, LSL, 3)),
+                 "st4d {z16.d, z17.d, z18.d, z19.d}, p0, [sp, x19, lsl #3]");
+  COMPARE_PREFIX(st4d(z25.VnD(),
+                      z26.VnD(),
+                      z27.VnD(),
+                      z28.VnD(),
+                      p0,
+                      SVEMemOperand(sp, x19, LSL, 3)),
+                 "st4d {z25.d, z26.d, z27.d, z28.d}, p0, [sp, x19, lsl #3]");
+
+  CLEANUP();
+}
+
+TEST(sve_mul_index) {
+  SETUP();
+
+  COMPARE_PREFIX(sdot(z17.VnD(), z21.VnH(), z15.VnH(), 0),
+                 "sdot z17.d, z21.h, z15.h[0]");
+  COMPARE_PREFIX(sdot(z28.VnS(), z9.VnB(), z7.VnB(), 1),
+                 "sdot z28.s, z9.b, z7.b[1]");
+  COMPARE_PREFIX(udot(z26.VnD(), z15.VnH(), z1.VnH(), 1),
+                 "udot z26.d, z15.h, z1.h[1]");
+  COMPARE_PREFIX(udot(z23.VnS(), z24.VnB(), z5.VnB(), 3),
+                 "udot z23.s, z24.b, z5.b[3]");
+
+  CLEANUP();
+}
+
+TEST(sve_mul_index_macro) {
+  SETUP();
+
+  COMPARE_MACRO(Sdot(z0.VnS(), z0.VnS(), z2.VnB(), z4.VnB(), 0),
+                "sdot z0.s, z2.b, z4.b[0]");
+  COMPARE_MACRO(Sdot(z3.VnD(), z4.VnD(), z3.VnH(), z5.VnH(), 1),
+                "movprfx z31, z4\n"
+                "sdot z31.d, z3.h, z5.h[1]\n"
+                "mov z3.d, z31.d");
+  COMPARE_MACRO(Sdot(z4.VnS(), z5.VnS(), z6.VnB(), z4.VnB(), 2),
+                "movprfx z31, z5\n"
+                "sdot z31.s, z6.b, z4.b[2]\n"
+                "mov z4.d, z31.d");
+  COMPARE_MACRO(Sdot(z6.VnD(), z7.VnD(), z8.VnH(), z9.VnH(), 0),
+                "movprfx z6, z7\n"
+                "sdot z6.d, z8.h, z9.h[0]");
+  COMPARE_MACRO(Sdot(z5.VnD(), z5.VnD(), z5.VnH(), z5.VnH(), 1),
+                "sdot z5.d, z5.h, z5.h[1]");
+
+  COMPARE_MACRO(Udot(z0.VnD(), z0.VnD(), z2.VnH(), z4.VnH(), 1),
+                "udot z0.d, z2.h, z4.h[1]");
+  COMPARE_MACRO(Udot(z3.VnS(), z4.VnS(), z3.VnB(), z5.VnB(), 3),
+                "movprfx z31, z4\n"
+                "udot z31.s, z3.b, z5.b[3]\n"
+                "mov z3.d, z31.d");
+  COMPARE_MACRO(Udot(z4.VnD(), z5.VnD(), z6.VnH(), z4.VnH(), 0),
+                "movprfx z31, z5\n"
+                "udot z31.d, z6.h, z4.h[0]\n"
+                "mov z4.d, z31.d");
+  COMPARE_MACRO(Udot(z9.VnS(), z8.VnS(), z7.VnB(), z6.VnB(), 2),
+                "movprfx z9, z8\n"
+                "udot z9.s, z7.b, z6.b[2]");
+  COMPARE_MACRO(Udot(z5.VnS(), z5.VnS(), z5.VnB(), z5.VnB(), 1),
+                "udot z5.s, z5.b, z5.b[1]");
+  CLEANUP();
+}
+
+TEST(sve_partition_break) {
+  SETUP();
+
+  COMPARE_PREFIX(brkas(p8.VnB(), p5.Zeroing(), p4.VnB()),
+                 "brkas p8.b, p5/z, p4.b");
+  COMPARE_PREFIX(brka(p11.VnB(), p7.Zeroing(), p15.VnB()),
+                 "brka p11.b, p7/z, p15.b");
+  COMPARE_PREFIX(brka(p12.VnB(), p8.Merging(), p13.VnB()),
+                 "brka p12.b, p8/m, p13.b");
+  COMPARE_PREFIX(brkbs(p6.VnB(), p9.Zeroing(), p14.VnB()),
+                 "brkbs p6.b, p9/z, p14.b");
+  COMPARE_PREFIX(brkb(p11.VnB(), p6.Zeroing(), p4.VnB()),
+                 "brkb p11.b, p6/z, p4.b");
+  COMPARE_PREFIX(brkb(p12.VnB(), p7.Merging(), p5.VnB()),
+                 "brkb p12.b, p7/m, p5.b");
+  COMPARE_PREFIX(brkns(p2.VnB(), p11.Zeroing(), p0.VnB(), p2.VnB()),
+                 "brkns p2.b, p11/z, p0.b, p2.b");
+  COMPARE_PREFIX(brkn(p4.VnB(), p3.Zeroing(), p1.VnB(), p4.VnB()),
+                 "brkn p4.b, p3/z, p1.b, p4.b");
+
+  COMPARE_MACRO(Brkns(p3.VnB(), p10.Zeroing(), p2.VnB(), p5.VnB()),
+                "mov p3.b, p5.b\n"
+                "brkns p3.b, p10/z, p2.b, p3.b");
+  COMPARE_MACRO(Brkn(p5.VnB(), p4.Zeroing(), p3.VnB(), p7.VnB()),
+                "mov p5.b, p7.b\n"
+                "brkn p5.b, p4/z, p3.b, p5.b");
+
+  CLEANUP();
+}
+
+TEST(sve_permute_predicate) {
+  SETUP();
+
+  COMPARE_PREFIX(rev(p15.VnB(), p6.VnB()), "rev p15.b, p6.b");
+  COMPARE_PREFIX(rev(p15.VnH(), p6.VnH()), "rev p15.h, p6.h");
+  COMPARE_PREFIX(rev(p15.VnS(), p6.VnS()), "rev p15.s, p6.s");
+  COMPARE_PREFIX(rev(p15.VnD(), p6.VnD()), "rev p15.d, p6.d");
+  COMPARE_PREFIX(trn1(p13.VnB(), p15.VnB(), p12.VnB()),
+                 "trn1 p13.b, p15.b, p12.b");
+  COMPARE_PREFIX(trn1(p13.VnH(), p15.VnH(), p12.VnH()),
+                 "trn1 p13.h, p15.h, p12.h");
+  COMPARE_PREFIX(trn1(p13.VnS(), p15.VnS(), p12.VnS()),
+                 "trn1 p13.s, p15.s, p12.s");
+  COMPARE_PREFIX(trn1(p13.VnD(), p15.VnD(), p12.VnD()),
+                 "trn1 p13.d, p15.d, p12.d");
+  COMPARE_PREFIX(trn2(p5.VnB(), p5.VnB(), p6.VnB()), "trn2 p5.b, p5.b, p6.b");
+  COMPARE_PREFIX(trn2(p5.VnH(), p5.VnH(), p6.VnH()), "trn2 p5.h, p5.h, p6.h");
+  COMPARE_PREFIX(trn2(p5.VnS(), p5.VnS(), p6.VnS()), "trn2 p5.s, p5.s, p6.s");
+  COMPARE_PREFIX(trn2(p5.VnD(), p5.VnD(), p6.VnD()), "trn2 p5.d, p5.d, p6.d");
+  COMPARE_PREFIX(uzp1(p14.VnB(), p4.VnB(), p14.VnB()),
+                 "uzp1 p14.b, p4.b, p14.b");
+  COMPARE_PREFIX(uzp1(p14.VnH(), p4.VnH(), p14.VnH()),
+                 "uzp1 p14.h, p4.h, p14.h");
+  COMPARE_PREFIX(uzp1(p14.VnS(), p4.VnS(), p14.VnS()),
+                 "uzp1 p14.s, p4.s, p14.s");
+  COMPARE_PREFIX(uzp1(p14.VnD(), p4.VnD(), p14.VnD()),
+                 "uzp1 p14.d, p4.d, p14.d");
+  COMPARE_PREFIX(uzp2(p6.VnB(), p11.VnB(), p2.VnB()), "uzp2 p6.b, p11.b, p2.b");
+  COMPARE_PREFIX(uzp2(p6.VnH(), p11.VnH(), p2.VnH()), "uzp2 p6.h, p11.h, p2.h");
+  COMPARE_PREFIX(uzp2(p6.VnS(), p11.VnS(), p2.VnS()), "uzp2 p6.s, p11.s, p2.s");
+  COMPARE_PREFIX(uzp2(p6.VnD(), p11.VnD(), p2.VnD()), "uzp2 p6.d, p11.d, p2.d");
+  COMPARE_PREFIX(zip1(p13.VnB(), p4.VnB(), p12.VnB()),
+                 "zip1 p13.b, p4.b, p12.b");
+  COMPARE_PREFIX(zip1(p13.VnH(), p4.VnH(), p12.VnH()),
+                 "zip1 p13.h, p4.h, p12.h");
+  COMPARE_PREFIX(zip1(p13.VnS(), p4.VnS(), p12.VnS()),
+                 "zip1 p13.s, p4.s, p12.s");
+  COMPARE_PREFIX(zip1(p13.VnD(), p4.VnD(), p12.VnD()),
+                 "zip1 p13.d, p4.d, p12.d");
+  COMPARE_PREFIX(zip2(p1.VnB(), p15.VnB(), p2.VnB()), "zip2 p1.b, p15.b, p2.b");
+  COMPARE_PREFIX(zip2(p1.VnH(), p15.VnH(), p2.VnH()), "zip2 p1.h, p15.h, p2.h");
+  COMPARE_PREFIX(zip2(p1.VnS(), p15.VnS(), p2.VnS()), "zip2 p1.s, p15.s, p2.s");
+  COMPARE_PREFIX(zip2(p1.VnD(), p15.VnD(), p2.VnD()), "zip2 p1.d, p15.d, p2.d");
+  COMPARE_PREFIX(punpkhi(p12.VnH(), p6.VnB()), "punpkhi p12.h, p6.b");
+  COMPARE_PREFIX(punpklo(p4.VnH(), p14.VnB()), "punpklo p4.h, p14.b");
+
+  CLEANUP();
+}
+
+TEST(sve_permute_vector_extract) {
+  SETUP();
+
+  COMPARE_MACRO(Ext(z10.VnB(), z10.VnB(), z2.VnB(), 0),
+                "ext z10.b, z10.b, z2.b, #0");
+  COMPARE_MACRO(Ext(z10.VnB(), z10.VnB(), z2.VnB(), 1),
+                "ext z10.b, z10.b, z2.b, #1");
+  COMPARE_MACRO(Ext(z2.VnB(), z2.VnB(), z10.VnB(), 254),
+                "ext z2.b, z2.b, z10.b, #254");
+  COMPARE_MACRO(Ext(z2.VnB(), z2.VnB(), z10.VnB(), 255),
+                "ext z2.b, z2.b, z10.b, #255");
+  COMPARE_MACRO(Ext(z2.VnB(), z4.VnB(), z10.VnB(), 127),
+                "movprfx z2, z4\n"
+                "ext z2.b, z2.b, z10.b, #127");
+  COMPARE_MACRO(Ext(z2.VnB(), z12.VnB(), z2.VnB(), 2),
+                "movprfx z31, z12\n"
+                "ext z31.b, z31.b, z2.b, #2\n"
+                "mov z2.d, z31.d");
+  CLEANUP();
+}
+
+TEST(sve_permute_vector_interleaving) {
+  SETUP();
+
+  COMPARE_PREFIX(trn1(z25.VnB(), z31.VnB(), z17.VnB()),
+                 "trn1 z25.b, z31.b, z17.b");
+  COMPARE_PREFIX(trn1(z25.VnH(), z31.VnH(), z17.VnH()),
+                 "trn1 z25.h, z31.h, z17.h");
+  COMPARE_PREFIX(trn1(z25.VnS(), z31.VnS(), z17.VnS()),
+                 "trn1 z25.s, z31.s, z17.s");
+  COMPARE_PREFIX(trn1(z25.VnD(), z31.VnD(), z17.VnD()),
+                 "trn1 z25.d, z31.d, z17.d");
+  COMPARE_PREFIX(trn2(z23.VnB(), z19.VnB(), z5.VnB()),
+                 "trn2 z23.b, z19.b, z5.b");
+  COMPARE_PREFIX(trn2(z23.VnH(), z19.VnH(), z5.VnH()),
+                 "trn2 z23.h, z19.h, z5.h");
+  COMPARE_PREFIX(trn2(z23.VnS(), z19.VnS(), z5.VnS()),
+                 "trn2 z23.s, z19.s, z5.s");
+  COMPARE_PREFIX(trn2(z23.VnD(), z19.VnD(), z5.VnD()),
+                 "trn2 z23.d, z19.d, z5.d");
+  COMPARE_PREFIX(uzp1(z3.VnB(), z27.VnB(), z10.VnB()),
+                 "uzp1 z3.b, z27.b, z10.b");
+  COMPARE_PREFIX(uzp1(z3.VnH(), z27.VnH(), z10.VnH()),
+                 "uzp1 z3.h, z27.h, z10.h");
+  COMPARE_PREFIX(uzp1(z3.VnS(), z27.VnS(), z10.VnS()),
+                 "uzp1 z3.s, z27.s, z10.s");
+  COMPARE_PREFIX(uzp1(z3.VnD(), z27.VnD(), z10.VnD()),
+                 "uzp1 z3.d, z27.d, z10.d");
+  COMPARE_PREFIX(uzp2(z22.VnB(), z26.VnB(), z15.VnB()),
+                 "uzp2 z22.b, z26.b, z15.b");
+  COMPARE_PREFIX(uzp2(z22.VnH(), z26.VnH(), z15.VnH()),
+                 "uzp2 z22.h, z26.h, z15.h");
+  COMPARE_PREFIX(uzp2(z22.VnS(), z26.VnS(), z15.VnS()),
+                 "uzp2 z22.s, z26.s, z15.s");
+  COMPARE_PREFIX(uzp2(z22.VnD(), z26.VnD(), z15.VnD()),
+                 "uzp2 z22.d, z26.d, z15.d");
+  COMPARE_PREFIX(zip1(z31.VnB(), z2.VnB(), z20.VnB()),
+                 "zip1 z31.b, z2.b, z20.b");
+  COMPARE_PREFIX(zip1(z31.VnH(), z2.VnH(), z20.VnH()),
+                 "zip1 z31.h, z2.h, z20.h");
+  COMPARE_PREFIX(zip1(z31.VnS(), z2.VnS(), z20.VnS()),
+                 "zip1 z31.s, z2.s, z20.s");
+  COMPARE_PREFIX(zip1(z31.VnD(), z2.VnD(), z20.VnD()),
+                 "zip1 z31.d, z2.d, z20.d");
+  COMPARE_PREFIX(zip2(z15.VnB(), z23.VnB(), z12.VnB()),
+                 "zip2 z15.b, z23.b, z12.b");
+  COMPARE_PREFIX(zip2(z15.VnH(), z23.VnH(), z12.VnH()),
+                 "zip2 z15.h, z23.h, z12.h");
+  COMPARE_PREFIX(zip2(z15.VnS(), z23.VnS(), z12.VnS()),
+                 "zip2 z15.s, z23.s, z12.s");
+  COMPARE_PREFIX(zip2(z15.VnD(), z23.VnD(), z12.VnD()),
+                 "zip2 z15.d, z23.d, z12.d");
+
+  CLEANUP();
+}
+
+TEST(sve_cpy_reg) {
+  SETUP();
+
+  COMPARE_PREFIX(cpy(z1.VnB(), p2.Merging(), wsp), "mov z1.b, p2/m, wsp");
+  COMPARE_PREFIX(cpy(z2.VnH(), p6.Merging(), w3), "mov z2.h, p6/m, w3");
+  COMPARE_PREFIX(cpy(z3.VnS(), p7.Merging(), x5), "mov z3.s, p7/m, w5");
+  COMPARE_PREFIX(cpy(z4.VnD(), p7.Merging(), x30), "mov z4.d, p7/m, x30");
+  COMPARE_PREFIX(cpy(z5.VnD(), p7.Merging(), sp), "mov z5.d, p7/m, sp");
+
+  COMPARE_PREFIX(cpy(z27.VnB(), p3.Merging(), b23), "mov z27.b, p3/m, b23");
+  COMPARE_PREFIX(cpy(z27.VnH(), p3.Merging(), h23), "mov z27.h, p3/m, h23");
+  COMPARE_PREFIX(cpy(z27.VnS(), p3.Merging(), s23), "mov z27.s, p3/m, s23");
+  COMPARE_PREFIX(cpy(z27.VnD(), p3.Merging(), d23), "mov z27.d, p3/m, d23");
+
+  COMPARE_PREFIX(mov(z1.VnB(), p2.Merging(), wsp), "mov z1.b, p2/m, wsp");
+  COMPARE_PREFIX(mov(z4.VnD(), p7.Merging(), x30), "mov z4.d, p7/m, x30");
+  COMPARE_PREFIX(mov(z5.VnD(), p7.Merging(), sp), "mov z5.d, p7/m, sp");
+  COMPARE_PREFIX(mov(z27.VnB(), p3.Merging(), b23), "mov z27.b, p3/m, b23");
+  COMPARE_PREFIX(mov(z27.VnD(), p3.Merging(), d23), "mov z27.d, p3/m, d23");
+
+  COMPARE_MACRO(Mov(z1.VnB(), p2.Merging(), wsp), "mov z1.b, p2/m, wsp");
+  COMPARE_MACRO(Mov(z4.VnD(), p7.Merging(), x30), "mov z4.d, p7/m, x30");
+  COMPARE_MACRO(Mov(z5.VnD(), p7.Merging(), sp), "mov z5.d, p7/m, sp");
+  COMPARE_MACRO(Mov(z27.VnB(), p3.Merging(), b23), "mov z27.b, p3/m, b23");
+  COMPARE_MACRO(Mov(z27.VnD(), p3.Merging(), d23), "mov z27.d, p3/m, d23");
+
+  CLEANUP();
+}
+
+TEST(sve_permute_vector_predicated) {
+  SETUP();
+
+  COMPARE_PREFIX(compact(z13.VnS(), p7, z1.VnS()), "compact z13.s, p7, z1.s");
+  COMPARE_PREFIX(compact(z13.VnD(), p7, z1.VnD()), "compact z13.d, p7, z1.d");
+  COMPARE_PREFIX(splice(z7.VnB(), p6, z7.VnB(), z2.VnB()),
+                 "splice z7.b, p6, z7.b, z2.b");
+  COMPARE_PREFIX(splice(z7.VnH(), p6, z7.VnH(), z2.VnH()),
+                 "splice z7.h, p6, z7.h, z2.h");
+  COMPARE_PREFIX(splice(z7.VnS(), p6, z7.VnS(), z2.VnS()),
+                 "splice z7.s, p6, z7.s, z2.s");
+  COMPARE_PREFIX(splice(z7.VnD(), p6, z7.VnD(), z2.VnD()),
+                 "splice z7.d, p6, z7.d, z2.d");
+
+  COMPARE_MACRO(Splice(z0.VnB(), p1, z2.VnB(), z3.VnB()),
+                "movprfx z0, z2\n"
+                "splice z0.b, p1, z0.b, z3.b");
+  COMPARE_MACRO(Splice(z0.VnH(), p1, z2.VnH(), z0.VnH()),
+                "movprfx z31, z2\n"
+                "splice z31.h, p1, z31.h, z0.h\n"
+                "mov z0.d, z31.d");
+
+  COMPARE_PREFIX(clasta(z4.VnB(), p2, z4.VnB(), z12.VnB()),
+                 "clasta z4.b, p2, z4.b, z12.b");
+  COMPARE_PREFIX(clasta(z4.VnH(), p2, z4.VnH(), z12.VnH()),
+                 "clasta z4.h, p2, z4.h, z12.h");
+  COMPARE_PREFIX(clasta(z4.VnS(), p2, z4.VnS(), z12.VnS()),
+                 "clasta z4.s, p2, z4.s, z12.s");
+  COMPARE_PREFIX(clasta(z4.VnD(), p2, z4.VnD(), z12.VnD()),
+                 "clasta z4.d, p2, z4.d, z12.d");
+  COMPARE_PREFIX(clastb(z29.VnB(), p7, z29.VnB(), z26.VnB()),
+                 "clastb z29.b, p7, z29.b, z26.b");
+  COMPARE_PREFIX(clastb(z29.VnH(), p7, z29.VnH(), z26.VnH()),
+                 "clastb z29.h, p7, z29.h, z26.h");
+  COMPARE_PREFIX(clastb(z29.VnS(), p7, z29.VnS(), z26.VnS()),
+                 "clastb z29.s, p7, z29.s, z26.s");
+  COMPARE_PREFIX(clastb(z29.VnD(), p7, z29.VnD(), z26.VnD()),
+                 "clastb z29.d, p7, z29.d, z26.d");
+
+  COMPARE_MACRO(Clasta(z5.VnD(), p2, z4.VnD(), z12.VnD()),
+                "movprfx z5, z4\n"
+                "clasta z5.d, p2, z5.d, z12.d");
+  COMPARE_MACRO(Clastb(z30.VnD(), p7, z29.VnD(), z26.VnD()),
+                "movprfx z30, z29\n"
+                "clastb z30.d, p7, z30.d, z26.d");
+  COMPARE_MACRO(Clasta(z9.VnH(), p3, z8.VnH(), z9.VnH()),
+                "movprfx z31, z8\n"
+                "clasta z31.h, p3, z31.h, z9.h\n"
+                "mov z9.d, z31.d");
+  COMPARE_MACRO(Clastb(z1.VnS(), p1, z1.VnS(), z1.VnS()),
+                "clastb z1.s, p1, z1.s, z1.s");
+
+  COMPARE_PREFIX(clasta(w6, p0, w6, z13.VnB()), "clasta w6, p0, w6, z13.b");
+  COMPARE_PREFIX(clasta(w6, p0, w6, z13.VnH()), "clasta w6, p0, w6, z13.h");
+  COMPARE_PREFIX(clasta(w6, p0, w6, z13.VnS()), "clasta w6, p0, w6, z13.s");
+  COMPARE_PREFIX(clasta(x6, p0, x6, z13.VnD()), "clasta x6, p0, x6, z13.d");
+  COMPARE_PREFIX(clastb(w21, p2, w21, z27.VnB()), "clastb w21, p2, w21, z27.b");
+  COMPARE_PREFIX(clastb(w21, p2, w21, z27.VnH()), "clastb w21, p2, w21, z27.h");
+  COMPARE_PREFIX(clastb(w21, p2, w21, z27.VnS()), "clastb w21, p2, w21, z27.s");
+  COMPARE_PREFIX(clastb(x21, p2, x21, z27.VnD()), "clastb x21, p2, x21, z27.d");
+
+  COMPARE_PREFIX(clasta(b8, p6, b8, z7.VnB()), "clasta b8, p6, b8, z7.b");
+  COMPARE_PREFIX(clasta(h8, p6, h8, z7.VnH()), "clasta h8, p6, h8, z7.h");
+  COMPARE_PREFIX(clasta(s8, p6, s8, z7.VnS()), "clasta s8, p6, s8, z7.s");
+  COMPARE_PREFIX(clasta(d8, p6, d8, z7.VnD()), "clasta d8, p6, d8, z7.d");
+  COMPARE_PREFIX(clastb(b17, p0, b17, z19.VnB()), "clastb b17, p0, b17, z19.b");
+  COMPARE_PREFIX(clastb(h17, p0, h17, z19.VnH()), "clastb h17, p0, h17, z19.h");
+  COMPARE_PREFIX(clastb(s17, p0, s17, z19.VnS()), "clastb s17, p0, s17, z19.s");
+  COMPARE_PREFIX(clastb(d17, p0, d17, z19.VnD()), "clastb d17, p0, d17, z19.d");
+
+  COMPARE_PREFIX(lasta(w15, p3, z3.VnB()), "lasta w15, p3, z3.b");
+  COMPARE_PREFIX(lasta(w15, p3, z3.VnH()), "lasta w15, p3, z3.h");
+  COMPARE_PREFIX(lasta(w15, p3, z3.VnS()), "lasta w15, p3, z3.s");
+  COMPARE_PREFIX(lasta(x15, p3, z3.VnD()), "lasta x15, p3, z3.d");
+  COMPARE_PREFIX(lasta(b30, p4, z24.VnB()), "lasta b30, p4, z24.b");
+  COMPARE_PREFIX(lasta(h30, p4, z24.VnH()), "lasta h30, p4, z24.h");
+  COMPARE_PREFIX(lasta(s30, p4, z24.VnS()), "lasta s30, p4, z24.s");
+  COMPARE_PREFIX(lasta(d30, p4, z24.VnD()), "lasta d30, p4, z24.d");
+
+  COMPARE_PREFIX(lastb(w9, p2, z16.VnB()), "lastb w9, p2, z16.b");
+  COMPARE_PREFIX(lastb(w9, p2, z16.VnH()), "lastb w9, p2, z16.h");
+  COMPARE_PREFIX(lastb(w9, p2, z16.VnS()), "lastb w9, p2, z16.s");
+  COMPARE_PREFIX(lastb(x9, p2, z16.VnD()), "lastb x9, p2, z16.d");
+  COMPARE_PREFIX(lastb(b14, p5, z2.VnB()), "lastb b14, p5, z2.b");
+  COMPARE_PREFIX(lastb(h14, p5, z2.VnH()), "lastb h14, p5, z2.h");
+  COMPARE_PREFIX(lastb(s14, p5, z2.VnS()), "lastb s14, p5, z2.s");
+  COMPARE_PREFIX(lastb(d14, p5, z2.VnD()), "lastb d14, p5, z2.d");
+
+  CLEANUP();
+}
+
+TEST(sve_reverse) {
+  SETUP();
+
+  COMPARE_MACRO(Rbit(z22.VnB(), p2.Merging(), z24.VnB()),
+                "rbit z22.b, p2/m, z24.b");
+  COMPARE_MACRO(Rbit(z22.VnH(), p2.Merging(), z24.VnH()),
+                "rbit z22.h, p2/m, z24.h");
+  COMPARE_MACRO(Rbit(z22.VnS(), p2.Merging(), z24.VnS()),
+                "rbit z22.s, p2/m, z24.s");
+  COMPARE_MACRO(Rbit(z22.VnD(), p2.Merging(), z24.VnD()),
+                "rbit z22.d, p2/m, z24.d");
+  COMPARE_MACRO(Revb(z14.VnH(), p7.Merging(), z25.VnH()),
+                "revb z14.h, p7/m, z25.h");
+  COMPARE_MACRO(Revb(z14.VnS(), p7.Merging(), z25.VnS()),
+                "revb z14.s, p7/m, z25.s");
+  COMPARE_MACRO(Revb(z14.VnD(), p7.Merging(), z25.VnD()),
+                "revb z14.d, p7/m, z25.d");
+  COMPARE_MACRO(Revh(z16.VnS(), p2.Merging(), z4.VnS()),
+                "revh z16.s, p2/m, z4.s");
+  COMPARE_MACRO(Revh(z16.VnD(), p2.Merging(), z4.VnD()),
+                "revh z16.d, p2/m, z4.d");
+  COMPARE_MACRO(Revw(z26.VnD(), p5.Merging(), z10.VnD()),
+                "revw z26.d, p5/m, z10.d");
+
+  CLEANUP();
+}
+
+TEST(sve_permute_vector_unpredicated) {
+  SETUP();
+
+  COMPARE_PREFIX(dup(z4.VnB(), w7), "mov z4.b, w7");
+  COMPARE_PREFIX(dup(z5.VnH(), w6), "mov z5.h, w6");
+  COMPARE_PREFIX(dup(z6.VnS(), sp), "mov z6.s, wsp");
+  COMPARE_PREFIX(dup(z7.VnD(), x4), "mov z7.d, x4");
+  COMPARE_PREFIX(dup(z25.VnQ(), z28.VnQ(), 2), "mov z25.q, z28.q[2]");
+  COMPARE_PREFIX(dup(z26.VnH(), z12.VnH(), 0), "mov z26.h, h12");
+
+  COMPARE_PREFIX(mov(z4.VnB(), w7), "mov z4.b, w7");
+  COMPARE_PREFIX(mov(z5.VnH(), w6), "mov z5.h, w6");
+  COMPARE_PREFIX(mov(z6.VnS(), sp), "mov z6.s, wsp");
+  COMPARE_PREFIX(mov(z7.VnD(), x4), "mov z7.d, x4");
+  COMPARE_PREFIX(mov(z25.VnQ(), z28.VnQ(), 2), "mov z25.q, z28.q[2]");
+  COMPARE_PREFIX(mov(z0.VnS(), s1), "mov z0.s, s1");
+
+  COMPARE_MACRO(Mov(z7.VnD(), x4), "mov z7.d, x4");
+  COMPARE_MACRO(Mov(z25.VnQ(), z28.VnQ(), 2), "mov z25.q, z28.q[2]");
+  COMPARE_MACRO(Mov(z2.VnB(), b13), "mov z2.b, b13");
+  COMPARE_MACRO(Mov(z31.VnQ(), q31), "mov z31.q, q31");
+
+  // Test dup with reserved tsz field.
+  COMPARE_PREFIX(dci(0x05202000), "unimplemented");
+
+  COMPARE(insr(z15.VnB(), w13), "insr z15.b, w13");
+  COMPARE(insr(z16.VnH(), w14), "insr z16.h, w14");
+  COMPARE(insr(z17.VnS(), w15), "insr z17.s, w15");
+  COMPARE(insr(z18.VnD(), x16), "insr z18.d, x16");
+  COMPARE(insr(z5.VnB(), b3), "insr z5.b, b3");
+  COMPARE(insr(z6.VnH(), h15), "insr z6.h, h15");
+  COMPARE(insr(z7.VnS(), s22), "insr z7.s, s22");
+  COMPARE(insr(z8.VnD(), d30), "insr z8.d, d30");
+  COMPARE_PREFIX(rev(z13.VnB(), z10.VnB()), "rev z13.b, z10.b");
+  COMPARE_PREFIX(rev(z14.VnH(), z10.VnH()), "rev z14.h, z10.h");
+  COMPARE_PREFIX(rev(z15.VnS(), z10.VnS()), "rev z15.s, z10.s");
+  COMPARE_PREFIX(rev(z16.VnD(), z10.VnD()), "rev z16.d, z10.d");
+  COMPARE_PREFIX(sunpkhi(z10.VnH(), z11.VnB()), "sunpkhi z10.h, z11.b");
+  COMPARE_PREFIX(sunpkhi(z11.VnS(), z11.VnH()), "sunpkhi z11.s, z11.h");
+  COMPARE_PREFIX(sunpkhi(z12.VnD(), z11.VnS()), "sunpkhi z12.d, z11.s");
+  COMPARE_PREFIX(sunpklo(z20.VnH(), z12.VnB()), "sunpklo z20.h, z12.b");
+  COMPARE_PREFIX(sunpklo(z21.VnS(), z12.VnH()), "sunpklo z21.s, z12.h");
+  COMPARE_PREFIX(sunpklo(z22.VnD(), z12.VnS()), "sunpklo z22.d, z12.s");
+  COMPARE_PREFIX(uunpkhi(z17.VnH(), z14.VnB()), "uunpkhi z17.h, z14.b");
+  COMPARE_PREFIX(uunpkhi(z18.VnS(), z14.VnH()), "uunpkhi z18.s, z14.h");
+  COMPARE_PREFIX(uunpkhi(z19.VnD(), z14.VnS()), "uunpkhi z19.d, z14.s");
+  COMPARE_PREFIX(uunpklo(z27.VnH(), z6.VnB()), "uunpklo z27.h, z6.b");
+  COMPARE_PREFIX(uunpklo(z28.VnS(), z6.VnH()), "uunpklo z28.s, z6.h");
+  COMPARE_PREFIX(uunpklo(z29.VnD(), z6.VnS()), "uunpklo z29.d, z6.s");
+  COMPARE_PREFIX(tbl(z24.VnB(), z29.VnB(), z0.VnB()),
+                 "tbl z24.b, {z29.b}, z0.b");
+  COMPARE_PREFIX(tbl(z25.VnH(), z29.VnH(), z1.VnH()),
+                 "tbl z25.h, {z29.h}, z1.h");
+  COMPARE_PREFIX(tbl(z26.VnS(), z29.VnS(), z2.VnS()),
+                 "tbl z26.s, {z29.s}, z2.s");
+  COMPARE_PREFIX(tbl(z27.VnD(), z29.VnD(), z3.VnD()),
+                 "tbl z27.d, {z29.d}, z3.d");
+
+  CLEANUP();
+}
+
+TEST(sve_predicate_count) {
+  SETUP();
+
+  COMPARE_PREFIX(cntp(x9, p1, p0.VnB()), "cntp x9, p1, p0.b");
+  COMPARE_PREFIX(cntp(x10, p12, p1.VnH()), "cntp x10, p12, p1.h");
+  COMPARE_PREFIX(cntp(x11, p13, p14.VnS()), "cntp x11, p13, p14.s");
+  COMPARE_PREFIX(cntp(x12, p4, p15.VnD()), "cntp x12, p4, p15.d");
+
+  COMPARE_MACRO(Cntp(x0, p1, p2.VnB()), "cntp x0, p1, p2.b");
+  COMPARE_MACRO(Cntp(w10, p11, p12.VnH()), "cntp x10, p11, p12.h");
+
+  CLEANUP();
+}
+
+TEST(sve_predicate_logical_op) {
+  SETUP();
+
+  COMPARE_PREFIX(ands(p13.VnB(), p9.Zeroing(), p5.VnB(), p15.VnB()),
+                 "ands p13.b, p9/z, p5.b, p15.b");
+  COMPARE_PREFIX(and_(p9.VnB(), p3.Zeroing(), p0.VnB(), p14.VnB()),
+                 "and p9.b, p3/z, p0.b, p14.b");
+  COMPARE_PREFIX(bics(p8.VnB(), p5.Zeroing(), p3.VnB(), p1.VnB()),
+                 "bics p8.b, p5/z, p3.b, p1.b");
+  COMPARE_PREFIX(bic(p5.VnB(), p5.Zeroing(), p9.VnB(), p9.VnB()),
+                 "bic p5.b, p5/z, p9.b, p9.b");
+  COMPARE_PREFIX(eors(p11.VnB(), p1.Zeroing(), p1.VnB(), p2.VnB()),
+                 "eors p11.b, p1/z, p1.b, p2.b");
+  COMPARE_PREFIX(eor(p8.VnB(), p6.Zeroing(), p1.VnB(), p11.VnB()),
+                 "eor p8.b, p6/z, p1.b, p11.b");
+  COMPARE_PREFIX(nands(p13.VnB(), p0.Zeroing(), p9.VnB(), p4.VnB()),
+                 "nands p13.b, p0/z, p9.b, p4.b");
+  COMPARE_PREFIX(nand(p7.VnB(), p7.Zeroing(), p15.VnB(), p2.VnB()),
+                 "nand p7.b, p7/z, p15.b, p2.b");
+  COMPARE_PREFIX(nors(p8.VnB(), p8.Zeroing(), p12.VnB(), p11.VnB()),
+                 "nors p8.b, p8/z, p12.b, p11.b");
+  COMPARE_PREFIX(nor(p3.VnB(), p6.Zeroing(), p15.VnB(), p12.VnB()),
+                 "nor p3.b, p6/z, p15.b, p12.b");
+  COMPARE_PREFIX(orns(p10.VnB(), p11.Zeroing(), p0.VnB(), p15.VnB()),
+                 "orns p10.b, p11/z, p0.b, p15.b");
+  COMPARE_PREFIX(orn(p0.VnB(), p1.Zeroing(), p7.VnB(), p4.VnB()),
+                 "orn p0.b, p1/z, p7.b, p4.b");
+  COMPARE_PREFIX(orrs(p14.VnB(), p6.Zeroing(), p1.VnB(), p5.VnB()),
+                 "orrs p14.b, p6/z, p1.b, p5.b");
+  COMPARE_PREFIX(orr(p13.VnB(), p7.Zeroing(), p10.VnB(), p4.VnB()),
+                 "orr p13.b, p7/z, p10.b, p4.b");
+  COMPARE_PREFIX(sel(p9.VnB(), p15, p15.VnB(), p7.VnB()),
+                 "sel p9.b, p15, p15.b, p7.b");
+
+  // Aliases.
+  COMPARE_PREFIX(eor(p7.VnB(), p6.Zeroing(), p1.VnB(), p6.VnB()),
+                 "not p7.b, p6/z, p1.b");
+  COMPARE_PREFIX(not_(p7.VnB(), p6.Zeroing(), p1.VnB()),
+                 "not p7.b, p6/z, p1.b");
+  COMPARE_PREFIX(eors(p6.VnB(), p5.Zeroing(), p2.VnB(), p5.VnB()),
+                 "nots p6.b, p5/z, p2.b");
+  COMPARE_PREFIX(nots(p6.VnB(), p5.Zeroing(), p2.VnB()),
+                 "nots p6.b, p5/z, p2.b");
+  COMPARE_PREFIX(ands(p5.VnB(), p4.Zeroing(), p3.VnB(), p3.VnB()),
+                 "movs p5.b, p4/z, p3.b");
+  COMPARE_PREFIX(movs(p5.VnB(), p4.Zeroing(), p3.VnB()),
+                 "movs p5.b, p4/z, p3.b");
+  COMPARE_PREFIX(and_(p5.VnB(), p4.Zeroing(), p3.VnB(), p3.VnB()),
+                 "mov p5.b, p4/z, p3.b");
+  COMPARE_PREFIX(mov(p5.VnB(), p4.Zeroing(), p3.VnB()), "mov p5.b, p4/z, p3.b");
+  COMPARE_PREFIX(orrs(p4.VnB(), p3.Zeroing(), p3.VnB(), p3.VnB()),
+                 "movs p4.b, p3.b");
+  COMPARE_PREFIX(movs(p4.VnB(), p3.VnB()), "movs p4.b, p3.b");
+  COMPARE_PREFIX(orr(p4.VnB(), p3.Zeroing(), p3.VnB(), p3.VnB()),
+                 "mov p4.b, p3.b");
+  COMPARE_PREFIX(mov(p4.VnB(), p3.VnB()), "mov p4.b, p3.b");
+  COMPARE_PREFIX(sel(p3.VnB(), p2, p4.VnB(), p3.VnB()), "mov p3.b, p2/m, p4.b");
+  COMPARE_PREFIX(mov(p3.VnB(), p2.Merging(), p4.VnB()), "mov p3.b, p2/m, p4.b");
+
+  COMPARE_MACRO(Not(p7.VnB(), p6.Zeroing(), p1.VnB()), "not p7.b, p6/z, p1.b");
+  COMPARE_MACRO(Nots(p6.VnB(), p5.Zeroing(), p2.VnB()),
+                "nots p6.b, p5/z, p2.b");
+  COMPARE_MACRO(Movs(p5.VnB(), p4.Zeroing(), p3.VnB()),
+                "movs p5.b, p4/z, p3.b");
+  COMPARE_MACRO(Mov(p5.VnB(), p4.Zeroing(), p3.VnB()), "mov p5.b, p4/z, p3.b");
+  COMPARE_MACRO(Movs(p4.VnB(), p3.VnB()), "movs p4.b, p3.b");
+  COMPARE_MACRO(Mov(p4, p3), "mov p4.b, p3.b");
+  COMPARE_MACRO(Mov(p3.VnB(), p2.Merging(), p4.VnB()), "mov p3.b, p2/m, p4.b");
+
+  CLEANUP();
+}
+
+TEST(sve_predicate_first_active) {
+  SETUP();
+
+  COMPARE_PREFIX(pfirst(p0.VnB(), p7, p0.VnB()), "pfirst p0.b, p7, p0.b");
+  COMPARE_PREFIX(pfirst(p7.VnB(), p0, p7.VnB()), "pfirst p7.b, p0, p7.b");
+
+  COMPARE_MACRO(Pfirst(p1.VnB(), p2, p1.VnB()), "pfirst p1.b, p2, p1.b");
+  COMPARE_MACRO(Pfirst(p3.VnB(), p4, p5.VnB()),
+                "mov p3.b, p5.b\n"
+                "pfirst p3.b, p4, p3.b");
+
+  {
+    UseScratchRegisterScope temps(&masm);
+    temps.Include(p7, p15);
+    COMPARE_MACRO(Pfirst(p6.VnB(), p6, p0.VnB()),
+                  "mov p15.b, p6.b\n"
+                  "mov p6.b, p0.b\n"
+                  "pfirst p6.b, p15, p6.b");
+  }
+
+  CLEANUP();
+}
+
+TEST(sve_predicate_next_active) {
+  SETUP();
+
+  COMPARE_PREFIX(pnext(p0.VnB(), p8, p0.VnB()), "pnext p0.b, p8, p0.b");
+  COMPARE_PREFIX(pnext(p1.VnH(), p9, p1.VnH()), "pnext p1.h, p9, p1.h");
+  COMPARE_PREFIX(pnext(p2.VnS(), p10, p2.VnS()), "pnext p2.s, p10, p2.s");
+  COMPARE_PREFIX(pnext(p3.VnD(), p11, p3.VnD()), "pnext p3.d, p11, p3.d");
+
+  COMPARE_PREFIX(pnext(p12.VnB(), p4, p12.VnB()), "pnext p12.b, p4, p12.b");
+  COMPARE_PREFIX(pnext(p13.VnH(), p5, p13.VnH()), "pnext p13.h, p5, p13.h");
+  COMPARE_PREFIX(pnext(p14.VnS(), p6, p14.VnS()), "pnext p14.s, p6, p14.s");
+  COMPARE_PREFIX(pnext(p15.VnD(), p7, p15.VnD()), "pnext p15.d, p7, p15.d");
+
+  COMPARE_MACRO(Pnext(p5.VnB(), p9, p5.VnB()), "pnext p5.b, p9, p5.b");
+  COMPARE_MACRO(Pnext(p6.VnH(), p8, p6.VnH()), "pnext p6.h, p8, p6.h");
+  COMPARE_MACRO(Pnext(p7.VnS(), p5, p7.VnS()), "pnext p7.s, p5, p7.s");
+  COMPARE_MACRO(Pnext(p8.VnD(), p6, p8.VnD()), "pnext p8.d, p6, p8.d");
+
+  COMPARE_MACRO(Pnext(p6.VnB(), p4, p5.VnB()),
+                "mov p6.b, p5.b\n"
+                "pnext p6.b, p4, p6.b");
+  COMPARE_MACRO(Pnext(p7.VnH(), p3, p8.VnH()),
+                "mov p7.b, p8.b\n"
+                "pnext p7.h, p3, p7.h");
+  COMPARE_MACRO(Pnext(p8.VnS(), p2, p9.VnS()),
+                "mov p8.b, p9.b\n"
+                "pnext p8.s, p2, p8.s");
+  COMPARE_MACRO(Pnext(p9.VnD(), p1, p10.VnD()),
+                "mov p9.b, p10.b\n"
+                "pnext p9.d, p1, p9.d");
+
+  {
+    UseScratchRegisterScope temps(&masm);
+    temps.Include(p7, p8);
+    COMPARE_MACRO(Pnext(p6.VnB(), p6, p0.VnB()),
+                  "mov p8.b, p6.b\n"
+                  "mov p6.b, p0.b\n"
+                  "pnext p6.b, p8, p6.b");
+    COMPARE_MACRO(Pnext(p7.VnH(), p7, p1.VnH()),
+                  "mov p8.b, p7.b\n"
+                  "mov p7.b, p1.b\n"
+                  "pnext p7.h, p8, p7.h");
+    COMPARE_MACRO(Pnext(p10.VnS(), p10, p2.VnS()),
+                  "mov p8.b, p10.b\n"
+                  "mov p10.b, p2.b\n"
+                  "pnext p10.s, p8, p10.s");
+    COMPARE_MACRO(Pnext(p11.VnD(), p11, p3.VnD()),
+                  "mov p8.b, p11.b\n"
+                  "mov p11.b, p3.b\n"
+                  "pnext p11.d, p8, p11.d");
+  }
+
+  CLEANUP();
+}
+
+TEST(sve_predicate_initialize) {
+  SETUP();
+
+  // Basic forms.
+  COMPARE_PREFIX(ptrue(p0.VnB(), SVE_POW2), "ptrue p0.b, pow2");
+  COMPARE_PREFIX(ptrue(p1.VnH(), SVE_VL1), "ptrue p1.h, vl1");
+  COMPARE_PREFIX(ptrue(p2.VnS(), SVE_VL8), "ptrue p2.s, vl8");
+  COMPARE_PREFIX(ptrue(p3.VnD(), SVE_VL16), "ptrue p3.d, vl16");
+  COMPARE_PREFIX(ptrue(p4.VnB(), SVE_VL256), "ptrue p4.b, vl256");
+  COMPARE_PREFIX(ptrue(p5.VnH(), SVE_MUL3), "ptrue p5.h, mul3");
+  COMPARE_PREFIX(ptrue(p6.VnS(), SVE_MUL4), "ptrue p6.s, mul4");
+  COMPARE_PREFIX(ptrue(p7.VnD(), SVE_ALL), "ptrue p7.d");
+
+  COMPARE_PREFIX(ptrues(p8.VnB(), SVE_ALL), "ptrues p8.b");
+  COMPARE_PREFIX(ptrues(p9.VnH(), SVE_MUL4), "ptrues p9.h, mul4");
+  COMPARE_PREFIX(ptrues(p10.VnS(), SVE_MUL3), "ptrues p10.s, mul3");
+  COMPARE_PREFIX(ptrues(p11.VnD(), SVE_VL256), "ptrues p11.d, vl256");
+  COMPARE_PREFIX(ptrues(p12.VnB(), SVE_VL16), "ptrues p12.b, vl16");
+  COMPARE_PREFIX(ptrues(p13.VnH(), SVE_VL8), "ptrues p13.h, vl8");
+  COMPARE_PREFIX(ptrues(p14.VnS(), SVE_VL1), "ptrues p14.s, vl1");
+  COMPARE_PREFIX(ptrues(p15.VnD(), SVE_POW2), "ptrues p15.d, pow2");
+
+  // The Assembler supports arbitrary immediates.
+  COMPARE_PREFIX(ptrue(p7.VnS(), 0xd), "ptrue p7.s, vl256");
+  COMPARE_PREFIX(ptrue(p8.VnD(), 0xe), "ptrue p8.d, #0xe");
+  COMPARE_PREFIX(ptrue(p9.VnB(), 0x15), "ptrue p9.b, #0x15");
+  COMPARE_PREFIX(ptrue(p10.VnH(), 0x19), "ptrue p10.h, #0x19");
+  COMPARE_PREFIX(ptrue(p11.VnS(), 0x1a), "ptrue p11.s, #0x1a");
+  COMPARE_PREFIX(ptrue(p12.VnD(), 0x1c), "ptrue p12.d, #0x1c");
+  COMPARE_PREFIX(ptrue(p13.VnB(), 0x1d), "ptrue p13.b, mul4");
+
+  COMPARE_PREFIX(ptrues(p14.VnS(), 0xd), "ptrues p14.s, vl256");
+  COMPARE_PREFIX(ptrues(p15.VnD(), 0xe), "ptrues p15.d, #0xe");
+  COMPARE_PREFIX(ptrues(p0.VnB(), 0x15), "ptrues p0.b, #0x15");
+  COMPARE_PREFIX(ptrues(p1.VnH(), 0x19), "ptrues p1.h, #0x19");
+  COMPARE_PREFIX(ptrues(p2.VnS(), 0x1a), "ptrues p2.s, #0x1a");
+  COMPARE_PREFIX(ptrues(p3.VnD(), 0x1c), "ptrues p3.d, #0x1c");
+  COMPARE_PREFIX(ptrues(p4.VnB(), 0x1d), "ptrues p4.b, mul4");
+
+  // SVE_ALL is the default.
+  COMPARE_PREFIX(ptrue(p15.VnS()), "ptrue p15.s");
+  COMPARE_PREFIX(ptrues(p0.VnS()), "ptrues p0.s");
+
+  // The MacroAssembler provides a `FlagsUpdate` argument.
+  COMPARE_MACRO(Ptrue(p0.VnB(), SVE_MUL3), "ptrue p0.b, mul3");
+  COMPARE_MACRO(Ptrues(p1.VnH(), SVE_MUL4), "ptrues p1.h, mul4");
+  COMPARE_MACRO(Ptrue(p2.VnS(), SVE_VL32, LeaveFlags), "ptrue p2.s, vl32");
+  COMPARE_MACRO(Ptrue(p3.VnD(), SVE_VL64, SetFlags), "ptrues p3.d, vl64");
+}
+
+TEST(sve_pfalse) {
+  SETUP();
+
+  COMPARE_PREFIX(pfalse(p0.VnB()), "pfalse p0.b");
+  COMPARE_PREFIX(pfalse(p15.VnB()), "pfalse p15.b");
+
+  COMPARE_MACRO(Pfalse(p1.VnB()), "pfalse p1.b");
+  COMPARE_MACRO(Pfalse(p4.VnH()), "pfalse p4.b");
+  COMPARE_MACRO(Pfalse(p9.VnS()), "pfalse p9.b");
+  COMPARE_MACRO(Pfalse(p14.VnD()), "pfalse p14.b");
+}
+
+TEST(sve_ptest) {
+  SETUP();
+
+  COMPARE_PREFIX(ptest(p15, p0.VnB()), "ptest p15, p0.b");
+  COMPARE_PREFIX(ptest(p0, p15.VnB()), "ptest p0, p15.b");
+  COMPARE_PREFIX(ptest(p6, p6.VnB()), "ptest p6, p6.b");
+
+  COMPARE_MACRO(Ptest(p0, p1.VnB()), "ptest p0, p1.b");
+}
+
+TEST(sve_lane_size_relaxing) {
+  SETUP();
+
+  COMPARE_MACRO(Rdffr(p3), "rdffr p3.b");
+  COMPARE_MACRO(Rdffr(p8.VnB()), "rdffr p8.b");
+
+  COMPARE_MACRO(Wrffr(p9), "wrffr p9.b");
+  COMPARE_MACRO(Wrffr(p8.VnB()), "wrffr p8.b");
+
+  COMPARE_MACRO(And(z10, z1, z15), "and z10.d, z1.d, z15.d");
+  COMPARE_MACRO(Bic(z11, z2, z16), "bic z11.d, z2.d, z16.d");
+  COMPARE_MACRO(Eor(z12, z3, z17), "eor z12.d, z3.d, z17.d");
+  COMPARE_MACRO(Orr(z13, z4, z18), "orr z13.d, z4.d, z18.d");
+
+  COMPARE_MACRO(And(z10.VnD(), z1.VnD(), z15.VnD()), "and z10.d, z1.d, z15.d");
+  COMPARE_MACRO(Bic(z11.VnS(), z2.VnS(), z16.VnS()), "bic z11.d, z2.d, z16.d");
+  COMPARE_MACRO(Eor(z12.VnH(), z3.VnH(), z17.VnH()), "eor z12.d, z3.d, z17.d");
+  COMPARE_MACRO(Orr(z13.VnB(), z4.VnB(), z18.VnB()), "orr z13.d, z4.d, z18.d");
+
+  COMPARE_MACRO(Pfalse(p1), "pfalse p1.b");
+
+  CLEANUP();
+}
+
+TEST(sve_read_ffr) {
+  SETUP();
+
+  COMPARE_PREFIX(rdffr(p13.VnB()), "rdffr p13.b");
+  COMPARE_PREFIX(rdffrs(p14.VnB(), p9.Zeroing()), "rdffrs p14.b, p9/z");
+  COMPARE_PREFIX(rdffr(p5.VnB(), p14.Zeroing()), "rdffr p5.b, p14/z");
+
+  CLEANUP();
+}
+
+TEST(sve_propagate_break) {
+  SETUP();
+
+  COMPARE_PREFIX(brkpas(p12.VnB(), p0.Zeroing(), p12.VnB(), p11.VnB()),
+                 "brkpas p12.b, p0/z, p12.b, p11.b");
+  COMPARE_PREFIX(brkpa(p1.VnB(), p2.Zeroing(), p13.VnB(), p8.VnB()),
+                 "brkpa p1.b, p2/z, p13.b, p8.b");
+  COMPARE_PREFIX(brkpbs(p14.VnB(), p1.Zeroing(), p8.VnB(), p3.VnB()),
+                 "brkpbs p14.b, p1/z, p8.b, p3.b");
+  COMPARE_PREFIX(brkpb(p2.VnB(), p5.Zeroing(), p0.VnB(), p14.VnB()),
+                 "brkpb p2.b, p5/z, p0.b, p14.b");
+
+  CLEANUP();
+}
+
+TEST(sve_stack_allocation) {
+  SETUP();
+
+  COMPARE_PREFIX(rdvl(x26, 0), "rdvl x26, #0");
+  COMPARE_PREFIX(rdvl(x27, 31), "rdvl x27, #31");
+  COMPARE_PREFIX(rdvl(x28, -32), "rdvl x28, #-32");
+  COMPARE_PREFIX(rdvl(xzr, 9), "rdvl xzr, #9");
+
+  COMPARE_PREFIX(addvl(x6, x20, 0), "addvl x6, x20, #0");
+  COMPARE_PREFIX(addvl(x7, x21, 31), "addvl x7, x21, #31");
+  COMPARE_PREFIX(addvl(x8, x22, -32), "addvl x8, x22, #-32");
+  COMPARE_PREFIX(addvl(sp, x1, 5), "addvl sp, x1, #5");
+  COMPARE_PREFIX(addvl(x9, sp, -16), "addvl x9, sp, #-16");
+
+  COMPARE_PREFIX(addpl(x20, x6, 0), "addpl x20, x6, #0");
+  COMPARE_PREFIX(addpl(x21, x7, 31), "addpl x21, x7, #31");
+  COMPARE_PREFIX(addpl(x22, x8, -32), "addpl x22, x8, #-32");
+  COMPARE_PREFIX(addpl(sp, x1, 5), "addpl sp, x1, #5");
+  COMPARE_PREFIX(addpl(x9, sp, -16), "addpl x9, sp, #-16");
+
+  CLEANUP();
+}
+
+TEST(sve_rdvl_macro) {
+  SETUP();
+
+  // Encodable cases use rdvl directly.
+  COMPARE_MACRO(Rdvl(x0, 3), "rdvl x0, #3");
+  COMPARE_MACRO(Rdvl(x0, 31), "rdvl x0, #31");
+  COMPARE_MACRO(Rdvl(x0, -32), "rdvl x0, #-32");
+
+  // Unencodable cases fall back on `xn + (VL * multiplier)`.
+  COMPARE_MACRO(Rdvl(x2, 0x1234),
+                "mov x2, #0x1234\n"
+                "rdvl x16, #1\n"
+                "mul x2, x2, x16");
+
+  CLEANUP();
+}
+
+TEST(sve_addvl_macro) {
+  SETUP();
+
+  // Encodable cases use addvl directly.
+  COMPARE_MACRO(Addvl(sp, sp, -3), "addvl sp, sp, #-3");
+  COMPARE_MACRO(Addvl(x0, x1, 8), "addvl x0, x1, #8");
+
+  // If xn is xzr, `Addvl` behaves like `Rdvl`.
+  COMPARE_MACRO(Addvl(x7, xzr, 8), "rdvl x7, #8");
+
+  // Unencodable cases fall back on `xn + (VL * multiplier)`.
+  COMPARE_MACRO(Addvl(x7, x8, 42),
+                "mov x7, #0x2a\n"
+                "rdvl x16, #1\n"
+                "madd x7, x7, x16, x8");
+  COMPARE_MACRO(Addvl(x10, x10, 42),
+                "mov x16, #0x2a\n"
+                "rdvl x17, #1\n"
+                "madd x10, x16, x17, x10");
+  COMPARE_MACRO(Addvl(x10, sp, 42),
+                "mov x10, #0x2a\n"
+                "rdvl x16, #1\n"
+                "mul x10, x10, x16\n"
+                "add x10, sp, x10");
+  COMPARE_MACRO(Addvl(sp, x10, 42),
+                "mov x16, #0x2a\n"
+                "rdvl x17, #1\n"
+                "mul x16, x16, x17\n"
+                "add sp, x10, x16");
+
+  CLEANUP();
+}
+
+TEST(sve_rdpl_macro) {
+  SETUP();
+
+  // There is no `rdpl` instruction. `Rdpl` is implemented as `Addpl` (with
+  // xzr). However, since `addpl` operates on the stack pointer, some special
+  // cases exist.
+
+  // If the multiplier is a multiple of 8, `Rdpl` will pass through to `Rdvl`.
+  COMPARE_MACRO(Rdpl(x0, 0), "rdvl x0, #0");
+  COMPARE_MACRO(Rdpl(x0, 8), "rdvl x0, #1");
+
+  // If the multiplier is encodable with `addpl`, we use that with an
+  // explicitly-zeroed register.
+  COMPARE_MACRO(Rdpl(x1, 7),
+                "mov x1, #0x0\n"
+                "addpl x1, x1, #7");
+  COMPARE_MACRO(Rdpl(x1, -31),
+                "mov x1, #0x0\n"
+                "addpl x1, x1, #-31");
+
+  // All other cases use `Rdvl`, and scale the result.
+  COMPARE_MACRO(Rdpl(x2, 37),
+                "mov x2, #0x25\n"
+                "rdvl x16, #1\n"
+                "mul x2, x2, x16\n"
+                "asr x2, x2, #3");
+
+  CLEANUP();
+}
+
+TEST(sve_addpl_macro) {
+  SETUP();
+
+  // Encodable cases use addpl directly.
+  COMPARE_MACRO(Addpl(x22, x22, -3), "addpl x22, x22, #-3");
+  COMPARE_MACRO(Addpl(x10, x11, 8), "addpl x10, x11, #8");
+  COMPARE_MACRO(Addpl(x7, sp, 31), "addpl x7, sp, #31");
+
+  // Otherwise, if the multiplier is a multiple of 8, `Addpl` will pass through
+  // to `Addvl`.
+  COMPARE_MACRO(Addpl(sp, x0, 48), "addvl sp, x0, #6");
+  COMPARE_MACRO(Addpl(x2, sp, -48), "addvl x2, sp, #-6");
+
+  // If xn is xzr, `Addpl` behaves like `Rdpl`.
+  COMPARE_MACRO(Addpl(x7, xzr, 8), "rdvl x7, #1");
+  COMPARE_MACRO(Addpl(x29, xzr, 13),
+                "mov x29, #0x0\n"
+                "addpl x29, x29, #13");
+
+  // All other cases use `Rdvl`, and scale the result before adding it to `xn`.
+  // Where possible, the scaling `asr` is merged with the `add`.
+  COMPARE_MACRO(Addpl(x7, x8, 123),
+                "mov x7, #0x7b\n"
+                "rdvl x16, #1\n"
+                "mul x7, x7, x16\n"
+                "add x7, x8, x7, asr #3");
+  COMPARE_MACRO(Addpl(x9, x9, 122),
+                "mov x16, #0x7a\n"
+                "rdvl x17, #1\n"
+                "mul x16, x16, x17\n"
+                "add x9, x9, x16, asr #3");
+  // If the stack pointer is used, the `asr` and `add` must be separate.
+  COMPARE_MACRO(Addpl(sp, x0, 33),
+                "mov x16, #0x21\n"
+                "rdvl x17, #1\n"
+                "mul x16, x16, x17\n"
+                "asr x16, x16, #3\n"
+                "add sp, x0, x16");
+
+  CLEANUP();
+}
+
+TEST(sve_vector_select) {
+  SETUP();
+
+  COMPARE_MACRO(Sel(z13.VnB(), p3, z3.VnB(), z25.VnB()),
+                "sel z13.b, p3, z3.b, z25.b");
+  COMPARE_MACRO(Sel(z13.VnH(), p3, z3.VnH(), z25.VnH()),
+                "sel z13.h, p3, z3.h, z25.h");
+  COMPARE_MACRO(Sel(z13.VnS(), p3, z3.VnS(), z25.VnS()),
+                "sel z13.s, p3, z3.s, z25.s");
+  COMPARE_MACRO(Sel(z13.VnD(), p3, z3.VnD(), z25.VnD()),
+                "sel z13.d, p3, z3.d, z25.d");
+
+  // Check sel() where zd == zm disassemble as predicated mov.
+  COMPARE_MACRO(Sel(z1.VnB(), p4.Merging(), z30.VnB(), z1.VnB()),
+                "mov z1.b, p4/m, z30.b");
+  COMPARE_MACRO(Sel(z1.VnH(), p4.Merging(), z30.VnH(), z1.VnH()),
+                "mov z1.h, p4/m, z30.h");
+  COMPARE_MACRO(Sel(z1.VnS(), p4.Merging(), z30.VnS(), z1.VnS()),
+                "mov z1.s, p4/m, z30.s");
+  COMPARE_MACRO(Sel(z1.VnD(), p4.Merging(), z30.VnD(), z1.VnD()),
+                "mov z1.d, p4/m, z30.d");
+
+  // Check predicated mov() directly.
+  COMPARE_MACRO(Mov(z2.VnB(), p10.Merging(), z22.VnB()),
+                "mov z2.b, p10/m, z22.b");
+  COMPARE_MACRO(Mov(z2.VnH(), p10.Merging(), z22.VnH()),
+                "mov z2.h, p10/m, z22.h");
+  COMPARE_MACRO(Mov(z2.VnS(), p10.Merging(), z22.VnS()),
+                "mov z2.s, p10/m, z22.s");
+  COMPARE_MACRO(Mov(z2.VnD(), p10.Merging(), z22.VnD()),
+                "mov z2.d, p10/m, z22.d");
+
+  CLEANUP();
+}
+
+TEST(sve_write_ffr) {
+  SETUP();
+
+  COMPARE_PREFIX(setffr(), "setffr");
+  COMPARE_PREFIX(wrffr(p9.VnB()), "wrffr p9.b");
+
+  CLEANUP();
+}
+
+}  // namespace aarch64
+}  // namespace vixl
diff --git a/test/aarch64/test-simulator-aarch64.cc b/test/aarch64/test-simulator-aarch64.cc
index 5474d91..ac812fd 100644
--- a/test/aarch64/test-simulator-aarch64.cc
+++ b/test/aarch64/test-simulator-aarch64.cc
@@ -62,13 +62,12 @@
 
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
 
-#define SETUP_WITH_FEATURES(...)                      \
-  MacroAssembler masm;                                \
-  masm.SetCPUFeatures(CPUFeatures(__VA_ARGS__));      \
-  Decoder decoder;                                    \
-  Simulator simulator(&decoder);                      \
-  simulator.SetColouredTrace(Test::coloured_trace()); \
-  simulator.SetInstructionStats(Test::instruction_stats());
+#define SETUP_WITH_FEATURES(...)                 \
+  MacroAssembler masm;                           \
+  masm.SetCPUFeatures(CPUFeatures(__VA_ARGS__)); \
+  Decoder decoder;                               \
+  Simulator simulator(&decoder);                 \
+  simulator.SetColouredTrace(Test::coloured_trace());
 
 #define START()                         \
   masm.Reset();                         \
@@ -82,15 +81,9 @@
   }                                     \
   if (Test::trace_sim()) {              \
     __ Trace(LOG_DISASM, TRACE_ENABLE); \
-  }                                     \
-  if (Test::instruction_stats()) {      \
-    __ EnableInstrumentation();         \
   }
 
 #define END()                       \
-  if (Test::instruction_stats()) {  \
-    __ DisableInstrumentation();    \
-  }                                 \
   __ Trace(LOG_ALL, TRACE_DISABLE); \
   __ PopCalleeSavedRegisters();     \
   __ Ret();                         \
@@ -3980,7 +3973,7 @@
                                  2S,                                  \
                                  2S,                                  \
                                  kInputFloat##Basic,                  \
-                                 kInputDoubleImm##input_imm)          \
+                                 kInputDoubleImm##input_imm);         \
   }                                                                   \
   TEST(mnemonic##_4S_2OPIMM) {                                        \
     CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                            \
@@ -4003,35 +3996,35 @@
                                  4H,                           \
                                  4H,                           \
                                  kInputFloat16##input,         \
-                                 kInput16bitsImm##input_imm)   \
+                                 kInput16bitsImm##input_imm);  \
   }                                                            \
   TEST(mnemonic##_8H_2OPIMM) {                                 \
     CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                     \
                                  8H,                           \
                                  8H,                           \
                                  kInputFloat16##input,         \
-                                 kInput16bitsImm##input_imm)   \
+                                 kInput16bitsImm##input_imm);  \
   }                                                            \
   TEST(mnemonic##_2S_2OPIMM) {                                 \
     CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                     \
                                  2S,                           \
                                  2S,                           \
                                  kInputFloat##Basic,           \
-                                 kInput32bitsImm##input_imm)   \
+                                 kInput32bitsImm##input_imm);  \
   }                                                            \
   TEST(mnemonic##_4S_2OPIMM) {                                 \
     CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                     \
                                  4S,                           \
                                  4S,                           \
                                  kInputFloat##input,           \
-                                 kInput32bitsImm##input_imm)   \
+                                 kInput32bitsImm##input_imm);  \
   }                                                            \
   TEST(mnemonic##_2D_2OPIMM) {                                 \
     CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                     \
                                  2D,                           \
                                  2D,                           \
                                  kInputDouble##input,          \
-                                 kInput64bitsImm##input_imm)   \
+                                 kInput64bitsImm##input_imm);  \
   }
 
 #define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR(mnemonic, input, input_imm) \
@@ -4040,21 +4033,21 @@
                                  H,                                   \
                                  H,                                   \
                                  kInputFloat16##Basic,                \
-                                 kInput16bitsImm##input_imm)          \
+                                 kInput16bitsImm##input_imm);         \
   }                                                                   \
   TEST(mnemonic##_S_2OPIMM) {                                         \
     CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                            \
                                  S,                                   \
                                  S,                                   \
                                  kInputFloat##Basic,                  \
-                                 kInput32bitsImm##input_imm)          \
+                                 kInput32bitsImm##input_imm);         \
   }                                                                   \
   TEST(mnemonic##_D_2OPIMM) {                                         \
     CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                            \
                                  D,                                   \
                                  D,                                   \
                                  kInputDouble##input,                 \
-                                 kInput64bitsImm##input_imm)          \
+                                 kInput64bitsImm##input_imm);         \
   }
 
 #define DEFINE_TEST_NEON_2OPIMM_HSD(mnemonic, input, input_imm) \
diff --git a/test/aarch64/test-simulator-traces-aarch64.h b/test/aarch64/test-simulator-traces-aarch64.h
index 03b5819..db57bb4 100644
--- a/test/aarch64/test-simulator-traces-aarch64.h
+++ b/test/aarch64/test-simulator-traces-aarch64.h
@@ -41,19 +41,19 @@
 #include <stdint.h>
 }
 
-// To add a new simulator test to test-simulator-aarch64.cc, add dummy array(s)
-// below to build test-simulator-aarch64 for reference platform. Then, run
-// tools/generate_simulator_traces.py on a reference platform to regenerate this
-// file and traces files.
+// To add a new simulator test to test-simulator-aarch64.cc, add placeholder
+// array(s) below to build test-simulator-aarch64 for reference platform. Then,
+// run tools/generate_simulator_traces.py on a reference platform to regenerate
+// this file and traces files.
 
 // ---------------------------------------------------------------------
 // ADD DUMMY ARRAYS FOR NEW SIMULATOR TEST HERE.
 // ---------------------------------------------------------------------
-const uint64_t kExpected_dummy_64[] = {0};
-const size_t kExpectedCount_dummy_64 = 0;
+const uint64_t kExpected_placeholder_64[] = {0};
+const size_t kExpectedCount_placeholder_64 = 0;
 
-const uint32_t kExpected_dummy_32[] = {0};
-const size_t kExpectedCount_dummy_32 = 0;
+const uint32_t kExpected_placeholder_32[] = {0};
+const size_t kExpectedCount_placeholder_32 = 0;
 
 // ---------------------------------------------------------------------
 // Simulator test trace output files.
diff --git a/test/aarch64/test-trace-aarch64.cc b/test/aarch64/test-trace-aarch64.cc
index 90d1295..a0a2172 100644
--- a/test/aarch64/test-trace-aarch64.cc
+++ b/test/aarch64/test-trace-aarch64.cc
@@ -30,6 +30,9 @@
 #include <cstdlib>
 #include <cstring>
 
+#include <fstream>
+#include <regex>
+
 #include "test-runner.h"
 #include "test-utils-aarch64.h"
 
@@ -2738,45 +2741,180 @@
 }
 
 
+static void GenerateTestSequenceSVE(MacroAssembler* masm) {
+  ExactAssemblyScope guard(masm,
+                           masm->GetBuffer()->GetRemainingBytes(),
+                           ExactAssemblyScope::kMaximumSize);
+  CPUFeaturesScope feature_guard(masm, CPUFeatures::kSVE);
+
+  // Simple, unpredicated loads and stores.
+  __ str(p12.VnD(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ str(p13.VnS(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ str(p14.VnH(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ str(p15.VnB(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ ldr(p8.VnD(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ ldr(p9.VnS(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ ldr(p10.VnH(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ ldr(p11.VnB(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+
+  __ str(z0.VnD(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ str(z1.VnS(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ str(z2.VnH(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ str(z3.VnB(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ ldr(z20.VnD(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ ldr(z21.VnS(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ ldr(z22.VnH(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+  __ ldr(z23.VnB(), SVEMemOperand(x0, 11, SVE_MUL_VL));
+
+  // Structured accesses.
+  __ st1b(z0.VnB(), p2, SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ st1h(z1.VnH(), p1, SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ st1w(z2.VnS(), p1, SVEMemOperand(x0, x3, LSL, 2));
+  __ st1d(z3.VnD(), p2, SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1b(z20.VnB(), p1.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1h(z21.VnH(), p2.Zeroing(), SVEMemOperand(x0, x2, LSL, 1));
+  __ ld1w(z22.VnS(), p1.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1d(z23.VnD(), p1.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+
+  // Structured, packed accesses.
+  __ st1b(z2.VnH(), p1, SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ st1b(z3.VnS(), p2, SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ st1b(z4.VnD(), p2, SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ st1h(z0.VnS(), p1, SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ st1h(z1.VnD(), p1, SVEMemOperand(x0, x2, LSL, 1));
+  __ st1w(z2.VnD(), p1, SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1b(z20.VnH(), p1.Zeroing(), SVEMemOperand(x0, x2));
+  __ ld1b(z21.VnS(), p1.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1b(z22.VnD(), p1.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1h(z23.VnS(), p2.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1h(z24.VnD(), p2.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1w(z20.VnD(), p1.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1sb(z21.VnH(), p1.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1sb(z22.VnS(), p1.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1sb(z23.VnD(), p2.Zeroing(), SVEMemOperand(x0, x2));
+  __ ld1sh(z24.VnS(), p2.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1sh(z20.VnD(), p1.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld1sw(z21.VnD(), p1.Zeroing(), SVEMemOperand(x0, 3, SVE_MUL_VL));
+
+  // Structured, interleaved accesses.
+  __ st2b(z0.VnB(), z1.VnB(), p4, SVEMemOperand(x0, 4, SVE_MUL_VL));
+  __ st2h(z1.VnH(), z2.VnH(), p4, SVEMemOperand(x0, 4, SVE_MUL_VL));
+  __ st2w(z2.VnS(), z3.VnS(), p3, SVEMemOperand(x0, x2, LSL, 2));
+  __ st2d(z3.VnD(), z4.VnD(), p4, SVEMemOperand(x0, 4, SVE_MUL_VL));
+  __ ld2b(z20.VnB(), z21.VnB(), p5.Zeroing(), SVEMemOperand(x0, x2));
+  __ ld2h(z21.VnH(), z22.VnH(), p6.Zeroing(), SVEMemOperand(x0, 4, SVE_MUL_VL));
+  __ ld2w(z22.VnS(), z23.VnS(), p6.Zeroing(), SVEMemOperand(x0, 4, SVE_MUL_VL));
+  __ ld2d(z23.VnD(), z24.VnD(), p5.Zeroing(), SVEMemOperand(x0, 4, SVE_MUL_VL));
+
+  __ st3b(z4.VnB(), z5.VnB(), z6.VnB(), p4, SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ st3h(z5.VnH(), z6.VnH(), z7.VnH(), p4, SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ st3w(z6.VnS(), z7.VnS(), z8.VnS(), p3, SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ st3d(z7.VnD(), z8.VnD(), z9.VnD(), p4, SVEMemOperand(x0, x2, LSL, 3));
+  __ ld3b(z24.VnB(),
+          z25.VnB(),
+          z26.VnB(),
+          p5.Zeroing(),
+          SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld3h(z25.VnH(),
+          z26.VnH(),
+          z27.VnH(),
+          p6.Zeroing(),
+          SVEMemOperand(x0, x2, LSL, 1));
+  __ ld3w(z26.VnS(),
+          z27.VnS(),
+          z28.VnS(),
+          p6.Zeroing(),
+          SVEMemOperand(x0, 3, SVE_MUL_VL));
+  __ ld3d(z27.VnD(),
+          z28.VnD(),
+          z29.VnD(),
+          p5.Zeroing(),
+          SVEMemOperand(x0, 3, SVE_MUL_VL));
+
+  __ st4b(z31.VnB(),
+          z0.VnB(),
+          z1.VnB(),
+          z2.VnB(),
+          p4,
+          SVEMemOperand(x0, 4, SVE_MUL_VL));
+  __ st4h(z0.VnH(),
+          z1.VnH(),
+          z2.VnH(),
+          z3.VnH(),
+          p4,
+          SVEMemOperand(x0, 4, SVE_MUL_VL));
+  __ st4w(z1.VnS(),
+          z2.VnS(),
+          z3.VnS(),
+          z4.VnS(),
+          p3,
+          SVEMemOperand(x0, 4, SVE_MUL_VL));
+  __ st4d(z2.VnD(),
+          z3.VnD(),
+          z4.VnD(),
+          z5.VnD(),
+          p4,
+          SVEMemOperand(x0, x2, LSL, 3));
+  __ ld4b(z25.VnB(),
+          z26.VnB(),
+          z27.VnB(),
+          z28.VnB(),
+          p5.Zeroing(),
+          SVEMemOperand(x0, 4, SVE_MUL_VL));
+  __ ld4h(z26.VnH(),
+          z27.VnH(),
+          z28.VnH(),
+          z29.VnH(),
+          p6.Zeroing(),
+          SVEMemOperand(x0, 4, SVE_MUL_VL));
+  __ ld4w(z27.VnS(),
+          z28.VnS(),
+          z29.VnS(),
+          z30.VnS(),
+          p6.Zeroing(),
+          SVEMemOperand(x0, x2, LSL, 2));
+  __ ld4d(z28.VnD(),
+          z29.VnD(),
+          z30.VnD(),
+          z31.VnD(),
+          p5.Zeroing(),
+          SVEMemOperand(x0, 4, SVE_MUL_VL));
+}
+
 static void MaskAddresses(const char* trace) {
-#ifdef __APPLE__
-#define MAYBE_ANSI_C_QUOTE "$"
-#define ESCAPE(c) "\\\\" #c
-  const char* sed_options = "-i \"\" -E";
-#else
-#define MAYBE_ANSI_C_QUOTE
-#define ESCAPE(c) "\\" #c
-  const char* sed_options = "-i -E";
-#endif
-#define COLOUR "(\x1b" ESCAPE([) "[01];([0-9][0-9])?m)?"
-  struct {
-    const char* search;
-    const char* replace;
-  } patterns[] =
+#define VIXL_COLOUR "(\x1b\\[[01];([0-9][0-9])?m)?"
+  // All patterns are replaced with "$1~~~~~~~~~~~~~~~~".
+  std::regex patterns[] =
       {// Mask registers that hold addresses that change from run to run.
-       {"((x0|x1|x2|sp): " COLOUR "0x)[0-9a-f]{16}",
-        ESCAPE(1) "~~~~~~~~~~~~~~~~"},
+       std::regex("((x0|x1|x2|sp): " VIXL_COLOUR "0x)[0-9a-f]{16}"),
        // Mask accessed memory addresses.
-       {"((<-|->) " COLOUR "0x)[0-9a-f]{16}", ESCAPE(1) "~~~~~~~~~~~~~~~~"},
+       std::regex("((<-|->) " VIXL_COLOUR "0x)[0-9a-f]{16}"),
        // Mask instruction addresses.
-       {"^0x[0-9a-f]{16}", "0x~~~~~~~~~~~~~~~~"},
+       std::regex("^(0x)[0-9a-f]{16}"),
        // Mask branch targets.
-       {"(Branch" COLOUR " to 0x)[0-9a-f]{16}", ESCAPE(1) "~~~~~~~~~~~~~~~~"},
-       {"addr 0x[0-9a-f]+", "addr 0x~~~~~~~~~~~~~~~~"}};
-  const size_t patterns_length = sizeof(patterns) / sizeof(patterns[0]);
-  // Rewrite `trace`, masking addresses and other values that legitimately vary
-  // from run to run.
-  char command[1024];
-  for (size_t i = 0; i < patterns_length; i++) {
-    size_t length = snprintf(command,
-                             sizeof(command),
-                             "sed %s 's/%s/%s/' '%s'",
-                             sed_options,
-                             patterns[i].search,
-                             patterns[i].replace,
-                             trace);
-    VIXL_CHECK(length < sizeof(command));
-    VIXL_CHECK(system(command) == 0);
+       std::regex("(Branch" VIXL_COLOUR " to 0x)[0-9a-f]{16}"),
+       // Mask explicit address annotations.
+       std::regex("(addr 0x)[0-9a-f]+")};
+#undef VIXL_COLOUR
+
+  std::vector<std::string> lines;
+  std::ifstream in(trace);
+  while (!in.eof()) {
+    std::string line;
+    std::getline(in, line);
+    for (auto&& pattern : patterns) {
+      line = std::regex_replace(line, pattern, "$1~~~~~~~~~~~~~~~~");
+    }
+    lines.push_back(line);
+  }
+  in.close();
+
+  // `getline` produces an empty line after a terminal "\n".
+  if (lines.back().empty()) lines.pop_back();
+
+  std::ofstream out(trace, std::ofstream::trunc);
+  for (auto&& line : lines) {
+    out << line << "\n";
   }
 }
 
@@ -2831,22 +2969,27 @@
   simulator.SetTraceParameters(trace_parameters);
   simulator.SilenceExclusiveAccessWarning();
 
+  const int vl_in_bytes = 5 * kZRegMinSizeInBytes;
+  const int vl_in_bits = vl_in_bytes * kBitsPerByte;
+  const int pl_in_bits = vl_in_bits / kZRegBitsPerPRegBit;
+  simulator.SetVectorLengthInBits(vl_in_bits);
+
   // Set up a scratch buffer so we can test loads and stores.
-  const int kScratchSize = 64 * KBytes;
-  const int kScratchGuardSize = 128;
+  const int kScratchSize = vl_in_bytes * 1024;
+  const int kScratchGuardSize = vl_in_bytes;
   char scratch_buffer[kScratchSize + kScratchGuardSize];
   for (size_t i = 0; i < (sizeof(scratch_buffer) / sizeof(scratch_buffer[0]));
        i++) {
     scratch_buffer[i] = i & 0xff;
   }
   // Used for offset addressing.
-  simulator.WriteRegister(0, scratch_buffer);
+  simulator.WriteXRegister(0, reinterpret_cast<uintptr_t>(scratch_buffer));
   // Used for pre-/post-index addressing.
-  simulator.WriteRegister(1, scratch_buffer);
+  simulator.WriteXRegister(1, reinterpret_cast<uintptr_t>(scratch_buffer));
 
   const int kPostIndexRegisterStep = 13;  // Arbitrary interesting value.
   // Used for post-index offsets.
-  simulator.WriteRegister(2, kPostIndexRegisterStep);
+  simulator.WriteXRegister(2, kPostIndexRegisterStep);
 
   // Initialize the other registers with unique values.
   uint64_t initial_base_u64 = 0x0100001000100101;
@@ -2858,22 +3001,41 @@
     // not printed.
     simulator.WriteRegister(i, initial_base_u64 * i, Simulator::NoRegLog);
   }
-  float initial_base_f32 = 1.2345f;
-  double initial_base_f64 = 1.3456f;
-  for (unsigned i = 0; i < kNumberOfVRegisters; i++) {
-    // Try to initialise V registers with reasonable FP values.
-    uint64_t low = (DoubleToRawbits(initial_base_f64 * i) & ~kSRegMask) |
-                   FloatToRawbits(initial_base_f32 * i);
-    uint64_t high = low ^ 0x0005555500555555;
-    LogicVRegister reg(simulator.ReadVRegister(i));
-    reg.SetUint(kFormat2D, 0, low);
-    reg.SetUint(kFormat2D, 1, high);
+  for (unsigned r = 0; r < kNumberOfVRegisters; r++) {
+    LogicVRegister reg(simulator.ReadVRegister(r));
+    // Try to initialise Z registers with reasonable FP values. We prioritise
+    // setting double values, then floats and half-precision values. The lanes
+    // overlap, so this is a compromise, but d0, s0 and h0 views all see similar
+    // arithmetic values.
+    //
+    // The exponent of each value is set to the (biased) register number. We set
+    // the double, float and half-precision exponents where we can.
+    uint64_t base = 0x3ff000003f803c00 + (0x0010000000800400 * (0x7f + r));
+    for (unsigned lane = 0; lane < (vl_in_bytes / kDRegSizeInBytes); lane++) {
+      uint64_t mantissas = 0x0000000100010001 * (lane & 0x7f);
+      reg.SetUint(kFormatVnD, lane, base | mantissas);
+    }
+  }
+  for (unsigned r = 0; r < kNumberOfPRegisters; r++) {
+    LogicPRegister reg(simulator.ReadPRegister(r));
+    // Set `r` active lanes between each inactive lane.
+    for (unsigned bit = 0; bit < pl_in_bits; bit++) {
+      reg.SetActive(kFormatVnB, bit, ((bit + 1) % (r + 2)) != 0);
+    }
+    // Completely clear some Q-sized blocks. The trace will completely omit
+    // these for stores.
+    for (unsigned chunk = 0; chunk < (vl_in_bits / kQRegSize); chunk++) {
+      if (((chunk + 1) % (r + 2)) == 0) {
+        reg.SetActiveMask(chunk, static_cast<uint16_t>(0));
+      }
+    }
   }
 
   GenerateTestSequenceBase(&masm);
   GenerateTestSequenceFP(&masm);
   GenerateTestSequenceNEON(&masm);
   GenerateTestSequenceNEONFP(&masm);
+  GenerateTestSequenceSVE(&masm);
   masm.Ret();
   masm.FinalizeCode();
 
@@ -2964,6 +3126,7 @@
   GenerateTestSequenceFP(&masm);
   GenerateTestSequenceNEON(&masm);
   GenerateTestSequenceNEONFP(&masm);
+  GenerateTestSequenceSVE(&masm);
   masm.FinalizeCode();
 
   Decoder decoder;
diff --git a/test/aarch64/test-utils-aarch64.cc b/test/aarch64/test-utils-aarch64.cc
index 62f8cbd..5e6a351 100644
--- a/test/aarch64/test-utils-aarch64.cc
+++ b/test/aarch64/test-utils-aarch64.cc
@@ -25,6 +25,7 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include <cmath>
+#include <queue>
 
 #include "test-runner.h"
 #include "test-utils-aarch64.h"
@@ -40,15 +41,15 @@
 namespace aarch64 {
 
 
-// This value is a signalling NaN as both a double and as a float (taking the
-// least-significant word).
-const double kFP64SignallingNaN = RawbitsToDouble(UINT64_C(0x7ff000007f800001));
-const float kFP32SignallingNaN = RawbitsToFloat(0x7f800001);
+// This value is a signalling NaN as FP64, and also as FP32 or FP16 (taking the
+// least-significant bits).
+const double kFP64SignallingNaN = RawbitsToDouble(UINT64_C(0x7ff000007f807c01));
+const float kFP32SignallingNaN = RawbitsToFloat(0x7f807c01);
 const Float16 kFP16SignallingNaN = RawbitsToFloat16(0x7c01);
 
 // A similar value, but as a quiet NaN.
-const double kFP64QuietNaN = RawbitsToDouble(UINT64_C(0x7ff800007fc00001));
-const float kFP32QuietNaN = RawbitsToFloat(0x7fc00001);
+const double kFP64QuietNaN = RawbitsToDouble(UINT64_C(0x7ff800007fc07e01));
+const float kFP32QuietNaN = RawbitsToFloat(0x7fc07e01);
 const Float16 kFP16QuietNaN = RawbitsToFloat16(0x7e01);
 
 
@@ -86,18 +87,20 @@
 }
 
 
-bool Equal128(vec128_t expected, const RegisterDump*, vec128_t result) {
-  if ((result.h != expected.h) || (result.l != expected.l)) {
+bool Equal128(QRegisterValue expected,
+              const RegisterDump*,
+              QRegisterValue result) {
+  if (!expected.Equals(result)) {
     printf("Expected 0x%016" PRIx64 "%016" PRIx64
            "\t "
            "Found 0x%016" PRIx64 "%016" PRIx64 "\n",
-           expected.h,
-           expected.l,
-           result.h,
-           result.l);
+           expected.GetLane<uint64_t>(1),
+           expected.GetLane<uint64_t>(0),
+           result.GetLane<uint64_t>(1),
+           result.GetLane<uint64_t>(0));
   }
 
-  return ((expected.h == result.h) && (expected.l == result.l));
+  return expected.Equals(result);
 }
 
 
@@ -209,8 +212,10 @@
               const RegisterDump* core,
               const VRegister& vreg) {
   VIXL_ASSERT(vreg.Is128Bits());
-  vec128_t expected = {expected_l, expected_h};
-  vec128_t result = core->qreg(vreg.GetCode());
+  QRegisterValue expected;
+  expected.SetLane(0, expected_l);
+  expected.SetLane(1, expected_h);
+  QRegisterValue result = core->qreg(vreg.GetCode());
   return Equal128(expected, core, result);
 }
 
@@ -348,7 +353,137 @@
   return true;
 }
 
+bool EqualSVELane(uint64_t expected,
+                  const RegisterDump* core,
+                  const ZRegister& reg,
+                  int lane) {
+  unsigned lane_size = reg.GetLaneSizeInBits();
+  // For convenience in the tests, we allow negative values to be passed into
+  // `expected`, but truncate them to an appropriately-sized unsigned value for
+  // the check. For example, in `EqualSVELane(-1, core, z0.VnB())`, the expected
+  // value is truncated from 0xffffffffffffffff to 0xff before the comparison.
+  VIXL_ASSERT(IsUintN(lane_size, expected) ||
+              IsIntN(lane_size, RawbitsToInt64(expected)));
+  expected &= GetUintMask(lane_size);
 
+  uint64_t result = core->zreg_lane(reg.GetCode(), lane_size, lane);
+  if (expected != result) {
+    unsigned lane_size_in_hex_chars = lane_size / 4;
+    std::string reg_name = reg.GetArchitecturalName();
+    printf("%s[%d]\t Expected 0x%0*" PRIx64 "\t Found 0x%0*" PRIx64 "\n",
+           reg_name.c_str(),
+           lane,
+           lane_size_in_hex_chars,
+           expected,
+           lane_size_in_hex_chars,
+           result);
+    return false;
+  }
+  return true;
+}
+
+bool EqualSVELane(uint64_t expected,
+                  const RegisterDump* core,
+                  const PRegister& reg,
+                  int lane) {
+  VIXL_ASSERT(reg.HasLaneSize());
+  VIXL_ASSERT((reg.GetLaneSizeInBits() % kZRegBitsPerPRegBit) == 0);
+  unsigned p_bits_per_lane = reg.GetLaneSizeInBits() / kZRegBitsPerPRegBit;
+  VIXL_ASSERT(IsUintN(p_bits_per_lane, expected));
+  expected &= GetUintMask(p_bits_per_lane);
+
+  uint64_t result = core->preg_lane(reg.GetCode(), p_bits_per_lane, lane);
+  if (expected != result) {
+    unsigned lane_size_in_hex_chars = (p_bits_per_lane + 3) / 4;
+    std::string reg_name = reg.GetArchitecturalName();
+    printf("%s[%d]\t Expected 0x%0*" PRIx64 "\t Found 0x%0*" PRIx64 "\n",
+           reg_name.c_str(),
+           lane,
+           lane_size_in_hex_chars,
+           expected,
+           lane_size_in_hex_chars,
+           result);
+    return false;
+  }
+  return true;
+}
+
+struct EqualMemoryChunk {
+  typedef uint64_t RawChunk;
+
+  uintptr_t address;
+  RawChunk expected;
+  RawChunk result;
+
+  bool IsEqual() const { return expected == result; }
+};
+
+bool EqualMemory(const void* expected,
+                 const void* result,
+                 size_t size_in_bytes,
+                 size_t zero_offset) {
+  if (memcmp(expected, result, size_in_bytes) == 0) return true;
+
+  // Read 64-bit chunks, and print them side-by-side if they don't match.
+
+  // Remember the last few chunks, even if they matched, so we can print some
+  // context. We don't want to print the whole buffer, because it could be huge.
+  static const size_t kContextLines = 1;
+  std::queue<EqualMemoryChunk> context;
+  static const size_t kChunkSize = sizeof(EqualMemoryChunk::RawChunk);
+
+  // This assumption keeps the logic simple, and is acceptable for our tests.
+  VIXL_ASSERT((size_in_bytes % kChunkSize) == 0);
+
+  const char* expected_it = reinterpret_cast<const char*>(expected);
+  const char* result_it = reinterpret_cast<const char*>(result);
+
+  // This is the first error, so print a header row.
+  printf("  Address (of result)                  Expected           Result\n");
+
+  // Always print some context at the start of the buffer.
+  uintptr_t print_context_to =
+      reinterpret_cast<uintptr_t>(result) + (kContextLines + 1) * kChunkSize;
+  for (size_t i = 0; i < size_in_bytes; i += kChunkSize) {
+    EqualMemoryChunk chunk;
+    chunk.address = reinterpret_cast<uintptr_t>(result_it);
+    memcpy(&chunk.expected, expected_it, kChunkSize);
+    memcpy(&chunk.result, result_it, kChunkSize);
+
+    while (context.size() > kContextLines) context.pop();
+    context.push(chunk);
+
+    // Print context after an error, and at the end of the buffer.
+    if (!chunk.IsEqual() || ((i + kChunkSize) >= size_in_bytes)) {
+      if (chunk.address > print_context_to) {
+        // We aren't currently printing context, so separate this context from
+        // the previous block.
+        printf("...\n");
+      }
+      print_context_to = chunk.address + (kContextLines + 1) * kChunkSize;
+    }
+
+    // Print context (including the current line).
+    while (!context.empty() && (context.front().address < print_context_to)) {
+      uintptr_t address = context.front().address;
+      uint64_t offset = address - reinterpret_cast<uintptr_t>(result);
+      bool is_negative = (offset < zero_offset);
+      printf("0x%016" PRIxPTR " (result %c %5" PRIu64 "): 0x%016" PRIx64
+             " 0x%016" PRIx64 "\n",
+             address,
+             (is_negative ? '-' : '+'),
+             (is_negative ? (zero_offset - offset) : (offset - zero_offset)),
+             context.front().expected,
+             context.front().result);
+      context.pop();
+    }
+
+    expected_it += kChunkSize;
+    result_it += kChunkSize;
+  }
+
+  return false;
+}
 RegList PopulateRegisterArray(Register* w,
                               Register* x,
                               Register* r,
@@ -461,25 +596,57 @@
     // This will always clobber D registers.
     ClobberFP(masm, reg_list.GetList());
   } else {
-    VIXL_UNREACHABLE();
+    VIXL_UNIMPLEMENTED();
   }
 }
 
+// TODO: Once registers have sufficiently compatible interfaces, merge the two
+// DumpRegisters templates.
+template <typename T>
+static void DumpRegisters(MacroAssembler* masm,
+                          Register dump_base,
+                          int offset) {
+  UseScratchRegisterScope temps(masm);
+  Register dump = temps.AcquireX();
+  __ Add(dump, dump_base, offset);
+  for (unsigned i = 0; i <= T::GetMaxCode(); i++) {
+    T reg(i);
+    __ Str(reg, SVEMemOperand(dump));
+    __ Add(dump, dump, reg.GetMaxSizeInBytes());
+  }
+}
+
+template <typename T>
+static void DumpRegisters(MacroAssembler* masm,
+                          Register dump_base,
+                          int offset,
+                          int reg_size_in_bytes) {
+  UseScratchRegisterScope temps(masm);
+  Register dump = temps.AcquireX();
+  __ Add(dump, dump_base, offset);
+  for (unsigned i = 0; i <= T::GetMaxCode(); i++) {
+    T reg(i, reg_size_in_bytes * kBitsPerByte);
+    __ Str(reg, MemOperand(dump));
+    __ Add(dump, dump, reg_size_in_bytes);
+  }
+}
 
 void RegisterDump::Dump(MacroAssembler* masm) {
   VIXL_ASSERT(__ StackPointer().Is(sp));
 
-  // Ensure that we don't unintentionally clobber any registers.
+  dump_cpu_features_ = *masm->GetCPUFeatures();
+
+  // We need some scratch registers, but we also need to dump them, so we have
+  // to control exactly which registers are used, and dump them separately.
+  CPURegList scratch_registers(x0, x1, x2, x3);
+
   UseScratchRegisterScope temps(masm);
   temps.ExcludeAll();
+  __ PushCPURegList(scratch_registers);
+  temps.Include(scratch_registers);
 
-  // Preserve some temporary registers.
-  Register dump_base = x0;
-  Register dump = x1;
-  Register tmp = x2;
-  Register dump_base_w = dump_base.W();
-  Register dump_w = dump.W();
-  Register tmp_w = tmp.W();
+  Register dump_base = temps.AcquireX();
+  Register tmp = temps.AcquireX();
 
   // Offsets into the dump_ structure.
   const int x_offset = offsetof(dump_t, x_);
@@ -488,11 +655,12 @@
   const int s_offset = offsetof(dump_t, s_);
   const int h_offset = offsetof(dump_t, h_);
   const int q_offset = offsetof(dump_t, q_);
+  const int z_offset = offsetof(dump_t, z_);
+  const int p_offset = offsetof(dump_t, p_);
   const int sp_offset = offsetof(dump_t, sp_);
   const int wsp_offset = offsetof(dump_t, wsp_);
   const int flags_offset = offsetof(dump_t, flags_);
-
-  __ Push(xzr, dump_base, dump, tmp);
+  const int vl_offset = offsetof(dump_t, vl_);
 
   // Load the address where we will dump the state.
   __ Mov(dump_base, reinterpret_cast<uintptr_t>(&dump_));
@@ -503,94 +671,112 @@
   // compensate here.
   __ Add(tmp, sp, 4 * kXRegSizeInBytes);
   __ Str(tmp, MemOperand(dump_base, sp_offset));
-  __ Add(tmp_w, wsp, 4 * kXRegSizeInBytes);
-  __ Str(tmp_w, MemOperand(dump_base, wsp_offset));
+  __ Add(tmp.W(), wsp, 4 * kXRegSizeInBytes);
+  __ Str(tmp.W(), MemOperand(dump_base, wsp_offset));
 
-  // Dump X registers.
-  __ Add(dump, dump_base, x_offset);
-  for (unsigned i = 0; i < kNumberOfRegisters; i += 2) {
-    __ Stp(Register::GetXRegFromCode(i),
-           Register::GetXRegFromCode(i + 1),
-           MemOperand(dump, i * kXRegSizeInBytes));
-  }
+  // Dump core registers.
+  DumpRegisters<Register>(masm, dump_base, x_offset, kXRegSizeInBytes);
+  DumpRegisters<Register>(masm, dump_base, w_offset, kWRegSizeInBytes);
 
-  // Dump W registers.
-  __ Add(dump, dump_base, w_offset);
-  for (unsigned i = 0; i < kNumberOfRegisters; i += 2) {
-    __ Stp(Register::GetWRegFromCode(i),
-           Register::GetWRegFromCode(i + 1),
-           MemOperand(dump, i * kWRegSizeInBytes));
-  }
+  // Dump NEON and FP registers.
+  DumpRegisters<VRegister>(masm, dump_base, q_offset, kQRegSizeInBytes);
+  DumpRegisters<VRegister>(masm, dump_base, d_offset, kDRegSizeInBytes);
+  DumpRegisters<VRegister>(masm, dump_base, s_offset, kSRegSizeInBytes);
+  DumpRegisters<VRegister>(masm, dump_base, h_offset, kHRegSizeInBytes);
 
-  // Dump D registers.
-  __ Add(dump, dump_base, d_offset);
-  for (unsigned i = 0; i < kNumberOfVRegisters; i += 2) {
-    __ Stp(VRegister::GetDRegFromCode(i),
-           VRegister::GetDRegFromCode(i + 1),
-           MemOperand(dump, i * kDRegSizeInBytes));
-  }
+  // Dump SVE registers.
+  if (CPUHas(CPUFeatures::kSVE)) {
+    DumpRegisters<ZRegister>(masm, dump_base, z_offset);
+    DumpRegisters<PRegister>(masm, dump_base, p_offset);
 
-  // Dump S registers.
-  __ Add(dump, dump_base, s_offset);
-  for (unsigned i = 0; i < kNumberOfVRegisters; i += 2) {
-    __ Stp(VRegister::GetSRegFromCode(i),
-           VRegister::GetSRegFromCode(i + 1),
-           MemOperand(dump, i * kSRegSizeInBytes));
-  }
-
-#ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
-  // Dump H registers. Note: Stp does not support 16 bits.
-  __ Add(dump, dump_base, h_offset);
-  for (unsigned i = 0; i < kNumberOfVRegisters; i++) {
-    __ Str(VRegister::GetHRegFromCode(i),
-           MemOperand(dump, i * kHRegSizeInBytes));
-  }
-#else
-  USE(h_offset);
-#endif
-
-  // Dump Q registers.
-  __ Add(dump, dump_base, q_offset);
-  for (unsigned i = 0; i < kNumberOfVRegisters; i += 2) {
-    __ Stp(VRegister::GetQRegFromCode(i),
-           VRegister::GetQRegFromCode(i + 1),
-           MemOperand(dump, i * kQRegSizeInBytes));
+    // Record the vector length.
+    __ Rdvl(tmp, kBitsPerByte);
+    __ Str(tmp, MemOperand(dump_base, vl_offset));
   }
 
   // Dump the flags.
   __ Mrs(tmp, NZCV);
   __ Str(tmp, MemOperand(dump_base, flags_offset));
 
-  // To dump the values that were in tmp amd dump, we need a new scratch
+  // To dump the values we used as scratch registers, we need a new scratch
   // register. We can use any of the already dumped registers since we can
   // easily restore them.
   Register dump2_base = x10;
-  Register dump2 = x11;
-  VIXL_ASSERT(!AreAliased(dump_base, dump, tmp, dump2_base, dump2));
+  VIXL_ASSERT(!scratch_registers.IncludesAliasOf(dump2_base));
+
+  VIXL_ASSERT(scratch_registers.IncludesAliasOf(dump_base));
+
+  // Ensure that we don't try to use the scratch registers again.
+  temps.ExcludeAll();
 
   // Don't lose the dump_ address.
   __ Mov(dump2_base, dump_base);
 
-  __ Pop(tmp, dump, dump_base, xzr);
+  __ PopCPURegList(scratch_registers);
 
-  __ Add(dump2, dump2_base, w_offset);
-  __ Str(dump_base_w,
-         MemOperand(dump2, dump_base.GetCode() * kWRegSizeInBytes));
-  __ Str(dump_w, MemOperand(dump2, dump.GetCode() * kWRegSizeInBytes));
-  __ Str(tmp_w, MemOperand(dump2, tmp.GetCode() * kWRegSizeInBytes));
+  while (!scratch_registers.IsEmpty()) {
+    CPURegister reg = scratch_registers.PopLowestIndex();
+    Register x = reg.X();
+    Register w = reg.W();
+    unsigned code = reg.GetCode();
+    __ Str(x, MemOperand(dump2_base, x_offset + (code * kXRegSizeInBytes)));
+    __ Str(w, MemOperand(dump2_base, w_offset + (code * kWRegSizeInBytes)));
+  }
 
-  __ Add(dump2, dump2_base, x_offset);
-  __ Str(dump_base, MemOperand(dump2, dump_base.GetCode() * kXRegSizeInBytes));
-  __ Str(dump, MemOperand(dump2, dump.GetCode() * kXRegSizeInBytes));
-  __ Str(tmp, MemOperand(dump2, tmp.GetCode() * kXRegSizeInBytes));
-
-  // Finally, restore dump2_base and dump2.
+  // Finally, restore dump2_base.
   __ Ldr(dump2_base,
-         MemOperand(dump2, dump2_base.GetCode() * kXRegSizeInBytes));
-  __ Ldr(dump2, MemOperand(dump2, dump2.GetCode() * kXRegSizeInBytes));
+         MemOperand(dump2_base,
+                    x_offset + (dump2_base.GetCode() * kXRegSizeInBytes)));
 
   completed_ = true;
 }
 
+uint64_t GetSignallingNan(int size_in_bits) {
+  switch (size_in_bits) {
+    case kHRegSize:
+      return Float16ToRawbits(kFP16SignallingNaN);
+    case kSRegSize:
+      return FloatToRawbits(kFP32SignallingNaN);
+    case kDRegSize:
+      return DoubleToRawbits(kFP64SignallingNaN);
+    default:
+      VIXL_UNIMPLEMENTED();
+      return 0;
+  }
+}
+
+bool CanRun(const CPUFeatures& required, bool* queried_can_run) {
+  bool log_if_missing = true;
+  if (queried_can_run != NULL) {
+    log_if_missing = !*queried_can_run;
+    *queried_can_run = true;
+  }
+
+#ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
+  // The Simulator can run any test that VIXL can assemble.
+  USE(required);
+  USE(log_if_missing);
+  return true;
+#else
+  CPUFeatures cpu = CPUFeatures::InferFromOS();
+  // If InferFromOS fails, assume that basic features are present.
+  if (cpu.HasNoFeatures()) cpu = CPUFeatures::AArch64LegacyBaseline();
+  VIXL_ASSERT(cpu.Has(kInfrastructureCPUFeatures));
+
+  if (cpu.Has(required)) return true;
+
+  if (log_if_missing) {
+    CPUFeatures missing = required.Without(cpu);
+    // Note: This message needs to match REGEXP_MISSING_FEATURES from
+    // tools/threaded_test.py.
+    std::cout << "SKIPPED: Missing features: { " << missing << " }\n";
+    std::cout << "This test requires the following features to run its "
+                 "generated code on this CPU: "
+              << required << "\n";
+  }
+  return false;
+#endif
+}
+
 }  // namespace aarch64
 }  // namespace vixl
diff --git a/test/aarch64/test-utils-aarch64.h b/test/aarch64/test-utils-aarch64.h
index ee09d6b..554cd83 100644
--- a/test/aarch64/test-utils-aarch64.h
+++ b/test/aarch64/test-utils-aarch64.h
@@ -52,12 +52,43 @@
 extern const Float16 kFP16SignallingNaN;
 extern const Float16 kFP16QuietNaN;
 
-// Structure representing Q registers in a RegisterDump.
-struct vec128_t {
-  uint64_t l;
-  uint64_t h;
+// Vector registers don't naturally fit any C++ native type, so define a class
+// with convenient accessors.
+// Note that this has to be a POD type so that we can use 'offsetof' with it.
+template <int kSizeInBytes>
+struct VectorValue {
+  template <typename T>
+  T GetLane(int lane) const {
+    size_t lane_size = sizeof(T);
+    VIXL_CHECK(lane >= 0);
+    VIXL_CHECK(kSizeInBytes >= ((lane + 1) * lane_size));
+    T result;
+    memcpy(&result, bytes + (lane * lane_size), lane_size);
+    return result;
+  }
+
+  template <typename T>
+  void SetLane(int lane, T value) {
+    size_t lane_size = sizeof(value);
+    VIXL_CHECK(kSizeInBytes >= ((lane + 1) * lane_size));
+    memcpy(bytes + (lane * lane_size), &value, lane_size);
+  }
+
+  bool Equals(const VectorValue<kSizeInBytes>& other) const {
+    return memcmp(bytes, other.bytes, kSizeInBytes) == 0;
+  }
+
+  uint8_t bytes[kSizeInBytes];
 };
 
+// It would be convenient to make these subclasses, so we can provide convenient
+// constructors and utility methods specific to each register type, but we can't
+// do that because it makes the result a non-POD type, and then we can't use
+// 'offsetof' in RegisterDump::Dump.
+typedef VectorValue<kQRegSizeInBytes> QRegisterValue;
+typedef VectorValue<kZRegMaxSizeInBytes> ZRegisterValue;
+typedef VectorValue<kPRegMaxSizeInBytes> PRegisterValue;
+
 // RegisterDump: Object allowing integer, floating point and flags registers
 // to be saved to itself for future reference.
 class RegisterDump {
@@ -101,12 +132,12 @@
 
   // VRegister accessors.
   inline uint16_t hreg_bits(unsigned code) const {
-    VIXL_ASSERT(FPRegAliasesMatch(code));
+    VIXL_ASSERT(VRegAliasesMatch(code));
     return dump_.h_[code];
   }
 
   inline uint32_t sreg_bits(unsigned code) const {
-    VIXL_ASSERT(FPRegAliasesMatch(code));
+    VIXL_ASSERT(VRegAliasesMatch(code));
     return dump_.s_[code];
   }
 
@@ -119,7 +150,7 @@
   }
 
   inline uint64_t dreg_bits(unsigned code) const {
-    VIXL_ASSERT(FPRegAliasesMatch(code));
+    VIXL_ASSERT(VRegAliasesMatch(code));
     return dump_.d_[code];
   }
 
@@ -127,7 +158,78 @@
     return RawbitsToDouble(dreg_bits(code));
   }
 
-  inline vec128_t qreg(unsigned code) const { return dump_.q_[code]; }
+  inline QRegisterValue qreg(unsigned code) const { return dump_.q_[code]; }
+
+  template <typename T>
+  inline T zreg_lane(unsigned code, int lane) const {
+    VIXL_ASSERT(VRegAliasesMatch(code));
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+    VIXL_ASSERT(lane < GetSVELaneCount(sizeof(T) * kBitsPerByte));
+    return dump_.z_[code].GetLane<T>(lane);
+  }
+
+  inline uint64_t zreg_lane(unsigned code,
+                            unsigned size_in_bits,
+                            int lane) const {
+    switch (size_in_bits) {
+      case kBRegSize:
+        return zreg_lane<uint8_t>(code, lane);
+      case kHRegSize:
+        return zreg_lane<uint16_t>(code, lane);
+      case kSRegSize:
+        return zreg_lane<uint32_t>(code, lane);
+      case kDRegSize:
+        return zreg_lane<uint64_t>(code, lane);
+    }
+    VIXL_UNREACHABLE();
+    return 0;
+  }
+
+  inline uint64_t preg_lane(unsigned code,
+                            unsigned p_bits_per_lane,
+                            int lane) const {
+    VIXL_ASSERT(CPUHas(CPUFeatures::kSVE));
+    VIXL_ASSERT(lane < GetSVELaneCount(p_bits_per_lane * kZRegBitsPerPRegBit));
+    // Load a chunk and extract the necessary bits. The chunk size is arbitrary.
+    typedef uint64_t Chunk;
+    const size_t kChunkSizeInBits = sizeof(Chunk) * kBitsPerByte;
+    VIXL_ASSERT(IsPowerOf2(p_bits_per_lane));
+    VIXL_ASSERT(p_bits_per_lane <= kChunkSizeInBits);
+
+    int chunk_index = (lane * p_bits_per_lane) / kChunkSizeInBits;
+    int bit_index = (lane * p_bits_per_lane) % kChunkSizeInBits;
+    Chunk chunk = dump_.p_[code].GetLane<Chunk>(chunk_index);
+    return (chunk >> bit_index) & GetUintMask(p_bits_per_lane);
+  }
+
+  inline int GetSVELaneCount(int lane_size_in_bits) const {
+    VIXL_ASSERT(lane_size_in_bits > 0);
+    VIXL_ASSERT((dump_.vl_ % lane_size_in_bits) == 0);
+    uint64_t count = dump_.vl_ / lane_size_in_bits;
+    VIXL_ASSERT(count <= INT_MAX);
+    return static_cast<int>(count);
+  }
+
+  template <typename T>
+  inline bool HasSVELane(T reg, int lane) const {
+    VIXL_ASSERT(reg.IsZRegister() || reg.IsPRegister());
+    return lane < GetSVELaneCount(reg.GetLaneSizeInBits());
+  }
+
+  template <typename T>
+  inline uint64_t GetSVELane(T reg, int lane) const {
+    VIXL_ASSERT(HasSVELane(reg, lane));
+    if (reg.IsZRegister()) {
+      return zreg_lane(reg.GetCode(), reg.GetLaneSizeInBits(), lane);
+    } else if (reg.IsPRegister()) {
+      VIXL_ASSERT((reg.GetLaneSizeInBits() % kZRegBitsPerPRegBit) == 0);
+      return preg_lane(reg.GetCode(),
+                       reg.GetLaneSizeInBits() / kZRegBitsPerPRegBit,
+                       lane);
+    } else {
+      VIXL_ABORT();
+    }
+  }
 
   // Stack pointer accessors.
   inline int64_t spreg() const {
@@ -168,12 +270,30 @@
     return ((dump_.sp_ & kWRegMask) == dump_.wsp_);
   }
 
-  // As RegAliasesMatch, but for floating-point registers.
-  bool FPRegAliasesMatch(unsigned code) const {
+  // As RegAliasesMatch, but for Z and V registers.
+  bool VRegAliasesMatch(unsigned code) const {
     VIXL_ASSERT(IsComplete());
     VIXL_ASSERT(code < kNumberOfVRegisters);
-    return (((dump_.d_[code] & kSRegMask) == dump_.s_[code]) ||
-            ((dump_.s_[code] & kHRegMask) == dump_.h_[code]));
+    bool match = ((dump_.q_[code].GetLane<uint64_t>(0) == dump_.d_[code]) &&
+                  ((dump_.d_[code] & kSRegMask) == dump_.s_[code]) &&
+                  ((dump_.s_[code] & kHRegMask) == dump_.h_[code]));
+    if (CPUHas(CPUFeatures::kSVE)) {
+      bool z_match =
+          memcmp(&dump_.q_[code], &dump_.z_[code], kQRegSizeInBytes) == 0;
+      match = match && z_match;
+    }
+    return match;
+  }
+
+  // Record the CPUFeatures enabled when Dump was called.
+  CPUFeatures dump_cpu_features_;
+
+  // Convenience pass-through for CPU feature checks.
+  bool CPUHas(CPUFeatures::Feature feature0,
+              CPUFeatures::Feature feature1 = CPUFeatures::kNone,
+              CPUFeatures::Feature feature2 = CPUFeatures::kNone,
+              CPUFeatures::Feature feature3 = CPUFeatures::kNone) const {
+    return dump_cpu_features_.Has(feature0, feature1, feature2, feature3);
   }
 
   // Store all the dumped elements in a simple struct so the implementation can
@@ -189,7 +309,10 @@
     uint16_t h_[kNumberOfVRegisters];
 
     // Vector registers.
-    vec128_t q_[kNumberOfVRegisters];
+    QRegisterValue q_[kNumberOfVRegisters];
+    ZRegisterValue z_[kNumberOfZRegisters];
+
+    PRegisterValue p_[kNumberOfPRegisters];
 
     // The stack pointer.
     uint64_t sp_;
@@ -201,6 +324,9 @@
     // bit[29] : Carry
     // bit[28] : oVerflow
     uint64_t flags_;
+
+    // The SVE "VL" (vector length) in bits.
+    uint64_t vl_;
   } dump_;
 };
 
@@ -219,6 +345,9 @@
              const RegisterDump*,
              uint64_t result,
              ExpectedResult option = kExpectEqual);
+bool Equal128(QRegisterValue expected,
+              const RegisterDump*,
+              QRegisterValue result);
 
 bool EqualFP16(Float16 expected, const RegisterDump*, uint16_t result);
 bool EqualFP32(float expected, const RegisterDump*, float result);
@@ -261,6 +390,92 @@
   return !Equal64(reference, core, result, kExpectNotEqual);
 }
 
+bool EqualSVELane(uint64_t expected,
+                  const RegisterDump* core,
+                  const ZRegister& reg,
+                  int lane);
+
+bool EqualSVELane(uint64_t expected,
+                  const RegisterDump* core,
+                  const PRegister& reg,
+                  int lane);
+
+// Check that each SVE lane matches the corresponding expected[] value. The
+// highest-indexed array element maps to the lowest-numbered lane.
+template <typename T, int N, typename R>
+bool EqualSVE(const T (&expected)[N],
+              const RegisterDump* core,
+              const R& reg,
+              bool* printed_warning) {
+  VIXL_ASSERT(reg.IsZRegister() || reg.IsPRegister());
+  VIXL_ASSERT(reg.HasLaneSize());
+  // Evaluate and report errors on every lane, rather than just the first.
+  bool equal = true;
+  for (int lane = 0; lane < N; ++lane) {
+    if (!core->HasSVELane(reg, lane)) {
+      if (*printed_warning == false) {
+        *printed_warning = true;
+        printf(
+            "Warning: Ignoring SVE lanes beyond VL (%d bytes) "
+            "because the CPU does not implement them.\n",
+            core->GetSVELaneCount(kBRegSize));
+      }
+      break;
+    }
+    // Map the highest-indexed array element to the lowest-numbered lane.
+    equal = EqualSVELane(expected[N - lane - 1], core, reg, lane) && equal;
+  }
+  return equal;
+}
+
+// Check that each SVE lanes matches the `expected` value.
+template <typename R>
+bool EqualSVE(uint64_t expected,
+              const RegisterDump* core,
+              const R& reg,
+              bool* printed_warning) {
+  VIXL_ASSERT(reg.IsZRegister() || reg.IsPRegister());
+  VIXL_ASSERT(reg.HasLaneSize());
+  USE(printed_warning);
+  // Evaluate and report errors on every lane, rather than just the first.
+  bool equal = true;
+  for (int lane = 0; lane < core->GetSVELaneCount(reg.GetLaneSizeInBits());
+       ++lane) {
+    equal = EqualSVELane(expected, core, reg, lane) && equal;
+  }
+  return equal;
+}
+
+// Check that two Z or P registers are equal.
+template <typename R>
+bool EqualSVE(const R& expected,
+              const RegisterDump* core,
+              const R& result,
+              bool* printed_warning) {
+  VIXL_ASSERT(result.IsZRegister() || result.IsPRegister());
+  VIXL_ASSERT(AreSameFormat(expected, result));
+  USE(printed_warning);
+
+  // If the lane size is omitted, pick a default.
+  if (!result.HasLaneSize()) {
+    return EqualSVE(expected.VnB(), core, result.VnB(), printed_warning);
+  }
+
+  // Evaluate and report errors on every lane, rather than just the first.
+  bool equal = true;
+  int lane_size = result.GetLaneSizeInBits();
+  for (int lane = 0; lane < core->GetSVELaneCount(lane_size); ++lane) {
+    uint64_t expected_lane = core->GetSVELane(expected, lane);
+    equal = equal && EqualSVELane(expected_lane, core, result, lane);
+  }
+  return equal;
+}
+
+bool EqualMemory(const void* expected,
+                 const void* result,
+                 size_t size_in_bytes,
+                 size_t zero_offset = 0);
+
 // Populate the w, x and r arrays with registers from the 'allowed' mask. The
 // r array will be populated with <reg_size>-sized registers,
 //
@@ -308,6 +523,66 @@
 // Clobber or ClobberFP functions.
 void Clobber(MacroAssembler* masm, CPURegList reg_list);
 
+uint64_t GetSignallingNan(int size_in_bits);
+
+// This class acts as a drop-in replacement for VIXL's MacroAssembler, giving
+// CalculateSVEAddress public visibility.
+//
+// CalculateSVEAddress normally has protected visibility, but it's useful to
+// test it in isolation because it is the basis of all SVE non-scatter-gather
+// load and store fall-backs.
+class CalculateSVEAddressMacroAssembler : public vixl::aarch64::MacroAssembler {
+ public:
+  void CalculateSVEAddress(const Register& xd,
+                           const SVEMemOperand& addr,
+                           int vl_divisor_log2) {
+    MacroAssembler::CalculateSVEAddress(xd, addr, vl_divisor_log2);
+  }
+
+  void CalculateSVEAddress(const Register& xd, const SVEMemOperand& addr) {
+    MacroAssembler::CalculateSVEAddress(xd, addr);
+  }
+};
+
+// This class acts as a drop-in replacement for VIXL's MacroAssembler, with
+// fast NaN proparation mode switched on.
+class FastNaNPropagationMacroAssembler : public MacroAssembler {
+ public:
+  FastNaNPropagationMacroAssembler() {
+    SetFPNaNPropagationOption(FastNaNPropagation);
+  }
+};
+
+// This class acts as a drop-in replacement for VIXL's MacroAssembler, with
+// strict NaN proparation mode switched on.
+class StrictNaNPropagationMacroAssembler : public MacroAssembler {
+ public:
+  StrictNaNPropagationMacroAssembler() {
+    SetFPNaNPropagationOption(StrictNaNPropagation);
+  }
+};
+
+// If the required features are available, return true.
+// Otherwise:
+//  - Print a warning message, unless *queried_can_run indicates that we've
+//    already done so.
+//  - Return false.
+//
+// If *queried_can_run is NULL, it is treated as false. Otherwise, it is set to
+// true, regardless of the return value.
+//
+// The warning message printed on failure is used by tools/threaded_tests.py to
+// count skipped tests. A test must not print more than one such warning
+// message. It is safe to call CanRun multiple times per test, as long as
+// queried_can_run is propagated correctly between calls, and the first call to
+// CanRun requires every feature that is required by subsequent calls. If
+// queried_can_run is NULL, CanRun must not be called more than once per test.
+bool CanRun(const CPUFeatures& required, bool* queried_can_run = NULL);
+
+// PushCalleeSavedRegisters(), PopCalleeSavedRegisters() and Dump() use NEON, so
+// we need to enable it in the infrastructure code for each test.
+static const CPUFeatures kInfrastructureCPUFeatures(CPUFeatures::kNEON);
+
 }  // namespace aarch64
 }  // namespace vixl
 
diff --git a/test/aarch64/traces/sim-frint64x-2d-trace-aarch64.h b/test/aarch64/traces/sim-frint64x-2d-trace-aarch64.h
index e6f0a1a..07fdee5 100644
--- a/test/aarch64/traces/sim-frint64x-2d-trace-aarch64.h
+++ b/test/aarch64/traces/sim-frint64x-2d-trace-aarch64.h
@@ -203,8 +203,8 @@
   0xc3e0000000000000, 0xc3e0000000000000,
   0xc3e0000000000000, 0xc3dfffffffffffff,
   0xc3dfffffffffffff, 0x43dfffffffffffff,
-  0x43dfffffffffffff, 0x43e0000000000000,
-  0x43e0000000000000, 0xc3e0000000000000,
+  0x43dfffffffffffff, 0xc3e0000000000000,
+  0xc3e0000000000000, 0xc3e0000000000000,
   0xc3e0000000000000, 0xc3e0000000000000,
   0xc3e0000000000000, 0xc1e0000000200000,
   0xc1e0000000200000, 0xc1e0000000200000,
diff --git a/test/aarch64/traces/sim-frint64x-2s-trace-aarch64.h b/test/aarch64/traces/sim-frint64x-2s-trace-aarch64.h
index f87aa71..3e127e0 100644
--- a/test/aarch64/traces/sim-frint64x-2s-trace-aarch64.h
+++ b/test/aarch64/traces/sim-frint64x-2s-trace-aarch64.h
@@ -133,8 +133,8 @@
   0xdf000000, 0xdf000000,
   0xdf000000, 0xdeffffff,
   0xdeffffff, 0x5effffff,
-  0x5effffff, 0x5f000000,
-  0x5f000000, 0xdf000000,
+  0x5effffff, 0xdf000000,
+  0xdf000000, 0xdf000000,
   0xdf000000, 0xdf000000,
   0xdf000000, 0xcf000001,
   0xcf000001, 0xcf000000,
diff --git a/test/aarch64/traces/sim-frint64x-4s-trace-aarch64.h b/test/aarch64/traces/sim-frint64x-4s-trace-aarch64.h
index 7d44398..84ae164 100644
--- a/test/aarch64/traces/sim-frint64x-4s-trace-aarch64.h
+++ b/test/aarch64/traces/sim-frint64x-4s-trace-aarch64.h
@@ -131,10 +131,10 @@
   0xca800000, 0xca800000, 0xdf000000, 0xdf000000,
   0xca800000, 0xdf000000, 0xdf000000, 0xdeffffff,
   0xdf000000, 0xdf000000, 0xdeffffff, 0x5effffff,
-  0xdf000000, 0xdeffffff, 0x5effffff, 0x5f000000,
-  0xdeffffff, 0x5effffff, 0x5f000000, 0xdf000000,
-  0x5effffff, 0x5f000000, 0xdf000000, 0xdf000000,
-  0x5f000000, 0xdf000000, 0xdf000000, 0xcf000001,
+  0xdf000000, 0xdeffffff, 0x5effffff, 0xdf000000,
+  0xdeffffff, 0x5effffff, 0xdf000000, 0xdf000000,
+  0x5effffff, 0xdf000000, 0xdf000000, 0xdf000000,
+  0xdf000000, 0xdf000000, 0xdf000000, 0xcf000001,
   0xdf000000, 0xdf000000, 0xcf000001, 0xcf000000,
   0xdf000000, 0xcf000001, 0xcf000000, 0xceffffff,
   0xcf000001, 0xcf000000, 0xceffffff, 0x4effffff,
diff --git a/test/aarch64/traces/sim-frint64x-d-trace-aarch64.h b/test/aarch64/traces/sim-frint64x-d-trace-aarch64.h
index 725b012..8f0c269 100644
--- a/test/aarch64/traces/sim-frint64x-d-trace-aarch64.h
+++ b/test/aarch64/traces/sim-frint64x-d-trace-aarch64.h
@@ -203,7 +203,7 @@
   0xc3e0000000000000,
   0xc3dfffffffffffff,
   0x43dfffffffffffff,
-  0x43e0000000000000,
+  0xc3e0000000000000,
   0xc3e0000000000000,
   0xc3e0000000000000,
   0xc1e0000000200000,
diff --git a/test/aarch64/traces/sim-frint64x-s-trace-aarch64.h b/test/aarch64/traces/sim-frint64x-s-trace-aarch64.h
index d09b2f7..3cffa56 100644
--- a/test/aarch64/traces/sim-frint64x-s-trace-aarch64.h
+++ b/test/aarch64/traces/sim-frint64x-s-trace-aarch64.h
@@ -131,7 +131,7 @@
   0xdf000000,
   0xdeffffff,
   0x5effffff,
-  0x5f000000,
+  0xdf000000,
   0xdf000000,
   0xdf000000,
   0xcf000001,
diff --git a/test/aarch64/traces/sim-frint64z-2d-trace-aarch64.h b/test/aarch64/traces/sim-frint64z-2d-trace-aarch64.h
index a9777b5..c481433 100644
--- a/test/aarch64/traces/sim-frint64z-2d-trace-aarch64.h
+++ b/test/aarch64/traces/sim-frint64z-2d-trace-aarch64.h
@@ -203,8 +203,8 @@
   0xc3e0000000000000, 0xc3e0000000000000,
   0xc3e0000000000000, 0xc3dfffffffffffff,
   0xc3dfffffffffffff, 0x43dfffffffffffff,
-  0x43dfffffffffffff, 0x43e0000000000000,
-  0x43e0000000000000, 0xc3e0000000000000,
+  0x43dfffffffffffff, 0xc3e0000000000000,
+  0xc3e0000000000000, 0xc3e0000000000000,
   0xc3e0000000000000, 0xc3e0000000000000,
   0xc3e0000000000000, 0xc1e0000000200000,
   0xc1e0000000200000, 0xc1e0000000200000,
diff --git a/test/aarch64/traces/sim-frint64z-2s-trace-aarch64.h b/test/aarch64/traces/sim-frint64z-2s-trace-aarch64.h
index 97544e5..2195c1f 100644
--- a/test/aarch64/traces/sim-frint64z-2s-trace-aarch64.h
+++ b/test/aarch64/traces/sim-frint64z-2s-trace-aarch64.h
@@ -133,8 +133,8 @@
   0xdf000000, 0xdf000000,
   0xdf000000, 0xdeffffff,
   0xdeffffff, 0x5effffff,
-  0x5effffff, 0x5f000000,
-  0x5f000000, 0xdf000000,
+  0x5effffff, 0xdf000000,
+  0xdf000000, 0xdf000000,
   0xdf000000, 0xdf000000,
   0xdf000000, 0xcf000001,
   0xcf000001, 0xcf000000,
diff --git a/test/aarch64/traces/sim-frint64z-4s-trace-aarch64.h b/test/aarch64/traces/sim-frint64z-4s-trace-aarch64.h
index 34640db..d42e93a 100644
--- a/test/aarch64/traces/sim-frint64z-4s-trace-aarch64.h
+++ b/test/aarch64/traces/sim-frint64z-4s-trace-aarch64.h
@@ -131,10 +131,10 @@
   0xca7ffffc, 0xca7ffffc, 0xdf000000, 0xdf000000,
   0xca7ffffc, 0xdf000000, 0xdf000000, 0xdeffffff,
   0xdf000000, 0xdf000000, 0xdeffffff, 0x5effffff,
-  0xdf000000, 0xdeffffff, 0x5effffff, 0x5f000000,
-  0xdeffffff, 0x5effffff, 0x5f000000, 0xdf000000,
-  0x5effffff, 0x5f000000, 0xdf000000, 0xdf000000,
-  0x5f000000, 0xdf000000, 0xdf000000, 0xcf000001,
+  0xdf000000, 0xdeffffff, 0x5effffff, 0xdf000000,
+  0xdeffffff, 0x5effffff, 0xdf000000, 0xdf000000,
+  0x5effffff, 0xdf000000, 0xdf000000, 0xdf000000,
+  0xdf000000, 0xdf000000, 0xdf000000, 0xcf000001,
   0xdf000000, 0xdf000000, 0xcf000001, 0xcf000000,
   0xdf000000, 0xcf000001, 0xcf000000, 0xceffffff,
   0xcf000001, 0xcf000000, 0xceffffff, 0x4effffff,
diff --git a/test/aarch64/traces/sim-frint64z-d-trace-aarch64.h b/test/aarch64/traces/sim-frint64z-d-trace-aarch64.h
index 5f96c65..b65f68a 100644
--- a/test/aarch64/traces/sim-frint64z-d-trace-aarch64.h
+++ b/test/aarch64/traces/sim-frint64z-d-trace-aarch64.h
@@ -203,7 +203,7 @@
   0xc3e0000000000000,
   0xc3dfffffffffffff,
   0x43dfffffffffffff,
-  0x43e0000000000000,
+  0xc3e0000000000000,
   0xc3e0000000000000,
   0xc3e0000000000000,
   0xc1e0000000200000,
diff --git a/test/aarch64/traces/sim-frint64z-s-trace-aarch64.h b/test/aarch64/traces/sim-frint64z-s-trace-aarch64.h
index 1df9f78..35e0686 100644
--- a/test/aarch64/traces/sim-frint64z-s-trace-aarch64.h
+++ b/test/aarch64/traces/sim-frint64z-s-trace-aarch64.h
@@ -131,7 +131,7 @@
   0xdf000000,
   0xdeffffff,
   0x5effffff,
-  0x5f000000,
+  0xdf000000,
   0xdf000000,
   0xdf000000,
   0xcf000001,
diff --git a/test/test-api.cc b/test/test-api.cc
index 5e0001e..b30230d 100644
--- a/test/test-api.cc
+++ b/test/test-api.cc
@@ -262,20 +262,20 @@
 
   // Incrementable
   // - Incrementing has no effect on an empty CPUFeatures.
-  VIXL_CHECK(it3++ == CPUFeatures::kNone);
-  VIXL_CHECK(++it3 == CPUFeatures::kNone);
+  VIXL_CHECK(*it3++ == CPUFeatures::kNone);
+  VIXL_CHECK(*(++it3) == CPUFeatures::kNone);
   VIXL_CHECK(it3 == It(&f3, CPUFeatures::kNone));
   // - Incrementing moves to the next feature, wrapping around (through kNone).
   //   This test will need to be updated if the Feature enum is reordered.
-  VIXL_CHECK(it2_neon++ == CPUFeatures::kNEON);
-  VIXL_CHECK(it2_neon++ == CPUFeatures::kCRC32);
-  VIXL_CHECK(it2_neon++ == CPUFeatures::kNone);
-  VIXL_CHECK(it2_neon++ == CPUFeatures::kFP);
+  VIXL_CHECK(*it2_neon++ == CPUFeatures::kNEON);
+  VIXL_CHECK(*it2_neon++ == CPUFeatures::kCRC32);
+  VIXL_CHECK(*it2_neon++ == CPUFeatures::kNone);
+  VIXL_CHECK(*it2_neon++ == CPUFeatures::kFP);
   VIXL_CHECK(it2_neon == It(&f2, CPUFeatures::kNEON));
-  VIXL_CHECK(++it2_crc32 == CPUFeatures::kNone);
-  VIXL_CHECK(++it2_crc32 == CPUFeatures::kFP);
-  VIXL_CHECK(++it2_crc32 == CPUFeatures::kNEON);
-  VIXL_CHECK(++it2_crc32 == CPUFeatures::kCRC32);
+  VIXL_CHECK(*(++it2_crc32) == CPUFeatures::kNone);
+  VIXL_CHECK(*(++it2_crc32) == CPUFeatures::kFP);
+  VIXL_CHECK(*(++it2_crc32) == CPUFeatures::kNEON);
+  VIXL_CHECK(*(++it2_crc32) == CPUFeatures::kCRC32);
   VIXL_CHECK(it2_crc32 == It(&f2, CPUFeatures::kCRC32));
 }
 
@@ -313,7 +313,6 @@
   }
   VIXL_CHECK(f3_list.size() == 0);
 
-#if __cplusplus >= 201103L
   std::vector<CPUFeatures::Feature> f2_list_cxx11;
   for (auto&& feature : f2) {
     f2_list_cxx11.push_back(feature);
@@ -328,16 +327,18 @@
     f3_list_cxx11.push_back(feature);
   }
   VIXL_CHECK(f3_list_cxx11.size() == 0);
-#endif
 }
 
 
 TEST(CPUFeatures_empty) {
   // A default-constructed CPUFeatures has no features enabled.
-  CPUFeatures f;
-  for (CPUFeatures::const_iterator it = f.begin(); it != f.end(); ++it) {
+  CPUFeatures features;
+  for (auto f : features) {
+    USE(f);
     VIXL_ABORT();
   }
+  VIXL_CHECK(features.HasNoFeatures());
+  VIXL_CHECK(features.Count() == 0);
 }
 
 
@@ -377,24 +378,6 @@
   CPUFeaturesFormatHelper("FP, NEON, CRC32, Fcma", f);
   f.Combine(CPUFeatures::kSHA1);
   CPUFeaturesFormatHelper("FP, NEON, CRC32, SHA1, Fcma", f);
-
-  CPUFeaturesFormatHelper(
-      "ID register emulation, "
-      // Armv8.0
-      "FP, NEON, CRC32, "
-      "AES, SHA1, SHA2, Pmull1Q, "
-      // Armv8.1
-      "Atomics, LORegions, RDM, "
-      // Armv8.2
-      "SVE, DotProduct, FPHalf, NEONHalf, RAS, DCPoP, DCCVADP, SHA3, SHA512, "
-      "SM3, SM4, "
-      // Armv8.3
-      "PAuth, PAuthQARMA, PAuthGeneric, PAuthGenericQARMA, JSCVT, Fcma, RCpc, "
-      // Armv8.4
-      "RCpc (imm), FlagM, USCAT, FHM, DIT, "
-      // Armv8.5
-      "BTI, AXFlag, RNG, Frint (bounded)",
-      CPUFeatures::All());
 }
 
 
@@ -402,17 +385,16 @@
     const std::set<CPUFeatures::Feature>& unexpected,
     const std::set<CPUFeatures::Feature>& expected) {
   // Print a helpful diagnostic before checking the result.
-  typedef std::set<CPUFeatures::Feature>::const_iterator It;
   if (!unexpected.empty()) {
     std::cout << "Unexpected features:\n";
-    for (It it = unexpected.begin(); it != unexpected.end(); ++it) {
-      std::cout << "  " << *it << "\n";
+    for (auto f : unexpected) {
+      std::cout << "  " << f << "\n";
     }
   }
   if (!expected.empty()) {
     std::cout << "Missing features:\n";
-    for (It it = expected.begin(); it != expected.end(); ++it) {
-      std::cout << "  " << *it << "\n";
+    for (auto f : expected) {
+      std::cout << "  " << f << "\n";
     }
   }
   VIXL_CHECK(unexpected.empty() && expected.empty());
@@ -420,28 +402,29 @@
 
 
 TEST(CPUFeatures_predefined_legacy) {
-  CPUFeatures f = CPUFeatures::AArch64LegacyBaseline();
+  CPUFeatures features = CPUFeatures::AArch64LegacyBaseline();
   std::set<CPUFeatures::Feature> unexpected;
   std::set<CPUFeatures::Feature> expected;
   expected.insert(CPUFeatures::kFP);
   expected.insert(CPUFeatures::kNEON);
   expected.insert(CPUFeatures::kCRC32);
 
-  for (CPUFeatures::const_iterator it = f.begin(); it != f.end(); ++it) {
-    if (expected.erase(*it) == 0) unexpected.insert(*it);
+  for (auto f : features) {
+    if (expected.erase(f) == 0) unexpected.insert(f);
   }
   CPUFeaturesPredefinedResultCheckHelper(unexpected, expected);
 }
 
 
 TEST(CPUFeatures_predefined_all) {
-  CPUFeatures f = CPUFeatures::All();
+  CPUFeatures features = CPUFeatures::All();
   std::set<CPUFeatures::Feature> found;
 
-  for (CPUFeatures::const_iterator it = f.begin(); it != f.end(); ++it) {
-    found.insert(*it);
+  for (auto f : features) {
+    found.insert(f);
   }
   VIXL_CHECK(found.size() == CPUFeatures::kNumberOfFeatures);
+  VIXL_CHECK(found.size() == features.Count());
 }
 
 // The CPUFeaturesScope constructor is templated, and needs an object which
@@ -502,7 +485,10 @@
       CPUFeatures auth(CPUFeatures::kPAuth,
                        CPUFeatures::kPAuthQARMA,
                        CPUFeatures::kPAuthGeneric,
-                       CPUFeatures::kPAuthGenericQARMA);
+                       CPUFeatures::kPAuthGenericQARMA,
+                       CPUFeatures::kPAuthEnhancedPAC2,
+                       CPUFeatures::kPAuthFPAC,
+                       CPUFeatures::kPAuthFPACCombined);
 
       CPUFeaturesScope inner(&outer, auth);
       VIXL_CHECK(inner.GetCPUFeatures() == &cpu);
@@ -515,6 +501,11 @@
     VIXL_CHECK(original_inner.Has(cpu));
   }
 
+  {
+    // Scopes can be initialised with no features.
+    CPUFeaturesScope scope(&top_level);
+  }
+
   // Check for equivalence.
   VIXL_CHECK(cpu.Has(original_outer));
   VIXL_CHECK(original_outer.Has(cpu));
diff --git a/test/test-code-buffer.cc b/test/test-code-buffer.cc
index b2c16a3..26da7f7 100644
--- a/test/test-code-buffer.cc
+++ b/test/test-code-buffer.cc
@@ -72,7 +72,7 @@
 TEST(reset) {
   CodeBuffer buffer;
   // Update the buffer by writing to it.
-  buffer.Emit("dummy data");
+  buffer.Emit("placeholder data");
   VIXL_CHECK(buffer.IsDirty());
   VIXL_CHECK(buffer.GetSizeInBytes() > 0);
   // Calling Reset() should reset it back to its default state. (It does not
diff --git a/test/test-runner.cc b/test/test-runner.cc
index b0e1d11..092a4ed 100644
--- a/test/test-runner.cc
+++ b/test/test-runner.cc
@@ -49,26 +49,9 @@
 // No colour highlight by default.
 bool vixl::Test::coloured_trace_ = false;
 
-// No instruction statistics by default.
-bool vixl::Test::instruction_stats_ = false;
-
 // Don't generate traces by default.
 bool vixl::Test::generate_test_trace_ = false;
 
-// Instantiate a Test and append it to the linked list.
-vixl::Test::Test(const char* name, TestFunction* callback)
-    : name_(name), callback_(callback), next_(NULL) {
-  // Append this test to the linked list.
-  if (first_ == NULL) {
-    VIXL_ASSERT(last_ == NULL);
-    first_ = this;
-  } else {
-    last_->next_ = this;
-  }
-  last_ = this;
-}
-
-
 // Look for 'search' in the arguments.
 static bool IsInArgs(const char* search, int argc, char* argv[]) {
   for (int i = 1; i < argc; i++) {
@@ -118,7 +101,6 @@
       "--disassemble-test-code  "
       "As above, but don't disassemble infrastructure code.\n"
       "--coloured_trace         Generate coloured trace.\n"
-      "--instruction_stats      Log instruction statistics to vixl_stats.csv.\n"
       "--generate_test_trace    "
       "Print result traces for SIM_* and TRACE_* tests.\n");
 }
@@ -179,10 +161,6 @@
     vixl::Test::set_disassemble_infrastructure(false);
   }
 
-  if (IsInArgs("--instruction-stats", argc, argv)) {
-    vixl::Test::set_instruction_stats(true);
-  }
-
   if (IsInArgs("--generate-test-trace", argc, argv)) {
     vixl::Test::set_generate_test_trace(true);
   }
@@ -202,7 +180,7 @@
     // Run all registered tests.
     for (vixl::Test* c = vixl::Test::first(); c != NULL; c = c->next()) {
       printf("Running %s\n", c->name());
-      c->callback()();
+      c->run();
     }
 
   } else {
@@ -218,7 +196,7 @@
         vixl::Test* c;
         for (c = vixl::Test::first(); c != NULL; c = c->next()) {
           if (strcmp(c->name(), argv[i]) == 0) {
-            c->callback()();
+            c->run();
             break;
           }
         }
@@ -233,3 +211,23 @@
 
   return EXIT_SUCCESS;
 }
+
+void vixl::Test::set_callback(TestFunction* callback) {
+  callback_ = callback;
+  callback_with_config_ = NULL;
+}
+
+void vixl::Test::set_callback(TestFunctionWithConfig* callback) {
+  callback_ = NULL;
+  callback_with_config_ = callback;
+}
+
+void vixl::Test::run() {
+  if (callback_ == NULL) {
+    VIXL_ASSERT(callback_with_config_ != NULL);
+    callback_with_config_(this);
+  } else {
+    VIXL_ASSERT(callback_with_config_ == NULL);
+    callback_();
+  }
+}
diff --git a/test/test-runner.h b/test/test-runner.h
index 45303cf..ffc8c2a 100644
--- a/test/test-runner.h
+++ b/test/test-runner.h
@@ -28,19 +28,48 @@
 #define TEST_TEST_H_
 
 #include "utils-vixl.h"
+#include "aarch64/instructions-aarch64.h"
 
 namespace vixl {
 
 // Each actual test is represented by a Test instance.
 // Tests are appended to a static linked list upon creation.
 class Test {
-  typedef void(TestFunction)();
-
  public:
-  Test(const char* name, TestFunction* callback);
+  // Most tests require no per-test configuration, and so take no arguments. A
+  // few tests require dynamic configuration, and are passed a `Test` object.
+  template <typename Fn>
+  Test(const char* name, Fn* callback)
+      : name_(name), sve_vl_(aarch64::kZRegMinSize), next_(NULL) {
+    set_callback(callback);
+    // Append this test to the linked list.
+    if (first_ == NULL) {
+      VIXL_ASSERT(last_ == NULL);
+      first_ = this;
+    } else {
+      last_->next_ = this;
+    }
+    last_ = this;
+  }
 
   const char* name() { return name_; }
-  TestFunction* callback() { return callback_; }
+  void run();
+
+  // The SVE vector length can be configured by each test, based on either
+  // hardware feature detection (in the test itself) or Simulator configuration.
+  int sve_vl_in_bits() const { return sve_vl_; }
+  void set_sve_vl_in_bits(unsigned sve_vl) {
+    VIXL_ASSERT(sve_vl >= aarch64::kZRegMinSize);
+    VIXL_ASSERT(sve_vl <= aarch64::kZRegMaxSize);
+    VIXL_ASSERT((sve_vl % aarch64::kZRegMinSize) == 0);
+    sve_vl_ = sve_vl;
+  }
+
+  int sve_vl_in_bytes() const {
+    VIXL_ASSERT((sve_vl_ % kBitsPerByte) == 0);
+    return sve_vl_ / kBitsPerByte;
+  }
+
   static Test* first() { return first_; }
   static Test* last() { return last_; }
   Test* next() { return next_; }
@@ -64,16 +93,24 @@
   }
   static bool coloured_trace() { return coloured_trace_; }
   static void set_coloured_trace(bool value) { coloured_trace_ = value; }
-  static bool instruction_stats() { return instruction_stats_; }
-  static void set_instruction_stats(bool value) { instruction_stats_ = value; }
   static bool generate_test_trace() { return generate_test_trace_; }
   static void set_generate_test_trace(bool value) {
     generate_test_trace_ = value;
   }
 
+  typedef void(TestFunction)();
+  typedef void(TestFunctionWithConfig)(Test* config);
+
  private:
   const char* name_;
+
   TestFunction* callback_;
+  TestFunctionWithConfig* callback_with_config_;
+
+  void set_callback(TestFunction* callback);
+  void set_callback(TestFunctionWithConfig* callback);
+
+  int sve_vl_;
 
   static Test* first_;
   static Test* last_;
@@ -86,7 +123,6 @@
   static bool disassemble_;
   static bool disassemble_infrastructure_;
   static bool coloured_trace_;
-  static bool instruction_stats_;
   static bool generate_test_trace_;
 };
 
diff --git a/test/test-trace-reference/log-all b/test/test-trace-reference/log-all
index 3d8a3ef..7f4dc15 100644
--- a/test/test-trace-reference/log-all
+++ b/test/test-trace-reference/log-all
@@ -1,119 +1,332 @@
-#    x0: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0300003000300303
-#    x4: 0x0400004000400404
-#    x5: 0x0500005000500505
-#    x6: 0x0600006000600606
-#    x7: 0x0700007000700707
-#    x8: 0x0800008000800808
-#    x9: 0x0900009000900909
-#   x10: 0x0a0000a000a00a0a
-#   x11: 0x0b0000b000b00b0b
-#   x12: 0x0c0000c000c00c0c
-#   x13: 0x0d0000d000d00d0d
-#   x14: 0x0e0000e000e00e0e
-#   x15: 0x0f0000f000f00f0f
-#   x16: 0x1000010001001010
-#   x17: 0x1100011001101111
-#   x18: 0x1200012001201212
-#   x19: 0x1300013001301313
-#   x20: 0x1400014001401414
-#   x21: 0x1500015001501515
-#   x22: 0x1600016001601616
-#   x23: 0x1700017001701717
-#   x24: 0x1800018001801818
-#   x25: 0x1900019001901919
-#   x26: 0x1a0001a001a01a1a
-#   x27: 0x1b0001b001b01b1b
-#   x28: 0x1c0001c001c01c1c
-#   x29: 0x1d0001d001d01d1d
-#    lr: 0x0000000000000000
-#    sp: 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00055555005555550000000000000000
-#    v1: 0x3ff0d2c63fcb514c3ff587933f9e0419
-#    v2: 0x4000d2c6404b514c40058793401e0419
-#    v3: 0x401570fb40385373401025ae406d0626
-#    v4: 0x4010d2c640cb514c40158793409e0419
-#    v5: 0x401fbc2d4090d04a401ae97840c5851f
-#    v6: 0x402570fb40b85373402025ae40ed0626
-#    v7: 0x402783f4415f16c34022d6a1410a4396
-#    v8: 0x4020d2c6414b514c40258793411e0419
-#    v9: 0x402d6dd3416491c9402838864131c49c
-#   v10: 0x402fbc2d4110d04a402ae9784145851f
-#   v11: 0x4028cf3e410c10f7402d9a6b415945a2
-#   v12: 0x403570fb41385373403025ae416d0626
-#   v13: 0x40342b7d41d5360140317e2841806354
-#   v14: 0x403783f441df16c34032d6a1418a4396
-#   v15: 0x40317a4f41c1768240342f1a419423d7
-#   v16: 0x4030d2c641cb514c40358793419e0419
-#   v17: 0x4033b55841f2b10e4036e00d41a7e45b
-#   v18: 0x403d6dd341e491c94038388641b1c49c
-#   v19: 0x403cc5aa41eef18b403990ff41bba4de
-#   v20: 0x403fbc2d4190d04a403ae97841c5851f
-#   v21: 0x403914a7419a3034403c41f241cf6561
-#   v22: 0x4038cf3e418c10f7403d9a6b41d945a2
-#   v23: 0x403ba7b141b670b1403ef2e441e325e4
-#   v24: 0x404570fb41b85373404025ae41ed0626
-#   v25: 0x404584be41a3b3324040d1eb41f6e667
-#   v26: 0x40442b7d4255360140417e2842006354
-#   v27: 0x40477f314250062040422a6442055375
-#   v28: 0x404783f4425f16c34042d6a1420a4396
-#   v29: 0x4046d78b425a66e2404382de420f33b7
-#   v30: 0x40417a4f4241768240442f1a421423d7
-#   v31: 0x40418e02424c46ad4044db57421913f8
+#             x0: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             x3: 0x0300003000300303
+#             x4: 0x0400004000400404
+#             x5: 0x0500005000500505
+#             x6: 0x0600006000600606
+#             x7: 0x0700007000700707
+#             x8: 0x0800008000800808
+#             x9: 0x0900009000900909
+#            x10: 0x0a0000a000a00a0a
+#            x11: 0x0b0000b000b00b0b
+#            x12: 0x0c0000c000c00c0c
+#            x13: 0x0d0000d000d00d0d
+#            x14: 0x0e0000e000e00e0e
+#            x15: 0x0f0000f000f00f0f
+#            x16: 0x1000010001001010
+#            x17: 0x1100011001101111
+#            x18: 0x1200012001201212
+#            x19: 0x1300013001301313
+#            x20: 0x1400014001401414
+#            x21: 0x1500015001501515
+#            x22: 0x1600016001601616
+#            x23: 0x1700017001701717
+#            x24: 0x1800018001801818
+#            x25: 0x1900019001901919
+#            x26: 0x1a0001a001a01a1a
+#            x27: 0x1b0001b001b01b1b
+#            x28: 0x1c0001c001c01c1c
+#            x29: 0x1d0001d001d01d1d
+#             lr: 0x0000000000000000
+#             sp: 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x47e000017f03380147e000007f023800
+#    z0<255:128>: 0x47e000037f03380347e000027f023802
+#    z0<383:256>: 0x47e000057f07380547e000047f063804
+#    z0<511:384>: 0x47e000077f07380747e000067f063806
+#    z0<639:512>: 0x47e000097f0b380947e000087f0a3808
+#      z1<127:0>: 0x47f000017f833c0147f000007f823c00
+#    z1<255:128>: 0x47f000037f833c0347f000027f823c02
+#    z1<383:256>: 0x47f000057f873c0547f000047f863c04
+#    z1<511:384>: 0x47f000077f873c0747f000067f863c06
+#    z1<639:512>: 0x47f000097f8b3c0947f000087f8a3c08
+#      z2<127:0>: 0x48000001800340014800000080024000
+#    z2<255:128>: 0x48000003800340034800000280024002
+#    z2<383:256>: 0x48000005800740054800000480064004
+#    z2<511:384>: 0x48000007800740074800000680064006
+#    z2<639:512>: 0x48000009800b400948000008800a4008
+#      z3<127:0>: 0x48100001808344014810000080824400
+#    z3<255:128>: 0x48100003808344034810000280824402
+#    z3<383:256>: 0x48100005808744054810000480864404
+#    z3<511:384>: 0x48100007808744074810000680864406
+#    z3<639:512>: 0x48100009808b440948100008808a4408
+#      z4<127:0>: 0x48200001810348014820000081024800
+#    z4<255:128>: 0x48200003810348034820000281024802
+#    z4<383:256>: 0x48200005810748054820000481064804
+#    z4<511:384>: 0x48200007810748074820000681064806
+#    z4<639:512>: 0x48200009810b480948200008810a4808
+#      z5<127:0>: 0x4830000181834c014830000081824c00
+#    z5<255:128>: 0x4830000381834c034830000281824c02
+#    z5<383:256>: 0x4830000581874c054830000481864c04
+#    z5<511:384>: 0x4830000781874c074830000681864c06
+#    z5<639:512>: 0x48300009818b4c0948300008818a4c08
+#      z6<127:0>: 0x48400001820350014840000082025000
+#    z6<255:128>: 0x48400003820350034840000282025002
+#    z6<383:256>: 0x48400005820750054840000482065004
+#    z6<511:384>: 0x48400007820750074840000682065006
+#    z6<639:512>: 0x48400009820b500948400008820a5008
+#      z7<127:0>: 0x48500001828354014850000082825400
+#    z7<255:128>: 0x48500003828354034850000282825402
+#    z7<383:256>: 0x48500005828754054850000482865404
+#    z7<511:384>: 0x48500007828754074850000682865406
+#    z7<639:512>: 0x48500009828b540948500008828a5408
+#      z8<127:0>: 0x48600001830358014860000083025800
+#    z8<255:128>: 0x48600003830358034860000283025802
+#    z8<383:256>: 0x48600005830758054860000483065804
+#    z8<511:384>: 0x48600007830758074860000683065806
+#    z8<639:512>: 0x48600009830b580948600008830a5808
+#      z9<127:0>: 0x4870000183835c014870000083825c00
+#    z9<255:128>: 0x4870000383835c034870000283825c02
+#    z9<383:256>: 0x4870000583875c054870000483865c04
+#    z9<511:384>: 0x4870000783875c074870000683865c06
+#    z9<639:512>: 0x48700009838b5c0948700008838a5c08
+#     z10<127:0>: 0x48800001840360014880000084026000
+#   z10<255:128>: 0x48800003840360034880000284026002
+#   z10<383:256>: 0x48800005840760054880000484066004
+#   z10<511:384>: 0x48800007840760074880000684066006
+#   z10<639:512>: 0x48800009840b600948800008840a6008
+#     z11<127:0>: 0x48900001848364014890000084826400
+#   z11<255:128>: 0x48900003848364034890000284826402
+#   z11<383:256>: 0x48900005848764054890000484866404
+#   z11<511:384>: 0x48900007848764074890000684866406
+#   z11<639:512>: 0x48900009848b640948900008848a6408
+#     z12<127:0>: 0x48a000018503680148a0000085026800
+#   z12<255:128>: 0x48a000038503680348a0000285026802
+#   z12<383:256>: 0x48a000058507680548a0000485066804
+#   z12<511:384>: 0x48a000078507680748a0000685066806
+#   z12<639:512>: 0x48a00009850b680948a00008850a6808
+#     z13<127:0>: 0x48b0000185836c0148b0000085826c00
+#   z13<255:128>: 0x48b0000385836c0348b0000285826c02
+#   z13<383:256>: 0x48b0000585876c0548b0000485866c04
+#   z13<511:384>: 0x48b0000785876c0748b0000685866c06
+#   z13<639:512>: 0x48b00009858b6c0948b00008858a6c08
+#     z14<127:0>: 0x48c000018603700148c0000086027000
+#   z14<255:128>: 0x48c000038603700348c0000286027002
+#   z14<383:256>: 0x48c000058607700548c0000486067004
+#   z14<511:384>: 0x48c000078607700748c0000686067006
+#   z14<639:512>: 0x48c00009860b700948c00008860a7008
+#     z15<127:0>: 0x48d000018683740148d0000086827400
+#   z15<255:128>: 0x48d000038683740348d0000286827402
+#   z15<383:256>: 0x48d000058687740548d0000486867404
+#   z15<511:384>: 0x48d000078687740748d0000686867406
+#   z15<639:512>: 0x48d00009868b740948d00008868a7408
+#     z16<127:0>: 0x48e000018703780148e0000087027800
+#   z16<255:128>: 0x48e000038703780348e0000287027802
+#   z16<383:256>: 0x48e000058707780548e0000487067804
+#   z16<511:384>: 0x48e000078707780748e0000687067806
+#   z16<639:512>: 0x48e00009870b780948e00008870a7808
+#     z17<127:0>: 0x48f0000187837c0148f0000087827c00
+#   z17<255:128>: 0x48f0000387837c0348f0000287827c02
+#   z17<383:256>: 0x48f0000587877c0548f0000487867c04
+#   z17<511:384>: 0x48f0000787877c0748f0000687867c06
+#   z17<639:512>: 0x48f00009878b7c0948f00008878a7c08
+#     z18<127:0>: 0x49000001880380014900000088028000
+#   z18<255:128>: 0x49000003880380034900000288028002
+#   z18<383:256>: 0x49000005880780054900000488068004
+#   z18<511:384>: 0x49000007880780074900000688068006
+#   z18<639:512>: 0x49000009880b800949000008880a8008
+#     z19<127:0>: 0x49100001888384014910000088828400
+#   z19<255:128>: 0x49100003888384034910000288828402
+#   z19<383:256>: 0x49100005888784054910000488868404
+#   z19<511:384>: 0x49100007888784074910000688868406
+#   z19<639:512>: 0x49100009888b840949100008888a8408
+#     z20<127:0>: 0x49200001890388014920000089028800
+#   z20<255:128>: 0x49200003890388034920000289028802
+#   z20<383:256>: 0x49200005890788054920000489068804
+#   z20<511:384>: 0x49200007890788074920000689068806
+#   z20<639:512>: 0x49200009890b880949200008890a8808
+#     z21<127:0>: 0x4930000189838c014930000089828c00
+#   z21<255:128>: 0x4930000389838c034930000289828c02
+#   z21<383:256>: 0x4930000589878c054930000489868c04
+#   z21<511:384>: 0x4930000789878c074930000689868c06
+#   z21<639:512>: 0x49300009898b8c0949300008898a8c08
+#     z22<127:0>: 0x494000018a039001494000008a029000
+#   z22<255:128>: 0x494000038a039003494000028a029002
+#   z22<383:256>: 0x494000058a079005494000048a069004
+#   z22<511:384>: 0x494000078a079007494000068a069006
+#   z22<639:512>: 0x494000098a0b9009494000088a0a9008
+#     z23<127:0>: 0x495000018a839401495000008a829400
+#   z23<255:128>: 0x495000038a839403495000028a829402
+#   z23<383:256>: 0x495000058a879405495000048a869404
+#   z23<511:384>: 0x495000078a879407495000068a869406
+#   z23<639:512>: 0x495000098a8b9409495000088a8a9408
+#     z24<127:0>: 0x496000018b039801496000008b029800
+#   z24<255:128>: 0x496000038b039803496000028b029802
+#   z24<383:256>: 0x496000058b079805496000048b069804
+#   z24<511:384>: 0x496000078b079807496000068b069806
+#   z24<639:512>: 0x496000098b0b9809496000088b0a9808
+#     z25<127:0>: 0x497000018b839c01497000008b829c00
+#   z25<255:128>: 0x497000038b839c03497000028b829c02
+#   z25<383:256>: 0x497000058b879c05497000048b869c04
+#   z25<511:384>: 0x497000078b879c07497000068b869c06
+#   z25<639:512>: 0x497000098b8b9c09497000088b8a9c08
+#     z26<127:0>: 0x498000018c03a001498000008c02a000
+#   z26<255:128>: 0x498000038c03a003498000028c02a002
+#   z26<383:256>: 0x498000058c07a005498000048c06a004
+#   z26<511:384>: 0x498000078c07a007498000068c06a006
+#   z26<639:512>: 0x498000098c0ba009498000088c0aa008
+#     z27<127:0>: 0x499000018c83a401499000008c82a400
+#   z27<255:128>: 0x499000038c83a403499000028c82a402
+#   z27<383:256>: 0x499000058c87a405499000048c86a404
+#   z27<511:384>: 0x499000078c87a407499000068c86a406
+#   z27<639:512>: 0x499000098c8ba409499000088c8aa408
+#     z28<127:0>: 0x49a000018d03a80149a000008d02a800
+#   z28<255:128>: 0x49a000038d03a80349a000028d02a802
+#   z28<383:256>: 0x49a000058d07a80549a000048d06a804
+#   z28<511:384>: 0x49a000078d07a80749a000068d06a806
+#   z28<639:512>: 0x49a000098d0ba80949a000088d0aa808
+#     z29<127:0>: 0x49b000018d83ac0149b000008d82ac00
+#   z29<255:128>: 0x49b000038d83ac0349b000028d82ac02
+#   z29<383:256>: 0x49b000058d87ac0549b000048d86ac04
+#   z29<511:384>: 0x49b000078d87ac0749b000068d86ac06
+#   z29<639:512>: 0x49b000098d8bac0949b000088d8aac08
+#     z30<127:0>: 0x49c000018e03b00149c000008e02b000
+#   z30<255:128>: 0x49c000038e03b00349c000028e02b002
+#   z30<383:256>: 0x49c000058e07b00549c000048e06b004
+#   z30<511:384>: 0x49c000078e07b00749c000068e06b006
+#   z30<639:512>: 0x49c000098e0bb00949c000088e0ab008
+#     z31<127:0>: 0x49d000018e83b40149d000008e82b400
+#   z31<255:128>: 0x49d000038e83b40349d000028e82b402
+#   z31<383:256>: 0x49d000058e87b40549d000048e86b404
+#   z31<511:384>: 0x49d000078e87b40749d000068e86b406
+#   z31<639:512>: 0x49d000098e8bb40949d000088e8ab408
+#       p0<15:0>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<47:32>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<79:64>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#       p1<15:0>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<31:16>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#      p1<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p1<63:48>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<79:64>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#       p2<15:0>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<31:16>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<47:32>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p2<79:64>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#       p3<15:0>: 0b 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1
+#      p3<31:16>: 0b 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1
+#      p3<47:32>: 0b 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1
+#      p3<63:48>: 0b 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1
+#      p3<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#       p4<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<31:16>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#      p4<47:32>: 0b 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1
+#      p4<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<79:64>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#       p5<15:0>: 0b 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p5<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1
+#      p5<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1
+#      p5<63:48>: 0b 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0
+#      p5<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1
+#       p6<15:0>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<31:16>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<47:32>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<63:48>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<79:64>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p7<15:0>: 0b 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
+#      p7<31:16>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1
+#      p7<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1
+#      p7<63:48>: 0b 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p7<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p8<15:0>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#      p8<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p8<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1
+#      p8<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#       p9<15:0>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p9<47:32>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p9<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1
+#      p10<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p10<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p10<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p11<15:0>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p11<31:16>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p11<79:64>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      FFR<15:0>: 0b 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
+#     FFR<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0x~~~~~~~~~~~~~~~~  1a050083		adc w3, w4, w5
-#    x3: 0x0000000000900909
+#             w3:         0x00900909
 0x~~~~~~~~~~~~~~~~  9a0800e6		adc x6, x7, x8
-#    x6: 0x0f0000f000f00f0f
+#             x6: 0x0f0000f000f00f0f
 0x~~~~~~~~~~~~~~~~  3a0b0149		adcs w9, w10, w11
 # NZCV: N:0 Z:0 C:0 V:0
-#    x9: 0x0000000001501515
+#             w9:         0x01501515
 0x~~~~~~~~~~~~~~~~  ba0e01ac		adcs x12, x13, x14
 # NZCV: N:0 Z:0 C:0 V:0
-#   x12: 0x1b0001b001b01b1b
+#            x12: 0x1b0001b001b01b1b
 0x~~~~~~~~~~~~~~~~  0b11020f		add w15, w16, w17
-#   x15: 0x0000000002102121
+#            w15:         0x02102121
 0x~~~~~~~~~~~~~~~~  8b140272		add x18, x19, x20
-#   x18: 0x2700027002702727
+#            x18: 0x2700027002702727
 0x~~~~~~~~~~~~~~~~  2b1702d5		adds w21, w22, w23
 # NZCV: N:0 Z:0 C:0 V:0
-#   x21: 0x0000000002d02d2d
+#            w21:         0x02d02d2d
 0x~~~~~~~~~~~~~~~~  ab1a0338		adds x24, x25, x26
 # NZCV: N:0 Z:0 C:0 V:0
-#   x24: 0x3300033003303333
+#            x24: 0x3300033003303333
 0x~~~~~~~~~~~~~~~~  0a1d039b		and w27, w28, w29
-#   x27: 0x0000000001c01c1c
+#            w27:         0x01c01c1c
 0x~~~~~~~~~~~~~~~~  8a040062		and x2, x3, x4
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  6a0700c5		ands w5, w6, w7
 # NZCV: N:0 Z:0 C:0 V:0
-#    x5: 0x0000000000700707
+#             w5:         0x00700707
 0x~~~~~~~~~~~~~~~~  ea0a0128		ands x8, x9, x10
 # NZCV: N:0 Z:1 C:0 V:0
-#    x8: 0x0000000000000000
+#             x8: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  13007d8b		sbfx w11, w12, #0, #32
-#   x11: 0x0000000001b01b1b
+#            w11:         0x01b01b1b
 0x~~~~~~~~~~~~~~~~  9341fdcd		asr x13, x14, #1
-#   x13: 0x0700007000700707
+#            x13: 0x0700007000700707
 0x~~~~~~~~~~~~~~~~  1ad12a0f		asr w15, w16, w17
-#   x15: 0x0000000000000080
+#            w15:         0x00000080
 0x~~~~~~~~~~~~~~~~  9ad42a72		asr x18, x19, x20
-#   x18: 0x0000013000130013
+#            x18: 0x0000013000130013
 0x~~~~~~~~~~~~~~~~  33051ad5		bfxil w21, w22, #5, #2
-#   x21: 0x0000000002d02d2c
+#            w21:         0x02d02d2c
 0x~~~~~~~~~~~~~~~~  b3472317		bfxil x23, x24, #7, #2
-#   x23: 0x1700017001701716
+#            x23: 0x1700017001701716
 0x~~~~~~~~~~~~~~~~  0a3b0359		bic w25, w26, w27
-#   x25: 0x0000000000200202
+#            w25:         0x00200202
 0x~~~~~~~~~~~~~~~~  8a2203bc		bic x28, x29, x2
-#   x28: 0x1d0001d001d01d1d
+#            x28: 0x1d0001d001d01d1d
 0x~~~~~~~~~~~~~~~~  6a250083		bics w3, w4, w5
 # NZCV: N:0 Z:1 C:0 V:0
-#    x3: 0x0000000000000000
+#             w3:         0x00000000
 0x~~~~~~~~~~~~~~~~  ea2800e6		bics x6, x7, x8
 # NZCV: N:0 Z:0 C:0 V:0
-#    x6: 0x0700007000700707
+#             x6: 0x0700007000700707
 0x~~~~~~~~~~~~~~~~  3a4ae120		ccmn w9, w10, #nzcv, al
 # NZCV: N:0 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  3a4a0120		ccmn w9, w10, #nzcv, eq
@@ -139,30 +352,30 @@
 0x~~~~~~~~~~~~~~~~  fa5011e3		ccmp x15, x16, #nzCV, ne
 # NZCV: N:1 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  1a922651		cinc w17, w18, lo
-#   x17: 0x0000000000130014
+#            w17:         0x00130014
 0x~~~~~~~~~~~~~~~~  1a923651		cinc w17, w18, hs
-#   x17: 0x0000000000130013
+#            w17:         0x00130013
 0x~~~~~~~~~~~~~~~~  9a949693		cinc x19, x20, hi
-#   x19: 0x1400014001401414
+#            x19: 0x1400014001401414
 0x~~~~~~~~~~~~~~~~  9a948693		cinc x19, x20, ls
-#   x19: 0x1400014001401415
+#            x19: 0x1400014001401415
 0x~~~~~~~~~~~~~~~~  5a9612d5		cinv w21, w22, eq
-#   x21: 0x0000000001601616
+#            w21:         0x01601616
 0x~~~~~~~~~~~~~~~~  5a9602d5		cinv w21, w22, ne
-#   x21: 0x00000000fe9fe9e9
+#            w21:         0xfe9fe9e9
 0x~~~~~~~~~~~~~~~~  da982317		cinv x23, x24, lo
-#   x23: 0xccfffccffccfcccc
+#            x23: 0xccfffccffccfcccc
 0x~~~~~~~~~~~~~~~~  da983317		cinv x23, x24, hs
-#   x23: 0x3300033003303333
+#            x23: 0x3300033003303333
 0x~~~~~~~~~~~~~~~~  d5033f5f		clrex
 0x~~~~~~~~~~~~~~~~  5ac01759		cls w25, w26
-#   x25: 0x0000000000000006
+#            w25:         0x00000006
 0x~~~~~~~~~~~~~~~~  dac0179b		cls x27, x28
-#   x27: 0x0000000000000002
+#            x27: 0x0000000000000002
 0x~~~~~~~~~~~~~~~~  5ac0105d		clz w29, w2
-#   x29: 0x0000000000000020
+#            w29:         0x00000020
 0x~~~~~~~~~~~~~~~~  dac01083		clz x3, x4
-#    x3: 0x0000000000000005
+#             x3: 0x0000000000000005
 0x~~~~~~~~~~~~~~~~  2b0600bf		cmn w5, w6
 # NZCV: N:0 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  ab0800ff		cmn x7, x8
@@ -172,606 +385,660 @@
 0x~~~~~~~~~~~~~~~~  eb0c017f		cmp x11, x12
 # NZCV: N:1 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  5a8e95cd		cneg w13, w14, hi
-#   x13: 0x0000000000e00e0e
+#            w13:         0x00e00e0e
 0x~~~~~~~~~~~~~~~~  5a8e85cd		cneg w13, w14, ls
-#   x13: 0x00000000ff1ff1f2
+#            w13:         0xff1ff1f2
 0x~~~~~~~~~~~~~~~~  da90160f		cneg x15, x16, eq
-#   x15: 0x1000010001001010
+#            x15: 0x1000010001001010
 0x~~~~~~~~~~~~~~~~  da90060f		cneg x15, x16, ne
-#   x15: 0xeffffefffeffeff0
+#            x15: 0xeffffefffeffeff0
 0x~~~~~~~~~~~~~~~~  1ad34251		crc32b w17, w18, w19
-#   x17: 0x00000000e963b635
+#            w17:         0xe963b635
 0x~~~~~~~~~~~~~~~~  1ad652b4		crc32cb w20, w21, w22
-#   x20: 0x00000000ad83ccb8
+#            w20:         0xad83ccb8
 0x~~~~~~~~~~~~~~~~  1ad95717		crc32ch w23, w24, w25
-#   x23: 0x000000003ed5525d
+#            w23:         0x3ed5525d
 0x~~~~~~~~~~~~~~~~  1adc5b7a		crc32cw w26, w27, w28
-#   x26: 0x00000000bc365145
+#            w26:         0xbc365145
 0x~~~~~~~~~~~~~~~~  1ac644a4		crc32h w4, w5, w6
-#    x4: 0x0000000000000070
+#             w4:         0x00000070
 0x~~~~~~~~~~~~~~~~  1ac94907		crc32w w7, w8, w9
-#    x7: 0x00000000b096abf4
+#             w7:         0xb096abf4
 0x~~~~~~~~~~~~~~~~  1a8f31cd		csel w13, w14, w15, lo
-#   x13: 0x0000000000e00e0e
+#            w13:         0x00e00e0e
 0x~~~~~~~~~~~~~~~~  1a8f21cd		csel w13, w14, w15, hs
-#   x13: 0x00000000feffeff0
+#            w13:         0xfeffeff0
 0x~~~~~~~~~~~~~~~~  9a928230		csel x16, x17, x18, hi
-#   x16: 0x0000013000130013
+#            x16: 0x0000013000130013
 0x~~~~~~~~~~~~~~~~  9a929230		csel x16, x17, x18, ls
-#   x16: 0x00000000e963b635
+#            x16: 0x00000000e963b635
 0x~~~~~~~~~~~~~~~~  1a9f17f3		cset w19, eq
-#   x19: 0x0000000000000000
+#            w19:         0x00000000
 0x~~~~~~~~~~~~~~~~  1a9f07f3		cset w19, ne
-#   x19: 0x0000000000000001
+#            w19:         0x00000001
 0x~~~~~~~~~~~~~~~~  9a9f27f4		cset x20, lo
-#   x20: 0x0000000000000001
+#            x20: 0x0000000000000001
 0x~~~~~~~~~~~~~~~~  9a9f37f4		cset x20, hs
-#   x20: 0x0000000000000000
+#            x20: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5a9f93f5		csetm w21, hi
-#   x21: 0x0000000000000000
+#            w21:         0x00000000
 0x~~~~~~~~~~~~~~~~  5a9f83f5		csetm w21, ls
-#   x21: 0x00000000ffffffff
+#            w21:         0xffffffff
 0x~~~~~~~~~~~~~~~~  da9f13f6		csetm x22, eq
-#   x22: 0x0000000000000000
+#            x22: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  da9f03f6		csetm x22, ne
-#   x22: 0xffffffffffffffff
+#            x22: 0xffffffffffffffff
 0x~~~~~~~~~~~~~~~~  1a993717		csinc w23, w24, w25, lo
-#   x23: 0x0000000003303333
+#            w23:         0x03303333
 0x~~~~~~~~~~~~~~~~  1a992717		csinc w23, w24, w25, hs
-#   x23: 0x0000000000000007
+#            w23:         0x00000007
 0x~~~~~~~~~~~~~~~~  9a9c877a		csinc x26, x27, x28, hi
-#   x26: 0x1d0001d001d01d1e
+#            x26: 0x1d0001d001d01d1e
 0x~~~~~~~~~~~~~~~~  9a9c977a		csinc x26, x27, x28, ls
-#   x26: 0x0000000000000002
+#            x26: 0x0000000000000002
 0x~~~~~~~~~~~~~~~~  5a83005d		csinv w29, w2, w3, eq
-#   x29: 0x00000000fffffffa
+#            w29:         0xfffffffa
 0x~~~~~~~~~~~~~~~~  5a83105d		csinv w29, w2, w3, ne
-#   x29: 0x0000000000000000
+#            w29:         0x00000000
 0x~~~~~~~~~~~~~~~~  da8630a4		csinv x4, x5, x6, lo
-#    x4: 0x0000000000700707
+#             x4: 0x0000000000700707
 0x~~~~~~~~~~~~~~~~  da8620a4		csinv x4, x5, x6, hs
-#    x4: 0xf8ffff8fff8ff8f8
+#             x4: 0xf8ffff8fff8ff8f8
 0x~~~~~~~~~~~~~~~~  5a898507		csneg w7, w8, w9, hi
-#    x7: 0x00000000feafeaeb
+#             w7:         0xfeafeaeb
 0x~~~~~~~~~~~~~~~~  5a899507		csneg w7, w8, w9, ls
-#    x7: 0x0000000000000000
+#             w7:         0x00000000
 0x~~~~~~~~~~~~~~~~  da8c056a		csneg x10, x11, x12, eq
-#   x10: 0xe4fffe4ffe4fe4e5
+#            x10: 0xe4fffe4ffe4fe4e5
 0x~~~~~~~~~~~~~~~~  da8c156a		csneg x10, x11, x12, ne
-#   x10: 0x0000000001b01b1b
+#            x10: 0x0000000001b01b1b
 0x~~~~~~~~~~~~~~~~  d50b7a20		dc cvac, x0
 0x~~~~~~~~~~~~~~~~  d5033bbf		dmb ish
 0x~~~~~~~~~~~~~~~~  d5033b9f		dsb ish
 0x~~~~~~~~~~~~~~~~  4a2f01cd		eon w13, w14, w15
-#   x13: 0x0000000001e01e01
+#            w13:         0x01e01e01
 0x~~~~~~~~~~~~~~~~  ca320230		eon x16, x17, x18
-#   x16: 0xfffffecf168f49d9
+#            x16: 0xfffffecf168f49d9
 0x~~~~~~~~~~~~~~~~  4a150293		eor w19, w20, w21
-#   x19: 0x00000000ffffffff
+#            w19:         0xffffffff
 0x~~~~~~~~~~~~~~~~  ca1802f6		eor x22, x23, x24
-#   x22: 0x3300033003303334
+#            x22: 0x3300033003303334
 0x~~~~~~~~~~~~~~~~  139b2759		extr w25, w26, w27, #9
-#   x25: 0x0000000001000000
+#            w25:         0x01000000
 0x~~~~~~~~~~~~~~~~  93c22bbc		extr x28, x29, x2, #10
-#   x28: 0x0000000000000000
+#            x28: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  d503201f		nop
 0x~~~~~~~~~~~~~~~~  d50b7520		ic ivau, x0
 0x~~~~~~~~~~~~~~~~  d5033fdf		isb
 0x~~~~~~~~~~~~~~~~  88dffc03		ldar w3, [x0]
-#    x3: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c8dffc04		ldar x4, [x0]
-#    x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#             x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  08dffc05		ldarb w5, [x0]
-#    x5: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  08dffc06		ldarb w6, [x0]
-#    x6: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  48dffc07		ldarh w7, [x0]
-#    x7: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  48dffc08		ldarh w8, [x0]
-#    x8: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w8:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  887fa809		ldaxp w9, w10, [x0]
-#    x9: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w10:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c87fb00b		ldaxp x11, x12, [x0]
-#   x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  885ffc0d		ldaxr w13, [x0]
-#   x13: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
+#            w13:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c85ffc0e		ldaxr x14, [x0]
-#   x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  085ffc0f		ldaxrb w15, [x0]
-#   x15: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  085ffc10		ldaxrb w16, [x0]
-#   x16: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  485ffc11		ldaxrh w17, [x0]
-#   x17: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  485ffc12		ldaxrh w18, [x0]
-#   x18: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  28405013		ldnp w19, w20, [x0]
-#   x19: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
+#            w19:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a8405815		ldnp x21, x22, [x0]
-#   x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  29406017		ldp w23, w24, [x0]
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  28c16037		ldp w23, w24, [x1], #8
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  29c16037		ldp w23, w24, [x1, #8]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000013121110 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000017161514 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w23:         0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x17161514 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a9406819		ldp x25, x26, [x0]
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a8c16839		ldp x25, x26, [x1], #16
-#   x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a9c16839		ldp x25, x26, [x1, #16]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  6940701b		ldpsw x27, x28, [x0]
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000007060504
+#                                  ╙─ 0x07060504 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  68c1703b		ldpsw x27, x28, [x1], #8
-#   x27: 0x0000000033323130 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000037363534 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000033323130
+#                                  ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000037363534
+#                                  ╙─ 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  69c1703b		ldpsw x27, x28, [x1, #8]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000047464544 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000043424140
+#                                  ╙─ 0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000047464544
+#                                  ╙─ 0x47464544 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b940001d		ldr w29, [x0]
-#   x29: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b840443d		ldr w29, [x1], #4
-#   x29: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            w29:         0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b8404c3d		ldr w29, [x1, #4]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x29: 0x000000004b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w29:         0x4b4a4948 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f9400002		ldr x2, [x0]
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f8408422		ldr x2, [x1], #8
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f8408c22		ldr x2, [x1, #8]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39400003		ldrb w3, [x0]
-#    x3: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38401423		ldrb w3, [x1], #1
-#    x3: 0x0000000000000058 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000058
+#                                  ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38401c23		ldrb w3, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w3:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39400004		ldrb w4, [x0]
-#    x4: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38401424		ldrb w4, [x1], #1
-#    x4: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38401c24		ldrb w4, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x000000000000005c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005c
+#                                  ╙─ 0x5c <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  79400005		ldrh w5, [x0]
-#    x5: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78402425		ldrh w5, [x1], #2
-#    x5: 0x0000000000005d5c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00005d5c
+#                                  ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78402c25		ldrh w5, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  79400006		ldrh w6, [x0]
-#    x6: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78402426		ldrh w6, [x1], #2
-#    x6: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78402c26		ldrh w6, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000006564 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006564
+#                                  ╙─ 0x6564 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39c00007		ldrsb w7, [x0]
-#    x7: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38c01427		ldrsb w7, [x1], #1
-#    x7: 0x0000000000000064 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000064
+#                                  ╙─ 0x64 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38c01c27		ldrsb w7, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39800008		ldrsb x8, [x0]
-#    x8: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38801428		ldrsb x8, [x1], #1
-#    x8: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38801c28		ldrsb x8, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000068 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000068
+#                                  ╙─ 0x68 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  79c00009		ldrsh w9, [x0]
-#    x9: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78c02429		ldrsh w9, [x1], #2
-#    x9: 0x0000000000006968 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006968
+#                                  ╙─ 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78c02c29		ldrsh w9, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7980000a		ldrsh x10, [x0]
-#   x10: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7880242a		ldrsh x10, [x1], #2
-#   x10: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78802c2a		ldrsh x10, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000007170 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000007170
+#                                  ╙─ 0x7170 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b980000b		ldrsw x11, [x0]
-#   x11: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b880442b		ldrsw x11, [x1], #4
-#   x11: 0x0000000073727170 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000073727170
+#                                  ╙─ 0x73727170 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b8804c2b		ldrsw x11, [x1, #4]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x11: 0x000000007b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x11: 0x000000007b7a7978
+#                                  ╙─ 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b840700c		ldur w12, [x0, #7]
-#   x12: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
+#            w12:         0x0a090807 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f840f00d		ldur x13, [x0, #15]
-#   x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
+#            x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  3840100e		ldurb w14, [x0, #1]
-#   x14: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
+#            w14:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  3840100f		ldurb w15, [x0, #1]
-#   x15: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78403010		ldurh w16, [x0, #3]
-#   x16: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78403011		ldurh w17, [x0, #3]
-#   x17: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38c01012		ldursb w18, [x0, #1]
-#   x18: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38801013		ldursb x19, [x0, #1]
-#   x19: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
+#            x19: 0x0000000000000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78c03014		ldursh w20, [x0, #3]
-#   x20: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78803015		ldursh x21, [x0, #3]
-#   x21: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0000000000000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b8807016		ldursw x22, [x0, #7]
-#   x22: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x000000000a090807
+#                                  ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  887f6017		ldxp w23, w24, [x0]
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c87f6819		ldxp x25, x26, [x0]
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  885f7c1b		ldxr w27, [x0]
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
+#            w27:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c85f7c1c		ldxr x28, [x0]
-#   x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  085f7c1d		ldxrb w29, [x0]
-#   x29: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  085f7c02		ldxrb w2, [x0]
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             w2:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  485f7c03		ldxrh w3, [x0]
-#    x3: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  485f7c04		ldxrh w4, [x0]
-#    x4: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  531e74c5		lsl w5, w6, #2
-#    x5: 0x0000000000019590
+#             w5:         0x00019590
 0x~~~~~~~~~~~~~~~~  d37df107		lsl x7, x8, #3
-#    x7: 0x0000000000000340
+#             x7: 0x0000000000000340
 0x~~~~~~~~~~~~~~~~  1acb2149		lsl w9, w10, w11
-#    x9: 0x0000000070000000
+#             w9:         0x70000000
 0x~~~~~~~~~~~~~~~~  9ace21ac		lsl x12, x13, x14
-#   x12: 0x2c2a28262422201e
+#            x12: 0x2c2a28262422201e
 0x~~~~~~~~~~~~~~~~  53047e0f		lsr w15, w16, #4
-#   x15: 0x0000000000000040
+#            w15:         0x00000040
 0x~~~~~~~~~~~~~~~~  d345fe51		lsr x17, x18, #5
-#   x17: 0x0000000000000000
+#            x17: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1ad52693		lsr w19, w20, w21
-#   x19: 0x0000000000000080
+#            w19:         0x00000080
 0x~~~~~~~~~~~~~~~~  9ad826f6		lsr x22, x23, x24
-#   x22: 0x0000000000302010
+#            x22: 0x0000000000302010
 0x~~~~~~~~~~~~~~~~  1b1b7359		madd w25, w26, w27, w28
-#   x25: 0x00000000371b0900
+#            w25:         0x371b0900
 0x~~~~~~~~~~~~~~~~  9b03105d		madd x29, x2, x3, x4
-#   x29: 0x0000000000000100
+#            x29: 0x0000000000000100
 0x~~~~~~~~~~~~~~~~  1b07fcc5		mneg w5, w6, w7
-#    x5: 0x00000000feb67b00
+#             w5:         0xfeb67b00
 0x~~~~~~~~~~~~~~~~  9b0afd28		mneg x8, x9, x10
-#    x8: 0xffffce5f00000000
+#             x8: 0xffffce5f00000000
 0x~~~~~~~~~~~~~~~~  2a0c03eb		mov w11, w12
-#   x11: 0x000000002422201e
+#            w11:         0x2422201e
 0x~~~~~~~~~~~~~~~~  aa0e03ed		mov x13, x14
-#   x13: 0x0000000000000001
+#            x13: 0x0000000000000001
 0x~~~~~~~~~~~~~~~~  7280104f		movk w15, #0x82
-#   x15: 0x0000000000000082
+#            x15: 0x0000000000000082
 0x~~~~~~~~~~~~~~~~  f2801070		movk x16, #0x83
-#   x16: 0x0000000000000083
+#            x16: 0x0000000000000083
 0x~~~~~~~~~~~~~~~~  12801091		mov w17, #0xffffff7b
-#   x17: 0x00000000ffffff7b
+#            x17: 0x00000000ffffff7b
 0x~~~~~~~~~~~~~~~~  928010b2		mov x18, #0xffffffffffffff7a
-#   x18: 0xffffffffffffff7a
+#            x18: 0xffffffffffffff7a
 0x~~~~~~~~~~~~~~~~  528010d3		mov w19, #0x86
-#   x19: 0x0000000000000086
+#            x19: 0x0000000000000086
 0x~~~~~~~~~~~~~~~~  d28010f4		mov x20, #0x87
-#   x20: 0x0000000000000087
+#            x20: 0x0000000000000087
 0x~~~~~~~~~~~~~~~~  1b18e6f6		msub w22, w23, w24, w25
-#   x22: 0x000000001b0e0500
+#            w22:         0x1b0e0500
 0x~~~~~~~~~~~~~~~~  9b1cf77a		msub x26, x27, x28, x29
-#   x26: 0xe3e9eff5fbff0100
+#            x26: 0xe3e9eff5fbff0100
 0x~~~~~~~~~~~~~~~~  1b047c62		mul w2, w3, w4
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             w2:         0x00010000
 0x~~~~~~~~~~~~~~~~  9b077cc5		mul x5, x6, x7
-#    x5: 0x0000000001498500
+#             x5: 0x0000000001498500
 0x~~~~~~~~~~~~~~~~  2a2903e8		mvn w8, w9
-#    x8: 0x000000008fffffff
+#             w8:         0x8fffffff
 0x~~~~~~~~~~~~~~~~  aa2b03ea		mvn x10, x11
-#   x10: 0xffffffffdbdddfe1
+#            x10: 0xffffffffdbdddfe1
 0x~~~~~~~~~~~~~~~~  4b0d03ec		neg w12, w13
-#   x12: 0x00000000ffffffff
+#            w12:         0xffffffff
 0x~~~~~~~~~~~~~~~~  cb0f03ee		neg x14, x15
-#   x14: 0xffffffffffffff7e
+#            x14: 0xffffffffffffff7e
 0x~~~~~~~~~~~~~~~~  6b1103f0		negs w16, w17
 # NZCV: N:0 Z:0 C:0 V:0
-#   x16: 0x0000000000000085
+#            w16:         0x00000085
 0x~~~~~~~~~~~~~~~~  eb1303f2		negs x18, x19
 # NZCV: N:1 Z:0 C:0 V:0
-#   x18: 0xffffffffffffff7a
+#            x18: 0xffffffffffffff7a
 0x~~~~~~~~~~~~~~~~  5a1503f4		ngc w20, w21
-#   x20: 0x00000000fffffbfc
+#            w20:         0xfffffbfc
 0x~~~~~~~~~~~~~~~~  da1703f6		ngc x22, x23
-#   x22: 0xfffffffffcfdfeff
+#            x22: 0xfffffffffcfdfeff
 0x~~~~~~~~~~~~~~~~  7a1903f8		ngcs w24, w25
 # NZCV: N:1 Z:0 C:0 V:0
-#   x24: 0x00000000c8e4f6ff
+#            w24:         0xc8e4f6ff
 0x~~~~~~~~~~~~~~~~  fa1b03fa		ngcs x26, x27
 # NZCV: N:1 Z:0 C:0 V:0
-#   x26: 0xfffffffffcfdfeff
+#            x26: 0xfffffffffcfdfeff
 0x~~~~~~~~~~~~~~~~  d503201f		nop
 0x~~~~~~~~~~~~~~~~  2a2203bc		orn w28, w29, w2
-#   x28: 0x00000000fffeffff
+#            w28:         0xfffeffff
 0x~~~~~~~~~~~~~~~~  aa250083		orn x3, x4, x5
-#    x3: 0xfffffffffeb67bff
+#             x3: 0xfffffffffeb67bff
 0x~~~~~~~~~~~~~~~~  2a0800e6		orr w6, w7, w8
-#    x6: 0x000000008fffffff
+#             w6:         0x8fffffff
 0x~~~~~~~~~~~~~~~~  aa0b0149		orr x9, x10, x11
-#    x9: 0xffffffffffffffff
+#             x9: 0xffffffffffffffff
 0x~~~~~~~~~~~~~~~~  f8804000		prfum pldl1keep, [x0, #4]
 0x~~~~~~~~~~~~~~~~  f8801000		prfum pldl1keep, [x0, #1]
 0x~~~~~~~~~~~~~~~~  5ac001ac		rbit w12, w13
-#   x12: 0x0000000080000000
+#            w12:         0x80000000
 0x~~~~~~~~~~~~~~~~  dac001ee		rbit x14, x15
-#   x14: 0x4100000000000000
+#            x14: 0x4100000000000000
 0x~~~~~~~~~~~~~~~~  5ac00a30		rev w16, w17
-#   x16: 0x000000007bffffff
+#            w16:         0x7bffffff
 0x~~~~~~~~~~~~~~~~  dac00e72		rev x18, x19
-#   x18: 0x8600000000000000
+#            x18: 0x8600000000000000
 0x~~~~~~~~~~~~~~~~  5ac006b4		rev16 w20, w21
-#   x20: 0x0000000000000304
+#            w20:         0x00000304
 0x~~~~~~~~~~~~~~~~  dac006f6		rev16 x22, x23
-#   x22: 0x0000000002030001
+#            x22: 0x0000000002030001
 0x~~~~~~~~~~~~~~~~  dac00b38		rev32 x24, x25
-#   x24: 0x0000000000091b37
+#            x24: 0x0000000000091b37
 0x~~~~~~~~~~~~~~~~  1adc2f7a		ror w26, w27, w28
-#   x26: 0x0000000006040200
+#            w26:         0x06040200
 0x~~~~~~~~~~~~~~~~  9ac32c5d		ror x29, x2, x3
-#   x29: 0x0000000000020000
+#            x29: 0x0000000000020000
 0x~~~~~~~~~~~~~~~~  5a0600a4		sbc w4, w5, w6
-#    x4: 0x0000000071498500
+#             w4:         0x71498500
 0x~~~~~~~~~~~~~~~~  da090107		sbc x7, x8, x9
-#    x7: 0x000000008fffffff
+#             x7: 0x000000008fffffff
 0x~~~~~~~~~~~~~~~~  7a0c016a		sbcs w10, w11, w12
 # NZCV: N:1 Z:0 C:0 V:1
-#   x10: 0x00000000a422201d
+#            w10:         0xa422201d
 0x~~~~~~~~~~~~~~~~  fa0f01cd		sbcs x13, x14, x15
 # NZCV: N:0 Z:0 C:1 V:0
-#   x13: 0x40ffffffffffff7d
+#            x13: 0x40ffffffffffff7d
 0x~~~~~~~~~~~~~~~~  131e0a30		sbfiz w16, w17, #2, #3
-#   x16: 0x000000000000000c
+#            w16:         0x0000000c
 0x~~~~~~~~~~~~~~~~  937c1272		sbfiz x18, x19, #4, #5
-#   x18: 0x0000000000000060
+#            x18: 0x0000000000000060
 0x~~~~~~~~~~~~~~~~  130632f6		sbfx w22, w23, #6, #7
-#   x22: 0x0000000000000004
+#            w22:         0x00000004
 0x~~~~~~~~~~~~~~~~  93484338		sbfx x24, x25, #8, #9
-#   x24: 0xffffffffffffff09
+#            x24: 0xffffffffffffff09
 0x~~~~~~~~~~~~~~~~  1adc0f7a		sdiv w26, w27, w28
-#   x26: 0x00000000fffffcff
+#            w26:         0xfffffcff
 0x~~~~~~~~~~~~~~~~  9ac30c5d		sdiv x29, x2, x3
-#   x29: 0x0000000000000000
+#            x29: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9b4e7dac		smulh x12, x13, x14
-#   x12: 0x1080ffffffffffde
+#            x12: 0x1080ffffffffffde
 0x~~~~~~~~~~~~~~~~  889ffc12		stlr w18, [x0]
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c89ffc13		stlr x19, [x0]
-#   x19: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
+#      x19<63:0>: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  089ffc14		stlrb w20, [x0]
-#   w20<7:0>:          0x04 -> 0x~~~~~~~~~~~~~~~~
+#       x20<7:0>:               0x04 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  089ffc15		stlrb w21, [x0]
-#   w21<7:0>:          0x03 -> 0x~~~~~~~~~~~~~~~~
+#       x21<7:0>:               0x03 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  489ffc16		stlrh w22, [x0]
-#   w22<15:0>:       0x0004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<15:0>:             0x0004 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  489ffc17		stlrh w23, [x0]
-#   w23<15:0>:       0x0100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<15:0>:             0x0100 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  8838e819		stlxp w24, w25, w26, [x0]
-#   x24: 0x0000000000000001
+#            w24:         0x00000001
 0x~~~~~~~~~~~~~~~~  c83bf41c		stlxp w27, x28, x29, [x0]
-#   x27: 0x0000000000000001
+#            w27:         0x00000001
 0x~~~~~~~~~~~~~~~~  8802fc03		stlxr w2, w3, [x0]
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             w2:         0x00000001
 0x~~~~~~~~~~~~~~~~  c804fc05		stlxr w4, x5, [x0]
-#    x4: 0x0000000000000001
+#             w4:         0x00000001
 0x~~~~~~~~~~~~~~~~  0806fc07		stlxrb w6, w7, [x0]
-#    x6: 0x0000000000000001
+#             w6:         0x00000001
 0x~~~~~~~~~~~~~~~~  0808fc09		stlxrb w8, w9, [x0]
-#    x8: 0x0000000000000001
+#             w8:         0x00000001
 0x~~~~~~~~~~~~~~~~  480afc0b		stlxrh w10, w11, [x0]
-#   x10: 0x0000000000000001
+#            w10:         0x00000001
 0x~~~~~~~~~~~~~~~~  480cfc0d		stlxrh w12, w13, [x0]
-#   x12: 0x0000000000000001
+#            w12:         0x00000001
 0x~~~~~~~~~~~~~~~~  28003c0e		stnp w14, w15, [x0]
-#   w14:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
-#   w15:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
+#      x14<31:0>:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      x15<31:0>:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a8004410		stnp x16, x17, [x0]
-#   x16: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
-#   x17: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
+#      x16<63:0>: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
+#      x17<63:0>: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  29004c12		stp w18, w19, [x0]
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  28814c32		stp w18, w19, [x1], #8
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  29814c32		stp w18, w19, [x1, #8]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a9005414		stp x20, x21, [x0]
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a8815434		stp x20, x21, [x1], #16
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a9815434		stp x20, x21, [x1, #16]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b9000016		str w22, [x0]
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b8004436		str w22, [x1], #4
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b8004c36		str w22, [x1, #4]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f9000017		str x23, [x0]
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f8008437		str x23, [x1], #8
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f8008c37		str x23, [x1, #8]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39000018		strb w24, [x0]
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001438		strb w24, [x1], #1
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001c38		strb w24, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39000019		strb w25, [x0]
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001439		strb w25, [x1], #1
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001c39		strb w25, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7900001a		strh w26, [x0]
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7800243a		strh w26, [x1], #2
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78002c3a		strh w26, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7900001b		strh w27, [x0]
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7800243b		strh w27, [x1], #2
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78002c3b		strh w27, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b800701c		stur w28, [x0, #7]
-#   w28:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
+#      x28<31:0>:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f800f01d		stur x29, [x0, #15]
-#   x29: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      x29<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001002		sturb w2, [x0, #1]
-#    w2<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
+#        x2<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001003		sturb w3, [x0, #1]
-#    w3<7:0>:          0xff -> 0x~~~~~~~~~~~~~~~~
+#        x3<7:0>:               0xff -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78003004		sturh w4, [x0, #3]
-#    w4<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
+#       x4<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78003005		sturh w5, [x0, #3]
-#    w5<15:0>:       0x8500 -> 0x~~~~~~~~~~~~~~~~
+#       x5<15:0>:             0x8500 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  88262007		stxp w6, w7, w8, [x0]
-#    x6: 0x0000000000000001
+#             w6:         0x00000001
 0x~~~~~~~~~~~~~~~~  c8292c0a		stxp w9, x10, x11, [x0]
-#    x9: 0x0000000000000001
+#             w9:         0x00000001
 0x~~~~~~~~~~~~~~~~  880c7c0d		stxr w12, w13, [x0]
-#   x12: 0x0000000000000001
+#            w12:         0x00000001
 0x~~~~~~~~~~~~~~~~  c80e7c0f		stxr w14, x15, [x0]
-#   x14: 0x0000000000000001
+#            w14:         0x00000001
 0x~~~~~~~~~~~~~~~~  08107c11		stxrb w16, w17, [x0]
-#   x16: 0x0000000000000001
+#            w16:         0x00000001
 0x~~~~~~~~~~~~~~~~  08127c13		stxrb w18, w19, [x0]
-#   x18: 0x0000000000000001
+#            w18:         0x00000001
 0x~~~~~~~~~~~~~~~~  48147c15		stxrh w20, w21, [x0]
-#   x20: 0x0000000000000001
+#            w20:         0x00000001
 0x~~~~~~~~~~~~~~~~  48167c17		stxrh w22, w23, [x0]
-#   x22: 0x0000000000000001
+#            w22:         0x00000001
 0x~~~~~~~~~~~~~~~~  4b1a0338		sub w24, w25, w26
-#   x24: 0x00000000371b0c01
+#            w24:         0x371b0c01
 0x~~~~~~~~~~~~~~~~  cb1d039b		sub x27, x28, x29
-#   x27: 0x00000000fffeffff
+#            x27: 0x00000000fffeffff
 0x~~~~~~~~~~~~~~~~  6b040062		subs w2, w3, w4
 # NZCV: N:1 Z:0 C:1 V:0
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             w2:         0xfeb67bfe
 0x~~~~~~~~~~~~~~~~  eb0700c5		subs x5, x6, x7
 # NZCV: N:1 Z:0 C:0 V:0
-#    x5: 0xffffffff70000002
+#             x5: 0xffffffff70000002
 0x~~~~~~~~~~~~~~~~  13001d28		sxtb w8, w9
-#    x8: 0x0000000000000001
+#             w8:         0x00000001
 0x~~~~~~~~~~~~~~~~  93401d6a		sxtb x10, w11
-#   x10: 0x000000000000001e
+#            x10: 0x000000000000001e
 0x~~~~~~~~~~~~~~~~  13003dac		sxth w12, w13
-#   x12: 0x00000000ffffff7d
+#            w12:         0xffffff7d
 0x~~~~~~~~~~~~~~~~  93403dee		sxth x14, w15
-#   x14: 0x0000000000000082
+#            x14: 0x0000000000000082
 0x~~~~~~~~~~~~~~~~  13007e30		sbfx w16, w17, #0, #32
-#   x16: 0x00000000ffffff7b
+#            w16:         0xffffff7b
 0x~~~~~~~~~~~~~~~~  93407e72		sxtw x18, w19
-#   x18: 0x0000000000000086
+#            x18: 0x0000000000000086
 0x~~~~~~~~~~~~~~~~  6a15029f		tst w20, w21
 # NZCV: N:0 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  ea1702df		tst x22, x23
 # NZCV: N:0 Z:1 C:0 V:0
 0x~~~~~~~~~~~~~~~~  53162b38		ubfiz w24, w25, #10, #11
-#   x24: 0x0000000000040000
+#            w24:         0x00040000
 0x~~~~~~~~~~~~~~~~  d374337a		ubfiz x26, x27, #12, #13
-#   x26: 0x0000000001fff000
+#            x26: 0x0000000001fff000
 0x~~~~~~~~~~~~~~~~  530e3fbc		ubfx w28, w29, #14, #2
-#   x28: 0x0000000000000000
+#            w28:         0x00000000
 0x~~~~~~~~~~~~~~~~  d3410862		ubfx x2, x3, #1, #2
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  530318a4		ubfx w4, w5, #3, #4
-#    x4: 0x0000000000000000
+#             w4:         0x00000000
 0x~~~~~~~~~~~~~~~~  d34528e6		ubfx x6, x7, #5, #6
-#    x6: 0x000000000000003f
+#             x6: 0x000000000000003f
 0x~~~~~~~~~~~~~~~~  1aca0928		udiv w8, w9, w10
-#    x8: 0x0000000000000000
+#             w8:         0x00000000
 0x~~~~~~~~~~~~~~~~  9acd098b		udiv x11, x12, x13
-#   x11: 0x0000000000000000
+#            x11: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9bd87ef6		umulh x22, x23, x24
-#   x22: 0x0000000000000000
+#            x22: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  53001fbc		uxtb w28, w29
-#   x28: 0x0000000000000000
+#            w28:         0x00000000
 0x~~~~~~~~~~~~~~~~  d3401c62		uxtb x2, w3
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  53003ca4		uxth w4, w5
-#    x4: 0x0000000000000002
+#             w4:         0x00000002
 0x~~~~~~~~~~~~~~~~  d3403ce6		uxth x6, w7
-#    x6: 0x000000000000ffff
+#             x6: 0x000000000000ffff
 0x~~~~~~~~~~~~~~~~  53007d28		lsr w8, w9, #0
-#    x8: 0x0000000000000001
+#             w8:         0x00000001
 0x~~~~~~~~~~~~~~~~  d3407d6a		ubfx x10, x11, #0, #32
-#   x10: 0x0000000000000000
+#            x10: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  14000001		b #+0x4 (addr 0x~~~~~~~~~~~~~~~~)
 # Branch to 0x~~~~~~~~~~~~~~~~.
 0x~~~~~~~~~~~~~~~~  eb030063		subs x3, x3, x3
 # NZCV: N:0 Z:1 C:1 V:0
-#    x3: 0x0000000000000000
+#             x3: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  54000061		b.ne #+0xc (addr 0x~~~~~~~~~~~~~~~~)
 0x~~~~~~~~~~~~~~~~  f100047f		cmp x3, #0x1 (1)
 # NZCV: N:1 Z:0 C:0 V:0
@@ -780,5299 +1047,10814 @@
 0x~~~~~~~~~~~~~~~~  54000061		b.ne #+0xc (addr 0x~~~~~~~~~~~~~~~~)
 # Branch to 0x~~~~~~~~~~~~~~~~.
 0x~~~~~~~~~~~~~~~~  7ef3d44d		fabd d13, d2, d19
-#   v13: 0x00000000000000004036e00cd9b7e45b
+#            v13: 0x0000000000000000490ffff1110487fe
 0x~~~~~~~~~~~~~~~~  7ebed548		fabd s8, s10, s30
-#    v8: 0x00000000000000000000000041c5851e
+#             v8: 0x0000000000000000000000000e02aff8
 0x~~~~~~~~~~~~~~~~  1e60c021		fabs d1, d1
-#    v1: 0x00000000000000003ff587933f9e0419 (d1: 1.34560)
+#             d1:                 0x47f000007f823c00 (3.403e+38)
 0x~~~~~~~~~~~~~~~~  1e20c0f9		fabs s25, s7
-#   v25: 0x000000000000000000000000410a4396 (s25: 8.64150)
+#            s25:                         0x02825400 (1.915e-37)
 0x~~~~~~~~~~~~~~~~  7e70eee1		facge d1, d23, d16
-#    v1: 0x0000000000000000ffffffffffffffff
+#             v1: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7e21ee24		facge s4, s17, s1
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ef8eea2		facgt d2, d21, d24
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eacef4c		facgt s12, s26, s12
-#   v12: 0x000000000000000000000000ffffffff
+#            v12: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  1e76296d		fadd d13, d11, d22
-#   v13: 0x0000000000000000404633d07142f43a (d13: 44.4048)
+#            d13:                 0x494002008a13204c (7.140e+44)
 0x~~~~~~~~~~~~~~~~  1e282a7b		fadd s27, s19, s8
-#   v27: 0x000000000000000000000000424094fe (s27: 48.1455)
+#            s27:                         0x0e029fa8 (1.610e-30)
 0x~~~~~~~~~~~~~~~~  1e6a24c0		fccmp d6, d10, #nzcv, hs
 # NZCV: N:0 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  1e3417ad		fccmp s29, s20, #NZcV, ne
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:1 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  1e62e55e		fccmpe d10, d2, #NZCv, al
 # NZCV: N:0 Z:0 C:1 V:0
 0x~~~~~~~~~~~~~~~~  1e23547d		fccmpe s3, s3, #NZcV, pl
 # NZCV: N:0 Z:1 C:1 V:0
 0x~~~~~~~~~~~~~~~~  5e6ae513		fcmeq d19, d8, d10
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee0da40		fcmeq d0, d18, #0.0
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e3ee481		fcmeq s1, s4, s30
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea0dbb6		fcmeq s22, s29, #0.0
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e61e65b		fcmge d27, d18, d1
-#   v27: 0x0000000000000000ffffffffffffffff
+#            v27: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7ee0cb9f		fcmge d31, d28, #0.0
-#   v31: 0x0000000000000000ffffffffffffffff
+#            v31: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7e29e67f		fcmge s31, s19, s9
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  7ea0cb21		fcmge s1, s25, #0.0
-#    v1: 0x000000000000000000000000ffffffff
+#             v1: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  7eefe432		fcmgt d18, d1, d15
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee0cbe3		fcmgt d3, d31, #0.0
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7ea2e72b		fcmgt s11, s25, s2
-#   v11: 0x000000000000000000000000ffffffff
+#            v11: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  5ea0ca11		fcmgt s17, s16, #0.0
-#   v17: 0x000000000000000000000000ffffffff
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ee0da38		fcmle d24, d17, #0.0
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7ea0d90b		fcmle s11, s8, #0.0
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee0ebe5		fcmlt d5, d31, #0.0
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea0eaf2		fcmlt s18, s23, #0.0
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  1e782140		fcmp d10, d24
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:0 Z:0 C:1 V:1
 0x~~~~~~~~~~~~~~~~  1e6021a8		fcmp d13, #0.0
 # NZCV: N:0 Z:0 C:1 V:0
 0x~~~~~~~~~~~~~~~~  1e262240		fcmp s18, s6
-# NZCV: N:1 Z:0 C:0 V:0
+# NZCV: N:0 Z:0 C:1 V:1
 0x~~~~~~~~~~~~~~~~  1e202208		fcmp s16, #0.0
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:1 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  1e712130		fcmpe d9, d17
 # NZCV: N:0 Z:0 C:1 V:0
 0x~~~~~~~~~~~~~~~~  1e6023b8		fcmpe d29, #0.0
 # NZCV: N:0 Z:0 C:1 V:0
 0x~~~~~~~~~~~~~~~~  1e312210		fcmpe s16, s17
-# NZCV: N:0 Z:0 C:1 V:1
+# NZCV: N:1 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  1e2022d8		fcmpe s22, #0.0
 # NZCV: N:0 Z:1 C:1 V:0
 0x~~~~~~~~~~~~~~~~  1e73cdca		fcsel d10, d14, d19, gt
-#   v10: 0x00000000000000000000000000000000 (d10: 0.00000)
+#            d10:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e22ae56		fcsel s22, s18, s2, ge
-#   v22: 0x00000000000000000000000000000000 (s22: 0.00000)
+#            s22:                         0xffffffff
 0x~~~~~~~~~~~~~~~~  1ee2c304		fcvt d4, h24
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
+#             d4:                 0xfffffc0000000000
 0x~~~~~~~~~~~~~~~~  1e22c04b		fcvt d11, s2
-#   v11: 0x00000000000000000000000000000000 (d11: 0.00000)
+#            d11:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e63c128		fcvt h8, d9
-#    v8: 0x00000000000000000000000000004a0e
+#             h8:                             0x7c00
 0x~~~~~~~~~~~~~~~~  1e23c02c		fcvt h12, s1
-#   v12: 0x0000000000000000000000000000ffff
+#            h12:                             0xffff
 0x~~~~~~~~~~~~~~~~  1e6243ec		fcvt s12, d31
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
+#            s12:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1ee2433b		fcvt s27, h25
-#   v27: 0x0000000000000000000000004072c000 (s27: 3.79297)
+#            s27:                         0x42800000
 0x~~~~~~~~~~~~~~~~  5e61ca1c		fcvtas d28, d16
-#   v28: 0x00000000000000000000000000000016
+#            v28: 0x00000000000000007fffffffffffffff
 0x~~~~~~~~~~~~~~~~  5e21c8a3		fcvtas s3, s5
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e6403f2		fcvtas w18, d31
-#   x18: 0x0000000000000000
+#            w18:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e24031d		fcvtas w29, s24
-#   x29: 0x0000000000000000
+#            w29:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e640029		fcvtas x9, d1
-#    x9: 0x0000000000000000
+#             x9: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e24005e		fcvtas x30, s2
-#    lr: 0x0000000000000000
+#             lr: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  7e61c80e		fcvtau d14, d0
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e21c9df		fcvtau s31, s14
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e650050		fcvtau w16, d2
-#   x16: 0x0000000000000000
+#            w16:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e250012		fcvtau w18, s0
-#   x18: 0x0000000000000000
+#            w18:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e6500fa		fcvtau x26, d7
-#   x26: 0x0000000000000009
+#            x26: 0xffffffffffffffff
 0x~~~~~~~~~~~~~~~~  9e250279		fcvtau x25, s19
-#   x25: 0x0000000000000000
+#            x25: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5e61bb3e		fcvtms d30, d25
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e21b9ec		fcvtms s12, s15
-#   v12: 0x00000000000000000000000000000012
+#            v12: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  1e7000e9		fcvtms w9, d7
-#    x9: 0x0000000000000009
+#             w9:         0x7fffffff
 0x~~~~~~~~~~~~~~~~  1e3000d3		fcvtms w19, s6
-#   x19: 0x0000000000000007
+#            w19:         0xffffffff
 0x~~~~~~~~~~~~~~~~  9e7000c6		fcvtms x6, d6
-#    x6: 0x0000000000000008
+#             x6: 0x7fffffffffffffff
 0x~~~~~~~~~~~~~~~~  9e3000f6		fcvtms x22, s7
-#   x22: 0x0000000000000008
+#            x22: 0xffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7e61b81b		fcvtmu d27, d0
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e21bac8		fcvtmu s8, s22
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e71027d		fcvtmu w29, d19
-#   x29: 0x0000000000000000
+#            w29:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e31001a		fcvtmu w26, s0
-#   x26: 0x0000000000000000
+#            w26:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e7100ad		fcvtmu x13, d5
-#   x13: 0x0000000000000000
+#            x13: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e310245		fcvtmu x5, s18
-#    x5: 0x0000000000000000
+#             x5: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5e61a9fe		fcvtns d30, d15
-#   v30: 0x00000000000000000000000000000014
+#            v30: 0x00000000000000007fffffffffffffff
 0x~~~~~~~~~~~~~~~~  5e21a96a		fcvtns s10, s11
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e6001f5		fcvtns w21, d15
-#   x21: 0x0000000000000014
+#            w21:         0x7fffffff
 0x~~~~~~~~~~~~~~~~  1e200152		fcvtns w18, s10
-#   x18: 0x0000000000000000
+#            w18:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e600228		fcvtns x8, d17
-#    x8: 0x0000000000000000
+#             x8: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e200191		fcvtns x17, s12
-#   x17: 0x0000000000000000
+#            x17: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  7e61aaa0		fcvtnu d0, d21
-#    v0: 0x0000000000000000000000000000001c
+#             v0: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7e21ab26		fcvtnu s6, s25
-#    v6: 0x00000000000000000000000000000009
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e61017d		fcvtnu w29, d11
-#   x29: 0x0000000000000000
+#            w29:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e2103f9		fcvtnu w25, s31
-#   x25: 0x0000000000000000
+#            w25:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e61017e		fcvtnu x30, d11
-#    lr: 0x0000000000000000
+#             lr: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e21025b		fcvtnu x27, s18
-#   x27: 0x0000000000000000
+#            x27: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5ee1aacb		fcvtps d11, d22
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  5ea1aa9d		fcvtps s29, s20
-#   v29: 0x00000000000000000000000000000019
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e68032f		fcvtps w15, d25
-#   x15: 0x0000000000000001
+#            w15:         0x00000001
 0x~~~~~~~~~~~~~~~~  1e2800f0		fcvtps w16, s7
-#   x16: 0x0000000000000009
+#            w16:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e68028d		fcvtps x13, d20
-#   x13: 0x000000000000001b
+#            x13: 0x7fffffffffffffff
 0x~~~~~~~~~~~~~~~~  9e2802e3		fcvtps x3, s23
-#    x3: 0x000000000000001d
+#             x3: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  7ee1a838		fcvtpu d24, d1
-#   v24: 0x00000000000000000000000000000001
+#            v24: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  7ea1ab0e		fcvtpu s14, s24
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  1e6903ba		fcvtpu w26, d29
-#   x26: 0x0000000000000001
+#            w26:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e29035f		fcvtpu wzr, s26
 0x~~~~~~~~~~~~~~~~  9e6900db		fcvtpu x27, d6
-#   x27: 0x0000000000000001
+#            x27: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e2901dd		fcvtpu x29, s14
-#   x29: 0x0000000000000001
+#            x29: 0x0000000000000001
 0x~~~~~~~~~~~~~~~~  7e61698c		fcvtxn s12, d12
-#   v12: 0x00000000000000000000000000000001
+#            v12: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  5ee1b80f		fcvtzs d15, d0
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f56fc8d		fcvtzs d13, d4, #42
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea1b968		fcvtzs s8, s11
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f27fcdf		fcvtzs s31, s6, #25
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e780126		fcvtzs w6, d9
-#    x6: 0x000000000000000c
+#             w6:         0x7fffffff
 0x~~~~~~~~~~~~~~~~  1e58b159		fcvtzs w25, d10, #20
-#   x25: 0x0000000000000000
+#            w25:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e380029		fcvtzs w9, s1
-#    x9: 0x0000000000000000
+#             w9:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e188bb1		fcvtzs w17, s29, #30
-#   x17: 0x0000000000000000
+#            w17:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e780053		fcvtzs x19, d2
-#   x19: 0x0000000000000000
+#            x19: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e58fdd6		fcvtzs x22, d14, #1
-#   x22: 0x0000000000000000
+#            x22: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e38028e		fcvtzs x14, s20
-#   x14: 0x0000000000000018
+#            x14: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e187fc3		fcvtzs x3, s30, #33
-#    x3: 0x0000000000000000
+#             x3: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  7ee1b9fc		fcvtzu d28, d15
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f7dfc80		fcvtzu d0, d4, #3
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea1b8a2		fcvtzu s2, s5
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f22fc04		fcvtzu s4, s0, #30
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e79008b		fcvtzu w11, d4
-#   x11: 0x0000000000000000
+#            w11:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e598307		fcvtzu w7, d24, #32
-#    x7: 0x0000000000000000
+#             w7:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e390312		fcvtzu w18, s24
-#   x18: 0x0000000000000000
+#            w18:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e19f36e		fcvtzu w14, s27, #4
-#   x14: 0x0000000000000000
+#            w14:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e790176		fcvtzu x22, d11
-#   x22: 0x0000000000000000
+#            x22: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e593368		fcvtzu x8, d27, #52
-#    x8: 0x0000000000000000
+#             x8: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e390287		fcvtzu x7, s20
-#    x7: 0x0000000000000018
+#             x7: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e1950f6		fcvtzu x22, s7, #44
-#   x22: 0x00008a4396000000
+#            x22: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e6f19c6		fdiv d6, d14, d15
-#    v6: 0x00000000000000007ff0000000000000 (d6: inf)
+#             d6:                 0x7ff0000000000000 (inf)
 0x~~~~~~~~~~~~~~~~  1e3918ba		fdiv s26, s5, s25
-#   v26: 0x00000000000000000000000000000000 (s26: 0.00000)
+#            s26:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1f4c7b52		fmadd d18, d26, d12, d30
-#   v18: 0x00000000000000000000000000000014 (d18: 9.88131e-323)
+#            d18:                 0x7fffffffffffffff
 0x~~~~~~~~~~~~~~~~  1f1c112d		fmadd s13, s9, s28, s4
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
+#            s13:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1e6548ac		fmax d12, d5, d5
-#   v12: 0x00000000000000000000000000000000 (d12: 0.00000)
+#            d12:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e264b8c		fmax s12, s28, s6
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
+#            s12:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e62689c		fmaxnm d28, d4, d2
-#   v28: 0x00000000000000000000000000000000 (d28: 0.00000)
+#            d28:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e286946		fmaxnm s6, s10, s8
-#    v6: 0x00000000000000000000000000000000 (s6: 0.00000)
+#             s6:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e725a94		fmin d20, d20, d18
-#   v20: 0x00000000000000000000000000000014 (d20: 9.88131e-323)
+#            d20:                 0x7fffffffffffffff (nan)
 0x~~~~~~~~~~~~~~~~  1e3059a7		fmin s7, s13, s16
-#    v7: 0x00000000000000000000000000000000 (s7: 0.00000)
+#             s7:                         0x87027800 (-9.815e-35)
 0x~~~~~~~~~~~~~~~~  1e7e79d3		fminnm d19, d14, d30
-#   v19: 0x00000000000000000000000000000001 (d19: 4.94066e-324)
+#            d19:                 0x0000000000000001 (4.941e-324)
 0x~~~~~~~~~~~~~~~~  1e217820		fminnm s0, s1, s1
-#    v0: 0x000000000000000000000000ffffffff (s0: nan)
+#             s0:                         0xffffffff (nan)
 0x~~~~~~~~~~~~~~~~  1e6040cd		fmov d13, d6
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
+#            d13:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e670222		fmov d2, x17
-#    v2: 0x00000000000000000000000000000000
+#             d2:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e709008		fmov d8, #0x84 (-2.5000)
-#    v8: 0x0000000000000000c004000000000000 (d8: -2.50000)
+#             d8:                 0xc004000000000000
 0x~~~~~~~~~~~~~~~~  1e204065		fmov s5, s3
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
+#             s5:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1e270299		fmov s25, w20
-#   v25: 0x00000000000000000000000000000001
+#            s25:                         0x00000001
 0x~~~~~~~~~~~~~~~~  1e20f015		fmov s21, #0x7 (2.8750)
-#   v21: 0x00000000000000000000000040380000 (s21: 2.87500)
+#            s21:                         0x40380000
 0x~~~~~~~~~~~~~~~~  1e260312		fmov w18, s24
-#   x18: 0x0000000000000001
+#            w18:         0x00000001
 0x~~~~~~~~~~~~~~~~  9e660052		fmov x18, d2
-#   x18: 0x0000000000000000
+#            x18: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1f43cfd4		fmsub d20, d30, d3, d19
-#   v20: 0x00000000000000000000000000000001 (d20: 4.94066e-324)
+#            d20:                 0xffffffffffffffff
 0x~~~~~~~~~~~~~~~~  1f04b265		fmsub s5, s19, s4, s12
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
+#             s5:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1e770b7e		fmul d30, d27, d23
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
+#            d30:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e2f0a39		fmul s25, s17, s15
-#   v25: 0x000000000000000000000000ffffffff (s25: nan)
+#            s25:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  5e61de24		fmulx d4, d17, d1
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e24df2e		fmulx s14, s25, s4
-#   v14: 0x000000000000000000000000ffffffff
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e61400f		fneg d15, d0
-#   v15: 0x000000000000000080000000ffffffff (d15: -2.12200e-314)
+#            d15:                 0x80000000ffffffff (-2.122e-314)
 0x~~~~~~~~~~~~~~~~  1e2141ee		fneg s14, s15
-#   v14: 0x0000000000000000000000007fffffff (s14: nan)
+#            s14:                         0x7fffffff (nan)
 0x~~~~~~~~~~~~~~~~  1f767e00		fnmadd d0, d16, d22, d31
-#    v0: 0x00000000000000008000000000000000 (d0: -0.00000)
+#             d0:                 0x87c0000086f277ff
 0x~~~~~~~~~~~~~~~~  1f3a4a40		fnmadd s0, s18, s26, s18
-#    v0: 0x00000000000000000000000080000014 (s0: -2.80260e-44)
+#             s0:                         0x7fffffff
 0x~~~~~~~~~~~~~~~~  1f6fd593		fnmsub d19, d12, d15, d21
-#   v19: 0x00000000000000008000000040380000 (d19: -5.32312e-315)
+#            d19:                 0x8000000040380000
 0x~~~~~~~~~~~~~~~~  1f2be81d		fnmsub s29, s0, s11, s26
-#   v29: 0x00000000000000000000000080000000 (s29: -0.00000)
+#            s29:                         0x7fffffff
 0x~~~~~~~~~~~~~~~~  1e618a7f		fnmul d31, d19, d1
-#   v31: 0x00000000000000000000000000000000 (d31: 0.00000)
+#            d31:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e318872		fnmul s18, s3, s17
-#   v18: 0x0000000000000000000000007fffffff (s18: nan)
+#            s18:                         0x80000000 (-0.000)
 0x~~~~~~~~~~~~~~~~  5ee1daa7		frecpe d7, d21
-#    v7: 0x00000000000000007ff0000000000000
+#             v7: 0x00000000000000007ff0000000000000
 0x~~~~~~~~~~~~~~~~  5ea1da3d		frecpe s29, s17
-#   v29: 0x000000000000000000000000ffffffff
+#            v29: 0x0000000000000000000000007f800000
 0x~~~~~~~~~~~~~~~~  5e71ff4b		frecps d11, d26, d17
-#   v11: 0x00000000000000004000000000000000
+#            v11: 0x00000000000000004000000000000000
 0x~~~~~~~~~~~~~~~~  5e21ff72		frecps s18, s27, s1
-#   v18: 0x000000000000000000000000ffffffff
+#            v18: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  5ee1fa4f		frecpx d15, d18
-#   v15: 0x00000000000000007fe0000000000000
+#            v15: 0x00000000000000007fe0000000000000
 0x~~~~~~~~~~~~~~~~  5ea1f945		frecpx s5, s10
-#    v5: 0x0000000000000000000000007f000000
+#             v5: 0x0000000000000000000000007f000000
 0x~~~~~~~~~~~~~~~~  1e6643d0		frinta d16, d30
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
+#            d16:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e2642c1		frinta s1, s22
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
+#             s1:                         0xffffffff (nan)
 0x~~~~~~~~~~~~~~~~  1e67c3b3		frinti d19, d29
-#   v19: 0x00000000000000000000000000000000 (d19: 0.00000)
+#            d19:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e27c2ae		frinti s14, s21
-#   v14: 0x00000000000000000000000040400000 (s14: 3.00000)
+#            s14:                         0x40400000 (3.000)
 0x~~~~~~~~~~~~~~~~  1e6543d4		frintm d20, d30
-#   v20: 0x00000000000000000000000000000000 (d20: 0.00000)
+#            d20:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e254201		frintm s1, s16
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
+#             s1:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e64403e		frintn d30, d1
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
+#            d30:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e244158		frintn s24, s10
-#   v24: 0x00000000000000000000000000000000 (s24: 0.00000)
+#            s24:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e64c284		frintp d4, d20
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
+#             d4:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e24c06d		frintp s13, s3
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
+#            s13:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e67428d		frintx d13, d20
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
+#            d13:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e2740f1		frintx s17, s7
-#   v17: 0x00000000000000000000000000000000 (s17: 0.00000)
+#            s17:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e65c100		frintz d0, d8
-#    v0: 0x0000000000000000c000000000000000 (d0: -2.00000)
+#             d0:                 0xc000000000000000 (-2.000)
 0x~~~~~~~~~~~~~~~~  1e25c3af		frintz s15, s29
-#   v15: 0x000000000000000000000000ffffffff (s15: nan)
+#            s15:                         0x7f800000 (inf)
 0x~~~~~~~~~~~~~~~~  7ee1d955		frsqrte d21, d10
-#   v21: 0x00000000000000007ff0000000000000
+#            v21: 0x00000000000000007ff0000000000000
 0x~~~~~~~~~~~~~~~~  7ea1db31		frsqrte s17, s25
-#   v17: 0x000000000000000000000000ffffffff
+#            v17: 0x0000000000000000000000007f800000
 0x~~~~~~~~~~~~~~~~  5ef1ffa4		frsqrts d4, d29, d17
-#    v4: 0x00000000000000003ff8000000000000
+#             v4: 0x00000000000000003ff8000000000000
 0x~~~~~~~~~~~~~~~~  5eb8fc6e		frsqrts s14, s3, s24
-#   v14: 0x0000000000000000000000003fc00000
+#            v14: 0x0000000000000000000000003fc00000
 0x~~~~~~~~~~~~~~~~  1e61c22e		fsqrt d14, d17
-#   v14: 0x00000000000000001f5ffffffff00000 (d14: 1.45671e-157)
+#            d14:                 0x1f56954b41cd4293 (1.028e-157)
 0x~~~~~~~~~~~~~~~~  1e21c1c4		fsqrt s4, s14
-#    v4: 0x000000000000000000000000fff00000 (s4: nan)
+#             s4:                         0x40a21722 (5.065)
 0x~~~~~~~~~~~~~~~~  1e673a6d		fsub d13, d19, d7
-#   v13: 0x0000000000000000fff0000000000000 (d13: -inf)
+#            d13:                 0xfff0000000000000 (-inf)
 0x~~~~~~~~~~~~~~~~  1e3b3aa3		fsub s3, s21, s27
-#    v3: 0x00000000000000000000000000000000 (s3: 0.00000)
+#             s3:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  5e61da1f		scvtf d31, d16
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f68e7fa		scvtf d26, d31, #24
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e620206		scvtf d6, w16
-#    v6: 0x00000000000000004022000000000000 (d6: 9.00000)
+#             d6:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e42ea85		scvtf d5, w20, #6
-#    v5: 0x00000000000000003f90000000000000 (d5: 0.0156250)
+#             d5:                 0x3f90000000000000
 0x~~~~~~~~~~~~~~~~  9e620110		scvtf d16, x8
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
+#            d16:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e42d90f		scvtf d15, x8, #10
-#   v15: 0x00000000000000000000000000000000 (d15: 0.00000)
+#            d15:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5e21d887		scvtf s7, s4
-#    v7: 0x00000000000000007ff00000c9800000
+#             v7: 0x00000000000000007ff000004e81442e
 0x~~~~~~~~~~~~~~~~  5f32e5e8		scvtf s8, s15, #14
-#    v8: 0x0000000000000000c004000000000000
+#             v8: 0x0000000000000000c004000000000000
 0x~~~~~~~~~~~~~~~~  1e22015d		scvtf s29, w10
-#   v29: 0x00000000000000000000000000000000 (s29: 0.00000)
+#            s29:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1e02d6af		scvtf s15, w21, #11
-#   v15: 0x0000000000000000000000003c200000 (s15: 0.00976562)
+#            s15:                         0x49800000
 0x~~~~~~~~~~~~~~~~  9e22035b		scvtf s27, x26
-#   v27: 0x0000000000000000000000003f800000 (s27: 1.00000)
+#            s27:                         0x00000000
 0x~~~~~~~~~~~~~~~~  9e02699a		scvtf s26, x12, #38
-#   v26: 0x0000000000000000000000003c7fffff (s26: 0.0156250)
+#            s26:                         0x3c7fffff
 0x~~~~~~~~~~~~~~~~  7e61d920		ucvtf d0, d9
-#    v0: 0x000000000000000043d00a0e21904c71
+#             v0: 0x000000000000000043d21c000020e097
 0x~~~~~~~~~~~~~~~~  7f51e6c5		ucvtf d5, d22, #47
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000003effffffffe00000
 0x~~~~~~~~~~~~~~~~  1e63037e		ucvtf d30, w27
-#   v30: 0x00000000000000003ff0000000000000 (d30: 1.00000)
+#            d30:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e43fe63		ucvtf d3, w19, #1
-#    v3: 0x00000000000000000000000000000000 (d3: 0.00000)
+#             d3:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e6302bc		ucvtf d28, x21
-#   v28: 0x00000000000000004034000000000000 (d28: 20.0000)
+#            d28:                 0x41dfffffffc00000
 0x~~~~~~~~~~~~~~~~  9e4377db		ucvtf d27, x30, #35
-#   v27: 0x00000000000000000000000000000000 (d27: 0.00000)
+#            d27:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  7e21d8ab		ucvtf s11, s5
-#   v11: 0x00000000000000004000000000000000
+#            v11: 0x0000000000000000400000004f7fe000
 0x~~~~~~~~~~~~~~~~  7f32e6e0		ucvtf s0, s23, #14
-#    v0: 0x000000000000000043d00a0e4783c64c
+#             v0: 0x000000000000000043d21c00480a8294
 0x~~~~~~~~~~~~~~~~  1e230274		ucvtf s20, w19
-#   v20: 0x00000000000000000000000000000000 (s20: 0.00000)
+#            s20:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1e03bad5		ucvtf s21, w22, #18
-#   v21: 0x00000000000000000000000046160000 (s21: 9600.00)
+#            s21:                         0x00000000
 0x~~~~~~~~~~~~~~~~  9e2301a6		ucvtf s6, x13
-#    v6: 0x00000000000000000000000041d80000 (s6: 27.0000)
+#             s6:                         0x5f000000
 0x~~~~~~~~~~~~~~~~  9e03ac47		ucvtf s7, x2, #21
-#    v7: 0x00000000000000000000000038ff0000 (s7: 0.000121593)
+#             s7:                         0x38ff0000
 0x~~~~~~~~~~~~~~~~  5ee0b813		abs d19, d0
-#   v19: 0x000000000000000043d00a0e4783c64c
+#            v19: 0x000000000000000043d21c00480a8294
 0x~~~~~~~~~~~~~~~~  4e20b970		abs v16.16b, v11.16b
-#   v16: 0x00000000000000004000000000000000
+#            v16: 0x0000000000000000400000004f7f2000
 0x~~~~~~~~~~~~~~~~  4ee0bbe0		abs v0.2d, v31.2d
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea0bb3b		abs v27.2s, v25.2s
-#   v27: 0x00000000000000000000000000000001
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e60bb75		abs v21.4h, v27.4h
-#   v21: 0x00000000000000000000000000000001
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea0b830		abs v16.4s, v1.4s
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e20b8bf		abs v31.8b, v5.8b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000003e01010101200000
 0x~~~~~~~~~~~~~~~~  4e60b9bd		abs v29.8h, v13.8h
-#   v29: 0x00000000000000000010000000000000
+#            v29: 0x00000000000000000010000000000000
 0x~~~~~~~~~~~~~~~~  5ef184aa		add d10, d5, d17
-#   v10: 0x000000000000000000000000ffffffff
+#            v10: 0x00000000000000003f0000007f600000
 0x~~~~~~~~~~~~~~~~  4e3785ff		add v31.16b, v15.16b, v23.16b
-#   v31: 0x403ba7b141b670b1403ef2e47d0325e4
+#            v31: 0x495000018a83940149500000d3029400
 0x~~~~~~~~~~~~~~~~  4eee87ea		add v10.2d, v31.2d, v14.2d
-#   v10: 0x403ba7b141b670b15f9ef2e47cf325e4
+#            v10: 0x495000018a83940168a6954c14cfd693
 0x~~~~~~~~~~~~~~~~  0eb385cf		add v15.2s, v14.2s, v19.2s
-#   v15: 0x000000000000000063300a0d4773c64c
+#            v15: 0x00000000000000006328b14b89d7c527
 0x~~~~~~~~~~~~~~~~  0e7186fb		add v27.4h, v23.4h, v17.4h
-#   v27: 0x0000000000000000403ef2e441e225e3
+#            v27: 0x0000000000000000495000000a029400
 0x~~~~~~~~~~~~~~~~  4ebd8799		add v25.4s, v28.4s, v29.4s
-#   v25: 0x00000000000000004044000000000000
+#            v25: 0x000000000000000041efffffffc00000
 0x~~~~~~~~~~~~~~~~  0e3284ed		add v13.8b, v7.8b, v18.8b
-#   v13: 0x00000000000000000000000037feffff
+#            v13: 0x00000000000000000000000037feffff
 0x~~~~~~~~~~~~~~~~  4e618444		add v4.8h, v2.8h, v1.8h
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eaf41ca		addhn v10.2s, v14.2d, v15.2d
-#   v10: 0x00000000000000000000000082900a0d
+#            v10: 0x000000000000000000000000827f4696
 0x~~~~~~~~~~~~~~~~  0e7a43ca		addhn v10.4h, v30.4s, v26.4s
-#   v10: 0x0000000000000000000000003ff03c7f
+#            v10: 0x00000000000000000000000000003c7f
 0x~~~~~~~~~~~~~~~~  0e36419f		addhn v31.8b, v12.8h, v22.8h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x0000000000000000000000000000ffff
 0x~~~~~~~~~~~~~~~~  4e3442b0		addhn2 v16.16b, v21.8h, v20.8h
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eb14040		addhn2 v0.4s, v2.2d, v17.2d
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7140ff		addhn2 v31.8h, v7.4s, v17.4s
-#   v31: 0x00000000000038fe0000000000000000
+#            v31: 0x000000000000b87f000000000000ffff
 0x~~~~~~~~~~~~~~~~  5ef1ba6e		addp d14, v19.2d
-#   v14: 0x000000000000000043d00a0e4783c64c
+#            v14: 0x000000000000000043d21c00480a8294
 0x~~~~~~~~~~~~~~~~  4e3cbd03		addp v3.16b, v8.16b, v28.16b
-#    v3: 0x000000007400000000000000c4000000
+#             v3: 0x0000000020febf0000000000c4000000
 0x~~~~~~~~~~~~~~~~  4ef1bca8		addp v8.2d, v5.2d, v17.2d
-#    v8: 0x00000000ffffffff0000000000000000
+#             v8: 0x000000007f8000003effffffffe00000
 0x~~~~~~~~~~~~~~~~  0ebabfd6		addp v22.2s, v30.2s, v26.2s
-#   v22: 0x00000000000000003c7fffff3ff00000
+#            v22: 0x00000000000000003c7fffff00000000
 0x~~~~~~~~~~~~~~~~  0e6ebf1d		addp v29.4h, v24.4h, v14.4h
-#   v29: 0x00000000000000004dde0dcf00000000
+#            v29: 0x00000000000000005fd2ca9e00000000
 0x~~~~~~~~~~~~~~~~  4eb8bf5e		addp v30.4s, v26.4s, v24.4s
-#   v30: 0x0000000000000000000000003c7fffff
+#            v30: 0x0000000000000000000000003c7fffff
 0x~~~~~~~~~~~~~~~~  0e27bf4c		addp v12.8b, v26.8b, v7.8b
-#   v12: 0x0000000000000000000037000000bbfe
+#            v12: 0x0000000000000000000037000000bbfe
 0x~~~~~~~~~~~~~~~~  4e6cbd11		addp v17.8h, v8.8h, v12.8h
-#   v17: 0x000000003700bbfe0000fffe00000000
+#            v17: 0x000000003700bbfe00007f803efeffe0
 0x~~~~~~~~~~~~~~~~  4e31bafb		addv b27, v23.16b
-#   v27: 0x0000000000000000000000000000006c
+#            v27: 0x00000000000000000000000000000075
 0x~~~~~~~~~~~~~~~~  0e31ba8c		addv b12, v20.8b
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e71bbdb		addv h27, v30.4h
-#   v27: 0x00000000000000000000000000003c7e
+#            v27: 0x00000000000000000000000000003c7e
 0x~~~~~~~~~~~~~~~~  4e71b9d3		addv h19, v14.8h
-#   v19: 0x00000000000000000000000000005bad
+#            v19: 0x00000000000000000000000000002a70
 0x~~~~~~~~~~~~~~~~  4eb1bb6e		addv s14, v27.4s
-#   v14: 0x00000000000000000000000000003c7e
+#            v14: 0x00000000000000000000000000003c7e
 0x~~~~~~~~~~~~~~~~  4e3b1d0a		and v10.16b, v8.16b, v27.16b
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e301c25		and v5.8b, v1.8b, v16.8b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e781c7a		bic v26.16b, v3.16b, v24.16b
-#   v26: 0x000000007400000000000000c4000000
+#            v26: 0x0000000020febf0000000000c4000000
 0x~~~~~~~~~~~~~~~~  2f075487		bic v7.2s, #0xe4, lsl #16
-#    v7: 0x000000000000000000000000381b0000
+#             v7: 0x000000000000000000000000381b0000
 0x~~~~~~~~~~~~~~~~  2f01b47c		bic v28.4h, #0x23, lsl #8
-#   v28: 0x00000000000000004034000000000000
+#            v28: 0x000000000000000040dfdcffdcc00000
 0x~~~~~~~~~~~~~~~~  6f05159d		bic v29.4s, #0xac, lsl #0
-#   v29: 0x00000000000000004dde0d4300000000
+#            v29: 0x00000000000000005fd2ca1200000000
 0x~~~~~~~~~~~~~~~~  0e751fec		bic v12.8b, v31.8b, v21.8b
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x0000000000000000000000000000ffff
 0x~~~~~~~~~~~~~~~~  6f049712		bic v18.8h, #0x98, lsl #0
-#   v18: 0x000000000000000000000000ff67ff67
+#            v18: 0x000000000000000000000000ff67ff67
 0x~~~~~~~~~~~~~~~~  6ee81f4c		bif v12.16b, v26.16b, v8.16b
-#   v12: 0x000000000000000000000000c4000000
+#            v12: 0x00000000007ebf000000000000000000
 0x~~~~~~~~~~~~~~~~  2efb1ee2		bif v2.8b, v23.8b, v27.8b
-#    v2: 0x0000000000000000403ef2e441e30180
+#             v2: 0x0000000000000000495000008a828000
 0x~~~~~~~~~~~~~~~~  6ead1c68		bit v8.16b, v3.16b, v13.16b
-#    v8: 0x00000000ffffffff0000000004000000
+#             v8: 0x000000007f8000003effffffcc000000
 0x~~~~~~~~~~~~~~~~  2eb71ca5		bit v5.8b, v5.8b, v23.8b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e771fe9		bsl v9.16b, v31.16b, v23.16b
-#    v9: 0x00128220009270f80016c26000c22160
+#             v9: 0x0100000008009801010000000800dc00
 0x~~~~~~~~~~~~~~~~  2e631cee		bsl v14.8b, v7.8b, v3.8b
-#   v14: 0x000000000000000000000000c4000000
+#            v14: 0x000000000000000000000000c4000000
 0x~~~~~~~~~~~~~~~~  4e2048bd		cls v29.16b, v5.16b
-#   v29: 0x07070707070707070707070707070707
+#            v29: 0x07070707070707070707070707070707
 0x~~~~~~~~~~~~~~~~  0ea04815		cls v21.2s, v0.2s
-#   v21: 0x00000000000000000000001f0000001f
+#            v21: 0x00000000000000000000001f0000001f
 0x~~~~~~~~~~~~~~~~  0e604981		cls v1.4h, v12.4h
-#    v1: 0x0000000000000000000f000f0001000f
+#             v1: 0x0000000000000000000f000f000f000f
 0x~~~~~~~~~~~~~~~~  4ea0495b		cls v27.4s, v10.4s
-#   v27: 0x0000001f0000001f0000001f0000001f
+#            v27: 0x0000001f0000001f0000001f0000001f
 0x~~~~~~~~~~~~~~~~  0e204893		cls v19.8b, v4.8b
-#   v19: 0x00000000000000000707070707070707
+#            v19: 0x00000000000000000707070707070707
 0x~~~~~~~~~~~~~~~~  4e6049cf		cls v15.8h, v14.8h
-#   v15: 0x000f000f000f000f000f000f0001000f
+#            v15: 0x000f000f000f000f000f000f0001000f
 0x~~~~~~~~~~~~~~~~  6e204881		clz v1.16b, v4.16b
-#    v1: 0x08080808080808080808080808080808
+#             v1: 0x08080808080808080808080808080808
 0x~~~~~~~~~~~~~~~~  2ea04a3b		clz v27.2s, v17.2s
-#   v27: 0x00000000000000000000001000000020
+#            v27: 0x00000000000000000000001100000002
 0x~~~~~~~~~~~~~~~~  2e604929		clz v9.4h, v9.4h
-#    v9: 0x0000000000000000000b000000080002
+#             v9: 0x00000000000000000007001000040000
 0x~~~~~~~~~~~~~~~~  6ea049ff		clz v31.4s, v15.4s
-#   v31: 0x0000000c0000000c0000000c0000000f
+#            v31: 0x0000000c0000000c0000000c0000000f
 0x~~~~~~~~~~~~~~~~  2e204a6e		clz v14.8b, v19.8b
-#   v14: 0x00000000000000000505050505050505
+#            v14: 0x00000000000000000505050505050505
 0x~~~~~~~~~~~~~~~~  6e604966		clz v6.8h, v11.8h
-#    v6: 0x00100010001000100001001000100010
+#             v6: 0x00100010001000100001001000010000
 0x~~~~~~~~~~~~~~~~  7efd8cb2		cmeq d18, d5, d29
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee09bee		cmeq d14, d31, #0
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e368c73		cmeq v19.16b, v3.16b, v22.16b
-#   v19: 0xffffffff00ffffff000000000000ffff
+#            v19: 0xffffffff000000ff0000000000ffffff
 0x~~~~~~~~~~~~~~~~  4e20992f		cmeq v15.16b, v9.16b, #0
-#   v15: 0xffffffffffffffffff00ffffff00ff00
+#            v15: 0xffffffffffffffffff00ff00ff00ffff
 0x~~~~~~~~~~~~~~~~  6eea8e0c		cmeq v12.2d, v16.2d, v10.2d
-#   v12: 0xffffffffffffffffffffffffffffffff
+#            v12: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4ee09ac8		cmeq v8.2d, v22.2d, #0
-#    v8: 0xffffffffffffffff0000000000000000
+#             v8: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  2ea98c62		cmeq v2.2s, v3.2s, v9.2s
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea09b30		cmeq v16.2s, v25.2s, #0
-#   v16: 0x000000000000000000000000ffffffff
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e748ee6		cmeq v6.4h, v23.4h, v20.4h
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000ffff00000000
 0x~~~~~~~~~~~~~~~~  0e6099b0		cmeq v16.4h, v13.4h, #0
-#   v16: 0x0000000000000000ffffffff00000000
+#            v16: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  6ea28e35		cmeq v21.4s, v17.4s, v2.4s
-#   v21: 0xffffffff0000000000000000ffffffff
+#            v21: 0xffffffff000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea09b26		cmeq v6.4s, v25.4s, #0
-#    v6: 0xffffffffffffffff00000000ffffffff
+#             v6: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  2e228db0		cmeq v16.8b, v13.8b, v2.8b
-#   v16: 0x0000000000000000ffffffff00000000
+#            v16: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  0e209a15		cmeq v21.8b, v16.8b, #0
-#   v21: 0x000000000000000000000000ffffffff
+#            v21: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  6e798cf4		cmeq v20.8h, v7.8h, v25.8h
-#   v20: 0xffffffffffffffff0000ffff0000ffff
+#            v20: 0xffffffffffffffff000000000000ffff
 0x~~~~~~~~~~~~~~~~  4e60991a		cmeq v26.8h, v8.8h, #0
-#   v26: 0x0000000000000000ffffffffffffffff
+#            v26: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  5eff3db0		cmge d16, d13, d31
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ee08b19		cmge d25, d24, #0
-#   v25: 0x0000000000000000ffffffffffffffff
+#            v25: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e313e71		cmge v17.16b, v19.16b, v17.16b
-#   v17: 0x000000000000ffffffffffffffff0000
+#            v17: 0x0000000000ffffffffff00ff00ffffff
 0x~~~~~~~~~~~~~~~~  6e208bd6		cmge v22.16b, v30.16b, #0
-#   v22: 0xffffffffffffffffffffffffffff0000
+#            v22: 0xffffffffffffffffffffffffffff0000
 0x~~~~~~~~~~~~~~~~  4efa3e9c		cmge v28.2d, v20.2d, v26.2d
-#   v28: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ee08ae6		cmge v6.2d, v23.2d, #0
-#    v6: 0xffffffffffffffffffffffffffffffff
+#             v6: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0ea33ed9		cmge v25.2s, v22.2s, v3.2s
-#   v25: 0x000000000000000000000000ffffffff
+#            v25: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  2ea08975		cmge v21.2s, v11.2s, #0
-#   v21: 0x0000000000000000ffffffffffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0e6c3c70		cmge v16.4h, v3.4h, v12.4h
-#   v16: 0x0000000000000000ffffffff0000ffff
+#            v16: 0x0000000000000000ffffffff0000ffff
 0x~~~~~~~~~~~~~~~~  2e608937		cmge v23.4h, v9.4h, #0
-#   v23: 0x0000000000000000ffffffffffffffff
+#            v23: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4eab3c47		cmge v7.4s, v2.4s, v11.4s
-#    v7: 0xffffffffffffffff00000000ffffffff
+#             v7: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  6ea08ac0		cmge v0.4s, v22.4s, #0
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e293fca		cmge v10.8b, v30.8b, v9.8b
-#   v10: 0x0000000000000000ff00ffffffff0000
+#            v10: 0x0000000000000000ff00ff00ffff0000
 0x~~~~~~~~~~~~~~~~  2e208915		cmge v21.8b, v8.8b, #0
-#   v21: 0x0000000000000000ffffffffffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e7a3ce2		cmge v2.8h, v7.8h, v26.8h
-#    v2: 0x0000000000000000ffffffffffffffff
+#             v2: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e608953		cmge v19.8h, v10.8h, #0
-#   v19: 0xffffffffffffffff000000000000ffff
+#            v19: 0xffffffffffffffff000000000000ffff
 0x~~~~~~~~~~~~~~~~  5ee135a6		cmgt d6, d13, d1
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee08b1e		cmgt d30, d24, #0
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e3b3734		cmgt v20.16b, v25.16b, v27.16b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e208b20		cmgt v0.16b, v25.16b, #0
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee13736		cmgt v22.2d, v25.2d, v1.2d
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee08a10		cmgt v16.2d, v16.2d, #0
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eaf3525		cmgt v5.2s, v9.2s, v15.2s
-#    v5: 0x0000000000000000ffffffffffffffff
+#             v5: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0ea08a4c		cmgt v12.2s, v18.2s, #0
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e6b365c		cmgt v28.4h, v18.4h, v11.4h
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000000ffff
 0x~~~~~~~~~~~~~~~~  0e608876		cmgt v22.4h, v3.4h, #0
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ebb3565		cmgt v5.4s, v11.4s, v27.4s
-#    v5: 0x0000000000000000ffffffff00000000
+#             v5: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4ea08a8d		cmgt v13.4s, v20.4s, #0
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e2737fb		cmgt v27.8b, v31.8b, v7.8b
-#   v27: 0x0000000000000000000000ffffffffff
+#            v27: 0x0000000000000000000000ff000000ff
 0x~~~~~~~~~~~~~~~~  0e208805		cmgt v5.8b, v0.8b, #0
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6d3796		cmgt v22.8h, v28.8h, v13.8h
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e608846		cmgt v6.8h, v2.8h, #0
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ef63515		cmhi d21, d8, d22
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e333672		cmhi v18.16b, v19.16b, v19.16b
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ef53407		cmhi v7.2d, v0.2d, v21.2d
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea0366f		cmhi v15.2s, v19.2s, v0.2s
-#   v15: 0x000000000000000000000000ffffffff
+#            v15: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  2e6c34ff		cmhi v31.4h, v7.4h, v12.4h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb63609		cmhi v9.4s, v16.4s, v22.4s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e3c3707		cmhi v7.8b, v24.8b, v28.8b
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e79354b		cmhi v11.8h, v10.8h, v25.8h
-#   v11: 0x0000000000000000ffffffff00000000
+#            v11: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  7ef13d81		cmhs d1, d12, d17
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e3e3f35		cmhs v21.16b, v25.16b, v30.16b
-#   v21: 0xffffffffffffffffffffffffffffffff
+#            v21: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6efa3c48		cmhs v8.2d, v2.2d, v26.2d
-#    v8: 0xffffffffffffffffffffffffffffffff
+#             v8: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2ebd3ec1		cmhs v1.2s, v22.2s, v29.2s
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e7e3fda		cmhs v26.4h, v30.4h, v30.4h
-#   v26: 0x0000000000000000ffffffffffffffff
+#            v26: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6eb03e93		cmhs v19.4s, v20.4s, v16.4s
-#   v19: 0xffffffffffffffffffffffffffffffff
+#            v19: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2e3a3c61		cmhs v1.8b, v3.8b, v26.8b
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e683f94		cmhs v20.8h, v28.8h, v8.8h
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000000000000000ffff
 0x~~~~~~~~~~~~~~~~  7ee09b1e		cmle d30, d24, #0
-#   v30: 0x0000000000000000ffffffffffffffff
+#            v30: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e209860		cmle v0.16b, v3.16b, #0
-#    v0: 0xffffffff00ffffffffffffffffffffff
+#             v0: 0xffffffff00ffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ee09bc2		cmle v2.2d, v30.2d, #0
-#    v2: 0xffffffffffffffffffffffffffffffff
+#             v2: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2ea09947		cmle v7.2s, v10.2s, #0
-#    v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2e609be9		cmle v9.4h, v31.4h, #0
-#    v9: 0x0000000000000000ffffffffffffffff
+#             v9: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ea09a49		cmle v9.4s, v18.4s, #0
-#    v9: 0xffffffffffffffffffffffffffffffff
+#             v9: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2e209bf5		cmle v21.8b, v31.8b, #0
-#   v21: 0x0000000000000000ffffffffffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e609abd		cmle v29.8h, v21.8h, #0
-#   v29: 0xffffffffffffffffffffffffffffffff
+#            v29: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  5ee0aaf9		cmlt d25, d23, #0
-#   v25: 0x0000000000000000ffffffffffffffff
+#            v25: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e20aaa7		cmlt v7.16b, v21.16b, #0
-#    v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4ee0abc7		cmlt v7.2d, v30.2d, #0
-#    v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0ea0ab99		cmlt v25.2s, v28.2s, #0
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e60a960		cmlt v0.4h, v11.4h, #0
-#    v0: 0x0000000000000000ffffffff00000000
+#             v0: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  4ea0a8b8		cmlt v24.4s, v5.4s, #0
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e20a97a		cmlt v26.8b, v11.8b, #0
-#   v26: 0x0000000000000000ffffffff00000000
+#            v26: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  4e60aaa1		cmlt v1.8h, v21.8h, #0
-#    v1: 0x0000000000000000ffffffffffffffff
+#             v1: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  5efe8efc		cmtst d28, d23, d30
-#   v28: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e3f8cda		cmtst v26.16b, v6.16b, v31.16b
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee48ea1		cmtst v1.2d, v21.2d, v4.2d
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eb48f5b		cmtst v27.2s, v26.2s, v20.2s
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e728c1a		cmtst v26.4h, v0.4h, v18.4h
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea48e19		cmtst v25.4s, v16.4s, v4.4s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e298d4b		cmtst v11.8b, v10.8b, v9.8b
-#   v11: 0x0000000000000000ff00ffffffff0000
+#            v11: 0x0000000000000000ff00ff00ffff0000
 0x~~~~~~~~~~~~~~~~  4e618c40		cmtst v0.8h, v2.8h, v1.8h
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e2059f9		cnt v25.16b, v15.16b
-#   v25: 0x00000000000000000000000008080808
+#            v25: 0x00000000000000000000000008080808
 0x~~~~~~~~~~~~~~~~  0e2058dc		cnt v28.8b, v6.8b
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e0f04e6		dup v6.16b, v7.b[7]
-#    v6: 0xffffffffffffffffffffffffffffffff
+#             v6: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e010e89		dup v9.16b, w20
-#    v9: 0x01010101010101010101010101010101
+#             v9: 0x01010101010101010101010101010101
 0x~~~~~~~~~~~~~~~~  4e1805ac		dup v12.2d, v13.d[1]
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e080fe9		dup v9.2d, xzr
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e140744		dup v4.2s, v26.s[2]
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e040d83		dup v3.2s, w12
-#    v3: 0x0000000000000000ffffff7dffffff7d
+#             v3: 0x0000000000000000ffffff7dffffff7d
 0x~~~~~~~~~~~~~~~~  0e1e04b6		dup v22.4h, v5.h[7]
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e020f30		dup v16.4h, w25
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e140554		dup v20.4s, v10.s[2]
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e040cea		dup v10.4s, w7
-#   v10: 0x00000018000000180000001800000018
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e0507de		dup v30.8b, v30.b[2]
-#   v30: 0x0000000000000000ffffffffffffffff
+#            v30: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0e010dff		dup v31.8b, w15
-#   v31: 0x00000000000000000101010101010101
+#            v31: 0x00000000000000000101010101010101
 0x~~~~~~~~~~~~~~~~  4e12063c		dup v28.8h, v17.h[4]
-#   v28: 0xffffffffffffffffffffffffffffffff
+#            v28: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e020c62		dup v2.8h, w3
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e231f3d		eor v29.16b, v25.16b, v3.16b
-#   v29: 0x0000000000000000ffffff7df7f7f775
+#            v29: 0x0000000000000000ffffff7df7f7f775
 0x~~~~~~~~~~~~~~~~  2e3c1e03		eor v3.8b, v16.8b, v28.8b
-#    v3: 0x0000000000000000ffffffffffffffff
+#             v3: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e060b41		ext v1.16b, v26.16b, v6.16b, #1
-#    v1: 0xff000000000000000000000000000000
+#             v1: 0xff000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e010bc2		ext v2.8b, v30.8b, v1.8b, #1
-#    v2: 0x000000000000000000ffffffffffffff
+#             v2: 0x000000000000000000ffffffffffffff
 0x~~~~~~~~~~~~~~~~  4c402012		ld1 {v18.16b, v19.16b, v20.16b, v21.16b}, [x0]
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x3f3e3d3c3b3a39383736353433323130
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc22037		ld1 {v23.16b, v24.16b, v25.16b, v26.16b}, [x1], x2
-#   v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0b0a09080706050403020100fffefdfc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0b0a09080706050403020100fffefdfc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfb <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xeb <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xdb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf2025		ld1 {v5.16b, v6.16b, v7.16b, v8.16b}, [x1], #64
-#    v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0a09080706050403020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v8: 0x0a09080706050403020100fffefdfcfb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xeb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c406012		ld1 {v18.16b, v19.16b, v20.16b}, [x0]
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2602d		ld1 {v13.16b, v14.16b, v15.16b}, [x1], x2
-#   v13: 0x1a191817161514131211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x2a292827262524232221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x3a393837363534333231302f2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3a393837363534333231302f2e2d2c2b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x2a292827262524232221201f1e1d1c1b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x1a191817161514131211100f0e0d0c0b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf6033		ld1 {v19.16b, v20.16b, v21.16b}, [x1], #48
-#   v19: 0x191817161514131211100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x292827262524232221201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x393837363534333231302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x393837363534333231302f2e2d2c2b2a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x292827262524232221201f1e1d1c1b1a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x191817161514131211100f0e0d0c0b0a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40a011		ld1 {v17.16b, v18.16b}, [x0]
-#   v17: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2a034		ld1 {v20.16b, v21.16b}, [x1], x2
-#   v20: 0x494847464544434241403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x595857565554535251504f4e4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x595857565554535251504f4e4d4c4b4a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x494847464544434241403f3e3d3c3b3a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdfa03c		ld1 {v28.16b, v29.16b}, [x1], #32
-#   v28: 0x4847464544434241403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x5857565554535251504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x5857565554535251504f4e4d4c4b4a49
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x49 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x4847464544434241403f3e3d3c3b3a39
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40701d		ld1 {v29.16b}, [x0]
-#   v29: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc27035		ld1 {v21.16b}, [x1], x2
-#   v21: 0x6867666564636261605f5e5d5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x6867666564636261605f5e5d5c5b5a59
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x68 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf7024		ld1 {v4.16b}, [x1], #16
-#    v4: 0x67666564636261605f5e5d5c5b5a5958 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v4: 0x67666564636261605f5e5d5c5b5a5958
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c402c04		ld1 {v4.1d, v5.1d, v6.1d, v7.1d}, [x0]
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001f1e1d1c1b1a1918 (d7: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc22c31		ld1 {v17.1d, v18.1d, v19.1d, v20.1d}, [x1], x2
-#   v17: 0x00000000000000006f6e6d6c6b6a6968 (d17: 5.76650e+228) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000007776757473727170 (d18: 2.89670e+267) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000007f7e7d7c7b7a7978 (d19: 1.33818e+306) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000008786858483828180 (d20: -2.08158e-272) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8786858483828180 (-2.082e-272)
+#                                                  ╙─ 0x8786858483828180 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x7f7e7d7c7b7a7978 (1.338e+306)
+#                                                  ╙─ 0x7f7e7d7c7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x7776757473727170 (2.897e+267)
+#                                                  ╙─ 0x7776757473727170 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x6f6e6d6c6b6a6968 (5.766e+228)
+#                                                  ╙─ 0x6f6e6d6c6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf2c3c		ld1 {v28.1d, v29.1d, v30.1d, v31.1d}, [x1], #32
-#   v28: 0x00000000000000006e6d6c6b6a696867 (d28: 8.50866e+223) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000767574737271706f (d29: 4.22243e+262) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000007e7d7c7b7a797877 (d30: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000868584838281807f (d31: -3.03465e-277) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x868584838281807f (-3.035e-277)
+#                                                  ╙─ 0x868584838281807f <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x767574737271706f (4.222e+262)
+#                                                  ╙─ 0x767574737271706f <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x6e6d6c6b6a696867 (8.509e+223)
+#                                                  ╙─ 0x6e6d6c6b6a696867 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c406c14		ld1 {v20.1d, v21.1d, v22.1d}, [x0]
-#   v20: 0x0000000000000000ff0000850002ff01 (d20: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000000000000fffeff (d21: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000001700000000000000 (d22: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc26c33		ld1 {v19.1d, v20.1d, v21.1d}, [x1], x2
-#   v19: 0x00000000000000008e8d8c8b8a898887 (d19: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000969594939291908f (d20: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000009e9d9c9b9a999897 (d21: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x9e9d9c9b9a999897 (-3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x969594939291908f (-7.048e-200)
+#                                                  ╙─ 0x969594939291908f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8e8d8c8b8a898887 (-1.418e-238)
+#                                                  ╙─ 0x8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf6c2c		ld1 {v12.1d, v13.1d, v14.1d}, [x1], #24
-#   v12: 0x00000000000000008d8c8b8a89888786 (d12: -2.09028e-243) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000009594939291908f8e (d13: -1.02545e-204) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009d9c9b9a99989796 (d14: -4.85140e-166) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9d9c9b9a99989796 (-4.851e-166)
+#                                                  ╙─ 0x9d9c9b9a99989796 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x9594939291908f8e (-1.025e-204)
+#                                                  ╙─ 0x9594939291908f8e <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x8d8c8b8a89888786 (-2.090e-243)
+#                                                  ╙─ 0x8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40ac1d		ld1 {v29.1d, v30.1d}, [x0]
-#   v29: 0x0000000000000000ff0000850002ff01 (d29: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000fffeff (d30: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2ac3f		ld1 {v31.1d, v0.1d}, [x1], x2
-#   v31: 0x0000000000000000a5a4a3a2a1a09f9e (d31: -2.38202e-127) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000adacabaaa9a8a7a6 (d0: -1.12597e-88) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xadacabaaa9a8a7a6 (-1.126e-88)
+#                                                  ╙─ 0xadacabaaa9a8a7a6 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xa5a4a3a2a1a09f9e (-2.382e-127)
+#                                                  ╙─ 0xa5a4a3a2a1a09f9e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdfac23		ld1 {v3.1d, v4.1d}, [x1], #16
-#    v3: 0x0000000000000000a4a3a2a1a09f9e9d (d3: -3.45787e-132) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000acabaaa9a8a7a6a5 (d4: -1.65794e-93) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xacabaaa9a8a7a6a5 (-1.658e-93)
+#                                                  ╙─ 0xacabaaa9a8a7a6a5 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xa4a3a2a1a09f9e9d (-3.458e-132)
+#                                                  ╙─ 0xa4a3a2a1a09f9e9d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c407c1c		ld1 {v28.1d}, [x0]
-#   v28: 0x0000000000000000ff0000850002ff01 (d28: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc27c2b		ld1 {v11.1d}, [x1], x2
-#   v11: 0x0000000000000000b4b3b2b1b0afaead (d11: -8.03348e-55) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xb4b3b2b1b0afaead (-8.033e-55)
+#                                                  ╙─ 0xb4b3b2b1b0afaead <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf7c3d		ld1 {v29.1d}, [x1], #8
-#   v29: 0x0000000000000000b3b2b1b0afaeadac (d29: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c402c1c		ld1 {v28.2d, v29.2d, v30.2d, v31.2d}, [x0]
-#   v28: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x3f3e3d3c3b3a39383736353433323130 (0.000461414, 9.95833e-43) <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x3f3e3d3c3b3a39383736353433323130 (0.0004614, 9.958e-43)
+#                                  ║               ╙─ 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc22c28		ld1 {v8.2d, v9.2d, v10.2d, v11.2d}, [x1], x2
-#    v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.70315e+18, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.28100e+95, -1.31369e+57) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.45943e+173, -3.04943e+134) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.39104e+250, -7.07849e+211) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.391e+250, -7.078e+211)
+#                                  ║               ╙─ 0xebeae9e8e7e6e5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.459e+173, -3.049e+134)
+#                                  ║               ╙─ 0xdbdad9d8d7d6d5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.281e+95, -1.314e+57)
+#                                  ║               ╙─ 0xcbcac9c8c7c6c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd3d2d1d0cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.703e+18, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf2c2e		ld1 {v14.2d, v15.2d, v16.2d, v17.2d}, [x1], #64
-#   v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.90391e+13, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.07279e+90, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.10851e+168, -4.47908e+129) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.90012e+245, -1.03980e+207) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.900e+245, -1.040e+207)
+#                                  ║               ╙─ 0xeae9e8e7e6e5e4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.109e+168, -4.479e+129)
+#                                  ║               ╙─ 0xdad9d8d7d6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.073e+90, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.904e+13, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c406c1a		ld1 {v26.2d, v27.2d, v28.2d}, [x0]
-#   v26: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc26c25		ld1 {v5.2d, v6.2d, v7.2d}, [x1], x2
-#    v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.07812e-299, -2.41385e+284) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1211100f0e0d0c0b0a09080706050403 (1.18008e-221, 2.54377e-260) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2221201f1e1d1c1b1a19181716151413 (2.74293e-144, 5.90574e-183) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2221201f1e1d1c1b1a19181716151413 (2.743e-144, 5.906e-183)
+#                                  ║               ╙─ 0x1a19181716151413 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1211100f0e0d0c0b0a09080706050403 (1.180e-221, 2.544e-260)
+#                                  ║               ╙─ 0x0a09080706050403 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.078e-299, -2.414e+284)
+#                                  ║               ╙─ 0xfaf9f8f7f6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf6c3a		ld1 {v26.2d, v27.2d, v28.2d}, [x1], #48
-#   v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.74681e-304, -3.54087e+279) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x11100f0e0d0c0b0a0908070605040302 (1.69471e-226, 3.72581e-265) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x21201f1e1d1c1b1a1918171615141312 (3.94003e-149, 8.65093e-188) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x21201f1e1d1c1b1a1918171615141312 (3.940e-149, 8.651e-188)
+#                                  ║               ╙─ 0x1918171615141312 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x21201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x11100f0e0d0c0b0a0908070605040302 (1.695e-226, 3.726e-265)
+#                                  ║               ╙─ 0x0908070605040302 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x11100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.747e-304, -3.541e+279)
+#                                  ║               ╙─ 0xf9f8f7f6f5f4f3f2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0100fffefdfcfbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40ac12		ld1 {v18.2d, v19.2d}, [x0]
-#   v18: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2ac35		ld1 {v21.2d, v22.2d}, [x1], x2
-#   v21: 0x31302f2e2d2c2b2a2928272625242322 (9.15999e-72, 2.00864e-110) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x41403f3e3d3c3b3a3938373635343332 (2.12953e+06, 4.66377e-33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x41403f3e3d3c3b3a3938373635343332 (2.130e+06, 4.664e-33)
+#                                  ║               ╙─ 0x3938373635343332 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x41403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x31302f2e2d2c2b2a2928272625242322 (9.160e-72, 2.009e-110)
+#                                  ║               ╙─ 0x2928272625242322 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x31302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdfac31		ld1 {v17.2d, v18.2d}, [x1], #32
-#   v17: 0x302f2e2d2c2b2a292827262524232221 (1.34639e-76, 2.93754e-115) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x403f3e3d3c3b3a393837363534333231 (31.2431, 6.82132e-38) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0x403f3e3d3c3b3a393837363534333231 (31.24, 6.821e-38)
+#                                  ║               ╙─ 0x3837363534333231 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x302f2e2d2c2b2a292827262524232221 (1.346e-76, 2.938e-115)
+#                                  ║               ╙─ 0x2827262524232221 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x302f2e2d2c2b2a29 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c407c05		ld1 {v5.2d}, [x0]
-#    v5: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc27c26		ld1 {v6.2d}, [x1], x2
-#    v6: 0x504f4e4d4c4b4a494847464544434241 (7.24994e+78, 1.58398e+40) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0x504f4e4d4c4b4a494847464544434241 (7.250e+78, 1.584e+40)
+#                                  ║               ╙─ 0x4847464544434241 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf7c2f		ld1 {v15.2d}, [x1], #16
-#   v15: 0x4f4e4d4c4b4a49484746454443424140 (1.07078e+74, 2.31271e+35) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x4f4e4d4c4b4a49484746454443424140 (1.071e+74, 2.313e+35)
+#                                  ║               ╙─ 0x4746454443424140 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x4f4e4d4c4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40281e		ld1 {v30.2s, v31.2s, v0.2s, v1.2s}, [x0]
-#   v30: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000001f1e1d1c1b1a1918 (..., 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x1f1e1d1c1b1a1918 (3.348e-20, 1.275e-22)
+#                                          ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc22838		ld1 {v24.2s, v25.2s, v26.2s, v27.2s}, [x1], x2
-#   v24: 0x00000000000000005756555453525150 (..., 2.35662e+14, 9.03307e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000005f5e5d5c5b5a5958 (..., 1.60231e+19, 6.14598e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000006766656463626160 (..., 1.08801e+24, 4.17598e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000006f6e6d6c6b6a6968 (..., 7.37897e+28, 2.83386e+26) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x6f6e6d6c6b6a6968 (7.379e+28, 2.834e+26)
+#                                          ║       ╙─ 0x6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x6766656463626160 (1.088e+24, 4.176e+21)
+#                                          ║       ╙─ 0x63626160 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x67666564 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0x5f5e5d5c5b5a5958 (1.602e+19, 6.146e+16)
+#                                          ║       ╙─ 0x5b5a5958 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x5756555453525150 (2.357e+14, 9.033e+11)
+#                                          ║       ╙─ 0x53525150 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x57565554 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf283b		ld1 {v27.2s, v28.2s, v29.2s, v30.2s}, [x1], #32
-#   v27: 0x0000000000000000565554535251504f (..., 5.86395e+13, 2.24749e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000005e5d5c5b5a595857 (..., 3.98768e+18, 1.52943e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000666564636261605f (..., 2.70818e+23, 1.03937e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000006e6d6c6b6a696867 (..., 1.83698e+28, 7.05432e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x6e6d6c6b6a696867 (1.837e+28, 7.054e+25)
+#                                          ║       ╙─ 0x6a696867 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x666564636261605f (2.708e+23, 1.039e+21)
+#                                          ║       ╙─ 0x6261605f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x66656463 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x5e5d5c5b5a595857 (3.988e+18, 1.529e+16)
+#                                          ║       ╙─ 0x5a595857 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x565554535251504f (5.864e+13, 2.247e+11)
+#                                          ║       ╙─ 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40680b		ld1 {v11.2s, v12.2s, v13.2s}, [x0]
-#   v11: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc26828		ld1 {v8.2s, v9.2s, v10.2s}, [x1], x2
-#    v8: 0x0000000000000000767574737271706f (..., 1.24460e+33, 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007e7d7c7b7a797877 (..., 8.42353e+37, 3.23831e+35) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000868584838281807f (..., -5.02237e-35, -1.90286e-37) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x868584838281807f (-5.022e-35, -1.903e-37)
+#                                          ║       ╙─ 0x8281807f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x86858483 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (8.424e+37, 3.238e+35)
+#                                          ║       ╙─ 0x7a797877 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7e7d7c7b <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0x767574737271706f (1.245e+33, 4.782e+30)
+#                                          ║       ╙─ 0x7271706f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf683f		ld1 {v31.2s, v0.2s, v1.2s}, [x1], #24
-#   v31: 0x00000000000000007574737271706f6e (..., 3.09878e+32, 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000007d7c7b7a79787776 (..., 2.09754e+37, 8.06320e+34) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000008584838281807f7e (..., -1.24615e-35, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8584838281807f7e (-1.246e-35, -4.720e-38)
+#                                          ║       ╙─ 0x81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x85848382 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x7d7c7b7a79787776 (2.098e+37, 8.063e+34)
+#                                          ║       ╙─ 0x79787776 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7d7c7b7a <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x7574737271706f6e (3.099e+32, 1.191e+30)
+#                                          ║       ╙─ 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40a800		ld1 {v0.2s, v1.2s}, [x0]
-#    v0: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2a82d		ld1 {v13.2s, v14.2s}, [x1], x2
-#   v13: 0x00000000000000008d8c8b8a89888786 (..., -8.66176e-31, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009594939291908f8e (..., -6.00095e-26, -2.28077e-28) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9594939291908f8e (-6.001e-26, -2.281e-28)
+#                                          ║       ╙─ 0x91908f8e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x95949392 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x8d8c8b8a89888786 (-8.662e-31, -3.287e-33)
+#                                          ║       ╙─ 0x89888786 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8d8c8b8a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdfa823		ld1 {v3.2s, v4.2s}, [x1], #16
-#    v3: 0x00000000000000008c8b8a8988878685 (..., -2.14997e-31, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x000000000000000094939291908f8e8d (..., -1.49010e-26, -5.66232e-29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x94939291908f8e8d (-1.490e-26, -5.662e-29)
+#                                          ║       ╙─ 0x908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x94939291 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0x8c8b8a8988878685 (-2.150e-31, -8.157e-34)
+#                                          ║       ╙─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40781a		ld1 {v26.2s}, [x0]
-#   v26: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc27820		ld1 {v0.2s}, [x1], x2
-#    v0: 0x00000000000000009c9b9a9998979695 (..., -1.02970e-21, -3.91846e-24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x9c9b9a9998979695 (-1.030e-21, -3.918e-24)
+#                                          ║       ╙─ 0x98979695 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf782b		ld1 {v11.2s}, [x1], #8
-#   v11: 0x00000000000000009b9a999897969594 (..., -2.55764e-22, -9.73128e-25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9b9a999897969594 (-2.558e-22, -9.731e-25)
+#                                          ║       ╙─ 0x97969594 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9b9a9998 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c402410		ld1 {v16.4h, v17.4h, v18.4h, v19.4h}, [x0]
-#   v16: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1f1e1d1c1b1a1918 (0.006950, 0.004990, 0.003468, 0.002487)
+#                                      ║   ║   ║   ╙─ 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d16:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc22438		ld1 {v24.4h, v25.4h, v26.4h, v27.4h}, [x1], x2
-#   v24: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000abaaa9a8a7a6a5a4 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000bbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xbbbab9b8b7b6b5b4 (-0.9658, -0.7148, -0.4819, -0.3564)
+#                                      ║   ║   ║   ╙─ 0xb5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb7b6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb9b8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xb3b2b1b0afaeadac (-0.2405, -0.1777, -0.1200, -0.08862)
+#                                      ║   ║   ║   ╙─ 0xadac <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xafae <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb1b0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb3b2 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xabaaa9a8a7a6a5a4 (-0.05988, -0.04419, -0.02988, -0.02203)
+#                                      ║   ║   ║   ╙─ 0xa5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa7a6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa9a8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xabaa <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xa3a2a1a09f9e9d9c (-0.01491, -0.01099, -0.007439, -0.005478)
+#                                      ║   ║   ║   ╙─ 0x9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9f9e <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa1a0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa3a2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf2421		ld1 {v1.4h, v2.4h, v3.4h, v4.4h}, [x1], #32
-#    v1: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3 (-0.8403, -0.5894, -0.4192, -0.2937)
+#                                      ║   ║   ║   ╙─ 0xb4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb6b5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb8b7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbab9 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab (-0.2091, -0.1464, -0.1043, -0.07294)
+#                                      ║   ║   ║   ╙─ 0xacab <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xaead <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb0af <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb2b1 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3 (-0.05203, -0.03635, -0.02596, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa8a7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xaaa9 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xa2a1a09f9e9d9c9b (-0.01295, -0.009026, -0.006458, -0.004498)
+#                                      ║   ║   ║   ╙─ 0x9c9b <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa09f <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa2a1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40641e		ld1 {v30.4h, v31.4h, v0.4h}, [x0]
-#   v30: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc26439		ld1 {v25.4h, v26.4h, v27.4h}, [x1], x2
-#   v25: 0x0000000000000000c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000cac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xd2d1d0cfcecdcccb (-54.53, -38.47, -27.20, -19.17)
+#                                      ║   ║   ║   ╙─ 0xcccb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcecd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xcac9c8c7c6c5c4c3 (-13.57, -9.555, -6.770, -4.762)
+#                                      ║   ║   ║   ╙─ 0xc4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc6c5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc8c7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xcac9 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xc2c1c0bfbebdbcbb (-3.377, -2.373, -1.685, -1.183)
+#                                      ║   ║   ║   ╙─ 0xbcbb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbebd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc0bf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc2c1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf6423		ld1 {v3.4h, v4.4h, v5.4h}, [x1], #24
-#    v3: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000d1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d5:                 0xd1d0cfcecdcccbca (-46.50, -31.22, -23.19, -15.58)
+#                                      ║   ║   ║   ╙─ 0xcbca <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcdcc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xcfce <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xc9c8c7c6c5c4c3c2 (-11.56, -7.773, -5.766, -3.879)
+#                                      ║   ║   ║   ╙─ 0xc3c2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc7c6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc9c8 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xc1c0bfbebdbcbbba (-2.875, -1.936, -1.434, -0.9658)
+#                                      ║   ║   ║   ╙─ 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbdbc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xbfbe <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc1c0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40a403		ld1 {v3.4h, v4.4h}, [x0]
-#    v3: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2a423		ld1 {v3.4h, v4.4h}, [x1], x2
-#    v3: 0x0000000000000000d9d8d7d6d5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000e1e0dfdedddcdbda <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xe1e0dfdedddcdbda (-752.0, -503.5, -375.0, -251.2)
+#                                      ║   ║   ║   ╙─ 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xd9d8d7d6d5d4d3d2 (-187.0, -125.4, -93.25, -62.56)
+#                                      ║   ║   ║   ╙─ 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdfa437		ld1 {v23.4h, v24.4h}, [x1], #16
-#   v23: 0x0000000000000000d8d7d6d5d4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e0dfdedddcdbdad9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xe0dfdedddcdbdad9 (-623.5, -439.2, -310.8, -219.1)
+#                                      ║   ║   ║   ╙─ 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xd8d7d6d5d4d3d2d1 (-154.9, -109.3, -77.19, -54.53)
+#                                      ║   ║   ║   ╙─ 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40741a		ld1 {v26.4h}, [x0]
-#   v26: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc27421		ld1 {v1.4h}, [x1], x2
-#    v1: 0x0000000000000000e8e7e6e5e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe8e7e6e5e4e3e2e1 (-2510., -1765., -1251., -880.5)
+#                                      ║   ║   ║   ╙─ 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf742e		ld1 {v14.4h}, [x1], #8
-#   v14: 0x0000000000000000e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xe7e6e5e4e3e2e1e0 (-2022., -1508., -1009., -752.0)
+#                                      ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40281a		ld1 {v26.4s, v27.4s, v28.4s, v29.4s}, [x0]
-#   v26: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x3f3e3d3c3b3a39383736353433323130 (0.743122, 0.00284155, 1.08604e-05, 4.14886e-08) <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x3f3e3d3c3b3a39383736353433323130 (0.7431, 0.002842, 1.086e-05, 4.149e-08)
+#                          ║       ║       ║       ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2283c		ld1 {v28.4s, v29.4s, v30.4s, v31.4s}, [x1], x2
-#   v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.00179e+34, -3.84962e+31, -1.47890e+29, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.00825e-34, 3.82047e-37, nan, -2.60629e+36) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17161514131211100f0e0d0c0b0a0908 (4.84942e-25, 1.84362e-27, 7.00365e-30, 2.65846e-32) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x27262524232221201f1e1d1c1b1a1918 (2.30573e-15, 8.78905e-18, 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v31: 0x27262524232221201f1e1d1c1b1a1918 (2.306e-15, 8.789e-18, 3.348e-20, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x17161514131211100f0e0d0c0b0a0908 (4.849e-25, 1.844e-27, 7.004e-30, 2.658e-32)
+#                          ║       ║       ║       ╙─ 0x0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x17161514 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.008e-34, 3.820e-37, nan, -2.606e+36)
+#                          ║       ║       ║       ╙─ 0xfbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.002e+34, -3.850e+31, -1.479e+29, -5.680e+26)
+#                          ║       ║       ║       ╙─ 0xebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xefeeedec <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf7f6f5f4 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf2824		ld1 {v4.4s, v5.4s, v6.4s, v7.4s}, [x1], #64
-#    v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.49430e+33, -9.58428e+30, -3.68172e+28, -1.41390e+26) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.50175e-35, 9.47771e-38, -1.68804e+38, -6.48966e+35) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x161514131211100f0e0d0c0b0a090807 (1.20425e-25, 4.57737e-28, 1.73854e-30, 6.59782e-33) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x262524232221201f1e1d1c1b1a191817 (5.72948e-16, 2.18366e-18, 8.31732e-21, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x262524232221201f1e1d1c1b1a191817 (5.729e-16, 2.184e-18, 8.317e-21, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2221201f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x26252423 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x161514131211100f0e0d0c0b0a090807 (1.204e-25, 4.577e-28, 1.739e-30, 6.598e-33)
+#                          ║       ║       ║       ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x16151413 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.502e-35, 9.478e-38, -1.688e+38, -6.490e+35)
+#                          ║       ║       ║       ╙─ 0xfaf9f8f7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x020100ff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x06050403 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.494e+33, -9.584e+30, -3.682e+28, -1.414e+26)
+#                          ║       ║       ║       ╙─ 0xeae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf2f1f0ef <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c406802		ld1 {v2.4s, v3.4s, v4.4s}, [x0]
-#    v2: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc26836		ld1 {v22.4s, v23.4s, v24.4s}, [x1], x2
-#   v22: 0x363534333231302f2e2d2c2b2a292827 (2.70015e-06, 1.03137e-08, 3.93749e-11, 1.50241e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x464544434241403f3e3d3c3b3a393837 (12625.1, 48.3127, 0.184800, 0.000706557) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x565554535251504f4e4d4c4b4a494847 (5.86395e+13, 2.24749e+11, 8.61082e+08, 3.29781e+06) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0x565554535251504f4e4d4c4b4a494847 (5.864e+13, 2.247e+11, 8.611e+08, 3.298e+06)
+#                          ║       ║       ║       ╙─ 0x4a494847 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4e4d4c4b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0x464544434241403f3e3d3c3b3a393837 (1.263e+04, 48.31, 0.1848, 0.0007066)
+#                          ║       ║       ║       ╙─ 0x3a393837 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3e3d3c3b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x4241403f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x46454443 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x363534333231302f2e2d2c2b2a292827 (2.700e-06, 1.031e-08, 3.937e-11, 1.502e-13)
+#                          ║       ║       ║       ╙─ 0x2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x36353433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf682f		ld1 {v15.4s, v16.4s, v17.4s}, [x1], #48
-#   v15: 0x3534333231302f2e2d2c2b2a29282726 (6.71297e-07, 2.56382e-09, 9.78665e-12, 3.73374e-14) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x4544434241403f3e3d3c3b3a39383736 (3140.20, 12.0154, 0.0459549, 0.000175682) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x5554535251504f4e4d4c4b4a49484746 (1.45909e+13, 5.59177e+10, 2.14218e+08, 820340.) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v17: 0x5554535251504f4e4d4c4b4a49484746 (1.459e+13, 5.592e+10, 2.142e+08, 8.203e+05)
+#                          ║       ║       ║       ╙─ 0x49484746 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x51504f4e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x55545352 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e3d3c3b3a39383736 (3140., 12.02, 0.04595, 0.0001757)
+#                          ║       ║       ║       ╙─ 0x39383736 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x41403f3e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x45444342 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3534333231302f2e2d2c2b2a29282726 (6.713e-07, 2.564e-09, 9.787e-12, 3.734e-14)
+#                          ║       ║       ║       ╙─ 0x29282726 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x31302f2e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x35343332 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40a814		ld1 {v20.4s, v21.4s}, [x0]
-#   v20: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2a83e		ld1 {v30.4s, v31.4s}, [x1], x2
-#   v30: 0x6564636261605f5e5d5c5b5a59585756 (6.74083e+22, 2.58684e+20, 9.92399e+17, 3.80591e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e6d6c6b6a69686766 (3.09878e+32, 1.19058e+30, 4.57302e+27, 1.75599e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v31: 0x7574737271706f6e6d6c6b6a69686766 (3.099e+32, 1.191e+30, 4.573e+27, 1.756e+25)
+#                          ║       ║       ║       ╙─ 0x69686766 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6d6c6b6a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x6564636261605f5e5d5c5b5a59585756 (6.741e+22, 2.587e+20, 9.924e+17, 3.806e+15)
+#                          ║       ║       ║       ╙─ 0x59585756 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5d5c5b5a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x61605f5e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x65646362 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdfa82b		ld1 {v11.4s, v12.4s}, [x1], #32
-#   v11: 0x64636261605f5e5d5c5b5a5958575655 (1.67780e+22, 6.43816e+19, 2.46969e+17, 9.47063e+14) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x74737271706f6e6d6c6b6a6968676665 (7.71514e+31, 2.96402e+29, 1.13840e+27, 4.37102e+24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x74737271706f6e6d6c6b6a6968676665 (7.715e+31, 2.964e+29, 1.138e+27, 4.371e+24)
+#                          ║       ║       ║       ╙─ 0x68676665 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6c6b6a69 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x706f6e6d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x74737271 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0x64636261605f5e5d5c5b5a5958575655 (1.678e+22, 6.438e+19, 2.470e+17, 9.471e+14)
+#                          ║       ║       ║       ╙─ 0x58575655 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x605f5e5d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x64636261 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40780f		ld1 {v15.4s}, [x0]
-#   v15: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2782c		ld1 {v12.4s}, [x1], x2
-#   v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.09178e-36, -1.17085e-38, 5.22300e+36, 2.00766e+34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.092e-36, -1.171e-38, 5.223e+36, 2.008e+34)
+#                          ║       ║       ║       ╙─ 0x78777675 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x84838281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf7820		ld1 {v0.4s}, [x1], #16
-#    v0: 0x838281807f7e7d7c7b7a797877767574 (-7.67045e-37, 3.38275e+38, 1.30054e+36, 4.99878e+33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v0: 0x838281807f7e7d7c7b7a797877767574 (-7.670e-37, 3.383e+38, 1.301e+36, 4.999e+33)
+#                          ║       ║       ║       ╙─ 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x83828180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c402011		ld1 {v17.8b, v18.8b, v19.8b, v20.8b}, [x0]
-#   v17: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x1f1e1d1c1b1a1918
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc22025		ld1 {v5.8b, v6.8b, v7.8b, v8.8b}, [x1], x2
-#    v5: 0x00000000000000008b8a898887868584 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000939291908f8e8d8c <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xa3a2a1a09f9e9d9c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x9b9a999897969594
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9b <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x939291908f8e8d8c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x93 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x8b8a898887868584
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf2029		ld1 {v9.8b, v10.8b, v11.8b, v12.8b}, [x1], #32
-#    v9: 0x00000000000000008a89888786858483 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000009291908f8e8d8c8b <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000009a99989796959493 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa2a1a09f9e9d9c9b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9a99989796959493
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x93 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x9291908f8e8d8c8b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x8a89888786858483
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x83 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c406004		ld1 {v4.8b, v5.8b, v6.8b}, [x0]
-#    v4: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc26022		ld1 {v2.8b, v3.8b, v4.8b}, [x1], x2
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xba <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xaa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf602c		ld1 {v12.8b, v13.8b, v14.8b}, [x1], #24
-#   v12: 0x0000000000000000a9a8a7a6a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000b1b0afaeadacabaa <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xb9b8b7b6b5b4b3b2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0xb1b0afaeadacabaa
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xaa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa9a8a7a6a5a4a3a2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40a00a		ld1 {v10.8b, v11.8b}, [x0]
-#   v10: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2a02b		ld1 {v11.8b, v12.8b}, [x1], x2
-#   v11: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xc9c8c7c6c5c4c3c2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xc1c0bfbebdbcbbba
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdfa03b		ld1 {v27.8b, v28.8b}, [x1], #16
-#   v27: 0x0000000000000000c0bfbebdbcbbbab9 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000c8c7c6c5c4c3c2c1 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xc8c7c6c5c4c3c2c1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xc0bfbebdbcbbbab9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40701f		ld1 {v31.8b}, [x0]
-#   v31: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2702a		ld1 {v10.8b}, [x1], x2
-#   v10: 0x0000000000000000d0cfcecdcccbcac9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xd0cfcecdcccbcac9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf703c		ld1 {v28.8b}, [x1], #8
-#   v28: 0x0000000000000000cfcecdcccbcac9c8 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xcfcecdcccbcac9c8
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c402405		ld1 {v5.8h, v6.8h, v7.8h, v8.8h}, [x0]
-#    v5: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0x3f3e3d3c3b3a39383736353433323130 (1.811, 1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc22422		ld1 {v2.8h, v3.8h, v4.8h, v5.8h}, [x1], x2
-#    v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0f0e0d0c0b0a09080706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0f0e0d0c0b0a09080706050403020100 (0.0004306, 0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 (nan, nan, -6.534e+04, -4.890e+04, -3.261e+04, -2.438e+04, -1.627e+04, -1.216e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf1f0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf3f2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf5f4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf7f6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfbfa <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfdfc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 (-8120., -6064., -4052., -3024., -2022., -1508., -1009., -752.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe9e8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xebea <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xedec <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xefee <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 (-503.5, -375.0, -251.2, -187.0, -125.4, -93.25, -62.56, -46.50)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf242a		ld1 {v10.8h, v11.8h, v12.8h, v13.8h}, [x1], #64
-#   v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0e0d0c0b0a09080706050403020100ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b0a09080706050403020100ff (0.0003693, 0.0002468, 0.0001842, 0.0001229, 9.185e-05, 6.121e-05, 3.058e-05, 1.520e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0201 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0605 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0807 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0a09 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0c0b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0e0d <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef (nan, nan, -5.712e+04, -4.067e+04, -2.850e+04, -2.027e+04, -1.422e+04, -1.010e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf0ef <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf2f1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf4f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf6f5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf8f7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfcfb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfefd <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df (-7092., -5036., -3538., -2510., -1765., -1251., -880.5, -623.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xeae9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xeceb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xeeed <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf (-439.2, -310.8, -219.1, -154.9, -109.3, -77.19, -54.53, -38.47)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40641a		ld1 {v26.8h, v27.8h, v28.8h}, [x0]
-#   v26: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc26423		ld1 {v3.8h, v4.8h, v5.8h}, [x1], x2
-#    v3: 0x1e1d1c1b1a191817161514131211100f <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2e2d2c2b2a292827262524232221201f <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3d3c3b3a393837363534333231302f <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3e3d3c3b3a393837363534333231302f (1.560, 1.058, 0.7778, 0.5269, 0.3879, 0.2625, 0.1935, 0.1307)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x302f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3433 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3635 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3837 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3c3b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2e2d2c2b2a292827262524232221201f (0.09650, 0.06512, 0.04813, 0.03244, 0.02400, 0.01616, 0.01197, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2e2d <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1e1d1c1b1a191817161514131211100f (0.005970, 0.004009, 0.002977, 0.001997, 0.001485, 0.0009947, 0.0007405, 0.0004954)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x100f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1211 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1413 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1615 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1e1d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf6431		ld1 {v17.8h, v18.8h, v19.8h}, [x1], #48
-#   v17: 0x1d1c1b1a191817161514131211100f0e <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x2d2c2b2a292827262524232221201f1e <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3a393837363534333231302f2e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a393837363534333231302f2e (1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40a404		ld1 {v4.8h, v5.8h}, [x0]
-#    v4: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2a435		ld1 {v21.8h, v22.8h}, [x1], x2
-#   v21: 0x4d4c4b4a494847464544434241403f3e <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x5d5c5b5a595857565554535251504f4e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x5d5c5b5a595857565554535251504f4e (343.0, 235.2, 171.0, 117.4, 85.25, 58.56, 42.50, 29.22)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4f4e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5150 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5554 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5958 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5b5a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdfa424		ld1 {v4.8h, v5.8h}, [x1], #32
-#    v4: 0x4c4b4a494847464544434241403f3e3d <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5c5b5a595857565554535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857565554535251504f4e4d (278.8, 203.1, 138.9, 101.3, 69.19, 50.53, 34.47, 25.20)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4e4d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x504f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5251 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5453 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5857 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5a59 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5c5b <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x4c4b4a494847464544434241403f3e3d (17.17, 12.57, 8.555, 6.270, 4.262, 3.127, 2.123, 1.560)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x403f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4443 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4645 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4c4b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c407409		ld1 {v9.8h}, [x0]
-#    v9: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2743b		ld1 {v27.8h}, [x1], x2
-#   v27: 0x6c6b6a696867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a696867666564636261605f5e5d (4524., 3282., 2254., 1637., 1123., 816.5, 559.5, 407.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5e5d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6463 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6665 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6a69 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6c6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf743a		ld1 {v26.8h}, [x1], #16
-#   v26: 0x6b6a696867666564636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x6b6a696867666564636261605f5e5d5c (3796., 2768., 1894., 1380., 945.0, 688.0, 471.5, 343.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6766 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6b6a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d400413		ld1 {v19.b}[1], [x0]
-#   v19: 0x3d3c3b3a39383736353433323130012e <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a39383736353433323130012e
+#                                                ╙─── 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc20c2c		ld1 {v12.b}[3], [x1], x2
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef
+#                                            ╙─────── 0x6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddf103b		ld1 {v27.b}[12], [x1], #1
-#   v27: 0x6c6b6a6b6867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a6b6867666564636261605f5e5d
+#                          ╙───────────────────────── 0x6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40840a		ld1 {v10.d}[1], [x0]
-#   v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.487e+303, ...)
+#                                  ╙───────────────── 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2843a		ld1 {v26.d}[1], [x1], x2
-#   v26: 0x737271706f6e6d6c636261605f5e5d5c (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x737271706f6e6d6c636261605f5e5d5c (1.290e+248, ...)
+#                                  ╙───────────────── 0x737271706f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddf8427		ld1 {v7.d}[1], [x1], #8
-#    v7: 0x7271706f6e6d6c6b2726252423222120 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x7271706f6e6d6c6b2726252423222120 (1.861e+243, ...)
+#                                  ╙───────────────── 0x7271706f6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d404813		ld1 {v19.h}[5], [x0]
-#   v19: 0x3d3c3b3aff013736353433323130012e <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3aff013736353433323130012e (..., nan, ...)
+#                              ╙───────────────────── 0xff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2482a		ld1 {v10.h}[1], [x1], x2
-#   v10: 0xff0000850002ff01d6d5d4d37473d0cf <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d37473d0cf (..., 1.822e+04, ...)
+#                                              ╙───── 0x7473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddf4025		ld1 {v5.h}[4], [x1], #2
-#    v5: 0x5c5b5a595857737254535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857737254535251504f4e4d (..., 1.525e+04, ...)
+#                                  ╙───────────────── 0x7372 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d408015		ld1 {v21.s}[2], [x0]
-#   v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.751e-40, ...)
+#                                  ╙───────────────── 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2802d		ld1 {v13.s}[2], [x1], x2
-#   v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.99878e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.999e+33, ...)
+#                                  ╙───────────────── 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddf8021		ld1 {v1.s}[2], [x1], #4
-#    v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.24460e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.245e+33, ...)
+#                                  ╙───────────────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40c002		ld1r {v2.16b}, [x0]
-#    v2: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x01010101010101010101010101010101
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2c022		ld1r {v2.16b}, [x1], x2
-#    v2: 0x77777777777777777777777777777777 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x77777777777777777777777777777777
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x77 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfc036		ld1r {v22.16b}, [x1], #1
-#   v22: 0x76767676767676767676767676767676 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x76767676767676767676767676767676
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x76 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40cc19		ld1r {v25.1d}, [x0]
-#   v25: 0x0000000000000000ff0000850002ff01 (d25: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2cc29		ld1r {v9.1d}, [x1], x2
-#    v9: 0x00000000000000007e7d7c7b7a797877 (d9: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfcc37		ld1r {v23.1d}, [x1], #8
-#   v23: 0x00000000000000007d7c7b7a79787776 (d23: 2.91053e+296) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x7d7c7b7a79787776 (2.911e+296)
+#                                                  ╙─ 0x7d7c7b7a79787776 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40cc13		ld1r {v19.2d}, [x0]
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#                                  ╙───────────────╨─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2cc35		ld1r {v21.2d}, [x1], x2
-#   v21: 0x8584838281807f7e8584838281807f7e (-4.41447e-282, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8584838281807f7e8584838281807f7e (-4.414e-282, -4.414e-282)
+#                                  ╙───────────────╨─ 0x8584838281807f7e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfcc3e		ld1r {v30.2d}, [x1], #8
-#   v30: 0x84838281807f7e7d84838281807f7e7d (-6.40629e-287, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84838281807f7e7d84838281807f7e7d (-6.406e-287, -6.406e-287)
+#                                  ╙───────────────╨─ 0x84838281807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40c818		ld1r {v24.2s}, [x0]
-#   v24: 0x00000000000000000002ff010002ff01 (s24: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#                                          ╙───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2c83a		ld1r {v26.2s}, [x1], x2
-#   v26: 0x00000000000000008887868588878685 (s26: -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x8887868588878685 (-8.157e-34, -8.157e-34)
+#                                          ╙───────╨─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfc83c		ld1r {v28.2s}, [x1], #4
-#   v28: 0x00000000000000008786858487868584 (s28: -2.02406e-34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x8786858487868584 (-2.024e-34, -2.024e-34)
+#                                          ╙───────╨─ 0x87868584 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40c413		ld1r {v19.4h}, [x0]
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2c421		ld1r {v1.4h}, [x1], x2
-#    v1: 0x00000000000000008988898889888988 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8988898889888988 (-0.0001688, -0.0001688, -0.0001688, -0.0001688)
+#                                      ╙───╨───╨───╨─ 0x8988 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfc435		ld1r {v21.4h}, [x1], #2
-#   v21: 0x00000000000000008887888788878887 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x8887888788878887 (-0.0001382, -0.0001382, -0.0001382, -0.0001382)
+#                                      ╙───╨───╨───╨─ 0x8887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40c80f		ld1r {v15.4s}, [x0]
-#   v15: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#                          ╙───────╨───────╨───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2c835		ld1r {v21.4s}, [x1], x2
-#   v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (..., -2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (-2.150e-31, -2.150e-31, -2.150e-31, -2.150e-31)
+#                          ╙───────╨───────╨───────╨─ 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfc837		ld1r {v23.4s}, [x1], #4
-#   v23: 0x8b8a89888b8a89888b8a89888b8a8988 (..., -5.33626e-32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0x8b8a89888b8a89888b8a89888b8a8988 (-5.336e-32, -5.336e-32, -5.336e-32, -5.336e-32)
+#                          ╙───────╨───────╨───────╨─ 0x8b8a8988 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40c01a		ld1r {v26.8b}, [x0]
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2c02e		ld1r {v14.8b}, [x1], x2
-#   v14: 0x00000000000000008c8c8c8c8c8c8c8c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x8c8c8c8c8c8c8c8c
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfc033		ld1r {v19.8b}, [x1], #1
-#   v19: 0x00000000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8b8b8b8b8b8b8b8b
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40c40d		ld1r {v13.8h}, [x0]
-#   v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2c43e		ld1r {v30.8h}, [x1], x2
-#   v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c (-0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8d8c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfc43b		ld1r {v27.8h}, [x1], #2
-#   v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b (-0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8c8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c408015		ld2 {v21.16b, v22.16b}, [x0]
-#   v21: 0x1e1c1a18000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1d1b1917000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1e1c1a18000000000000ffff00850201
+#            v22: 0x1f1d1b1917000000000000feff0000ff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x17'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1b'1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f'1e <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc28035		ld2 {v21.16b, v22.16b}, [x1], x2
-#   v21: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xacaaa8a6a4a2a09e9c9a98969492908e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#            v22: 0xacaaa8a6a4a2a09e9c9a98969492908e
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x92'91 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x98'97 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa4'a3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaa'a9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xac'ab <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf802c		ld2 {v12.16b, v13.16b}, [x1], #32
-#   v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c
+#            v13: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x8f'8e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x95'94 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa1'a0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa7'a6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xa9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xab'aa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c408c0e		ld2 {v14.2d, v15.2d}, [x0]
-#   v14: 0x1700000000000000ff0000850002ff01 (6.68887e-198, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.56775e-159, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x1700000000000000ff0000850002ff01 (6.689e-198, -5.487e+303)
+#            v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.568e-159, 8.289e-317)
+#                                  ║               ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc28c20		ld2 {v0.2d, v1.2d}, [x1], x2
-#    v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.70315e+18, -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.31369e+57, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.703e+18, -1.163e-59)
+#             v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.314e+57, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4'b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcbcac9c8c7c6c5c4'c3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf8c2c		ld2 {v12.2d, v13.2d}, [x1], #32
-#   v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.90391e+13, -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.92941e+52, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.904e+13, -1.680e-64)
+#            v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.929e+52, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3'b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40881b		ld2 {v27.2s, v28.2s}, [x0]
-#   v27: 0x000000000000000000fffeff0002ff01 (..., 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00fffeff0002ff01 (2.351e-38, 2.751e-40)
+#            d28:                 0x00000000ff000085 (0.000, -1.701e+38)
+#                                          ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc28822		ld2 {v2.2s, v3.2s}, [x1], x2
-#    v2: 0x0000000000000000d6d5d4d3cecdcccb (..., -1.17555e+14, -1.72638e+09) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000dad9d8d7d2d1d0cf (..., -3.06592e+16, -4.50576e+11) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xd6d5d4d3cecdcccb (-1.176e+14, -1.726e+09)
+#             d3:                 0xdad9d8d7d2d1d0cf (-3.066e+16, -4.506e+11)
+#                                          ║       ╙─ 0xd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xdad9d8d7'd6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf882c		ld2 {v12.2s, v13.2s}, [x1], #16
-#   v12: 0x0000000000000000d5d4d3d2cdcccbca (..., -2.92508e+13, -4.29488e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000d9d8d7d6d1d0cfce (..., -7.62949e+15, -1.12105e+11) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xd5d4d3d2cdcccbca (-2.925e+13, -4.295e+08)
+#            d13:                 0xd9d8d7d6d1d0cfce (-7.629e+15, -1.121e+11)
+#                                          ║       ╙─ 0xd1d0cfce'cdcccbca <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c408409		ld2 {v9.4h, v10.4h}, [x0]
-#    v9: 0x00000000000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x0000feff0085ff01 (0.000, nan, 7.927e-06, nan)
+#            d10:                 0x000000ffff000002 (0.000, 1.520e-05, nan, 1.192e-07)
+#                                      ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc28437		ld2 {v23.4h, v24.4h}, [x1], x2
-#   v23: 0x0000000000000000e7e6e3e2dfdedbda <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e9e8e5e4e1e0dddc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe7e6e3e2dfdedbda (-2022., -1009., -503.5, -251.2)
+#            d24:                 0xe9e8e5e4e1e0dddc (-3024., -1508., -752.0, -375.0)
+#                                      ║   ║   ║   ╙─ 0xdddc'dbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe1e0'dfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe9e8'e7e6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf8421		ld2 {v1.4h, v2.4h}, [x1], #16
-#    v1: 0x0000000000000000e6e5e2e1dedddad9 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e8e7e4e3e0dfdcdb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe6e5e2e1dedddad9 (-1765., -880.5, -439.2, -219.1)
+#             d2:                 0xe8e7e4e3e0dfdcdb (-2510., -1251., -623.5, -310.8)
+#                                      ║   ║   ║   ╙─ 0xdcdb'dad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe0df'dedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7'e6e5 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c408814		ld2 {v20.4s, v21.4s}, [x0]
-#   v20: 0x1b1a19180000000000fffeff0002ff01 (1.27467e-22, 0.00000, 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1700000000000000ff000085 (3.34819e-20, 4.13590e-25, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x1b1a19180000000000fffeff0002ff01 (1.275e-22, 0.000, 2.351e-38, 2.751e-40)
+#            v21: 0x1f1e1d1c1700000000000000ff000085 (3.348e-20, 4.136e-25, 0.000, -1.701e+38)
+#                          ║       ║       ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2882a		ld2 {v10.4s, v11.4s}, [x1], x2
-#   v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.53999e-36, -1.04669e+37, -1.54621e+32, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.06322e-34, 2.35095e-38, -4.02346e+34, -5.94046e+29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.540e-36, -1.047e+37, -1.546e+32, -2.282e+27)
+#            v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.063e-34, 2.351e-38, -4.023e+34, -5.940e+29)
+#                          ║       ║       ║       ╙─ 0xf0efeeed'ecebeae9 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf8f7f6f5'f4f3f2f1 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffefd'fcfbfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x08070605'04030201 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf8838		ld2 {v24.4s, v25.4s}, [x1], #32
-#   v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.82047e-37, -2.60629e+36, -3.84962e+31, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.00825e-34, nan, -1.00179e+34, -1.47890e+29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.820e-37, -2.606e+36, -3.850e+31, -5.680e+26)
+#            v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.008e-34, nan, -1.002e+34, -1.479e+29)
+#                          ║       ║       ║       ╙─ 0xefeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf7f6f5f4'f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xfffefdfc'fbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504'03020100 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c408011		ld2 {v17.8b, v18.8b}, [x0]
-#   v17: 0x00000000000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000ffff00850201
+#            d18:                 0x000000feff0000ff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2802d		ld2 {v13.8b, v14.8b}, [x1], x2
-#   v13: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000171513110f0d0b09 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x161412100e0c0a08
+#            d14:                 0x171513110f0d0b09
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x09'08 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x11'10 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'16 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf8027		ld2 {v7.8b, v8.8b}, [x1], #16
-#    v7: 0x00000000000000001513110f0d0b0907 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1513110f0d0b0907
+#             d8:                 0x161412100e0c0a08
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0a'09 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0e'0d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x16'15 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40841e		ld2 {v30.8h, v31.8h}, [x0]
-#   v30: 0x1d1c1918000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a17000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c1918000000000000feff0085ff01 (0.004990, 0.002487, 0.000, 0.000, 0.000, nan, 7.927e-06, nan)
+#            v31: 0x1f1e1b1a17000000000000ffff000002 (0.006950, 0.003468, 0.001709, 0.000, 0.000, 1.520e-05, nan, 1.192e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1700'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc28424		ld2 {v4.8h, v5.8h}, [x1], x2
-#    v4: 0x3433302f2c2b28272423201f1c1b1817 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x363532312e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v4: 0x3433302f2c2b28272423201f1c1b1817 (0.2625, 0.1307, 0.06512, 0.03244, 0.01616, 0.008049, 0.004009, 0.001997)
+#             v5: 0x363532312e2d2a29262522211e1d1a19 (0.3879, 0.1935, 0.09650, 0.04813, 0.02400, 0.01197, 0.005970, 0.002977)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1a19'1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1e1d'1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2221'201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625'2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2a29'2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2e2d'2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3231'302f <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3635'3433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf842d		ld2 {v13.8h, v14.8h}, [x1], #32
-#   v13: 0x33322f2e2b2a272623221f1e1b1a1716 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x353431302d2c2928252421201d1c1918 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x33322f2e2b2a272623221f1e1b1a1716 (0.2249, 0.1122, 0.05597, 0.02792, 0.01393, 0.006950, 0.003468, 0.001730)
+#            v14: 0x353431302d2c2928252421201d1c1918 (0.3252, 0.1621, 0.08081, 0.04028, 0.02008, 0.01001, 0.004990, 0.002487)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928'2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d601005		ld2 {v5.b, v6.b}[12], [x0]
-#    v5: 0x363532012e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1dff1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x363532012e2d2a29262522211e1d1a19
+#             v6: 0x1f1e1dff1b1a19181700000000000000
+#                          ╙───────────────────────── 0xff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de21c30		ld2 {v16.b, v17.b}[7], [x1], x2
-#   v16: 0x4544434241403f3e363c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e363c3b3a39383736
+#            v17: 0x00000000000000003700ffff00850201
+#                                    ╙─────────────── 0x37'36 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dff083d		ld2 {v29.b, v30.b}[2], [x1], #2
-#   v29: 0x0706050403020100fffefdfcfb35f9f8 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c1918000000000000feff0036ff01 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfb35f9f8
+#            v30: 0x1d1c1918000000000000feff0036ff01
+#                                              ╙───── 0x36'35 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60840b		ld2 {v11.d, v12.d}[1], [x0]
-#   v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.487e+303, ...)
+#            v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.289e-317, ...)
+#                                  ╙───────────────── 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2843a		ld2 {v26.d, v27.d}[0], [x1], x2
-#   v26: 0x00000000000000003e3d3c3b3a393837 (d26: 6.80687e-09) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000464544434241403f (d27: 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x00000000000000003e3d3c3b3a393837 (..., 6.807e-09)
+#            v27: 0x0000000000000000464544434241403f (..., 3.370e+30)
+#                                                  ╙─ 0x464544434241403f'3e3d3c3b3a393837 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dff8439		ld2 {v25.d, v26.d}[0], [x1], #16
-#   v25: 0x07060504fffefdfc3d3c3b3a39383736 (d25: 1.00298e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000004544434241403f3e (d26: 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x07060504fffefdfc3d3c3b3a39383736 (..., 1.003e-13)
+#            v26: 0x00000000000000004544434241403f3e (..., 4.899e+25)
+#                                                  ╙─ 0x4544434241403f3e'3d3c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d605812		ld2 {v18.h, v19.h}[7], [x0]
-#   v18: 0xff01000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00020000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0xff01000000000000000000feff0000ff (nan, ...)
+#            v19: 0x00020000000000008b8b8b8b8b8b8b8b (1.192e-07, ...)
+#                      ╙───────────────────────────── 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de24831		ld2 {v17.h, v18.h}[5], [x1], x2
-#   v17: 0x00000000474600003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xff01000049480000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v17: 0x00000000474600003700ffff00850201 (..., 7.273, ...)
+#            v18: 0xff01000049480000000000feff0000ff (..., 10.56, ...)
+#                              ╙───────────────────── 0x4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dff503e		ld2 {v30.h, v31.h}[2], [x1], #4
-#   v30: 0x1d1c191800000000000046450036ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a1700000000004847ff000002 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c191800000000000046450036ff01 (..., 6.270, ...)
+#            v31: 0x1f1e1b1a1700000000004847ff000002 (..., 8.555, ...)
+#                                          ╙───────── 0x4847'4645 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60901d		ld2 {v29.s, v30.s}[3], [x0]
-#   v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xff00008500000000000046450036ff01 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.751e-40, ...)
+#            v30: 0xff00008500000000000046450036ff01 (-1.701e+38, ...)
+#                          ╙───────────────────────── 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2803c		ld2 {v28.s, v29.s}[0], [x1], x2
-#   v28: 0x0000000000000000000000004c4b4a49 (s28: 5.32913e+07) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002ff0103020100fffefdfc504f4e4d (s29: 1.39121e+10) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000000000000000004c4b4a49 (..., 5.329e+07)
+#            v29: 0x0002ff0103020100fffefdfc504f4e4d (..., 1.391e+10)
+#                                                  ╙─ 0x504f4e4d'4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dff9026		ld2 {v6.s, v7.s}[1], [x1], #8
-#    v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.32570e+07, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.46117e+09, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.326e+07, ...)
+#             v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.461e+09, ...)
+#                                          ╙───────── 0x4f4e4d4c'4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60c01a		ld2r {v26.16b, v27.16b}, [x0]
-#   v26: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x01010101010101010101010101010101
+#            v27: 0xffffffffffffffffffffffffffffffff
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2c035		ld2r {v21.16b, v22.16b}, [x1], x2
-#   v21: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x51515151515151515151515151515151 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x50505050505050505050505050505050
+#            v22: 0x51515151515151515151515151515151
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x51'50 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffc025		ld2r {v5.16b, v6.16b}, [x1], #2
-#    v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f
+#             v6: 0x50505050505050505050505050505050
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x50'4f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60cc1a		ld2r {v26.1d, v27.1d}, [x0]
-#   v26: 0x0000000000000000ff0000850002ff01 (d26: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000000000000000fffeff (d27: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-5.487e+303)
+#            d27:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2cc2e		ld2r {v14.1d, v15.1d}, [x1], x2
-#   v14: 0x00000000000000005857565554535251 (d14: 3.67814e+117) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0000000000000000605f5e5d5c5b5a59 (d15: 1.68234e+156) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x5857565554535251 (3.678e+117)
+#            d15:                 0x605f5e5d5c5b5a59 (1.682e+156)
+#                                                  ╙─ 0x605f5e5d5c5b5a59'5857565554535251 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffcc37		ld2r {v23.1d, v24.1d}, [x1], #16
-#   v23: 0x00000000000000005756555453525150 (d23: 5.37096e+112) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000005f5e5d5c5b5a5958 (d24: 2.48489e+151) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x5756555453525150 (5.371e+112)
+#            d24:                 0x5f5e5d5c5b5a5958 (2.485e+151)
+#                                                  ╙─ 0x5f5e5d5c5b5a5958'5756555453525150 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60cc0b		ld2r {v11.2d, v12.2d}, [x0]
-#   v11: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v12: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#                                  ╙───────────────╨─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2cc3d		ld2r {v29.2d, v30.2d}, [x1], x2
-#   v29: 0x67666564636261606766656463626160 (1.24732e+190, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.76650e+228, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x67666564636261606766656463626160 (1.247e+190, 1.247e+190)
+#            v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.766e+228, 5.766e+228)
+#                                  ╙───────────────╨─ 0x6f6e6d6c6b6a6968'6766656463626160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffcc2f		ld2r {v15.2d, v16.2d}, [x1], #16
-#   v15: 0x666564636261605f666564636261605f (1.81795e+185, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.50866e+223, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x666564636261605f666564636261605f (1.818e+185, 1.818e+185)
+#            v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.509e+223, 8.509e+223)
+#                                  ╙───────────────╨─ 0x6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60c81a		ld2r {v26.2s, v27.2s}, [x0]
-#   v26: 0x00000000000000000002ff010002ff01 (s26: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ff000085ff000085 (s27: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d27:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#                                          ╙───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2c836		ld2r {v22.2s, v23.2s}, [x1], x2
-#   v22: 0x00000000000000007271706f7271706f (s22: 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000007675747376757473 (s23: 1.24460e+33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x7271706f7271706f (4.782e+30, 4.782e+30)
+#            d23:                 0x7675747376757473 (1.245e+33, 1.245e+33)
+#                                          ╙───────╨─ 0x76757473'7271706f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffc822		ld2r {v2.2s, v3.2s}, [x1], #8
-#    v2: 0x000000000000000071706f6e71706f6e (s2: 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000007574737275747372 (s3: 3.09878e+32) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x71706f6e71706f6e (1.191e+30, 1.191e+30)
+#             d3:                 0x7574737275747372 (3.099e+32, 3.099e+32)
+#                                          ╙───────╨─ 0x75747372'71706f6e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60c402		ld2r {v2.4h, v3.4h}, [x0]
-#    v2: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#             d3:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                                      ╙───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2c429		ld2r {v9.4h, v10.4h}, [x1], x2
-#    v9: 0x00000000000000007776777677767776 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000007978797879787978 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7776777677767776 (3.056e+04, 3.056e+04, 3.056e+04, 3.056e+04)
+#            d10:                 0x7978797879787978 (4.480e+04, 4.480e+04, 4.480e+04, 4.480e+04)
+#                                      ╙───╨───╨───╨─ 0x7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffc426		ld2r {v6.4h, v7.4h}, [x1], #4
-#    v6: 0x00000000000000007675767576757675 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000007877787778777877 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x7675767576757675 (2.645e+04, 2.645e+04, 2.645e+04, 2.645e+04)
+#             d7:                 0x7877787778777877 (3.658e+04, 3.658e+04, 3.658e+04, 3.658e+04)
+#                                      ╙───╨───╨───╨─ 0x7877'7675 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60c807		ld2r {v7.4s, v8.4s}, [x0]
-#    v7: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#             v8: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#                          ╙───────╨───────╨───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2c833		ld2r {v19.4s, v20.4s}, [x1], x2
-#   v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (..., 5.22300e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (..., -1.17085e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (5.223e+36, 5.223e+36, 5.223e+36, 5.223e+36)
+#            v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (-1.171e-38, -1.171e-38, -1.171e-38, -1.171e-38)
+#                          ╙───────╨───────╨───────╨─ 0x807f7e7d'7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffc835		ld2r {v21.4s, v22.4s}, [x1], #8
-#   v21: 0x7b7a79787b7a79787b7a79787b7a7978 (..., 1.30054e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (..., 3.38275e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x7b7a79787b7a79787b7a79787b7a7978 (1.301e+36, 1.301e+36, 1.301e+36, 1.301e+36)
+#            v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (3.383e+38, 3.383e+38, 3.383e+38, 3.383e+38)
+#                          ╙───────╨───────╨───────╨─ 0x7f7e7d7c'7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60c01a		ld2r {v26.8b, v27.8b}, [x0]
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#            d27:                 0xffffffffffffffff
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2c034		ld2r {v20.8b, v21.8b}, [x1], x2
-#   v20: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000008181818181818181 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8080808080808080
+#            d21:                 0x8181818181818181
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x81'80 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffc02b		ld2r {v11.8b, v12.8b}, [x1], #2
-#   v11: 0x00000000000000007f7f7f7f7f7f7f7f <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x7f7f7f7f7f7f7f7f
+#            d12:                 0x8080808080808080
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x80'7f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60c40c		ld2r {v12.8h, v13.8h}, [x0]
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v13: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2c426		ld2r {v6.8h, v7.8h}, [x1], x2
-#    v6: 0x82818281828182818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x84838483848384838483848384838483 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0x82818281828182818281828182818281 (-3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05)
+#             v7: 0x84838483848384838483848384838483 (-6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8483'8281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffc439		ld2r {v25.8h, v26.8h}, [x1], #4
-#   v25: 0x81808180818081808180818081808180 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x83828382838283828382838283828382 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x81808180818081808180818081808180 (-2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05)
+#            v26: 0x83828382838283828382838283828382 (-5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c404014		ld3 {v20.16b, v21.16b, v22.16b}, [x0]
-#   v20: 0x2d2a2724211e1b1800000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x2e2b2825221f1c1900000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2f2c292623201d1a1700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2d2a2724211e1b1800000000fe000001
+#            v21: 0x2e2b2825221f1c1900000000ffff85ff
+#            v22: 0x2f2c292623201d1a1700000000ff0002
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x20'1f'1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x23'22'21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2c'2b'2a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f'2e'2d <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2403c		ld3 {v28.16b, v29.16b, v30.16b}, [x1], x2
-#   v28: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v29: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#            v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x89'88'87 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8c'8b'8a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8f'8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x95'94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x98'97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa1'a0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa4'a3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa7'a6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xaa'a9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xad'ac'ab <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb3'b2'b1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf4034		ld3 {v20.16b, v21.16b, v22.16b}, [x1], #48
-#   v20: 0xb0adaaa7a4a19e9b9895928f8c898683 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0xb0adaaa7a4a19e9b9895928f8c898683
+#            v21: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v22: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x85'84'83 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x88'87'86 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8b'8a'89 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8e'8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x91'90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x94'93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x97'96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9a'99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa3'a2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa6'a5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa9'a8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xac'ab'aa <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb2'b1'b0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c404c15		ld3 {v21.2d, v22.2d, v23.2d}, [x0]
-#   v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.56775e-159, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x27262524232221200000000000fffeff (4.28794e-120, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2f2e2d2c2b2a29281700000000000000 (1.98829e-81, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.568e-159, -5.487e+303)
+#            v22: 0x27262524232221200000000000fffeff (4.288e-120, 8.289e-317)
+#            v23: 0x2f2e2d2c2b2a29281700000000000000 (1.988e-81, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928'2726252423222120'1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc24c32		ld3 {v18.2d, v19.2d, v20.2d}, [x1], x2
-#   v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.07279e+90, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.47908e+129, -3.90391e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.10851e+168, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.073e+90, -8.311e-26)
+#            v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.479e+129, -3.904e+13)
+#            v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.109e+168, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb'dad9d8d7d6d5d4d3'd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf4c3b		ld3 {v27.2d, v28.2d, v29.2d}, [x1], #48
-#   v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.30639e+86, -1.21867e-30) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.56908e+124, -5.62003e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.03668e+163, -2.82942e+47) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.306e+86, -1.219e-30)
+#            v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.569e+124, -5.620e+08)
+#            v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.037e+163, -2.829e+47)
+#                                  ║               ╙─ 0xc9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe1e0dfdedddcdbda'd9d8d7d6d5d4d3d2'd1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c404807		ld3 {v7.2s, v8.2s, v9.2s}, [x0]
-#    v7: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000001700000000fffeff (..., 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x000000000002ff01 (0.000, 2.751e-40)
+#             d8:                 0x00000000ff000085 (0.000, -1.701e+38)
+#             d9:                 0x1700000000fffeff (4.136e-25, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc24834		ld3 {v20.2s, v21.2s, v22.2s}, [x1], x2
-#   v20: 0x0000000000000000f1f0efeee5e4e3e2 (..., -2.38613e+30, -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000f5f4f3f2e9e8e7e6 (..., -6.21029e+32, -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000f9f8f7f6edecebea (..., -1.61590e+35, -9.16546e+27) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xf1f0efeee5e4e3e2 (-2.386e+30, -1.351e+23)
+#            d21:                 0xf5f4f3f2e9e8e7e6 (-6.210e+32, -3.520e+25)
+#            d22:                 0xf9f8f7f6edecebea (-1.616e+35, -9.165e+27)
+#                                          ║       ╙─ 0xedecebea'e9e8e7e6'e5e4e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf483a		ld3 {v26.2s, v27.2s, v28.2s}, [x1], #24
-#   v26: 0x0000000000000000f0efeeede4e3e2e1 (..., -5.94046e+29, -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000f4f3f2f1e8e7e6e5 (..., -1.54621e+32, -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f7f6f5ecebeae9 (..., -4.02346e+34, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xf0efeeede4e3e2e1 (-5.940e+29, -3.363e+22)
+#            d27:                 0xf4f3f2f1e8e7e6e5 (-1.546e+32, -8.761e+24)
+#            d28:                 0xf8f7f6f5ecebeae9 (-4.023e+34, -2.282e+27)
+#                                          ║       ╙─ 0xecebeae9'e8e7e6e5'e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40441b		ld3 {v27.4h, v28.4h, v29.4h}, [x0]
-#   v27: 0x000000000000000000000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00000000ff00ff01 (0.000, 0.000, nan, nan)
+#            d28:                 0x00000000feff0002 (0.000, 0.000, nan, 1.192e-07)
+#            d29:                 0x1700000000ff0085 (0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                                      ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2443c		ld3 {v28.4h, v29.4h, v30.4h}, [x1], x2
-#   v28: 0x00000000000000000c0b060500fffaf9 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000e0d08070201fcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000100f0a090403fefd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x0c0b060500fffaf9 (0.0002468, 9.185e-05, 1.520e-05, -5.712e+04)
+#            d29:                 0x0e0d08070201fcfb (0.0003693, 0.0001229, 3.058e-05, nan)
+#            d30:                 0x100f0a090403fefd (0.0004954, 0.0001842, 6.121e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0403'0201'00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0a09'0807'0605 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x100f'0e0d'0c0b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf4427		ld3 {v7.4h, v8.4h, v9.4h}, [x1], #24
-#    v7: 0x00000000000000000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000d0c07060100fbfa <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000f0e09080302fdfc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x0b0a0504fffef9f8 (0.0002148, 7.653e-05, nan, -4.890e+04)
+#             d8:                 0x0d0c07060100fbfa (0.0003080, 0.0001072, 1.526e-05, -6.534e+04)
+#             d9:                 0x0f0e09080302fdfc (0.0004306, 0.0001535, 4.590e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfdfc'fbfa'f9f8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0302'0100'fffe <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0908'0706'0504 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0f0e'0d0c'0b0a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c404802		ld3 {v2.4s, v3.4s, v4.4s}, [x0]
-#    v2: 0x272625241b1a1918000000000002ff01 (2.30573e-15, 1.27467e-22, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.04532e-13, 3.34819e-20, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c232221201700000000fffeff (1.58413e-10, 8.78905e-18, 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x272625241b1a1918000000000002ff01 (2.306e-15, 1.275e-22, 0.000, 2.751e-40)
+#             v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.045e-13, 3.348e-20, 0.000, -1.701e+38)
+#             v4: 0x2f2e2d2c232221201700000000fffeff (1.584e-10, 8.789e-18, 4.136e-25, 2.351e-38)
+#                          ║       ║       ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120'1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c'2b2a2928'27262524 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc24838		ld3 {v24.4s, v25.4s, v26.4s}, [x1], x2
-#   v24: 0x373635342b2a29281f1e1d1c13121110 (1.08604e-05, 6.04532e-13, 3.34819e-20, 1.84362e-27) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161514 (0.00284155, 1.58413e-10, 8.78905e-18, 4.84942e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3f3e3d3c33323130272625241b1a1918 (0.743122, 4.14886e-08, 2.30573e-15, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0x373635342b2a29281f1e1d1c13121110 (1.086e-05, 6.045e-13, 3.348e-20, 1.844e-27)
+#            v25: 0x3b3a39382f2e2d2c2322212017161514 (0.002842, 1.584e-10, 8.789e-18, 4.849e-25)
+#            v26: 0x3f3e3d3c33323130272625241b1a1918 (0.7431, 4.149e-08, 2.306e-15, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918'17161514'13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x33323130'2f2e2d2c'2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf482b		ld3 {v11.4s, v12.4s, v13.4s}, [x1], #48
-#   v11: 0x363534332a2928271e1d1c1b1211100f (2.70015e-06, 1.50241e-13, 8.31732e-21, 4.57737e-28) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x3a3938372e2d2c2b2221201f16151413 (0.000706557, 3.93749e-11, 2.18366e-18, 1.20425e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x3e3d3c3b3231302f262524231a191817 (0.184800, 1.03137e-08, 5.72948e-16, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v11: 0x363534332a2928271e1d1c1b1211100f (2.700e-06, 1.502e-13, 8.317e-21, 4.577e-28)
+#            v12: 0x3a3938372e2d2c2b2221201f16151413 (0.0007066, 3.937e-11, 2.184e-18, 1.204e-25)
+#            v13: 0x3e3d3c3b3231302f262524231a191817 (0.1848, 1.031e-08, 5.729e-16, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817'16151413'1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x26252423'2221201f'1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f'2e2d2c2b'2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3e3d3c3b'3a393837'36353433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40401d		ld3 {v29.8b, v30.8b, v31.8b}, [x0]
-#   v29: 0x000000000000000000000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x000000000000000000000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000001700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x00000000fe000001
+#            d30:                 0x00000000ffff85ff
+#            d31:                 0x1700000000ff0002
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc24021		ld3 {v1.8b, v2.8b, v3.8b}, [x1], x2
-#    v1: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000005653504d4a474441 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x54514e4b4845423f
+#             d2:                 0x55524f4c49464340
+#             d3:                 0x5653504d4a474441
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x41'40'3f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x44'43'42 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x47'46'45 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x4a'49'48 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4d'4c'4b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x50'4f'4e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x53'52'51 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x56'55'54 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf402c		ld3 {v12.8b, v13.8b, v14.8b}, [x1], #24
-#   v12: 0x000000000000000053504d4a4744413e <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x53504d4a4744413e
+#            d13:                 0x54514e4b4845423f
+#            d14:                 0x55524f4c49464340
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40'3f'3e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x43'42'41 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x46'45'44 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x49'48'47 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4c'4b'4a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x4f'4e'4d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x52'51'50 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x55'54'53 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c404416		ld3 {v22.8h, v23.8h, v24.8h}, [x0]
-#   v22: 0x2b2a25241f1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272621201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x2b2a25241f1e191800000000ff00ff01 (0.05597, 0.02008, 0.006950, 0.002487, 0.000, 0.000, nan, nan)
+#            v23: 0x2d2c272621201b1a00000000feff0002 (0.08081, 0.02792, 0.01001, 0.003468, 0.000, 0.000, nan, 1.192e-07)
+#            v24: 0x2f2e292823221d1c1700000000ff0085 (0.1122, 0.04028, 0.01393, 0.004990, 0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2322'2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2928'2726'2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2442d		ld3 {v13.8h, v14.8h, v15.8h}, [x1], x2
-#   v13: 0x81807b7a75746f6e696863625d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a65645f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c676661605b5a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e696863625d5c5756 (-2.289e-05, 6.125e+04, 2.234e+04, 7608., 2768., 945.0, 343.0, 117.4)
+#            v14: 0x83827d7c777671706b6a65645f5e5958 (-5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5, 171.0)
+#            v15: 0x85847f7e797873726d6c676661605b5a (-8.416e-05, nan, 4.480e+04, 1.525e+04, 5552., 1894., 688.0, 235.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5b5a'5958'5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6160'5f5e'5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6766'6564'6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6d6c'6b6a'6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7372'7170'6f6e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7978'7776'7574 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8584'8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf443c		ld3 {v28.8h, v29.8h, v30.8h}, [x1], #48
-#   v28: 0x807f7a7974736e6d686762615c5b5655 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x82817c7b7675706f6a6964635e5d5857 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84837e7d787772716c6b6665605f5a59 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x807f7a7974736e6d686762615c5b5655 (-7.570e-06, 5.302e+04, 1.822e+04, 6580., 2254., 816.5, 278.8, 101.3)
+#            v29: 0x82817c7b7675706f6a6964635e5d5857 (-3.821e-05, nan, 2.645e+04, 9080., 3282., 1123., 407.2, 138.9)
+#            v30: 0x84837e7d787772716c6b6665605f5a59 (-6.884e-05, nan, 3.658e+04, 1.319e+04, 4524., 1637., 559.5, 203.1)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5a59'5857'5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f'5e5d'5c5b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6665'6463'6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6c6b'6a69'6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7271'706f'6e6d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7877'7675'7473 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7e7d'7c7b'7a79 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8483'8281'807f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d402c15		ld3 {v21.b, v22.b, v23.b}[11], [x0]
-#   v21: 0x0000000001000000f5f4f3f2e9e8e7e6 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2b2a2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272602201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x0000000001000000f5f4f3f2e9e8e7e6
+#            v22: 0x2b2a2524ff1e191800000000ff00ff01
+#            v23: 0x2d2c272602201b1a00000000feff0002
+#                            ╙─────────────────────── 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc22425		ld3 {v5.b, v6.b, v7.b}[9], [x1], x2
-#    v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x82818281828186818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000087000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f
+#             v6: 0x82818281828186818281828182818281
+#             v7: 0x00000000000087000b0a0504fffef9f8
+#                                ╙─────────────────── 0x87'86'85 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddf2037		ld3 {v23.b, v24.b, v25.b}[0], [x1], #3
-#   v23: 0x2d2c272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161586 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0x2d2c272602201b1a00000000feff0084
+#            v24: 0x2f2e292823221d1c1700000000ff0085
+#            v25: 0x3b3a39382f2e2d2c2322212017161586
+#                                                  ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40a410		ld3 {v16.d, v17.d, v18.d}[0], [x0]
-#   v16: 0x6e6d6c6b6a696867ff0000850002ff01 (d16: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000474600000000000000fffeff (d17: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd2d1d0cfcecdcccb1700000000000000 (d18: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6e6d6c6b6a696867ff0000850002ff01 (..., -5.487e+303)
+#            v17: 0x00000000474600000000000000fffeff (..., 8.289e-317)
+#            v18: 0xd2d1d0cfcecdcccb1700000000000000 (..., 6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2a43e		ld3 {v30.d, v31.d, v0.d}[0], [x1], x2
-#   v30: 0x84837e7d787772718e8d8c8b8a898887 (d30: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000969594939291908f (d31: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (d0: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84837e7d787772718e8d8c8b8a898887 (..., -1.418e-238)
+#            v31: 0x0000000000000000969594939291908f (..., -7.048e-200)
+#             v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (..., -3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897'969594939291908f'8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfa43c		ld3 {v28.d, v29.d, v30.d}[1], [x1], #24
-#   v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.09028e-243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x9594939291908f8e6a6964635e5d5857 (-1.02545e-204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.85140e-166, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.090e-243, ...)
+#            v29: 0x9594939291908f8e6a6964635e5d5857 (-1.025e-204, ...)
+#            v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.851e-166, ...)
+#                                  ╙───────────────── 0x9d9c9b9a99989796'9594939291908f8e'8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40700d		ld3 {v13.h, v14.h, v15.h}[2], [x0]
-#   v13: 0x81807b7a75746f6e6968ff015d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c008561605b5a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e6968ff015d5c5756 (..., nan, ...)
+#            v14: 0x83827d7c777671706b6a00025f5e5958 (..., 1.192e-07, ...)
+#            v15: 0x85847f7e797873726d6c008561605b5a (..., 7.927e-06, ...)
+#                                          ╙───────── 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc27836		ld3 {v22.h, v23.h, v24.h}[7], [x1], x2
-#   v22: 0x9f9e2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xa1a0272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xa3a2292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x9f9e2524ff1e191800000000ff00ff01 (-0.007439, ...)
+#            v23: 0xa1a0272602201b1a00000000feff0084 (-0.01099, ...)
+#            v24: 0xa3a2292823221d1c1700000000ff0085 (-0.01491, ...)
+#                      ╙───────────────────────────── 0xa3a2'a1a0'9f9e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddf782e		ld3 {v14.h, v15.h, v16.h}[3], [x1], #6
-#   v14: 0x83827d7c777671709e9d00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e79787372a09f008561605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a696867a2a100850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0x83827d7c777671709e9d00025f5e5958 (..., -0.006458, ...)
+#            v15: 0x85847f7e79787372a09f008561605b5a (..., -0.009026, ...)
+#            v16: 0x6e6d6c6b6a696867a2a100850002ff01 (..., -0.01295, ...)
+#                                      ╙───────────── 0xa2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40b016		ld3 {v22.s, v23.s, v24.s}[3], [x0]
-#   v22: 0x0002ff01ff1e191800000000ff00ff01 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xff00008502201b1a00000000feff0084 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00fffeff23221d1c1700000000ff0085 (2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x0002ff01ff1e191800000000ff00ff01 (2.751e-40, ...)
+#            v23: 0xff00008502201b1a00000000feff0084 (-1.701e+38, ...)
+#            v24: 0x00fffeff23221d1c1700000000ff0085 (2.351e-38, ...)
+#                          ╙───────────────────────── 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2a03e		ld3 {v30.s, v31.s, v0.s}[2], [x1], x2
-#   v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.14938e-15, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000aaa9a8a7969594939291908f (..., -3.01375e-13, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.89780e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.149e-15, ...)
+#            v31: 0x00000000aaa9a8a7969594939291908f (..., -3.014e-13, ...)
+#             v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.898e-11, ...)
+#                                  ╙───────────────── 0xaeadacab'aaa9a8a7'a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfb02c		ld3 {v12.s, v13.s, v14.s}[1], [x1], #12
-#   v12: 0x0000000000000000a5a4a3a24744413e (..., -2.85603e-16, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.48978e-14, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.96304e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000a5a4a3a24744413e (..., -2.856e-16, ...)
+#            v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.490e-14, ...)
+#            v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.963e-11, ...)
+#                                          ╙───────── 0xadacabaa'a9a8a7a6'a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40e018		ld3r {v24.16b, v25.16b, v26.16b}, [x0]
-#   v24: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x01010101010101010101010101010101
+#            v25: 0xffffffffffffffffffffffffffffffff
+#            v26: 0x02020202020202020202020202020202
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2e038		ld3r {v24.16b, v25.16b, v26.16b}, [x1], x2
-#   v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#            v25: 0xafafafafafafafafafafafafafafafaf
+#            v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfe023		ld3r {v3.16b, v4.16b, v5.16b}, [x1], #3
-#    v3: 0xadadadadadadadadadadadadadadadad <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v3: 0xadadadadadadadadadadadadadadadad
+#             v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#             v5: 0xafafafafafafafafafafafafafafafaf
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40ec04		ld3r {v4.1d, v5.1d, v6.1d}, [x0]
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2ec27		ld3r {v7.1d, v8.1d, v9.1d}, [x1], x2
-#    v7: 0x0000000000000000b7b6b5b4b3b2b1b0 (d7: -2.60696e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000bfbebdbcbbbab9b8 (d8: -0.120083) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000c7c6c5c4c3c2c1c0 (d9: -6.05398e+37) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xb7b6b5b4b3b2b1b0 (-2.607e-40)
+#             d8:                 0xbfbebdbcbbbab9b8 (-0.1201)
+#             d9:                 0xc7c6c5c4c3c2c1c0 (-6.054e+37)
+#                                                  ╙─ 0xc7c6c5c4c3c2c1c0'bfbebdbcbbbab9b8'b7b6b5b4b3b2b1b0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfec31		ld3r {v17.1d, v18.1d, v19.1d}, [x1], #24
-#   v17: 0x0000000000000000b6b5b4b3b2b1b0af (d17: -3.80205e-45) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000bebdbcbbbab9b8b7 (d18: -1.77248e-06) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000c6c5c4c3c2c1c0bf (d19: -8.83040e+32) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xb6b5b4b3b2b1b0af (-3.802e-45)
+#            d18:                 0xbebdbcbbbab9b8b7 (-1.772e-06)
+#            d19:                 0xc6c5c4c3c2c1c0bf (-8.830e+32)
+#                                                  ╙─ 0xc6c5c4c3c2c1c0bf'bebdbcbbbab9b8b7'b6b5b4b3b2b1b0af <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40ec10		ld3r {v16.2d, v17.2d, v18.2d}, [x0]
-#   v16: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v17: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v18: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#                                  ╙───────────────╨─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2ec34		ld3r {v20.2d, v21.2d, v22.2d}, [x1], x2
-#   v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.11344e+71, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.05087e+110, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.54613e+148, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.113e+71, -4.113e+71)
+#            v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.051e+110, -2.051e+110)
+#            v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.546e+148, -9.546e+148)
+#                                  ╙───────────────╨─ 0xdedddcdbdad9d8d7'd6d5d4d3d2d1d0cf'cecdcccbcac9c8c7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfec2e		ld3r {v14.2d, v15.2d, v16.2d}, [x1], #24
-#   v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.06516e+66, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.98548e+105, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.40766e+144, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.065e+66, -6.065e+66)
+#            v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.985e+105, -2.985e+105)
+#            v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.408e+144, -1.408e+144)
+#                                  ╙───────────────╨─ 0xdddcdbdad9d8d7d6'd5d4d3d2d1d0cfce'cdcccbcac9c8c7c6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40e80a		ld3r {v10.2s, v11.2s, v12.2s}, [x0]
-#   v10: 0x00000000000000000002ff010002ff01 (s10: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000ff000085ff000085 (s11: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000fffeff00fffeff (s12: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d11:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#            d12:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#                                          ╙───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2e820		ld3r {v0.2s, v1.2s, v2.2s}, [x1], x2
-#    v0: 0x0000000000000000e1e0dfdee1e0dfde (s0: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e5e4e3e2e5e4e3e2 (s1: -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e9e8e7e6e9e8e7e6 (s2: -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#             d1:                 0xe5e4e3e2e5e4e3e2 (-1.351e+23, -1.351e+23)
+#             d2:                 0xe9e8e7e6e9e8e7e6 (-3.520e+25, -3.520e+25)
+#                                          ╙───────╨─ 0xe9e8e7e6'e5e4e3e2'e1e0dfde <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfe837		ld3r {v23.2s, v24.2s, v25.2s}, [x1], #12
-#   v23: 0x0000000000000000e0dfdedde0dfdedd (s23: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e4e3e2e1e4e3e2e1 (s24: -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e6e5e8e7e6e5 (s25: -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#            d24:                 0xe4e3e2e1e4e3e2e1 (-3.363e+22, -3.363e+22)
+#            d25:                 0xe8e7e6e5e8e7e6e5 (-8.761e+24, -8.761e+24)
+#                                          ╙───────╨─ 0xe8e7e6e5'e4e3e2e1'e0dfdedd <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40e416		ld3r {v22.4h, v23.4h, v24.4h}, [x0]
-#   v22: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d23:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d24:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                                      ╙───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2e426		ld3r {v6.4h, v7.4h, v8.4h}, [x1], x2
-#    v6: 0x0000000000000000eae9eae9eae9eae9 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000ecebecebecebeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000eeedeeedeeedeeed <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d6:                 0xeae9eae9eae9eae9 (-3538., -3538., -3538., -3538.)
+#             d7:                 0xecebecebecebeceb (-5036., -5036., -5036., -5036.)
+#             d8:                 0xeeedeeedeeedeeed (-7092., -7092., -7092., -7092.)
+#                                      ╙───╨───╨───╨─ 0xeeed'eceb'eae9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfe427		ld3r {v7.4h, v8.4h, v9.4h}, [x1], #6
-#    v7: 0x0000000000000000e9e8e9e8e9e8e9e8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000ebeaebeaebeaebea <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000edecedecedecedec <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xe9e8e9e8e9e8e9e8 (-3024., -3024., -3024., -3024.)
+#             d8:                 0xebeaebeaebeaebea (-4052., -4052., -4052., -4052.)
+#             d9:                 0xedecedecedecedec (-6064., -6064., -6064., -6064.)
+#                                      ╙───╨───╨───╨─ 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40e81a		ld3r {v26.4s, v27.4s, v28.4s}, [x0]
-#   v26: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v27: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v28: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#                          ╙───────╨───────╨───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2e820		ld3r {v0.4s, v1.4s, v2.4s}, [x1], x2
-#    v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (..., -2.38613e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (..., -6.21029e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (..., -1.61590e+35, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (-2.386e+30, -2.386e+30, -2.386e+30, -2.386e+30)
+#             v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (-6.210e+32, -6.210e+32, -6.210e+32, -6.210e+32)
+#             v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (-1.616e+35, -1.616e+35, -1.616e+35, -1.616e+35)
+#                          ╙───────╨───────╨───────╨─ 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfe83e		ld3r {v30.4s, v31.4s, v0.4s}, [x1], #12
-#   v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (..., -5.94046e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (..., -1.54621e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (..., -4.02346e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (-5.940e+29, -5.940e+29, -5.940e+29, -5.940e+29)
+#            v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (-1.546e+32, -1.546e+32, -1.546e+32, -1.546e+32)
+#             v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (-4.023e+34, -4.023e+34, -4.023e+34, -4.023e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40e002		ld3r {v2.8b, v3.8b, v4.8b}, [x0]
-#    v2: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x0101010101010101
+#             d3:                 0xffffffffffffffff
+#             d4:                 0x0202020202020202
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2e02a		ld3r {v10.8b, v11.8b, v12.8b}, [x1], x2
-#   v10: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000fbfbfbfbfbfbfbfb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xf9f9f9f9f9f9f9f9
+#            d11:                 0xfafafafafafafafa
+#            d12:                 0xfbfbfbfbfbfbfbfb
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfb'fa'f9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfe03c		ld3r {v28.8b, v29.8b, v30.8b}, [x1], #3
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40e406		ld3r {v6.8h, v7.8h, v8.8h}, [x0]
-#    v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v7: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#             v8: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2e43d		ld3r {v29.8h, v30.8h, v31.8h}, [x1], x2
-#   v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfe427		ld3r {v7.8h, v8.8h, v9.8h}, [x1], #6
-#    v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#             v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v9: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xfffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c400003		ld4 {v3.16b, v4.16b, v5.16b, v6.16b}, [x0]
-#    v3: 0x3c3834302c2824201c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3d3935312d2925211d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3a36322e2a26221e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3f3b37332f2b27231f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x3c3834302c2824201c18000000ff8501
+#             v4: 0x3d3935312d2925211d19000000fe00ff
+#             v5: 0x3e3a36322e2a26221e1a000000ff0002
+#             v6: 0x3f3b37332f2b27231f1b17000000ff00
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc20022		ld4 {v2.16b, v3.16b, v4.16b, v5.16b}, [x1], x2
-#    v2: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3f3b37332f2b27231f1b17130f0b0703 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x3c3834302c2824201c1814100c080400
+#             v3: 0x3d3935312d2925211d1915110d090501
+#             v4: 0x3e3a36322e2a26221e1a16120e0a0602
+#             v5: 0x3f3b37332f2b27231f1b17130f0b0703
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x03'02'01'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x07'06'05'04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0b'0a'09'08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0f'0e'0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x13'12'11'10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'16'15'14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf0025		ld4 {v5.16b, v6.16b, v7.16b, v8.16b}, [x1], #64
-#    v5: 0x3b37332f2b27231f1b17130f0b0703ff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3b37332f2b27231f1b17130f0b0703ff
+#             v6: 0x3c3834302c2824201c1814100c080400
+#             v7: 0x3d3935312d2925211d1915110d090501
+#             v8: 0x3e3a36322e2a26221e1a16120e0a0602
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1e'1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22'21'20'1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x26'25'24'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a'29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2e'2d'2c'2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x32'31'30'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x36'35'34'33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3a'39'38'37 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3e'3d'3c'3b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c400c12		ld4 {v18.2d, v19.2d, v20.2d, v21.2d}, [x0]
-#   v18: 0x2726252423222120ff0000850002ff01 (4.28794e-120, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.98829e-81, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x37363534333231301700000000000000 (9.95833e-43, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.000461414, 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2726252423222120ff0000850002ff01 (4.288e-120, -5.487e+303)
+#            v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.988e-81, 8.289e-317)
+#            v20: 0x37363534333231301700000000000000 (9.958e-43, 6.689e-198)
+#            v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.0004614, 8.568e-159)
+#                                  ║               ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938'3736353433323130'2f2e2d2c2b2a2928'2726252423222120 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc20c24		ld4 {v4.2d, v5.2d, v6.2d, v7.2d}, [x1], x2
-#    v4: 0x666564636261605f464544434241403f (1.81795e+185, 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.50866e+223, 1.57975e+69) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x767574737271706f565554535251504f (4.22243e+262, 7.82703e+107) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.97467e+301, 3.66628e+146) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v4: 0x666564636261605f464544434241403f (1.818e+185, 3.370e+30)
+#             v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.509e+223, 1.580e+69)
+#             v6: 0x767574737271706f565554535251504f (4.222e+262, 7.827e+107)
+#             v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.975e+301, 3.666e+146)
+#                                  ║               ╙─ 0x5e5d5c5b5a595857'565554535251504f'4e4d4c4b4a494847'464544434241403f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7e7d7c7b7a797877'767574737271706f'6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf0c3d		ld4 {v29.2d, v30.2d, v31.2d, v0.2d}, [x1], #64
-#   v29: 0x6564636261605f5e4544434241403f3e (2.64379e+180, 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.25402e+219, 2.32790e+64) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e5554535251504f4e (6.14144e+257, 1.13810e+103) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.91053e+296, 5.40301e+141) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x6564636261605f5e4544434241403f3e (2.644e+180, 4.899e+25)
+#            v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.254e+219, 2.328e+64)
+#            v31: 0x7574737271706f6e5554535251504f4e (6.141e+257, 1.138e+103)
+#             v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.911e+296, 5.403e+141)
+#                                  ║               ╙─ 0x5d5c5b5a59585756'5554535251504f4e'4d4c4b4a49484746'4544434241403f3e <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7d7c7b7a79787776'7574737271706f6e'6d6c6b6a69686766'6564636261605f5e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40081b		ld4 {v27.2s, v28.2s, v29.2s, v30.2s}, [x0]
-#   v27: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000017000000ff000085 (..., 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001b1a191800fffeff (..., 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001f1e1d1c00000000 (..., 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x000000000002ff01 (0.000, 2.751e-40)
+#            d28:                 0x17000000ff000085 (4.136e-25, -1.701e+38)
+#            d29:                 0x1b1a191800fffeff (1.275e-22, 2.351e-38)
+#            d30:                 0x1f1e1d1c00000000 (3.348e-20, 0.000)
+#                                          ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc20838		ld4 {v24.2s, v25.2s, v26.2s, v27.2s}, [x1], x2
-#   v24: 0x000000000000000091908f8e81807f7e (..., -2.28077e-28, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000009594939285848382 (..., -6.00095e-26, -1.24615e-35) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000009998979689888786 (..., -1.57777e-23, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000009d9c9b9a8d8c8b8a (..., -4.14537e-21, -8.66176e-31) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x91908f8e81807f7e (-2.281e-28, -4.720e-38)
+#            d25:                 0x9594939285848382 (-6.001e-26, -1.246e-35)
+#            d26:                 0x9998979689888786 (-1.578e-23, -3.287e-33)
+#            d27:                 0x9d9c9b9a8d8c8b8a (-4.145e-21, -8.662e-31)
+#                                          ║       ╙─ 0x8d8c8b8a'89888786'85848382'81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9d9c9b9a'99989796'95949392'91908f8e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf0824		ld4 {v4.2s, v5.2s, v6.2s, v7.2s}, [x1], #32
-#    v4: 0x0000000000000000908f8e8d807f7e7d (..., -5.66232e-29, -1.17085e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000009493929184838281 (..., -1.49010e-26, -3.09178e-36) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000009897969588878685 (..., -3.91846e-24, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009c9b9a998c8b8a89 (..., -1.02970e-21, -2.14997e-31) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x908f8e8d807f7e7d (-5.662e-29, -1.171e-38)
+#             d5:                 0x9493929184838281 (-1.490e-26, -3.092e-36)
+#             d6:                 0x9897969588878685 (-3.918e-24, -8.157e-34)
+#             d7:                 0x9c9b9a998c8b8a89 (-1.030e-21, -2.150e-31)
+#                                          ║       ╙─ 0x8c8b8a89'88878685'84838281'807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99'98979695'94939291'908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c400410		ld4 {v16.4h, v17.4h, v18.4h, v19.4h}, [x0]
-#   v16: 0x000000000000000019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
+#            d16:                 0x19180000feffff01 (0.002487, 0.000, nan, nan)
+#            d17:                 0x1b1a000000ff0002 (0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            d18:                 0x1d1c000000000085 (0.004990, 0.000, 0.000, 7.927e-06)
+#            d19:                 0x1f1e17000000ff00 (0.006950, 0.001709, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc20437		ld4 {v23.4h, v24.4h, v25.4h, v26.4h}, [x1], x2
-#   v23: 0x0000000000000000b6b5aeada6a59e9d <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000b8b7b0afa8a7a09f <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000bab9b2b1aaa9a2a1 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000bcbbb4b3acaba4a3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xb6b5aeada6a59e9d (-0.4192, -0.1043, -0.02596, -0.006458)
+#            d24:                 0xb8b7b0afa8a7a09f (-0.5894, -0.1464, -0.03635, -0.009026)
+#            d25:                 0xbab9b2b1aaa9a2a1 (-0.8403, -0.2091, -0.05203, -0.01295)
+#            d26:                 0xbcbbb4b3acaba4a3 (-1.183, -0.2937, -0.07294, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3'a2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xacab'aaa9'a8a7'a6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb4b3'b2b1'b0af'aead <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbcbb'bab9'b8b7'b6b5 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf0422		ld4 {v2.4h, v3.4h, v4.4h, v5.4h}, [x1], #32
-#    v2: 0x0000000000000000b5b4adaca5a49d9c <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b7b6afaea7a69f9e <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000b9b8b1b0a9a8a1a0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000bbbab3b2abaaa3a2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xb5b4adaca5a49d9c (-0.3564, -0.08862, -0.02203, -0.005478)
+#             d3:                 0xb7b6afaea7a69f9e (-0.4819, -0.1200, -0.02988, -0.007439)
+#             d4:                 0xb9b8b1b0a9a8a1a0 (-0.7148, -0.1777, -0.04419, -0.01099)
+#             d5:                 0xbbbab3b2abaaa3a2 (-0.9658, -0.2405, -0.05988, -0.01491)
+#                                      ║   ║   ║   ╙─ 0xa3a2'a1a0'9f9e'9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xabaa'a9a8'a7a6'a5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb3b2'b1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba'b9b8'b7b6'b5b4 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c400807		ld4 {v7.4s, v8.4s, v9.4s, v10.4s}, [x0]
-#    v7: 0x3332313023222120000000000002ff01 (4.14886e-08, 8.78905e-18, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x373635342726252417000000ff000085 (1.08604e-05, 2.30573e-15, 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a39382b2a29281b1a191800fffeff (0.00284155, 6.04532e-13, 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.743122, 1.58413e-10, 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x3332313023222120000000000002ff01 (4.149e-08, 8.789e-18, 0.000, 2.751e-40)
+#             v8: 0x373635342726252417000000ff000085 (1.086e-05, 2.306e-15, 4.136e-25, -1.701e+38)
+#             v9: 0x3b3a39382b2a29281b1a191800fffeff (0.002842, 6.045e-13, 1.275e-22, 2.351e-38)
+#            v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.7431, 1.584e-10, 3.348e-20, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2f2e2d2c'2b2a2928'27262524'23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534'33323130 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2083c		ld4 {v28.4s, v29.4s, v30.4s, v31.4s}, [x1], x2
-#   v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.47890e+29, -3.21185e+19, -6.93919e+09, -1.49017) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.84962e+31, -8.37048e+21, -1.81093e+12, -389.514) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.00179e+34, -2.18077e+24, -4.72428e+14, -101772.) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.60629e+36, -5.67986e+26, -1.23202e+17, -2.65799e+07) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#            v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.850e+31, -8.370e+21, -1.811e+12, -389.5)
+#            v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.002e+34, -2.181e+24, -4.724e+14, -1.018e+05)
+#            v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.606e+36, -5.680e+26, -1.232e+17, -2.658e+07)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf083d		ld4 {v29.4s, v30.4s, v31.4s, v0.4s}, [x1], #64
-#   v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.68172e+28, -7.99345e+18, -1.72638e+09, -0.370581) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.58428e+30, -2.08336e+21, -4.50576e+11, -96.8765) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.49430e+33, -5.42822e+23, -1.17555e+14, -25314.4) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.48966e+35, -1.41390e+26, -3.06592e+16, -6.61207e+06) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.682e+28, -7.993e+18, -1.726e+09, -0.3706)
+#            v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.584e+30, -2.083e+21, -4.506e+11, -96.88)
+#            v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.494e+33, -5.428e+23, -1.176e+14, -2.531e+04)
+#             v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.490e+35, -1.414e+26, -3.066e+16, -6.612e+06)
+#                          ║       ║       ║       ╙─ 0xcac9c8c7'c6c5c4c3'c2c1c0bf'bebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdad9d8d7'd6d5d4d3'd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xeae9e8e7'e6e5e4e3'e2e1e0df'dedddcdb <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfaf9f8f7'f6f5f4f3'f2f1f0ef'eeedeceb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40000f		ld4 {v15.8b, v16.8b, v17.8b, v18.8b}, [x0]
-#   v15: 0x00000000000000001c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000001d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
+#            d15:                 0x1c18000000ff8501
+#            d16:                 0x1d19000000fe00ff
+#            d17:                 0x1e1a000000ff0002
+#            d18:                 0x1f1b17000000ff00
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2003b		ld4 {v27.8b, v28.8b, v29.8b, v30.8b}, [x1], x2
-#   v27: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a16120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x17130f0b0703fffb
+#            d28:                 0x1814100c080400fc
+#            d29:                 0x1915110d090501fd
+#            d30:                 0x1a16120e0a0602fe
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfe'fd'fc'fb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf0025		ld4 {v5.8b, v6.8b, v7.8b, v8.8b}, [x1], #32
-#    v5: 0x000000000000000016120e0a0602fefa <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x16120e0a0602fefa
+#             d6:                 0x17130f0b0703fffb
+#             d7:                 0x1814100c080400fc
+#             d8:                 0x1915110d090501fd
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfd'fc'fb'fa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x01'00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x05'04'03'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x09'08'07'06 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0d'0c'0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x11'10'0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14'13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x19'18'17'16 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c400419		ld4 {v25.8h, v26.8h, v27.8h, v28.8h}, [x0]
-#   v25: 0x393831302928212019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a33322b2a23221b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35342d2c25241d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831302928212019180000feffff01 (0.6523, 0.1621, 0.04028, 0.01001, 0.002487, 0.000, nan, nan)
+#            v26: 0x3b3a33322b2a23221b1a000000ff0002 (0.9033, 0.2249, 0.05597, 0.01393, 0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            v27: 0x3d3c35342d2c25241d1c000000000085 (1.309, 0.3252, 0.08081, 0.02008, 0.004990, 0.000, 0.000, 7.927e-06)
+#            v28: 0x3f3e37362f2e27261f1e17000000ff00 (1.811, 0.4507, 0.1122, 0.02792, 0.006950, 0.001709, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726'2524'2322'2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2f2e'2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3736'3534'3332'3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e'3d3c'3b3a'3938 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc20422		ld4 {v2.8h, v3.8h, v4.8h, v5.8h}, [x1], x2
-#    v2: 0x53524b4a43423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x55544d4c45443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x57564f4e47463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x59585150494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x53524b4a43423b3a33322b2a23221b1a (58.56, 14.58, 3.629, 0.9033, 0.2249, 0.05597, 0.01393, 0.003468)
+#             v3: 0x55544d4c45443d3c35342d2c25241d1c (85.25, 21.19, 5.266, 1.309, 0.3252, 0.08081, 0.02008, 0.004990)
+#             v4: 0x57564f4e47463f3e37362f2e27261f1e (117.4, 29.22, 7.273, 1.811, 0.4507, 0.1122, 0.02792, 0.006950)
+#             v5: 0x59585150494841403938313029282120 (171.0, 42.50, 10.56, 2.625, 0.6523, 0.1621, 0.04028, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120'1f1e'1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2928'2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3130'2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3938'3736'3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4140'3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948'4746'4544'4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5150'4f4e'4d4c'4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5958'5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf0434		ld4 {v20.8h, v21.8h, v22.8h, v23.8h}, [x1], #64
-#   v20: 0x52514a4942413a3932312a2922211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2b24231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d26251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f2827201f <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2922211a19 (50.53, 12.57, 3.127, 0.7778, 0.1935, 0.04813, 0.01197, 0.002977)
+#            v21: 0x54534c4b44433c3b34332c2b24231c1b (69.19, 17.17, 4.262, 1.058, 0.2625, 0.06512, 0.01616, 0.004009)
+#            v22: 0x56554e4d46453e3d36352e2d26251e1d (101.3, 25.20, 6.270, 1.560, 0.3879, 0.09650, 0.02400, 0.005970)
+#            v23: 0x5857504f4847403f3837302f2827201f (138.9, 34.47, 8.555, 2.123, 0.5269, 0.1307, 0.03244, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f'1e1d'1c1b'1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2827'2625'2423'2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x302f'2e2d'2c2b'2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3837'3635'3433'3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x403f'3e3d'3c3b'3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847'4645'4443'4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x504f'4e4d'4c4b'4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5857'5655'5453'5251 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d602c14		ld4 {v20.b, v21.b, v22.b, v23.b}[3], [x0]
-#   v20: 0x52514a4942413a3932312a2901211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2bff231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d02251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f0027201f <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2901211a19
+#            v21: 0x54534c4b44433c3b34332c2bff231c1b
+#            v22: 0x56554e4d46453e3d36352e2d02251e1d
+#            v23: 0x5857504f4847403f3837302f0027201f
+#                                            ╙─────── 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de22c2c		ld4 {v12.b, v13.b, v14.b, v15.b}[3], [x1], x2
-#   v12: 0x0000000000000000fbfbfbfb59fbfbfb <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65a5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000001c1800005cff8501 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000fbfbfbfb59fbfbfb
+#            v13: 0x81807b7a75746f6ea9a8a7a65a5c5756
+#            v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6
+#            v15: 0x00000000000000001c1800005cff8501
+#                                            ╙─────── 0x5c'5b'5a'59 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dff383b		ld4 {v27.b, v28.b, v29.b, v30.b}[6], [x1], #4
-#   v27: 0x3d3c35342d2c25241d58000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f5917000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000195a110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a5b120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x3d3c35342d2c25241d58000000000085
+#            v28: 0x3f3e37362f2e27261f5917000000ff00
+#            v29: 0x0000000000000000195a110d090501fd
+#            v30: 0x00000000000000001a5b120e0a0602fe
+#                                      ╙───────────── 0x5b'5a'59'58 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60a41c		ld4 {v28.d, v29.d, v30.d, v31.d}[1], [x0]
-#   v28: 0xff0000850002ff011f5917000000ff00 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000fffeff195a110d090501fd (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17000000000000001a5b120e0a0602fe (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff0000850002ff011f5917000000ff00 (-5.487e+303, ...)
+#            v29: 0x0000000000fffeff195a110d090501fd (8.289e-317, ...)
+#            v30: 0x17000000000000001a5b120e0a0602fe (6.689e-198, ...)
+#            v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.568e-159, ...)
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2a42f		ld4 {v15.d, v16.d, v17.d, v18.d}[1], [x1], x2
-#   v15: 0x636261605f5e5d5c1c1800005cff8501 (5.54935e+170, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6b6a6968676665641d19000000fe00ff (2.71346e+209, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7b7a7978777675741f1b17000000ff00 (6.29888e+286, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x636261605f5e5d5c1c1800005cff8501 (5.549e+170, ...)
+#            v16: 0x6b6a6968676665641d19000000fe00ff (2.713e+209, ...)
+#            v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.290e+248, ...)
+#            v18: 0x7b7a7978777675741f1b17000000ff00 (6.299e+286, ...)
+#                                  ╙───────────────── 0x7b7a797877767574'737271706f6e6d6c'6b6a696867666564'636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffa430		ld4 {v16.d, v17.d, v18.d, v19.d}[1], [x1], #32
-#   v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.00514e+165, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x6a696867666564631e1a000000ff0002 (3.98304e+204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x7a797877767574731f1e17000000ff00 (9.24687e+281, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.005e+165, ...)
+#            v17: 0x6a696867666564631e1a000000ff0002 (3.983e+204, ...)
+#            v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.861e+243, ...)
+#            v19: 0x7a797877767574731f1e17000000ff00 (9.247e+281, ...)
+#                                  ╙───────────────── 0x7a79787776757473'7271706f6e6d6c6b'6a69686766656463'6261605f5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d607002		ld4 {v2.h, v3.h, v4.h, v5.h}[6], [x0]
-#    v2: 0x5352ff0143423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x5554000245443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x5756008547463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5958ff00494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x5352ff0143423b3a33322b2a23221b1a (..., nan, ...)
+#             v3: 0x5554000245443d3c35342d2c25241d1c (..., 1.192e-07, ...)
+#             v4: 0x5756008547463f3e37362f2e27261f1e (..., 7.927e-06, ...)
+#             v5: 0x5958ff00494841403938313029282120 (..., nan, ...)
+#                          ╙───────────────────────── 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de27825		ld4 {v5.h, v6.h, v7.h, v8.h}[3], [x1], x2
-#    v5: 0x5958ff00494841407c7b313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000007e7d0f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5958ff00494841407c7b313029282120 (..., nan, ...)
+#             v6: 0x00000000000000007e7d0f0b0703fffb (..., nan, ...)
+#             v7: 0x0000000000000000807f100c080400fc (..., -7.570e-06, ...)
+#             v8: 0x00000000000000008281110d090501fd (..., -3.821e-05, ...)
+#                                      ╙───────────── 0x8281'807f'7e7d'7c7b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dff7027		ld4 {v7.h, v8.h, v9.h, v10.h}[6], [x1], #8
-#    v7: 0x00007b7a00000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29281b1a191800fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x00007b7a00000000807f100c080400fc (..., 6.125e+04, ...)
+#             v8: 0x00007d7c000000008281110d090501fd (..., nan, ...)
+#             v9: 0x3b3a7f7e2b2a29281b1a191800fffeff (..., nan, ...)
+#            v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 (..., -2.289e-05, ...)
+#                          ╙───────────────────────── 0x8180'7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60b006		ld4 {v6.s, v7.s, v8.s, v9.s}[1], [x0]
-#    v6: 0x00000000000000000002ff010703fffb (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00007b7a00000000ff000085080400fc (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c0000000000fffeff090501fd (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x00000000000000000002ff010703fffb (..., 2.751e-40, ...)
+#             v7: 0x00007b7a00000000ff000085080400fc (..., -1.701e+38, ...)
+#             v8: 0x00007d7c0000000000fffeff090501fd (..., 2.351e-38, ...)
+#             v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2a039		ld4 {v25.s, v26.s, v27.s, v28.s}[2], [x1], x2
-#   v25: 0x393831308584838219180000feffff01 (..., -1.24615e-35, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.28683e-33, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.66176e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.28077e-28, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831308584838219180000feffff01 (..., -1.246e-35, ...)
+#            v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.287e-33, ...)
+#            v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.662e-31, ...)
+#            v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.281e-28, ...)
+#                                  ╙───────────────── 0x91908f8e'8d8c8b8a'89888786'85848382 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffb028		ld4 {v8.s, v9.s, v10.s, v11.s}[3], [x1], #16
-#    v8: 0x848382810000000000fffeff090501fd (-3.09178e-36, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x888786852b2a29280000000000fffeff (-8.15664e-34, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x908f8e8d00000000fafafafafafafafa (-5.66232e-29, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v8: 0x848382810000000000fffeff090501fd (-3.092e-36, ...)
+#             v9: 0x888786852b2a29280000000000fffeff (-8.157e-34, ...)
+#            v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.150e-31, ...)
+#            v11: 0x908f8e8d00000000fafafafafafafafa (-5.662e-29, ...)
+#                          ╙───────────────────────── 0x908f8e8d'8c8b8a89'88878685'84838281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60e00e		ld4r {v14.16b, v15.16b, v16.16b, v17.16b}, [x0]
-#   v14: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x01010101010101010101010101010101
+#            v15: 0xffffffffffffffffffffffffffffffff
+#            v16: 0x02020202020202020202020202020202
+#            v17: 0x00000000000000000000000000000000
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2e02d		ld4r {v13.16b, v14.16b, v15.16b, v16.16b}, [x1], x2
-#   v13: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x94949494949494949494949494949494 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x91919191919191919191919191919191
+#            v14: 0x92929292929292929292929292929292
+#            v15: 0x93939393939393939393939393939393
+#            v16: 0x94949494949494949494949494949494
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x94'93'92'91 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffe029		ld4r {v9.16b, v10.16b, v11.16b, v12.16b}, [x1], #4
-#    v9: 0x90909090909090909090909090909090 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v9: 0x90909090909090909090909090909090
+#            v10: 0x91919191919191919191919191919191
+#            v11: 0x92929292929292929292929292929292
+#            v12: 0x93939393939393939393939393939393
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x93'92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60ec08		ld4r {v8.1d, v9.1d, v10.1d, v11.1d}, [x0]
-#    v8: 0x0000000000000000ff0000850002ff01 (d8: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000fffeff (d9: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000001700000000000000 (d10: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000001f1e1d1c1b1a1918 (d11: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xff0000850002ff01 (-5.487e+303)
+#             d9:                 0x0000000000fffeff (8.289e-317)
+#            d10:                 0x1700000000000000 (6.689e-198)
+#            d11:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2ec24		ld4r {v4.1d, v5.1d, v6.1d, v7.1d}, [x1], x2
-#    v4: 0x00000000000000009b9a999897969594 (d4: -1.05028e-175) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000a3a2a1a09f9e9d9c (d5: -5.00653e-137) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000abaaa9a8a7a6a5a4 (d6: -2.43801e-98) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000b3b2b1b0afaeadac (d7: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x9b9a999897969594 (-1.050e-175)
+#             d5:                 0xa3a2a1a09f9e9d9c (-5.007e-137)
+#             d6:                 0xabaaa9a8a7a6a5a4 (-2.438e-98)
+#             d7:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac'abaaa9a8a7a6a5a4'a3a2a1a09f9e9d9c'9b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffec3a		ld4r {v26.1d, v27.1d, v28.1d, v29.1d}, [x1], #32
-#   v26: 0x00000000000000009a99989796959493 (d26: -1.54211e-180) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000a2a1a09f9e9d9c9b (d27: -7.22772e-142) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000aaa9a8a7a6a5a4a3 (d28: -3.58004e-103) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000b2b1b0afaeadacab (d29: -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x9a99989796959493 (-1.542e-180)
+#            d27:                 0xa2a1a09f9e9d9c9b (-7.228e-142)
+#            d28:                 0xaaa9a8a7a6a5a4a3 (-3.580e-103)
+#            d29:                 0xb2b1b0afaeadacab (-1.680e-64)
+#                                                  ╙─ 0xb2b1b0afaeadacab'aaa9a8a7a6a5a4a3'a2a1a09f9e9d9c9b'9a99989796959493 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60ec13		ld4r {v19.2d, v20.2d, v21.2d, v22.2d}, [x0]
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v20: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v21: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#            v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.568e-159, 8.568e-159)
+#                                  ╙───────────────╨─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2ec3c		ld4r {v28.2d, v29.2d, v30.2d, v31.2d}, [x1], x2
-#   v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.31108e-26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.90391e+13, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.92941e+52, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.07279e+90, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.311e-26, -8.311e-26)
+#            v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.904e+13, -3.904e+13)
+#            v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.929e+52, -1.929e+52)
+#            v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.073e+90, -9.073e+90)
+#                                  ╙───────────────╨─ 0xd2d1d0cfcecdcccb'cac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffec2f		ld4r {v15.2d, v16.2d, v17.2d, v18.2d}, [x1], #32
-#   v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.21867e-30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.62003e+08, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.82942e+47, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.30639e+86, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.219e-30, -1.219e-30)
+#            v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.620e+08, -5.620e+08)
+#            v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.829e+47, -2.829e+47)
+#            v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.306e+86, -1.306e+86)
+#                                  ╙───────────────╨─ 0xd1d0cfcecdcccbca'c9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60e81f		ld4r {v31.2s, v0.2s, v1.2s, v2.2s}, [x0]
-#   v31: 0x00000000000000000002ff010002ff01 (s31: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000ff000085ff000085 (s0: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x000000000000000000fffeff00fffeff (s1: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000000 (s2: 0.00000) <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#             d0:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#             d1:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#             d2:                 0x0000000000000000 (0.000, 0.000)
+#                                          ╙───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2e83c		ld4r {v28.2s, v29.2s, v30.2s, v31.2s}, [x1], x2
-#   v28: 0x0000000000000000d5d4d3d2d5d4d3d2 (s28: -2.92508e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000d9d8d7d6d9d8d7d6 (s29: -7.62949e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000dddcdbdadddcdbda (s30: -1.98932e+18) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000e1e0dfdee1e0dfde (s31: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xd5d4d3d2d5d4d3d2 (-2.925e+13, -2.925e+13)
+#            d29:                 0xd9d8d7d6d9d8d7d6 (-7.629e+15, -7.629e+15)
+#            d30:                 0xdddcdbdadddcdbda (-1.989e+18, -1.989e+18)
+#            d31:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#                                          ╙───────╨─ 0xe1e0dfde'dddcdbda'd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffe82b		ld4r {v11.2s, v12.2s, v13.2s, v14.2s}, [x1], #16
-#   v11: 0x0000000000000000d4d3d2d1d4d3d2d1 (s11: -7.27820e+12) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000d8d7d6d5d8d7d6d5 (s12: -1.89854e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000dcdbdad9dcdbdad9 (s13: -4.95069e+17) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000e0dfdedde0dfdedd (s14: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xd4d3d2d1d4d3d2d1 (-7.278e+12, -7.278e+12)
+#            d12:                 0xd8d7d6d5d8d7d6d5 (-1.899e+15, -1.899e+15)
+#            d13:                 0xdcdbdad9dcdbdad9 (-4.951e+17, -4.951e+17)
+#            d14:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#                                          ╙───────╨─ 0xe0dfdedd'dcdbdad9'd8d7d6d5'd4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60e413		ld4r {v19.4h, v20.4h, v21.4h, v22.4h}, [x0]
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d20:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d21:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            d22:                 0xff00ff00ff00ff00 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2e436		ld4r {v22.4h, v23.4h, v24.4h, v25.4h}, [x1], x2
-#   v22: 0x0000000000000000e2e1e2e1e2e1e2e1 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e4e3e4e3e4e3e4e3 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e6e5e6e5e6e5e6e5 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e8e7e8e7e8e7 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xe2e1e2e1e2e1e2e1 (-880.5, -880.5, -880.5, -880.5)
+#            d23:                 0xe4e3e4e3e4e3e4e3 (-1251., -1251., -1251., -1251.)
+#            d24:                 0xe6e5e6e5e6e5e6e5 (-1765., -1765., -1765., -1765.)
+#            d25:                 0xe8e7e8e7e8e7e8e7 (-2510., -2510., -2510., -2510.)
+#                                      ╙───╨───╨───╨─ 0xe8e7'e6e5'e4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffe434		ld4r {v20.4h, v21.4h, v22.4h, v23.4h}, [x1], #8
-#   v20: 0x0000000000000000e1e0e1e0e1e0e1e0 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000e3e2e3e2e3e2e3e2 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000e5e4e5e4e5e4e5e4 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e7e6e7e6e7e6e7e6 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xe1e0e1e0e1e0e1e0 (-752.0, -752.0, -752.0, -752.0)
+#            d21:                 0xe3e2e3e2e3e2e3e2 (-1009., -1009., -1009., -1009.)
+#            d22:                 0xe5e4e5e4e5e4e5e4 (-1508., -1508., -1508., -1508.)
+#            d23:                 0xe7e6e7e6e7e6e7e6 (-2022., -2022., -2022., -2022.)
+#                                      ╙───╨───╨───╨─ 0xe7e6'e5e4'e3e2'e1e0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60e810		ld4r {v16.4s, v17.4s, v18.4s, v19.4s}, [x0]
-#   v16: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v17: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v18: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#            v19: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ╙───────╨───────╨───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2e839		ld4r {v25.4s, v26.4s, v27.4s, v28.4s}, [x1], x2
-#   v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (..., -5.67986e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xefeeedecefeeedecefeeedecefeeedec (..., -1.47890e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (..., -3.84962e+31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (..., -1.00179e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (-5.680e+26, -5.680e+26, -5.680e+26, -5.680e+26)
+#            v26: 0xefeeedecefeeedecefeeedecefeeedec (-1.479e+29, -1.479e+29, -1.479e+29, -1.479e+29)
+#            v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (-3.850e+31, -3.850e+31, -3.850e+31, -3.850e+31)
+#            v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (-1.002e+34, -1.002e+34, -1.002e+34, -1.002e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf7f6f5f4'f3f2f1f0'efeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffe837		ld4r {v23.4s, v24.4s, v25.4s, v26.4s}, [x1], #16
-#   v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (..., -1.41390e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xeeedecebeeedecebeeedecebeeedeceb (..., -3.68172e+28, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (..., -9.58428e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (..., -2.49430e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (-1.414e+26, -1.414e+26, -1.414e+26, -1.414e+26)
+#            v24: 0xeeedecebeeedecebeeedecebeeedeceb (-3.682e+28, -3.682e+28, -3.682e+28, -3.682e+28)
+#            v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (-9.584e+30, -9.584e+30, -9.584e+30, -9.584e+30)
+#            v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (-2.494e+33, -2.494e+33, -2.494e+33, -2.494e+33)
+#                          ╙───────╨───────╨───────╨─ 0xf6f5f4f3'f2f1f0ef'eeedeceb'eae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60e016		ld4r {v22.8b, v23.8b, v24.8b, v25.8b}, [x0]
-#   v22: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x0101010101010101
+#            d23:                 0xffffffffffffffff
+#            d24:                 0x0202020202020202
+#            d25:                 0x0000000000000000
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2e03b		ld4r {v27.8b, v28.8b, v29.8b, v30.8b}, [x1], x2
-#   v27: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xf7f7f7f7f7f7f7f7
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8'f7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffe03d		ld4r {v29.8b, v30.8b, v31.8b, v0.8b}, [x1], #4
-#   v29: 0x0000000000000000f6f6f6f6f6f6f6f6 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xf6f6f6f6f6f6f6f6
+#            d30:                 0xf7f7f7f7f7f7f7f7
+#            d31:                 0xf8f8f8f8f8f8f8f8
+#             d0:                 0xf9f9f9f9f9f9f9f9
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xf9'f8'f7'f6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60e41c		ld4r {v28.8h, v29.8h, v30.8h, v31.8h}, [x0]
-#   v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v29: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            v30: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2e439		ld4r {v25.8h, v26.8h, v27.8h, v28.8h}, [x1], x2
-#   v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x01000100010001000100010001000100 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#            v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v27: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v28: 0x01000100010001000100010001000100 (1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0100'fffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffe436		ld4r {v22.8h, v23.8h, v24.8h, v25.8h}, [x1], #8
-#   v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 (-5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04)
+#            v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4e3a94fd		mla v29.16b, v7.16b, v26.16b
-#   v29: 0x0002000200020002e73aed42f34af952
+#            v29: 0x0002000200020002e73aed42f34af952
 0x~~~~~~~~~~~~~~~~  0eae9486		mla v6.2s, v4.2s, v14.2s
-#    v6: 0x0000000000000000dcbb11e0e6481e68
+#             v6: 0x0000000000000000dcbb11e0e6481e68
 0x~~~~~~~~~~~~~~~~  2f800969		mla v9.2s, v11.2s, v0.s[2]
-#    v9: 0x00000000000000000000000000fffeff
+#             v9: 0x00000000000000000000000000fffeff
 0x~~~~~~~~~~~~~~~~  0e799625		mla v5.4h, v17.4h, v25.4h
-#    v5: 0x0000000000000000a4a2261ba09e2217
+#             v5: 0x0000000000000000a4a2261ba09e2217
 0x~~~~~~~~~~~~~~~~  2f7b00f8		mla v24.4h, v7.4h, v11.h[3]
-#   v24: 0x000000000000000082b3330de36793c1
+#            v24: 0x000000000000000082b3330de36793c1
 0x~~~~~~~~~~~~~~~~  4ea4946c		mla v12.4s, v3.4s, v4.4s
-#   v12: 0x00000000000000006f49f4f5e911f705
+#            v12: 0x00000000000000006f49f4f5e911f705
 0x~~~~~~~~~~~~~~~~  6fa708ea		mla v10.4s, v7.4s, v7.s[3]
-#   v10: 0x00000000000000001700000000000000
+#            v10: 0x00000000000000001700000000000000
 0x~~~~~~~~~~~~~~~~  0e299603		mla v3.8b, v16.8b, v9.8b
-#    v3: 0x000000000000000035342d2c25221f1b
+#             v3: 0x000000000000000035342d2c25221f1b
 0x~~~~~~~~~~~~~~~~  4e7296d3		mla v19.8h, v22.8h, v18.8h
-#   v19: 0xfe070c07fe070c07fe070c07fe070c07
+#            v19: 0xfe070c07fe070c07fe070c07fe070c07
 0x~~~~~~~~~~~~~~~~  6f400046		mla v6.8h, v2.8h, v0.h[0]
-#    v6: 0x0000000000000000dcbb11e0e6481e68
+#             v6: 0x0000000000000000dcbb11e0e6481e68
 0x~~~~~~~~~~~~~~~~  6e2b9557		mls v23.16b, v10.16b, v11.16b
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
 0x~~~~~~~~~~~~~~~~  2eb697ee		mls v14.2s, v31.2s, v22.2s
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
 0x~~~~~~~~~~~~~~~~  2fa149bc		mls v28.2s, v13.2s, v1.s[3]
-#   v28: 0x00000000000000000100010001000100
+#            v28: 0x00000000000000000100010001000100
 0x~~~~~~~~~~~~~~~~  2e6d9662		mls v2.4h, v19.4h, v13.4h
-#    v2: 0x0000000000000000ac03d811ac03d811
+#             v2: 0x0000000000000000ac03d811ac03d811
 0x~~~~~~~~~~~~~~~~  2f6c49f2		mls v18.4h, v15.4h, v12.h[6]
-#   v18: 0x000000000000000000fffeff00fffeff
+#            v18: 0x000000000000000000fffeff00fffeff
 0x~~~~~~~~~~~~~~~~  6eb09566		mls v6.4s, v11.4s, v16.4s
-#    v6: 0x00000000000000006347100f6cd41c97
+#             v6: 0x00000000000000006347100f6cd41c97
 0x~~~~~~~~~~~~~~~~  6f8a4a17		mls v23.4s, v16.4s, v10.s[2]
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
 0x~~~~~~~~~~~~~~~~  2e3795ba		mls v26.8b, v13.8b, v23.8b
-#   v26: 0x0000000000000000bd4365396d436539
+#            v26: 0x0000000000000000bd4365396d436539
 0x~~~~~~~~~~~~~~~~  6e6c954a		mls v10.8h, v10.8h, v12.8h
-#   v10: 0x00000000000000008800000000000000
+#            v10: 0x00000000000000008800000000000000
 0x~~~~~~~~~~~~~~~~  6f7e480e		mls v14.8h, v0.8h, v14.h[7]
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
 0x~~~~~~~~~~~~~~~~  5e070436		mov b22, v1.b[3]
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e1805a7		mov d7, v13.d[1]
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e0a06ba		mov h26, v21.h[2]
-#   v26: 0x0000000000000000000000000000e3e2
+#            v26: 0x0000000000000000000000000000e3e2
 0x~~~~~~~~~~~~~~~~  5e04067a		mov s26, v19.s[0]
-#   v26: 0x000000000000000000000000fe070c07
+#            v26: 0x000000000000000000000000fe070c07
 0x~~~~~~~~~~~~~~~~  4eab1d7a		mov v26.16b, v11.16b
-#   v26: 0x0000000000000000d4d3d2d1d4d3d2d1
+#            v26: 0x0000000000000000d4d3d2d1d4d3d2d1
 0x~~~~~~~~~~~~~~~~  0ea01c14		mov v20.8b, v0.8b
-#   v20: 0x0000000000000000f9f9f9f9f9f9f9f9
+#            v20: 0x0000000000000000f9f9f9f9f9f9f9f9
 0x~~~~~~~~~~~~~~~~  6e1b24d3		mov v19.b[13], v6.b[4]
-#   v19: 0xfe070f07fe070c07fe070c07fe070c07
+#            v19: 0xfe070f07fe070c07fe070c07fe070c07
 0x~~~~~~~~~~~~~~~~  4e1b1e64		mov v4.b[13], w19
-#    v4: 0x00000000000000009b9a999897969594
+#             v4: 0x00000000000000009b9a999897969594
 0x~~~~~~~~~~~~~~~~  6e18050b		mov v11.d[1], v8.d[0]
-#   v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
+#            v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
 0x~~~~~~~~~~~~~~~~  4e081fc3		mov v3.d[0], x30
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e12757d		mov v29.h[4], v11.h[7]
-#   v29: 0x000200020002ff00e73aed42f34af952
+#            v29: 0x000200020002ff00e73aed42f34af952
 0x~~~~~~~~~~~~~~~~  4e1a1cc2		mov v2.h[6], w6
-#    v2: 0x0000000c00000000ac03d811ac03d811
+#             v2: 0x0000ffff00000000ac03d811ac03d811
 0x~~~~~~~~~~~~~~~~  6e0444b6		mov v22.s[0], v5.s[2]
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e1c1d18		mov v24.s[3], w8
-#   v24: 0x000000000000000082b3330de36793c1
+#            v24: 0x000000000000000082b3330de36793c1
 0x~~~~~~~~~~~~~~~~  0e1c3c32		mov w18, v1.s[3]
-#   x18: 0x0000000000000000
+#            x18: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  4e083ebc		mov x28, v21.d[0]
-#   x28: 0xe3e2e3e2e3e2e3e2
+#            x28: 0xe3e2e3e2e3e2e3e2
 0x~~~~~~~~~~~~~~~~  2f03e4f8		movi d24, #0xffff0000ffffff
-#   v24: 0x000000000000000000ffff0000ffffff
+#            v24: 0x000000000000000000ffff0000ffffff
 0x~~~~~~~~~~~~~~~~  4f04e41d		movi v29.16b, #0x80
-#   v29: 0x80808080808080808080808080808080
+#            v29: 0x80808080808080808080808080808080
 0x~~~~~~~~~~~~~~~~  6f06e6cc		movi v12.2d, #0xffff00ff00ffff00
-#   v12: 0xffff00ff00ffff00ffff00ff00ffff00
+#            v12: 0xffff00ff00ffff00ffff00ff00ffff00
 0x~~~~~~~~~~~~~~~~  0f07658c		movi v12.2s, #0xec, lsl #24
-#   v12: 0x0000000000000000ec000000ec000000
+#            v12: 0x0000000000000000ec000000ec000000
 0x~~~~~~~~~~~~~~~~  0f02d58a		movi v10.2s, #0x4c, msl #16
-#   v10: 0x0000000000000000004cffff004cffff
+#            v10: 0x0000000000000000004cffff004cffff
 0x~~~~~~~~~~~~~~~~  0f06841a		movi v26.4h, #0xc0, lsl #0
-#   v26: 0x000000000000000000c000c000c000c0
+#            v26: 0x000000000000000000c000c000c000c0
 0x~~~~~~~~~~~~~~~~  4f044718		movi v24.4s, #0x98, lsl #16
-#   v24: 0x00980000009800000098000000980000
+#            v24: 0x00980000009800000098000000980000
 0x~~~~~~~~~~~~~~~~  4f06d7c1		movi v1.4s, #0xde, msl #16
-#    v1: 0x00deffff00deffff00deffff00deffff
+#             v1: 0x00deffff00deffff00deffff00deffff
 0x~~~~~~~~~~~~~~~~  0f02e5b5		movi v21.8b, #0x4d
-#   v21: 0x00000000000000004d4d4d4d4d4d4d4d
+#            v21: 0x00000000000000004d4d4d4d4d4d4d4d
 0x~~~~~~~~~~~~~~~~  4f03853d		movi v29.8h, #0x69, lsl #0
-#   v29: 0x00690069006900690069006900690069
+#            v29: 0x00690069006900690069006900690069
 0x~~~~~~~~~~~~~~~~  4e319de1		mul v1.16b, v15.16b, v17.16b
-#    v1: 0x4700008e4b00007a4700008e4b00007a
+#             v1: 0x4700008e4b00007a4700008e4b00007a
 0x~~~~~~~~~~~~~~~~  0ebd9e75		mul v21.2s, v19.2s, v29.2s
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
 0x~~~~~~~~~~~~~~~~  0f8380b3		mul v19.2s, v5.2s, v3.s[0]
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e629d7d		mul v29.4h, v11.4h, v2.4h
-#   v29: 0x0000000000000000427957e1427957e1
+#            v29: 0x0000000000000000427957e1427957e1
 0x~~~~~~~~~~~~~~~~  0f4080e2		mul v2.4h, v7.4h, v0.h[0]
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eb09f59		mul v25.4s, v26.4s, v16.4s
-#   v25: 0x000000000000000042ff40c042ff40c0
+#            v25: 0x000000000000000042ff40c042ff40c0
 0x~~~~~~~~~~~~~~~~  4f8f88da		mul v26.4s, v6.4s, v15.s[2]
-#   v26: 0x00000000000000009d2fa76ed8a575fe
+#            v26: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  0e3f9deb		mul v11.8b, v15.8b, v31.8b
-#   v11: 0x0000000000000000470049004b004d00
+#            v11: 0x0000000000000000470049004b004d00
 0x~~~~~~~~~~~~~~~~  4e6f9ff4		mul v20.8h, v31.8h, v15.8h
-#   v20: 0x48004a004c004e0048004a004c004e00
+#            v20: 0x48004a004c004e0048004a004c004e00
 0x~~~~~~~~~~~~~~~~  4f4988bd		mul v29.8h, v5.8h, v9.h[4]
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e205aad		mvn v13.16b, v21.16b
-#   v13: 0xffffffffffffffffe03d1120e03d1120
+#            v13: 0xffffffffffffffffe03d1120e03d1120
 0x~~~~~~~~~~~~~~~~  2e205a7c		mvn v28.8b, v19.8b
-#   v28: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2f052719		mvni v25.2s, #0xb8, lsl #8
-#   v25: 0x0000000000000000ffff47ffffff47ff
+#            v25: 0x0000000000000000ffff47ffffff47ff
 0x~~~~~~~~~~~~~~~~  2f03d591		mvni v17.2s, #0x6c, msl #16
-#   v17: 0x0000000000000000ff930000ff930000
+#            v17: 0x0000000000000000ff930000ff930000
 0x~~~~~~~~~~~~~~~~  2f02851d		mvni v29.4h, #0x48, lsl #0
-#   v29: 0x0000000000000000ffb7ffb7ffb7ffb7
+#            v29: 0x0000000000000000ffb7ffb7ffb7ffb7
 0x~~~~~~~~~~~~~~~~  6f034754		mvni v20.4s, #0x7a, lsl #16
-#   v20: 0xff85ffffff85ffffff85ffffff85ffff
+#            v20: 0xff85ffffff85ffffff85ffffff85ffff
 0x~~~~~~~~~~~~~~~~  6f00c7c0		mvni v0.4s, #0x1e, msl #8
-#    v0: 0xffffe100ffffe100ffffe100ffffe100
+#             v0: 0xffffe100ffffe100ffffe100ffffe100
 0x~~~~~~~~~~~~~~~~  6f0187df		mvni v31.8h, #0x3e, lsl #0
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
 0x~~~~~~~~~~~~~~~~  7ee0b979		neg d25, d11
-#   v25: 0x0000000000000000b8ffb6ffb4ffb300
+#            v25: 0x0000000000000000b8ffb6ffb4ffb300
 0x~~~~~~~~~~~~~~~~  6e20b924		neg v4.16b, v9.16b
-#    v4: 0x00000000000000000000000000010201
+#             v4: 0x00000000000000000000000000010201
 0x~~~~~~~~~~~~~~~~  6ee0bb2b		neg v11.2d, v25.2d
-#   v11: 0x0000000000000000470049004b004d00
+#            v11: 0x0000000000000000470049004b004d00
 0x~~~~~~~~~~~~~~~~  2ea0ba47		neg v7.2s, v18.2s
-#    v7: 0x0000000000000000ff000101ff000101
+#             v7: 0x0000000000000000ff000101ff000101
 0x~~~~~~~~~~~~~~~~  2e60b9e7		neg v7.4h, v15.4h
-#    v7: 0x00000000000000004648484a4a4c4c4e
+#             v7: 0x00000000000000004648484a4a4c4c4e
 0x~~~~~~~~~~~~~~~~  6ea0ba51		neg v17.4s, v18.4s
-#   v17: 0x0000000000000000ff000101ff000101
+#            v17: 0x0000000000000000ff000101ff000101
 0x~~~~~~~~~~~~~~~~  2e20ba34		neg v20.8b, v17.8b
-#   v20: 0x00000000000000000100ffff0100ffff
+#            v20: 0x00000000000000000100ffff0100ffff
 0x~~~~~~~~~~~~~~~~  6e60b960		neg v0.8h, v11.8h
-#    v0: 0x0000000000000000b900b700b500b300
+#             v0: 0x0000000000000000b900b700b500b300
 0x~~~~~~~~~~~~~~~~  4eff1d6d		orn v13.16b, v11.16b, v31.16b
-#   v13: 0x003e003e003e003e473e493e4b3e4d3e
+#            v13: 0x003e003e003e003e473e493e4b3e4d3e
 0x~~~~~~~~~~~~~~~~  0ef61e16		orn v22.8b, v16.8b, v22.8b
-#   v22: 0x0000000000000000ffffffffffffffff
+#            v22: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4eb71e31		orr v17.16b, v17.16b, v23.16b
-#   v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
+#            v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
 0x~~~~~~~~~~~~~~~~  0f071468		orr v8.2s, #0xe3, lsl #0
-#    v8: 0x0000000000000000ff0000e70002ffe3
+#             v8: 0x0000000000000000ff0000e70002ffe3
 0x~~~~~~~~~~~~~~~~  0f04b6eb		orr v11.4h, #0x97, lsl #8
-#   v11: 0x0000000000000000d700df00df00df00
+#            v11: 0x0000000000000000d700df00df00df00
 0x~~~~~~~~~~~~~~~~  4f051567		orr v7.4s, #0xab, lsl #0
-#    v7: 0x000000ab000000ab464848eb4a4c4cef
+#             v7: 0x000000ab000000ab464848eb4a4c4cef
 0x~~~~~~~~~~~~~~~~  0ea31c88		orr v8.8b, v4.8b, v3.8b
-#    v8: 0x00000000000000000000000000010201
+#             v8: 0x00000000000000000000000000010201
 0x~~~~~~~~~~~~~~~~  4f05b61f		orr v31.8h, #0xb0, lsl #8
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
 0x~~~~~~~~~~~~~~~~  6e379e4b		pmul v11.16b, v18.16b, v23.16b
-#   v11: 0x000000000000000000a9a8a900a9a8a9
+#            v11: 0x000000000000000000a9a8a900a9a8a9
 0x~~~~~~~~~~~~~~~~  2e259f08		pmul v8.8b, v24.8b, v5.8b
-#    v8: 0x00000000000000000030000000100000
+#             v8: 0x00000000000000000030000000100000
 0x~~~~~~~~~~~~~~~~  0e36e258		pmull v24.8h, v18.8b, v22.8b
-#   v24: 0x0000555555aa55550000555555aa5555
+#            v24: 0x0000555555aa55550000555555aa5555
 0x~~~~~~~~~~~~~~~~  4e35e06d		pmull2 v13.8h, v3.16b, v21.16b
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb54156		raddhn v22.2s, v10.2d, v21.2d
-#   v22: 0x000000000000000000000000200feede
+#            v22: 0x000000000000000000000000200feede
 0x~~~~~~~~~~~~~~~~  2e6d41a5		raddhn v5.4h, v13.4s, v13.4s
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e3a422a		raddhn v10.8b, v17.8h, v26.8h
-#   v10: 0x0000000000000000fdfdfdfd9da5d974
+#            v10: 0x0000000000000000fdfdfdfd9da5d974
 0x~~~~~~~~~~~~~~~~  6e2d43a9		raddhn2 v9.16b, v29.8h, v13.8h
-#    v9: 0x00000000000000000000000000fffeff
+#             v9: 0x00000000000000000000000000fffeff
 0x~~~~~~~~~~~~~~~~  6eba42fb		raddhn2 v27.4s, v23.2d, v26.2d
-#   v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
+#            v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
 0x~~~~~~~~~~~~~~~~  6e6743a0		raddhn2 v0.8h, v29.4s, v7.4s
-#    v0: 0x0000000046004a04b900b700b500b300
+#             v0: 0x0000000046004a04b900b700b500b300
 0x~~~~~~~~~~~~~~~~  6e6059f6		rbit v22.16b, v15.16b
-#   v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
+#            v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
 0x~~~~~~~~~~~~~~~~  2e60587e		rbit v30.8b, v3.8b
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e201b7f		rev16 v31.16b, v27.16b
-#   v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
+#            v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
 0x~~~~~~~~~~~~~~~~  0e201b4c		rev16 v12.8b, v26.8b
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
 0x~~~~~~~~~~~~~~~~  6e200885		rev32 v5.16b, v4.16b
-#    v5: 0x00000000000000000000000001020100
+#             v5: 0x00000000000000000000000001020100
 0x~~~~~~~~~~~~~~~~  2e600b50		rev32 v16.4h, v26.4h
-#   v16: 0x0000000000000000a76e9d2f75fed8a5
+#            v16: 0x0000000000000000a76e9d2f75fed8a5
 0x~~~~~~~~~~~~~~~~  2e200874		rev32 v20.8b, v3.8b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e600b94		rev32 v20.8h, v28.8h
-#   v20: 0x0000000000000000ffffffffffffffff
+#            v20: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e200a69		rev64 v9.16b, v19.16b
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea00a05		rev64 v5.2s, v16.2s
-#    v5: 0x000000000000000075fed8a5a76e9d2f
+#             v5: 0x000000000000000075fed8a5a76e9d2f
 0x~~~~~~~~~~~~~~~~  0e600be7		rev64 v7.4h, v31.4h
-#    v7: 0x0000000000000000fefffefffefffeff
+#             v7: 0x0000000000000000fefffefffefffeff
 0x~~~~~~~~~~~~~~~~  4ea00b4f		rev64 v15.4s, v26.4s
-#   v15: 0x0000000000000000d8a575fe9d2fa76e
+#            v15: 0x0000000000000000d8a575fe9d2fa76e
 0x~~~~~~~~~~~~~~~~  0e200939		rev64 v25.8b, v9.8b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6008ab		rev64 v11.8h, v5.8h
-#   v11: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  0f3f8db2		rshrn v18.2s, v13.2d, #1
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f1e8fd9		rshrn v25.4h, v30.4s, #2
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f088d2d		rshrn v13.8b, v9.8h, #8
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f088cc3		rshrn2 v3.16b, v6.8h, #8
-#    v3: 0x0000000063106d1d0000000000000000
+#             v3: 0x0000000063106d1d0000000000000000
 0x~~~~~~~~~~~~~~~~  4f278fa0		rshrn2 v0.4s, v29.2d, #25
-#    v0: 0x00000000dbffdc00b900b700b500b300
+#             v0: 0x00000000dbffdc00b900b700b500b300
 0x~~~~~~~~~~~~~~~~  4f118f5b		rshrn2 v27.8h, v26.4s, #15
-#   v27: 0x000000003a5fb14bfffefffefffefffe
+#            v27: 0x000000003a5fb14bfffefffefffefffe
 0x~~~~~~~~~~~~~~~~  2ea4632f		rsubhn v15.2s, v25.2d, v4.2d
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e636137		rsubhn v23.4h, v9.4s, v3.4s
-#   v23: 0x000000000000000000009cf000000000
+#            v23: 0x000000000000000000009cf000000000
 0x~~~~~~~~~~~~~~~~  2e3863c6		rsubhn v6.8b, v30.8h, v24.8h
-#    v6: 0x000000000000000000abaaab00abaaab
+#             v6: 0x000000000000000000abaaab00abaaab
 0x~~~~~~~~~~~~~~~~  6e346304		rsubhn2 v4.16b, v24.8h, v20.8h
-#    v4: 0x00555655005556550000000000010201
+#             v4: 0x00555655005556550000000000010201
 0x~~~~~~~~~~~~~~~~  6eb662e1		rsubhn2 v1.4s, v23.2d, v22.2d
-#    v1: 0x62e2129262e2af824700008e4b00007a
+#             v1: 0x62e2129262e2af824700008e4b00007a
 0x~~~~~~~~~~~~~~~~  6e746053		rsubhn2 v19.8h, v2.4s, v20.4s
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e397d3c		saba v28.16b, v9.16b, v25.16b
-#   v28: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0eb47f89		saba v9.2s, v28.2s, v20.2s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e767ed1		saba v17.4h, v22.4h, v22.4h
-#   v17: 0x0000000000000000fffbfdfbfffbfdfb
+#            v17: 0x0000000000000000fffbfdfbfffbfdfb
 0x~~~~~~~~~~~~~~~~  4ebb7cbd		saba v29.4s, v5.4s, v27.4s
-#   v29: 0x000000003a5fb14b75b7d85e58486286
+#            v29: 0x000000003a5fb14b75b7d85e58486286
 0x~~~~~~~~~~~~~~~~  0e327eb4		saba v20.8b, v21.8b, v18.8b
-#   v20: 0x00000000000000001e3d11201e3d1120
+#            v20: 0x00000000000000001e3d11201e3d1120
 0x~~~~~~~~~~~~~~~~  4e7e7e3b		saba v27.8h, v17.8h, v30.8h
-#   v27: 0x000000003a5fb14b0003020300030203
+#            v27: 0x000000003a5fb14b0003020300030203
 0x~~~~~~~~~~~~~~~~  0ea751b4		sabal v20.2d, v13.2s, v7.2s
-#   v20: 0x00000000010001011e3d11201f3d1221
+#            v20: 0x00000000010001011e3d11201f3d1221
 0x~~~~~~~~~~~~~~~~  0e645184		sabal v4.4s, v12.4h, v4.4h
-#    v4: 0x005585f20055c4fc00005a290001058d
+#             v4: 0x005585f20055c4fc00005a290001058d
 0x~~~~~~~~~~~~~~~~  0e345317		sabal v23.8h, v24.8b, v20.8b
-#   v23: 0x001e003d0044003500369d8300430034
+#            v23: 0x001e003d0044003500369d8300430034
 0x~~~~~~~~~~~~~~~~  4eb252ba		sabal2 v26.2d, v21.4s, v18.4s
-#   v26: 0x00000000000000009d2fa76ed8a575fe
+#            v26: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  4e68539b		sabal2 v27.4s, v28.8h, v8.8h
-#   v27: 0x000000003a5fb14b0003020300030203
+#            v27: 0x000000003a5fb14b0003020300030203
 0x~~~~~~~~~~~~~~~~  4e35520c		sabal2 v12.8h, v16.16b, v21.16b
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
 0x~~~~~~~~~~~~~~~~  4e2d75e0		sabd v0.16b, v15.16b, v13.16b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ebe74ef		sabd v15.2s, v7.2s, v30.2s
-#   v15: 0x00000000000000000100010101000101
+#            v15: 0x00000000000000000100010101000101
 0x~~~~~~~~~~~~~~~~  0e6c7631		sabd v17.4h, v17.4h, v12.4h
-#   v17: 0x00000000000000002fa270ac5a23007a
+#            v17: 0x00000000000000002fa270ac5a23007a
 0x~~~~~~~~~~~~~~~~  4eb67487		sabd v7.4s, v4.4s, v22.4s
-#    v7: 0x633798855327f7af62e26cbc52d33840
+#             v7: 0x633798855327f7af62e26cbc52d33840
 0x~~~~~~~~~~~~~~~~  0e3a7477		sabd v23.8b, v3.8b, v26.8b
-#   v23: 0x0000000000000000632f596e285b7502
+#            v23: 0x0000000000000000632f596e285b7502
 0x~~~~~~~~~~~~~~~~  4e657794		sabd v20.8h, v28.8h, v5.8h
-#   v20: 0x000000000000000075ff275a589162d0
+#            v20: 0x000000000000000075ff275a589162d0
 0x~~~~~~~~~~~~~~~~  0eb472db		sabdl v27.2d, v22.2s, v20.2s
-#   v27: 0x00000000d8e139ed00000000ab639583
+#            v27: 0x00000000d8e139ed00000000ab639583
 0x~~~~~~~~~~~~~~~~  0e77729f		sabdl v31.4s, v20.4h, v23.4h
-#   v31: 0x000012d0000032140000303600001232
+#            v31: 0x000012d0000032140000303600001232
 0x~~~~~~~~~~~~~~~~  0e3b7280		sabdl v0.8h, v20.8b, v27.8b
-#    v0: 0x007500010027005a00ad00d200cd004d
+#             v0: 0x007500010027005a00ad00d200cd004d
 0x~~~~~~~~~~~~~~~~  4ea3717f		sabdl2 v31.2d, v11.4s, v3.4s
-#   v31: 0x00000000000000000000000063106d1d
+#            v31: 0x00000000000000000000000063106d1d
 0x~~~~~~~~~~~~~~~~  4e7b717a		sabdl2 v26.4s, v11.8h, v27.8h
-#   v26: 0x00000000000000000000271f000039ed
+#            v26: 0x00000000000000000000271f000039ed
 0x~~~~~~~~~~~~~~~~  4e327106		sabdl2 v6.8h, v8.16b, v18.16b
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea06b48		sadalp v8.1d, v26.2s
-#    v8: 0x0000000000000000003000000010610c
+#             v8: 0x0000000000000000003000000010610c
 0x~~~~~~~~~~~~~~~~  4ea06b4c		sadalp v12.2d, v26.4s
-#   v12: 0x00000000000000002f9d6ea7a5d95f81
+#            v12: 0x00000000000000002f9d6ea7a5d95f81
 0x~~~~~~~~~~~~~~~~  0e606b4c		sadalp v12.2s, v26.4h
-#   v12: 0x00000000000000002f9d95c6a5d9996e
+#            v12: 0x00000000000000002f9d95c6a5d9996e
 0x~~~~~~~~~~~~~~~~  0e206824		sadalp v4.4h, v1.8b
-#    v4: 0x0000000000000000004759b7004c0607
+#             v4: 0x0000000000000000004759b7004c0607
 0x~~~~~~~~~~~~~~~~  4e606a2f		sadalp v15.4s, v17.8h
-#   v15: 0x00000000000000000100a14f01005b9e
+#            v15: 0x00000000000000000100a14f01005b9e
 0x~~~~~~~~~~~~~~~~  4e206b35		sadalp v21.8h, v25.16b
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
 0x~~~~~~~~~~~~~~~~  0eae0145		saddl v5.2d, v10.2s, v14.2s
-#    v5: 0xffffffffd6dfd5daffffffff7687b151
+#             v5: 0xffffffffd6dfd5daffffffff7687b151
 0x~~~~~~~~~~~~~~~~  0e6f0072		saddl v18.4s, v3.4h, v15.4h
-#   v18: 0x00000100ffffa14f0000010000005b9e
+#            v18: 0x00000100ffffa14f0000010000005b9e
 0x~~~~~~~~~~~~~~~~  0e37004f		saddl v15.8h, v2.8b, v23.8b
-#   v15: 0x0063002f0059006e0028005b00750002
+#            v15: 0x0063002f0059006e0028005b00750002
 0x~~~~~~~~~~~~~~~~  4ebb0210		saddl2 v16.2d, v16.4s, v27.4s
-#   v16: 0x0000000000000000ffffffffd8e139ed
+#            v16: 0x0000000000000000ffffffffd8e139ed
 0x~~~~~~~~~~~~~~~~  4e600306		saddl2 v6.4s, v24.8h, v0.8h
-#    v6: 0x0000007500005556000055d1000055af
+#             v6: 0x0000007500005556000055d1000055af
 0x~~~~~~~~~~~~~~~~  4e3c0287		saddl2 v7.8h, v20.16b, v28.16b
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea02b2a		saddlp v10.1d, v25.2s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea02a0f		saddlp v15.2d, v16.4s
-#   v15: 0x0000000000000000ffffffffd8e139ec
+#            v15: 0x0000000000000000ffffffffd8e139ec
 0x~~~~~~~~~~~~~~~~  0e602952		saddlp v18.2s, v10.4h
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e202b5d		saddlp v29.4h, v26.8b
-#   v29: 0x00000000000000000000004600000026
+#            v29: 0x00000000000000000000004600000026
 0x~~~~~~~~~~~~~~~~  4e60282a		saddlp v10.4s, v1.8h
-#   v10: 0x00007574000012640000478e00004b7a
+#            v10: 0x00007574000012640000478e00004b7a
 0x~~~~~~~~~~~~~~~~  4e202aa0		saddlp v0.8h, v21.16b
-#    v0: 0x0000000000000000ffe1ffcdffe1ffcd
+#             v0: 0x0000000000000000ffe1ffcdffe1ffcd
 0x~~~~~~~~~~~~~~~~  4eb038ec		saddlv d12, v7.4s
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e303b8e		saddlv h14, v28.16b
-#   v14: 0x0000000000000000000000000000fff8
+#            v14: 0x0000000000000000000000000000fff8
 0x~~~~~~~~~~~~~~~~  0e303bde		saddlv h30, v30.8b
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e70387b		saddlv s27, v3.4h
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e703a10		saddlv s16, v16.8h
-#   v16: 0x000000000000000000000000000012cc
+#            v16: 0x000000000000000000000000000012cc
 0x~~~~~~~~~~~~~~~~  0eb21178		saddw v24.2d, v11.2d, v18.2s
-#   v24: 0x00000000000000009d2fa76ed8a575fe
+#            v24: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  0e66118d		saddw v13.4s, v12.4s, v6.4h
-#   v13: 0x00000000000055d100000000000055af
+#            v13: 0x00000000000055d100000000000055af
 0x~~~~~~~~~~~~~~~~  0e271273		saddw v19.8h, v19.8h, v7.8b
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eba113b		saddw2 v27.2d, v9.2d, v26.4s
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7512f3		saddw2 v19.4s, v23.4s, v21.8h
-#   v19: 0x0000000000000000632f596e285b7502
+#            v19: 0x0000000000000000632f596e285b7502
 0x~~~~~~~~~~~~~~~~  4e3e132f		saddw2 v15.8h, v25.8h, v30.16b
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e290487		shadd v7.16b, v4.16b, v9.16b
-#    v7: 0x000000000000000000232cdb00260303
+#             v7: 0x000000000000000000232cdb00260303
 0x~~~~~~~~~~~~~~~~  0eb8073d		shadd v29.2s, v25.2s, v24.2s
-#   v29: 0x0000000000000000ce97d3b7ec52baff
+#            v29: 0x0000000000000000ce97d3b7ec52baff
 0x~~~~~~~~~~~~~~~~  0e6d055f		shadd v31.4h, v10.4h, v13.4h
-#   v31: 0x0000000000000000000023c700005094
+#            v31: 0x0000000000000000000023c700005094
 0x~~~~~~~~~~~~~~~~  4ea80615		shadd v21.4s, v16.4s, v8.4s
-#   v21: 0x000000000000000000180000000839ec
+#            v21: 0x000000000000000000180000000839ec
 0x~~~~~~~~~~~~~~~~  0e3607ae		shadd v14.8b, v29.8b, v22.8b
-#   v14: 0x0000000000000000b5dae012cc3fc326
+#            v14: 0x0000000000000000b5dae012cc3fc326
 0x~~~~~~~~~~~~~~~~  4e740713		shadd v19.8h, v24.8h, v20.8h
-#   v19: 0x00000000000000000997e764189b6c67
+#            v19: 0x00000000000000000997e764189b6c67
 0x~~~~~~~~~~~~~~~~  5f575736		shl d22, d25, #23
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0f5625		shl v5.16b, v17.16b, #7
-#    v5: 0x00000000000000008000000000800000
+#             v5: 0x00000000000000008000000000800000
 0x~~~~~~~~~~~~~~~~  4f555482		shl v2.2d, v4.2d, #21
-#    v2: 0x000000000000000036e00980c0e00000
+#             v2: 0x000000000000000036e00980c0e00000
 0x~~~~~~~~~~~~~~~~  0f3a5464		shl v4.2s, v3.2s, #26
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f185783		shl v3.4h, v28.4h, #8
-#    v3: 0x0000000000000000ff00ff00ff00ff00
+#             v3: 0x0000000000000000ff00ff00ff00ff00
 0x~~~~~~~~~~~~~~~~  4f3857e4		shl v4.4s, v31.4s, #24
-#    v4: 0x0000000000000000c700000094000000
+#             v4: 0x0000000000000000c700000094000000
 0x~~~~~~~~~~~~~~~~  0f0a5612		shl v18.8b, v16.8b, #2
-#   v18: 0x00000000000000000000000000004830
+#            v18: 0x00000000000000000000000000004830
 0x~~~~~~~~~~~~~~~~  4f135560		shl v0.8h, v11.8h, #3
-#    v0: 0x0000000000000000e9783b70c528aff0
+#             v0: 0x0000000000000000e9783b70c528aff0
 0x~~~~~~~~~~~~~~~~  2ea13b05		shll v5.2d, v24.2s, #32
-#    v5: 0x9d2fa76e00000000d8a575fe00000000
+#             v5: 0x9d2fa76e00000000d8a575fe00000000
 0x~~~~~~~~~~~~~~~~  2e613a9a		shll v26.4s, v20.4h, #16
-#   v26: 0x75ff0000275a00005891000062d00000
+#            v26: 0x75ff0000275a00005891000062d00000
 0x~~~~~~~~~~~~~~~~  2e213925		shll v5.8h, v9.8b, #8
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea13b95		shll2 v21.2d, v28.4s, #32
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e613836		shll2 v22.4s, v1.8h, #16
-#   v22: 0x62e200001292000062e20000af820000
+#            v22: 0x62e200001292000062e20000af820000
 0x~~~~~~~~~~~~~~~~  6e213b3e		shll2 v30.8h, v25.16b, #8
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f248425		shrn v5.2s, v1.2d, #28
-#    v5: 0x00000000000000002e212926700008e4
+#             v5: 0x00000000000000002e212926700008e4
 0x~~~~~~~~~~~~~~~~  0f19865d		shrn v29.4h, v18.4s, #7
-#   v29: 0x00000000000000000000000000000090
+#            v29: 0x00000000000000000000000000000090
 0x~~~~~~~~~~~~~~~~  0f0e87b1		shrn v17.8b, v29.8h, #2
-#   v17: 0x00000000000000000000000000000024
+#            v17: 0x00000000000000000000000000000024
 0x~~~~~~~~~~~~~~~~  4f0d87c5		shrn2 v5.16b, v30.8h, #3
-#    v5: 0x00000000000000002e212926700008e4
+#             v5: 0x00000000000000002e212926700008e4
 0x~~~~~~~~~~~~~~~~  4f3f8438		shrn2 v24.4s, v1.2d, #1
-#   v24: 0x317157c12580003d9d2fa76ed8a575fe
+#            v24: 0x317157c12580003d9d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  4f1085c5		shrn2 v5.8h, v14.4s, #16
-#    v5: 0x00000000b5dacc3f2e212926700008e4
+#             v5: 0x00000000b5dacc3f2e212926700008e4
 0x~~~~~~~~~~~~~~~~  4e3726de		shsub v30.16b, v22.16b, v23.16b
-#   v30: 0x31f1000009c90000ffd9d3c9c393c5ff
+#            v30: 0x31f1000009c90000ffd9d3c9c393c5ff
 0x~~~~~~~~~~~~~~~~  0eb92776		shsub v22.2s, v27.2s, v25.2s
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e6126cd		shsub v13.4h, v22.4h, v1.4h
-#   v13: 0x0000000000000000dc80ffb9da80ffc3
+#            v13: 0x0000000000000000dc80ffb9da80ffc3
 0x~~~~~~~~~~~~~~~~  4eb7250a		shsub v10.4s, v8.4s, v23.4s
-#   v10: 0x0000000000000000ce805349ebda7605
+#            v10: 0x0000000000000000ce805349ebda7605
 0x~~~~~~~~~~~~~~~~  0e3f2526		shsub v6.8b, v9.8b, v31.8b
-#    v6: 0x00000000000000000000ee1c0000d836
+#             v6: 0x00000000000000000000ee1c0000d836
 0x~~~~~~~~~~~~~~~~  4e6827e8		shsub v8.8h, v31.8h, v8.8h
-#    v8: 0x0000000000000000ffe811e3fff8f7c4
+#             v8: 0x0000000000000000ffe811e3fff8f7c4
 0x~~~~~~~~~~~~~~~~  7f5457b3		sli d19, d29, #20
-#   v19: 0x000000000000000000000000090b6c67
+#            v19: 0x000000000000000000000000090b6c67
 0x~~~~~~~~~~~~~~~~  6f085709		sli v9.16b, v24.16b, #0
-#    v9: 0x317157c12580003d9d2fa76ed8a575fe
+#             v9: 0x317157c12580003d9d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  6f4a5536		sli v22.2d, v9.2d, #10
-#   v22: 0xc55f04960000f400be9dbb6295d7f800
+#            v22: 0xc55f04960000f400be9dbb6295d7f800
 0x~~~~~~~~~~~~~~~~  2f34576b		sli v11.2s, v27.2s, #20
-#   v11: 0x0000000000000000000fa76e000575fe
+#            v11: 0x0000000000000000000fa76e000575fe
 0x~~~~~~~~~~~~~~~~  2f1555f0		sli v16.4h, v15.4h, #5
-#   v16: 0x0000000000000000000000000000000c
+#            v16: 0x0000000000000000000000000000000c
 0x~~~~~~~~~~~~~~~~  6f395508		sli v8.4s, v8.4s, #25
-#    v8: 0x0000000000000000c7e811e389f8f7c4
+#             v8: 0x0000000000000000c7e811e389f8f7c4
 0x~~~~~~~~~~~~~~~~  2f0857ca		sli v10.8b, v30.8b, #0
-#   v10: 0x0000000000000000ffd9d3c9c393c5ff
+#            v10: 0x0000000000000000ffd9d3c9c393c5ff
 0x~~~~~~~~~~~~~~~~  6f165787		sli v7.8h, v28.8h, #6
-#    v7: 0x0000000000000000ffe3ffdbffe6ffc3
+#             v7: 0x0000000000000000ffe3ffdbffe6ffc3
 0x~~~~~~~~~~~~~~~~  4e216512		smax v18.16b, v8.16b, v1.16b
-#   v18: 0x6200120062000000470011e34b00007a
+#            v18: 0x6200120062000000470011e34b00007a
 0x~~~~~~~~~~~~~~~~  0ea164be		smax v30.2s, v5.2s, v1.2s
-#   v30: 0x00000000000000004700008e700008e4
+#            v30: 0x00000000000000004700008e700008e4
 0x~~~~~~~~~~~~~~~~  0e736731		smax v17.4h, v25.4h, v19.4h
-#   v17: 0x000000000000000000000000090b6c67
+#            v17: 0x000000000000000000000000090b6c67
 0x~~~~~~~~~~~~~~~~  4ebf6701		smax v1.4s, v24.4s, v31.4s
-#    v1: 0x317157c12580003d000023c700005094
+#             v1: 0x317157c12580003d000023c700005094
 0x~~~~~~~~~~~~~~~~  0e386711		smax v17.8b, v24.8b, v24.8b
-#   v17: 0x00000000000000009d2fa76ed8a575fe
+#            v17: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  4e6a674b		smax v11.8h, v26.8h, v10.8h
-#   v11: 0x75ff0000275a00005891000062d00000
+#            v11: 0x75ff0000275a00005891000062d00000
 0x~~~~~~~~~~~~~~~~  4e27a5cc		smaxp v12.16b, v14.16b, v7.16b
-#   v12: 0x00000000ffffffff00000000da123f26
+#            v12: 0x00000000ffffffff00000000da123f26
 0x~~~~~~~~~~~~~~~~  0ea6a71f		smaxp v31.2s, v24.2s, v6.2s
-#   v31: 0x00000000000000000000ee1cd8a575fe
+#            v31: 0x00000000000000000000ee1cd8a575fe
 0x~~~~~~~~~~~~~~~~  0e6aa7aa		smaxp v10.4h, v29.4h, v10.4h
-#   v10: 0x0000000000000000ffd9c5ff00000090
+#            v10: 0x0000000000000000ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  4ea7a572		smaxp v18.4s, v11.4s, v7.4s
-#   v18: 0x00000000ffe6ffc375ff000062d00000
+#            v18: 0x00000000ffe6ffc375ff000062d00000
 0x~~~~~~~~~~~~~~~~  0e32a415		smaxp v21.8b, v0.8b, v18.8b
-#   v21: 0x000000000000000075006200787028f0
+#            v21: 0x000000000000000075006200787028f0
 0x~~~~~~~~~~~~~~~~  4e6fa51a		smaxp v26.8h, v8.8h, v15.8h
-#   v26: 0x00000000000000000000000011e3f7c4
+#            v26: 0x00000000000000000000000011e3f7c4
 0x~~~~~~~~~~~~~~~~  4e30a8a4		smaxv b4, v5.16b
-#    v4: 0x00000000000000000000000000000070
+#             v4: 0x00000000000000000000000000000070
 0x~~~~~~~~~~~~~~~~  0e30a817		smaxv b23, v0.8b
-#   v23: 0x00000000000000000000000000000078
+#            v23: 0x00000000000000000000000000000078
 0x~~~~~~~~~~~~~~~~  0e70a806		smaxv h6, v0.4h
-#    v6: 0x00000000000000000000000000003b70
+#             v6: 0x00000000000000000000000000003b70
 0x~~~~~~~~~~~~~~~~  4e70a918		smaxv h24, v8.8h
-#   v24: 0x000000000000000000000000000011e3
+#            v24: 0x000000000000000000000000000011e3
 0x~~~~~~~~~~~~~~~~  4eb0aa03		smaxv s3, v16.4s
-#    v3: 0x0000000000000000000000000000000c
+#             v3: 0x0000000000000000000000000000000c
 0x~~~~~~~~~~~~~~~~  4e326d18		smin v24.16b, v8.16b, v18.16b
-#   v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
+#            v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
 0x~~~~~~~~~~~~~~~~  0eb76d1d		smin v29.2s, v8.2s, v23.2s
-#   v29: 0x0000000000000000c7e811e389f8f7c4
+#            v29: 0x0000000000000000c7e811e389f8f7c4
 0x~~~~~~~~~~~~~~~~  0e756d66		smin v6.4h, v11.4h, v21.4h
-#    v6: 0x00000000000000005891000062d00000
+#             v6: 0x00000000000000005891000062d00000
 0x~~~~~~~~~~~~~~~~  4eaf6ef8		smin v24.4s, v23.4s, v15.4s
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e246e08		smin v8.8b, v16.8b, v4.8b
-#    v8: 0x0000000000000000000000000000000c
+#             v8: 0x0000000000000000000000000000000c
 0x~~~~~~~~~~~~~~~~  4e6a6c2c		smin v12.8h, v1.8h, v10.8h
-#   v12: 0x0000000000000000ffd9c5ff00000090
+#            v12: 0x0000000000000000ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  4e3cae4d		sminp v13.16b, v18.16b, v28.16b
-#   v13: 0x00000000ffffffff0000e6c3ff00d000
+#            v13: 0x00000000ffffffff0000e6c3ff00d000
 0x~~~~~~~~~~~~~~~~  0eb0af96		sminp v22.2s, v28.2s, v16.2s
-#   v22: 0x000000000000000000000000ffffffff
+#            v22: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  0e65ad8f		sminp v15.4h, v12.4h, v5.4h
-#   v15: 0x0000000000000000292608e4c5ff0000
+#            v15: 0x0000000000000000292608e4c5ff0000
 0x~~~~~~~~~~~~~~~~  4ea8ae2f		sminp v15.4s, v17.4s, v8.4s
-#   v15: 0x0000000000000000000000009d2fa76e
+#            v15: 0x0000000000000000000000009d2fa76e
 0x~~~~~~~~~~~~~~~~  0e26ac55		sminp v21.8b, v2.8b, v6.8b
-#   v21: 0x00000000000000009100d000e080c000
+#            v21: 0x00000000000000009100d000e080c000
 0x~~~~~~~~~~~~~~~~  4e66ad95		sminp v21.8h, v12.8h, v6.8h
-#   v21: 0x000000000000000000000000c5ff0000
+#            v21: 0x000000000000000000000000c5ff0000
 0x~~~~~~~~~~~~~~~~  4e31a8c8		sminv b8, v6.16b
-#    v8: 0x00000000000000000000000000000091
+#             v8: 0x00000000000000000000000000000091
 0x~~~~~~~~~~~~~~~~  0e31aa46		sminv b6, v18.8b
-#    v6: 0x000000000000000000000000000000d0
+#             v6: 0x000000000000000000000000000000d0
 0x~~~~~~~~~~~~~~~~  0e71a834		sminv h20, v1.4h
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e71aa27		sminv h7, v17.8h
-#    v7: 0x00000000000000000000000000009d2f
+#             v7: 0x00000000000000000000000000009d2f
 0x~~~~~~~~~~~~~~~~  4eb1a895		sminv s21, v4.4s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eb581d8		smlal v24.2d, v14.2s, v21.2s
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f8e287f		smlal v31.2d, v3.2s, v14.s[2]
-#   v31: 0x00000000000000000000ee1cd8a575fe
+#            v31: 0x00000000000000000000ee1cd8a575fe
 0x~~~~~~~~~~~~~~~~  0e758287		smlal v7.4s, v20.4h, v21.4h
-#    v7: 0x00000000000000000000000000009d2f
+#             v7: 0x00000000000000000000000000009d2f
 0x~~~~~~~~~~~~~~~~  0f792213		smlal v19.4s, v16.4h, v9.h[3]
-#   v19: 0x0000000000000000000000000906ca9b
+#            v19: 0x0000000000000000000000000906ca9b
 0x~~~~~~~~~~~~~~~~  0e2181dd		smlal v29.8h, v14.8b, v1.8b
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
 0x~~~~~~~~~~~~~~~~  4eb0835e		smlal2 v30.2d, v26.4s, v16.4s
-#   v30: 0x00000000000000004700008e700008e4
+#            v30: 0x00000000000000004700008e700008e4
 0x~~~~~~~~~~~~~~~~  4f8123df		smlal2 v31.2d, v30.4s, v1.s[0]
-#   v31: 0x00000000000000000000ee1cd8a575fe
+#            v31: 0x00000000000000000000ee1cd8a575fe
 0x~~~~~~~~~~~~~~~~  4e6380d1		smlal2 v17.4s, v6.8h, v3.8h
-#   v17: 0x00000000000000009d2fa76ed8a575fe
+#            v17: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  4f752beb		smlal2 v11.4s, v31.8h, v5.h[7]
-#   v11: 0x75ff0000275a00005891000062d00000
+#            v11: 0x75ff0000275a00005891000062d00000
 0x~~~~~~~~~~~~~~~~  4e3d821e		smlal2 v30.8h, v16.16b, v29.16b
-#   v30: 0x00000000000000004700008e700008e4
+#            v30: 0x00000000000000004700008e700008e4
 0x~~~~~~~~~~~~~~~~  0eb1a281		smlsl v1.2d, v20.2s, v17.2s
-#    v1: 0x317157c12580003d000023c700005094
+#             v1: 0x317157c12580003d000023c700005094
 0x~~~~~~~~~~~~~~~~  0fa5699d		smlsl v29.2d, v12.2s, v5.s[3]
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
 0x~~~~~~~~~~~~~~~~  0e61a340		smlsl v0.4s, v26.4h, v1.4h
-#    v0: 0x0000000000000000e9783b70c7c032a0
+#             v0: 0x0000000000000000e9783b70c7c032a0
 0x~~~~~~~~~~~~~~~~  0f5668a3		smlsl v3.4s, v5.4h, v6.h[5]
-#    v3: 0x0000000000000000000000000000000c
+#             v3: 0x0000000000000000000000000000000c
 0x~~~~~~~~~~~~~~~~  0e3aa004		smlsl v4.8h, v0.8b, v26.8b
-#    v4: 0x000000000000000003c9f8c001c2e9f0
+#             v4: 0x000000000000000003c9f8c001c2e9f0
 0x~~~~~~~~~~~~~~~~  4ea5a1ce		smlsl2 v14.2d, v14.4s, v5.4s
-#   v14: 0x0000000000000000b5dae012cc3fc326
+#            v14: 0x0000000000000000b5dae012cc3fc326
 0x~~~~~~~~~~~~~~~~  4fa060af		smlsl2 v15.2d, v5.4s, v0.s[1]
-#   v15: 0x0000000000000000f9797b018bdbc6de
+#            v15: 0x0000000000000000f9797b018bdbc6de
 0x~~~~~~~~~~~~~~~~  4e7fa23d		smlsl2 v29.4s, v17.8h, v31.8h
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
 0x~~~~~~~~~~~~~~~~  4f6969e6		smlsl2 v6.4s, v15.8h, v9.h[6]
-#    v6: 0x000000000000000000000000000000d0
+#             v6: 0x000000000000000000000000000000d0
 0x~~~~~~~~~~~~~~~~  4e2fa1fe		smlsl2 v30.8h, v15.16b, v15.16b
-#   v30: 0x00000000000000004700008e700008e4
+#            v30: 0x00000000000000004700008e700008e4
 0x~~~~~~~~~~~~~~~~  0e072cd5		smov w21, v6.b[3]
-#   x21: 0x0000000000000000
+#            w21:         0x00000000
 0x~~~~~~~~~~~~~~~~  0e1e2f4d		smov w13, v26.h[7]
-#   x13: 0x0000000000000000
+#            w13:         0x00000000
 0x~~~~~~~~~~~~~~~~  4e0f2e18		smov x24, v16.b[7]
-#   x24: 0x0000000000000000
+#            x24: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  4e0e2c87		smov x7, v4.h[3]
-#    x7: 0x00000000000003c9
+#             x7: 0x00000000000003c9
 0x~~~~~~~~~~~~~~~~  4e0c2cfd		smov x29, v7.s[1]
-#   x29: 0x0000000000000000
+#            x29: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  0eb1c3a4		smull v4.2d, v29.2s, v17.2s
-#    v4: 0x15a6d000c90fc48aedb876b6692ad888
+#             v4: 0x15a6d000c90fc48aedb876b6692ad888
 0x~~~~~~~~~~~~~~~~  0f86aabe		smull v30.2d, v21.2s, v6.s[2]
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e77c0b7		smull v23.4s, v5.4h, v23.4h
-#   v23: 0x00000000000000000000000000042ae0
+#            v23: 0x00000000000000000000000000042ae0
 0x~~~~~~~~~~~~~~~~  0f52a128		smull v8.4s, v9.4h, v2.h[1]
-#    v8: 0x185dc92015d7004009b45060e2e7be40
+#             v8: 0x185dc92015d7004009b45060e2e7be40
 0x~~~~~~~~~~~~~~~~  0e21c23f		smull v31.8h, v17.8b, v1.8b
-#   v31: 0x00000000f3d5e78200000000249000d8
+#            v31: 0x00000000f3d5e78200000000249000d8
 0x~~~~~~~~~~~~~~~~  4eb7c063		smull2 v3.2d, v3.4s, v23.4s
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4fa6a3af		smull2 v15.2d, v29.4s, v6.s[1]
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7ec293		smull2 v19.4s, v20.8h, v30.8h
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f47a946		smull2 v6.4s, v10.8h, v7.h[4]
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e3bc119		smull2 v25.8h, v8.16b, v27.16b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e2079e3		sqabs b3, b15
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee0792e		sqabs d14, d9
-#   v14: 0x000000000000000062d05891275a8a02
+#            v14: 0x000000000000000062d05891275a8a02
 0x~~~~~~~~~~~~~~~~  5e607b9f		sqabs h31, h28
-#   v31: 0x00000000000000000000000000000001
+#            v31: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  5ea07808		sqabs s8, s0
-#    v8: 0x000000000000000000000000383fcd60
+#             v8: 0x000000000000000000000000383fcd60
 0x~~~~~~~~~~~~~~~~  4e2078ee		sqabs v14.16b, v7.16b
-#   v14: 0x0000000000000000000000000000632f
+#            v14: 0x0000000000000000000000000000632f
 0x~~~~~~~~~~~~~~~~  4ee07a77		sqabs v23.2d, v19.2d
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea07b0a		sqabs v10.2s, v24.2s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e607a7f		sqabs v31.4h, v19.4h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea07817		sqabs v23.4s, v0.4s
-#   v23: 0x00000000000000001687c490383fcd60
+#            v23: 0x00000000000000001687c490383fcd60
 0x~~~~~~~~~~~~~~~~  0e207afd		sqabs v29.8b, v23.8b
-#   v29: 0x000000000000000016793c70383f3360
+#            v29: 0x000000000000000016793c70383f3360
 0x~~~~~~~~~~~~~~~~  4e607ab1		sqabs v17.8h, v21.8h
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e2d0ee9		sqadd b9, b23, b13
-#    v9: 0x00000000000000000000000000000060
+#             v9: 0x00000000000000000000000000000060
 0x~~~~~~~~~~~~~~~~  5efa0f22		sqadd d2, d25, d26
-#    v2: 0x00000000000000000000000011e3f7c4
+#             v2: 0x00000000000000000000000011e3f7c4
 0x~~~~~~~~~~~~~~~~  5e790fa7		sqadd h7, h29, h25
-#    v7: 0x00000000000000000000000000003360
+#             v7: 0x00000000000000000000000000003360
 0x~~~~~~~~~~~~~~~~  5eb80ceb		sqadd s11, s7, s24
-#   v11: 0x00000000000000000000000000003360
+#            v11: 0x00000000000000000000000000003360
 0x~~~~~~~~~~~~~~~~  4e3d0e14		sqadd v20.16b, v16.16b, v29.16b
-#   v20: 0x000000000000000016793c70383f336c
+#            v20: 0x000000000000000016793c70383f336c
 0x~~~~~~~~~~~~~~~~  4efc0fd7		sqadd v23.2d, v30.2d, v28.2d
-#   v23: 0x0000000000000000ffffffffffffffff
+#            v23: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0ea20e68		sqadd v8.2s, v19.2s, v2.2s
-#    v8: 0x00000000000000000000000011e3f7c4
+#             v8: 0x00000000000000000000000011e3f7c4
 0x~~~~~~~~~~~~~~~~  0e7f0d94		sqadd v20.4h, v12.4h, v31.4h
-#   v20: 0x0000000000000000ffd9c5ff00000090
+#            v20: 0x0000000000000000ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  4eb10dee		sqadd v14.4s, v15.4s, v17.4s
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e2d0fa2		sqadd v2.8b, v29.8b, v13.8b
-#    v2: 0x000000000000000016792233373f0360
+#             v2: 0x000000000000000016792233373f0360
 0x~~~~~~~~~~~~~~~~  4e6e0e67		sqadd v7.8h, v19.8h, v14.8h
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ebe90af		sqdmlal d15, s5, s30
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5fa23958		sqdmlal d24, s10, v2.s[3]
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e689269		sqdmlal s9, h19, h8
-#    v9: 0x00000000000000000000000000000060
+#             v9: 0x00000000000000000000000000000060
 0x~~~~~~~~~~~~~~~~  5f7c302e		sqdmlal s14, h1, v12.h[3]
-#   v14: 0x000000000000000000000000ffe772e8
+#            v14: 0x000000000000000000000000ffe772e8
 0x~~~~~~~~~~~~~~~~  0ebf90be		sqdmlal v30.2d, v5.2s, v31.2s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0faa31d9		sqdmlal v25.2d, v14.2s, v10.s[1]
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e709233		sqdmlal v19.4s, v17.4h, v16.4h
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f5830a8		sqdmlal v8.4s, v5.4h, v8.h[1]
-#    v8: 0x0672308605c005640fa6a0001322041c
+#             v8: 0x0672308605c005640fa6a0001322041c
 0x~~~~~~~~~~~~~~~~  4ea392e1		sqdmlal2 v1.2d, v23.4s, v3.4s
-#    v1: 0x317157c12580003d000023c700005094
+#             v1: 0x317157c12580003d000023c700005094
 0x~~~~~~~~~~~~~~~~  4f893013		sqdmlal2 v19.2d, v0.4s, v9.s[0]
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6b92da		sqdmlal2 v26.4s, v22.8h, v11.8h
-#   v26: 0x00000000000000000000000011e3f7c4
+#            v26: 0x00000000000000000000000011e3f7c4
 0x~~~~~~~~~~~~~~~~  4f4d3b86		sqdmlal2 v6.4s, v28.8h, v13.h[4]
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5eb4b3aa		sqdmlsl d10, s29, s20
-#   v10: 0x0000000000000000ffffffc0b8e63400
+#            v10: 0x0000000000000000ffffffc0b8e63400
 0x~~~~~~~~~~~~~~~~  5faa712a		sqdmlsl d10, s9, v10.s[1]
-#   v10: 0x0000000000000000ffffffc0b8e66400
+#            v10: 0x0000000000000000ffffffc0b8e66400
 0x~~~~~~~~~~~~~~~~  5e78b13e		sqdmlsl s30, h9, h24
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f56730d		sqdmlsl s13, h24, v6.h[1]
-#   v13: 0x000000000000000000000000ff00d000
+#            v13: 0x000000000000000000000000ff00d000
 0x~~~~~~~~~~~~~~~~  0eb4b15b		sqdmlsl v27.2d, v10.2s, v20.2s
-#   v27: 0xffffffffece2ff800000004ffccf8000
+#            v27: 0xffffffffece2ff800000004ffccf8000
 0x~~~~~~~~~~~~~~~~  0fa37af7		sqdmlsl v23.2d, v23.2s, v3.s[3]
-#   v23: 0x0000000000000000ffffffffffffffff
+#            v23: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0e7db227		sqdmlsl v7.4s, v17.4h, v29.4h
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f437ab6		sqdmlsl v22.4s, v21.4h, v3.h[4]
-#   v22: 0x000000000000000000000000ffffffff
+#            v22: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  4eb6b0ec		sqdmlsl2 v12.2d, v7.4s, v22.4s
-#   v12: 0x0000000000000000ffd9c5ff00000090
+#            v12: 0x0000000000000000ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  4f887334		sqdmlsl2 v20.2d, v25.4s, v8.s[0]
-#   v20: 0x0000000000000000ffd9c5ff00000090
+#            v20: 0x0000000000000000ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  4e72b359		sqdmlsl2 v25.4s, v26.8h, v18.8h
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f457279		sqdmlsl2 v25.4s, v19.8h, v5.h[0]
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e6cb771		sqdmulh h17, h27, h12
-#   v17: 0x0000000000000000000000000000ff70
+#            v17: 0x0000000000000000000000000000ff70
 0x~~~~~~~~~~~~~~~~  5f4bc0b0		sqdmulh h16, h5, v11.h[0]
-#   v16: 0x00000000000000000000000000000391
+#            v16: 0x00000000000000000000000000000391
 0x~~~~~~~~~~~~~~~~  5eb0b661		sqdmulh s1, s19, s16
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f82c201		sqdmulh s1, s16, v2.s[0]
-#    v1: 0x0000000000000000000000000000018a
+#             v1: 0x0000000000000000000000000000018a
 0x~~~~~~~~~~~~~~~~  0ea8b43c		sqdmulh v28.2s, v1.2s, v8.2s
-#   v28: 0x0000000000000000000000000000003a
+#            v28: 0x0000000000000000000000000000003a
 0x~~~~~~~~~~~~~~~~  0f83c11c		sqdmulh v28.2s, v8.2s, v3.s[0]
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e65b72b		sqdmulh v11.4h, v25.4h, v5.4h
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f58c9de		sqdmulh v30.4h, v14.4h, v8.h[5]
-#   v30: 0x000000000000000000000000fffe0529
+#            v30: 0x000000000000000000000000fffe0529
 0x~~~~~~~~~~~~~~~~  4eadb6b9		sqdmulh v25.4s, v21.4s, v13.4s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4faac857		sqdmulh v23.4s, v2.4s, v10.s[3]
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e77b4ba		sqdmulh v26.8h, v5.8h, v23.8h
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f74c2c4		sqdmulh v4.8h, v22.8h, v4.h[3]
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ebad059		sqdmull d25, s2, s26
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5fa5b1de		sqdmull d30, s14, v5.s[1]
-#   v30: 0x0000000000000000fff726ef1b546ce0
+#            v30: 0x0000000000000000fff726ef1b546ce0
 0x~~~~~~~~~~~~~~~~  5e6bd25d		sqdmull s29, h18, h11
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f67b9ab		sqdmull s11, h13, v7.h[6]
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea8d137		sqdmull v23.2d, v9.2s, v8.2s
-#   v23: 0x00000000000000000000000e59831500
+#            v23: 0x00000000000000000000000e59831500
 0x~~~~~~~~~~~~~~~~  0fa4b3b2		sqdmull v18.2d, v29.2s, v4.s[1]
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e67d311		sqdmull v17.4s, v24.4h, v7.4h
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f55b1e8		sqdmull v8.4s, v15.4h, v5.h[1]
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea2d1dc		sqdmull2 v28.2d, v14.4s, v2.4s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f8dbb01		sqdmull2 v1.2d, v24.4s, v13.s[2]
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7fd22b		sqdmull2 v11.4s, v17.8h, v31.8h
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f7bb281		sqdmull2 v1.4s, v20.8h, v11.h[3]
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e207802		sqneg b2, b0
-#    v2: 0x00000000000000000000000000000060
+#             v2: 0x00000000000000000000000000000060
 0x~~~~~~~~~~~~~~~~  7ee07858		sqneg d24, d2
-#   v24: 0x0000000000000000ffffffffffffffa0
+#            v24: 0x0000000000000000ffffffffffffffa0
 0x~~~~~~~~~~~~~~~~  7e60787d		sqneg h29, h3
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea07924		sqneg s4, s9
-#    v4: 0x000000000000000000000000ffffffa0
+#             v4: 0x000000000000000000000000ffffffa0
 0x~~~~~~~~~~~~~~~~  6e207bae		sqneg v14.16b, v29.16b
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee0799e		sqneg v30.2d, v12.2d
-#   v30: 0x000000000000000000263a00ffffff70
+#            v30: 0x000000000000000000263a00ffffff70
 0x~~~~~~~~~~~~~~~~  2ea07b5c		sqneg v28.2s, v26.2s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e607884		sqneg v4.4h, v4.4h
-#    v4: 0x00000000000000000000000000010060
+#             v4: 0x00000000000000000000000000010060
 0x~~~~~~~~~~~~~~~~  6ea07909		sqneg v9.4s, v8.4s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e207a94		sqneg v20.8b, v20.8b
-#   v20: 0x000000000000000001273b0100000070
+#            v20: 0x000000000000000001273b0100000070
 0x~~~~~~~~~~~~~~~~  6e60795b		sqneg v27.8h, v10.8h
-#   v27: 0x000000000000000000010040471a9c00
+#            v27: 0x000000000000000000010040471a9c00
 0x~~~~~~~~~~~~~~~~  7e60b707		sqrdmulh h7, h24, h0
-#    v7: 0x0000000000000000000000000000ffda
+#             v7: 0x0000000000000000000000000000ffda
 0x~~~~~~~~~~~~~~~~  5f64d86e		sqrdmulh h14, h3, v4.h[6]
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eb8b67b		sqrdmulh s27, s19, s24
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f84d2bf		sqrdmulh s31, s21, v4.s[0]
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea1b732		sqrdmulh v18.2s, v25.2s, v1.2s
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f8dd0b6		sqrdmulh v22.2s, v5.2s, v13.s[0]
-#   v22: 0x0000000000000000ffa408a4ff20b5ee
+#            v22: 0x0000000000000000ffa408a4ff20b5ee
 0x~~~~~~~~~~~~~~~~  2e69b716		sqrdmulh v22.4h, v24.4h, v9.4h
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f6cd84d		sqrdmulh v13.4h, v2.4h, v12.h[6]
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea2b769		sqrdmulh v9.4s, v27.4s, v2.4s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4fa7d2e3		sqrdmulh v3.4s, v23.4s, v7.s[1]
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e67b402		sqrdmulh v2.8h, v0.8h, v7.8h
-#    v2: 0x0000000000000000000000000000fff1
+#             v2: 0x0000000000000000000000000000fff1
 0x~~~~~~~~~~~~~~~~  4f68d130		sqrdmulh v16.8h, v9.8h, v8.h[2]
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e2d5ea8		sqrshl b8, b21, b13
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ef45cfd		sqrshl d29, d7, d20
-#   v29: 0x00000000000000007fffffffffffffff
+#            v29: 0x00000000000000007fffffffffffffff
 0x~~~~~~~~~~~~~~~~  5e6a5ddc		sqrshl h28, h14, h10
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea25e5a		sqrshl s26, s18, s2
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e3a5ff2		sqrshl v18.16b, v31.16b, v26.16b
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee05c9c		sqrshl v28.2d, v4.2d, v0.2d
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea05cc3		sqrshl v3.2s, v6.2s, v0.2s
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e765e41		sqrshl v1.4h, v18.4h, v22.4h
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea75f30		sqrshl v16.4s, v25.4s, v7.4s
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e255ea0		sqrshl v0.8b, v21.8b, v5.8b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e685e7e		sqrshl v30.8h, v19.8h, v8.8h
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f0c9ea6		sqrshrn b6, h21, #4
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f159e2e		sqrshrn h14, s17, #11
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f369f79		sqrshrn s25, d27, #10
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f2e9da6		sqrshrn v6.2s, v13.2d, #18
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f119d25		sqrshrn v5.4h, v9.4s, #15
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0f9d93		sqrshrn v19.8b, v12.8h, #1
-#   v19: 0x000000000000000000000000ed800048
+#            v19: 0x000000000000000000000000ed800048
 0x~~~~~~~~~~~~~~~~  4f099eb3		sqrshrn2 v19.16b, v21.8h, #7
-#   v19: 0x000000000000000000000000ed800048
+#            v19: 0x000000000000000000000000ed800048
 0x~~~~~~~~~~~~~~~~  4f339f1d		sqrshrn2 v29.4s, v24.2d, #13
-#   v29: 0x00000000000000007fffffffffffffff
+#            v29: 0x00000000000000007fffffffffffffff
 0x~~~~~~~~~~~~~~~~  4f169c4c		sqrshrn2 v12.8h, v2.4s, #10
-#   v12: 0x0000000000000040ffd9c5ff00000090
+#            v12: 0x0000000000000040ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  7f0b8d30		sqrshrun b16, h9, #5
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f118f03		sqrshrun h3, s24, #15
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f388e50		sqrshrun s16, d18, #8
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f388efc		sqrshrun v28.2s, v23.2d, #8
-#   v28: 0x0000000000000000000000000e598315
+#            v28: 0x0000000000000000000000000e598315
 0x~~~~~~~~~~~~~~~~  2f168f3f		sqrshrun v31.4h, v25.4s, #10
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0e8ef3		sqrshrun v19.8b, v23.8h, #2
-#   v19: 0x0000000000000000000000000004ffff
+#            v19: 0x0000000000000000000000000004ffff
 0x~~~~~~~~~~~~~~~~  6f088c18		sqrshrun2 v24.16b, v0.8h, #8
-#   v24: 0x0000000000000000ffffffffffffffa0
+#            v24: 0x0000000000000000ffffffffffffffa0
 0x~~~~~~~~~~~~~~~~  6f298c36		sqrshrun2 v22.4s, v1.2d, #23
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f138ebc		sqrshrun2 v28.8h, v21.4s, #13
-#   v28: 0x0000000000000000000000000e598315
+#            v28: 0x0000000000000000000000000e598315
 0x~~~~~~~~~~~~~~~~  5e284ea6		sqshl b6, b21, b8
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f0a774b		sqshl b11, b26, #2
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee44c1d		sqshl d29, d0, d4
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f6374f5		sqshl d21, d7, #35
-#   v21: 0x00000000000000000007fed000000000
+#            v21: 0x00000000000000000007fed000000000
 0x~~~~~~~~~~~~~~~~  5e714f34		sqshl h20, h25, h17
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f187414		sqshl h20, h0, #8
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea44dbd		sqshl s29, s13, s4
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f34756a		sqshl s10, s11, #20
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e3c4e48		sqshl v8.16b, v18.16b, v28.16b
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0a77bd		sqshl v29.16b, v29.16b, #2
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ef04fe8		sqshl v8.2d, v31.2d, v16.2d
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f6575c7		sqshl v7.2d, v14.2d, #37
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea74f40		sqshl v0.2s, v26.2s, v7.2s
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f337565		sqshl v5.2s, v11.2s, #19
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e604fcb		sqshl v11.4h, v30.4h, v0.4h
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f177641		sqshl v1.4h, v18.4h, #7
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ebe4c76		sqshl v22.4s, v3.4s, v30.4s
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f3c75f0		sqshl v16.4s, v15.4s, #28
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e394f86		sqshl v6.8b, v28.8b, v25.8b
-#    v6: 0x0000000000000000000000000e598315
+#             v6: 0x0000000000000000000000000e598315
 0x~~~~~~~~~~~~~~~~  0f0875e0		sqshl v0.8b, v15.8b, #0
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7e4e06		sqshl v6.8h, v16.8h, v30.8h
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f1e7683		sqshl v3.8h, v20.8h, #14
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f0e65cd		sqshlu b13, b14, #6
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f6c6600		sqshlu d0, d16, #44
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f1f67a5		sqshlu h5, h29, #15
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f2d651d		sqshlu s29, s8, #13
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0a669b		sqshlu v27.16b, v20.16b, #2
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f4b6598		sqshlu v24.2d, v12.2d, #11
-#   v24: 0x00000000000200000000000000000000
+#            v24: 0x00000000000200000000000000000000
 0x~~~~~~~~~~~~~~~~  2f36666c		sqshlu v12.2s, v19.2s, #22
-#   v12: 0x000000000000000000000000ffffffff
+#            v12: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  2f1b6588		sqshlu v8.4h, v12.4h, #11
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f286472		sqshlu v18.4s, v3.4s, #8
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f096543		sqshlu v3.8b, v10.8b, #1
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f14671e		sqshlu v30.8h, v24.8h, #4
-#   v30: 0x00000000002000000000000000000000
+#            v30: 0x00000000002000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f0f9781		sqshrn b1, h28, #1
-#    v1: 0x00000000000000000000000000000080
+#             v1: 0x00000000000000000000000000000080
 0x~~~~~~~~~~~~~~~~  5f1694ff		sqshrn h31, s7, #10
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f289544		sqshrn s4, d10, #24
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f23942a		sqshrn v10.2s, v1.2d, #29
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f1295a3		sqshrn v3.4h, v13.4s, #14
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0994db		sqshrn v27.8b, v6.8h, #7
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0f96ee		sqshrn2 v14.16b, v23.8h, #1
-#   v14: 0x0000000000077f7f0000000000000000
+#            v14: 0x0000000000077f7f0000000000000000
 0x~~~~~~~~~~~~~~~~  4f2596d9		sqshrn2 v25.4s, v22.2d, #27
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f16959f		sqshrn2 v31.8h, v12.4s, #10
-#   v31: 0x000000000000ffff0000000000000000
+#            v31: 0x000000000000ffff0000000000000000
 0x~~~~~~~~~~~~~~~~  7f0f8409		sqshrun b9, h0, #1
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f1984cb		sqshrun h11, s6, #7
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f33858d		sqshrun s13, d12, #13
-#   v13: 0x0000000000000000000000000007ffff
+#            v13: 0x0000000000000000000000000007ffff
 0x~~~~~~~~~~~~~~~~  2f3f87ca		sqshrun v10.2s, v30.2d, #1
-#   v10: 0x00000000000000000010000000000000
+#            v10: 0x00000000000000000010000000000000
 0x~~~~~~~~~~~~~~~~  2f15847f		sqshrun v31.4h, v3.4s, #11
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0887dc		sqshrun v28.8b, v30.8h, #8
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0d8770		sqshrun2 v16.16b, v27.8h, #3
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f2e85db		sqshrun2 v27.4s, v14.2d, #18
-#   v27: 0x00000001000000000000000000000000
+#            v27: 0x00000001000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1f85d7		sqshrun2 v23.8h, v14.4s, #1
-#   v23: 0x0000ffff000000000000000e59831500
+#            v23: 0x0000ffff000000000000000e59831500
 0x~~~~~~~~~~~~~~~~  5e2b2fb3		sqsub b19, b29, b11
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee62ff5		sqsub d21, d31, d6
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e732d52		sqsub h18, h10, h19
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea02ca6		sqsub s6, s5, s0
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e202ed5		sqsub v21.16b, v22.16b, v0.16b
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ef12d56		sqsub v22.2d, v10.2d, v17.2d
-#   v22: 0x00000000000000000010000000000000
+#            v22: 0x00000000000000000010000000000000
 0x~~~~~~~~~~~~~~~~  0ea22ea8		sqsub v8.2s, v21.2s, v2.2s
-#    v8: 0x000000000000000000000000ffff000f
+#             v8: 0x000000000000000000000000ffff000f
 0x~~~~~~~~~~~~~~~~  0e7b2f32		sqsub v18.4h, v25.4h, v27.4h
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea62c6d		sqsub v13.4s, v3.4s, v6.4s
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e302fbc		sqsub v28.8b, v29.8b, v16.8b
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6a2cd1		sqsub v17.8h, v6.8h, v10.8h
-#   v17: 0x0000000000000000fff0000000000000
+#            v17: 0x0000000000000000fff0000000000000
 0x~~~~~~~~~~~~~~~~  5e214b5b		sqxtn b27, h26
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e614971		sqxtn h17, s11
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea14bf6		sqxtn s22, d31
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea148ba		sqxtn v26.2s, v5.2d
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e6148ed		sqxtn v13.4h, v7.4s
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e214a73		sqxtn v19.8b, v19.8h
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e214873		sqxtn2 v19.16b, v3.8h
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea14837		sqxtn2 v23.4s, v1.2d
-#   v23: 0x00000000000000800000000e59831500
+#            v23: 0x00000000000000800000000e59831500
 0x~~~~~~~~~~~~~~~~  4e61486d		sqxtn2 v13.8h, v3.4s
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e21293a		sqxtun b26, h9
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e612993		sqxtun h19, s12
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea128c3		sqxtun s3, d6
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea12b5d		sqxtun v29.2s, v26.2d
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e61295a		sqxtun v26.4h, v10.4s
-#   v26: 0x000000000000000000000000ffff0000
+#            v26: 0x000000000000000000000000ffff0000
 0x~~~~~~~~~~~~~~~~  2e212ba7		sqxtun v7.8b, v29.8h
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e2129d5		sqxtun2 v21.16b, v14.8h
-#   v21: 0x000007ff000000000000000000000000
+#            v21: 0x000007ff000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea129f8		sqxtun2 v24.4s, v15.2d
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e61283e		sqxtun2 v30.8h, v1.4s
-#   v30: 0x00000000000000800000000000000000
+#            v30: 0x00000000000000800000000000000000
 0x~~~~~~~~~~~~~~~~  4e2f1635		srhadd v21.16b, v17.16b, v15.16b
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ebd16bc		srhadd v28.2s, v21.2s, v29.2s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e7e1429		srhadd v9.4h, v1.4h, v30.4h
-#    v9: 0x00000000000000000000000000000040
+#             v9: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  4ea21418		srhadd v24.4s, v0.4s, v2.4s
-#   v24: 0x00000000000000000000000000007ff9
+#            v24: 0x00000000000000000000000000007ff9
 0x~~~~~~~~~~~~~~~~  0e2f1626		srhadd v6.8b, v17.8b, v15.8b
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7514e5		srhadd v5.8h, v7.8h, v21.8h
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f4f45ce		sri d14, d14, #49
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0c4517		sri v23.16b, v8.16b, #4
-#   v23: 0x0000000000000080000000005f8f1000
+#            v23: 0x0000000000000080000000005f8f1000
 0x~~~~~~~~~~~~~~~~  6f6c45b4		sri v20.2d, v13.2d, #20
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f284450		sri v16.2s, v2.2s, #24
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f1546e5		sri v5.4h, v23.4h, #11
-#    v5: 0x000000000000000000000000000b0002
+#             v5: 0x000000000000000000000000000b0002
 0x~~~~~~~~~~~~~~~~  6f2945fb		sri v27.4s, v15.4s, #23
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0c47b3		sri v19.8b, v29.8b, #4
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1d47a7		sri v7.8h, v29.8h, #3
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5efa5522		srshl d2, d9, d26
-#    v2: 0x00000000000000000000000000000040
+#             v2: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  4e2b563d		srshl v29.16b, v17.16b, v11.16b
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee455e8		srshl v8.2d, v15.2d, v4.2d
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea85639		srshl v25.2s, v17.2s, v8.2s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e6754f3		srshl v19.4h, v7.4h, v7.4h
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eb1544d		srshl v13.4s, v2.4s, v17.4s
-#   v13: 0x00000000000000000000000000000040
+#            v13: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  0e3554d6		srshl v22.8b, v6.8b, v21.8b
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e64562a		srshl v10.8h, v17.8h, v4.8h
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f532655		srshr d21, d18, #45
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f092563		srshr v3.16b, v11.16b, #7
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f4b2755		srshr v21.2d, v26.2d, #53
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f2424ab		srshr v11.2s, v5.2s, #28
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f142647		srshr v7.4h, v18.4h, #12
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f222467		srshr v7.4s, v3.4s, #30
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0a244e		srshr v14.8b, v2.8b, #6
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  4f1d2695		srshr v21.8h, v20.8h, #3
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f4137d5		srsra d21, d30, #63
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0a37db		srsra v27.16b, v30.16b, #6
-#   v27: 0x00000000000000fe0000000000000000
+#            v27: 0x00000000000000fe0000000000000000
 0x~~~~~~~~~~~~~~~~  4f653594		srsra v20.2d, v12.2d, #27
-#   v20: 0x00000000000000000000000000000020
+#            v20: 0x00000000000000000000000000000020
 0x~~~~~~~~~~~~~~~~  0f3b3620		srsra v0.2s, v17.2s, #5
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f11360e		srsra v14.4h, v16.4h, #15
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  4f2c3472		srsra v18.4s, v3.4s, #20
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0f3435		srsra v21.8b, v1.8b, #1
-#   v21: 0x000000000000000000000000000000c0
+#            v21: 0x000000000000000000000000000000c0
 0x~~~~~~~~~~~~~~~~  4f1e373f		srsra v31.8h, v25.8h, #2
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee945a1		sshl d1, d13, d9
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e2f47f1		sshl v17.16b, v31.16b, v15.16b
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee0460d		sshl v13.2d, v16.2d, v0.2d
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eb644e0		sshl v0.2s, v7.2s, v22.2s
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e644677		sshl v23.4h, v19.4h, v4.4h
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eab44a5		sshl v5.4s, v5.4s, v11.4s
-#    v5: 0x000000000000000000000000000b0002
+#             v5: 0x000000000000000000000000000b0002
 0x~~~~~~~~~~~~~~~~  0e274777		sshl v23.8b, v27.8b, v7.8b
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e65455d		sshl v29.8h, v10.8h, v5.8h
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f37a440		sshll v0.2d, v2.2s, #23
-#    v0: 0x00000000000000000000000020000000
+#             v0: 0x00000000000000000000000020000000
 0x~~~~~~~~~~~~~~~~  0f18a50b		sshll v11.4s, v8.4h, #8
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f09a7a4		sshll v4.8h, v29.8b, #1
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f2ea48a		sshll2 v10.2d, v4.4s, #14
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f16a7fa		sshll2 v26.4s, v31.8h, #6
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0ca743		sshll2 v3.8h, v26.16b, #4
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f6c06b3		sshr d19, d21, #20
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0b06ef		sshr v15.16b, v23.16b, #5
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f5a05d1		sshr v17.2d, v14.2d, #38
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f2907a3		sshr v3.2s, v29.2s, #23
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f1c0777		sshr v23.4h, v27.4h, #4
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f3c047c		sshr v28.4s, v3.4s, #4
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0a044e		sshr v14.8b, v2.8b, #6
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  4f1a0503		sshr v3.8h, v8.8h, #6
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f54178c		ssra d12, d28, #44
-#   v12: 0x000000000000000000000000ffffffff
+#            v12: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  4f0c17fd		ssra v29.16b, v31.16b, #4
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f681403		ssra v3.2d, v0.2d, #24
-#    v3: 0x00000000000000000000000000000020
+#             v3: 0x00000000000000000000000000000020
 0x~~~~~~~~~~~~~~~~  0f3a178e		ssra v14.2s, v28.2s, #6
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  0f191512		ssra v18.4h, v8.4h, #7
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f2815df		ssra v31.4s, v14.4s, #24
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0b175c		ssra v28.8b, v26.8b, #5
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f121529		ssra v9.8h, v9.8h, #14
-#    v9: 0x00000000000000000000000000000040
+#             v9: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  0ea321cd		ssubl v13.2d, v14.2s, v3.2s
-#   v13: 0x0000000000000000ffffffffffffffe1
+#            v13: 0x0000000000000000ffffffffffffffe1
 0x~~~~~~~~~~~~~~~~  0e682205		ssubl v5.4s, v16.4h, v8.4h
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e262380		ssubl v0.8h, v28.8b, v6.8b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eb921a5		ssubl2 v5.2d, v13.4s, v25.4s
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7121e3		ssubl2 v3.4s, v15.8h, v17.8h
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e2e21ef		ssubl2 v15.8h, v15.16b, v14.16b
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eba32f9		ssubw v25.2d, v23.2d, v26.2s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e783255		ssubw v21.4s, v18.4s, v24.4h
-#   v21: 0x000000000000000000000000ffff8007
+#            v21: 0x000000000000000000000000ffff8007
 0x~~~~~~~~~~~~~~~~  0e2332de		ssubw v30.8h, v22.8h, v3.8b
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ebc3310		ssubw2 v16.2d, v24.2d, v28.4s
-#   v16: 0x00000000000000000000000000007ff9
+#            v16: 0x00000000000000000000000000007ff9
 0x~~~~~~~~~~~~~~~~  4e6f317f		ssubw2 v31.4s, v11.4s, v15.8h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e303104		ssubw2 v4.8h, v8.8h, v16.16b
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4c002012		st1 {v18.16b, v19.16b, v20.16b, v21.16b}, [x0]
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82202a		st1 {v10.16b, v11.16b, v12.16b, v13.16b}, [x1], x2
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f203b		st1 {v27.16b, v28.16b, v29.16b, v30.16b}, [x1], #64
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c006010		st1 {v16.16b, v17.16b, v18.16b}, [x0]
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c826035		st1 {v21.16b, v22.16b, v23.16b}, [x1], x2
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f6029		st1 {v9.16b, v10.16b, v11.16b}, [x1], #48
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00a007		st1 {v7.16b, v8.16b}, [x0]
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82a03a		st1 {v26.16b, v27.16b}, [x1], x2
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9fa036		st1 {v22.16b, v23.16b}, [x1], #32
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c007017		st1 {v23.16b}, [x0]
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82703c		st1 {v28.16b}, [x1], x2
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f7022		st1 {v2.16b}, [x1], #16
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c002c1d		st1 {v29.1d, v30.1d, v31.1d, v0.1d}, [x0]
-#   v29:                 0x0000000000000000 (d29: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c822c2c		st1 {v12.1d, v13.1d, v14.1d, v15.1d}, [x1], x2
-#   v12:                 0x00000000ffffffff (d12: 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (2.122e-314)
+#                                                  ╙─ 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f2c3e		st1 {v30.1d, v31.1d, v0.1d, v1.1d}, [x1], #32
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c006c10		st1 {v16.1d, v17.1d, v18.1d}, [x0]
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (d17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c826c23		st1 {v3.1d, v4.1d, v5.1d}, [x1], x2
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f6c2e		st1 {v14.1d, v15.1d, v16.1d}, [x1], #24
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00ac12		st1 {v18.1d, v19.1d}, [x0]
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 (d19: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82ac25		st1 {v5.1d, v6.1d}, [x1], x2
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9fac22		st1 {v2.1d, v3.1d}, [x1], #16
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (3.162e-322)
+#                                                  ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c007c04		st1 {v4.1d}, [x0]
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c827c3b		st1 {v27.1d}, [x1], x2
-#   v27:                 0x0000000000000000 (d27: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f7c37		st1 {v23.1d}, [x1], #8
-#   v23:                 0x0000000000000000 (d23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c002c02		st1 {v2.2d, v3.2d, v4.2d, v5.2d}, [x0]
-#    v2: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#                                  ║               ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c822c36		st1 {v22.2d, v23.2d, v24.2d, v25.2d}, [x1], x2
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f2c3c		st1 {v28.2d, v29.2d, v30.2d, v31.2d}, [x1], #64
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c006c11		st1 {v17.2d, v18.2d, v19.2d}, [x0]
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c826c30		st1 {v16.2d, v17.2d, v18.2d}, [x1], x2
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f6c36		st1 {v22.2d, v23.2d, v24.2d}, [x1], #48
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00ac15		st1 {v21.2d, v22.2d}, [x0]
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82ac26		st1 {v6.2d, v7.2d}, [x1], x2
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9fac3b		st1 {v27.2d, v28.2d}, [x1], #32
-#   v27: 0x00000000000000fe0000000000000000 (1.25493e-321, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (1.255e-321, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000000000fe -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c007c15		st1 {v21.2d}, [x0]
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c827c3d		st1 {v29.2d}, [x1], x2
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f7c34		st1 {v20.2d}, [x1], #16
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c002816		st1 {v22.2s, v23.2s, v24.2s, v25.2s}, [x0]
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c822828		st1 {v8.2s, v9.2s, v10.2s, v11.2s}, [x1], x2
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f282f		st1 {v15.2s, v16.2s, v17.2s, v18.2s}, [x1], #32
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c006802		st1 {v2.2s, v3.2s, v4.2s}, [x0]
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c826837		st1 {v23.2s, v24.2s, v25.2s}, [x1], x2
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f6827		st1 {v7.2s, v8.2s, v9.2s}, [x1], #24
-#    v7:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00a81c		st1 {v28.2s, v29.2s}, [x0]
-#   v28:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82a83d		st1 {v29.2s, v30.2s}, [x1], x2
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9fa837		st1 {v23.2s, v24.2s}, [x1], #16
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c007806		st1 {v6.2s}, [x0]
-#    v6:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82782b		st1 {v11.2s}, [x1], x2
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f7831		st1 {v17.2s}, [x1], #8
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c002406		st1 {v6.4h, v7.4h, v8.4h, v9.4h}, [x0]
-#    v6:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c822429		st1 {v9.4h, v10.4h, v11.4h, v12.4h}, [x1], x2
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f2439		st1 {v25.4h, v26.4h, v27.4h, v28.4h}, [x1], #32
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00640b		st1 {v11.4h, v12.4h, v13.4h}, [x0]
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82642a		st1 {v10.4h, v11.4h, v12.4h}, [x1], x2
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f642c		st1 {v12.4h, v13.4h, v14.4h}, [x1], #24
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00a40d		st1 {v13.4h, v14.4h}, [x0]
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82a42f		st1 {v15.4h, v16.4h}, [x1], x2
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9fa435		st1 {v21.4h, v22.4h}, [x1], #16
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c007410		st1 {v16.4h}, [x0]
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c827428		st1 {v8.4h}, [x1], x2
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f743e		st1 {v30.4h}, [x1], #8
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c002803		st1 {v3.4s, v4.4s, v5.4s, v6.4s}, [x0]
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c822839		st1 {v25.4s, v26.4s, v27.4s, v28.4s}, [x1], x2
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f2825		st1 {v5.4s, v6.4s, v7.4s, v8.4s}, [x1], #64
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00681f		st1 {v31.4s, v0.4s, v1.4s}, [x0]
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82683e		st1 {v30.4s, v31.4s, v0.4s}, [x1], x2
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f6826		st1 {v6.4s, v7.4s, v8.4s}, [x1], #48
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00a811		st1 {v17.4s, v18.4s}, [x0]
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82a83f		st1 {v31.4s, v0.4s}, [x1], x2
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9fa821		st1 {v1.4s, v2.4s}, [x1], #32
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00781a		st1 {v26.4s}, [x0]
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82782f		st1 {v15.4s}, [x1], x2
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f782d		st1 {v13.4s}, [x1], #16
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#                          ║       ║       ║       ╙─ 0xffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00201a		st1 {v26.8b, v27.8b, v28.8b, v29.8b}, [x0]
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82202a		st1 {v10.8b, v11.8b, v12.8b, v13.8b}, [x1], x2
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f202f		st1 {v15.8b, v16.8b, v17.8b, v18.8b}, [x1], #32
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c006013		st1 {v19.8b, v20.8b, v21.8b}, [x0]
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v20<63:0>:                 0x0000000000000020
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82603f		st1 {v31.8b, v0.8b, v1.8b}, [x1], x2
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f6029		st1 {v9.8b, v10.8b, v11.8b}, [x1], #24
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00a00c		st1 {v12.8b, v13.8b}, [x0]
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82a022		st1 {v2.8b, v3.8b}, [x1], x2
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9fa020		st1 {v0.8b, v1.8b}, [x1], #16
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c007010		st1 {v16.8b}, [x0]
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c827039		st1 {v25.8b}, [x1], x2
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f703f		st1 {v31.8b}, [x1], #8
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c002404		st1 {v4.8h, v5.8h, v6.8h, v7.8h}, [x0]
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c822423		st1 {v3.8h, v4.8h, v5.8h, v6.8h}, [x1], x2
-#    v3: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f243a		st1 {v26.8h, v27.8h, v28.8h, v29.8h}, [x1], #64
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00640a		st1 {v10.8h, v11.8h, v12.8h}, [x0]
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c826435		st1 {v21.8h, v22.8h, v23.8h}, [x1], x2
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f6432		st1 {v18.8h, v19.8h, v20.8h}, [x1], #48
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00a41a		st1 {v26.8h, v27.8h}, [x0]
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82a438		st1 {v24.8h, v25.8h}, [x1], x2
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9fa431		st1 {v17.8h, v18.8h}, [x1], #32
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00741d		st1 {v29.8h}, [x0]
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c827433		st1 {v19.8h}, [x1], x2
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f7437		st1 {v23.8h}, [x1], #16
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d001c13		st1 {v19.b}[15], [x0]
-#   v19: 0x00                               -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d820439		st1 {v25.b}[9], [x1], x2
-#   v25:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                                ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d9f0024		st1 {v4.b}[8], [x1], #1
-#    v4:               0x00                 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d00840d		st1 {v13.d}[0], [x0]
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d82843e		st1 {v30.d}[0], [x1], x2
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d9f8423		st1 {v3.d}[0], [x1], #8
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d004016		st1 {v22.h}[0], [x0]
-#   v22:                             0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d82583f		st1 {v31.h}[7], [x1], x2
-#   v31: 0x0000                             -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d9f5837		st1 {v23.h}[3], [x1], #2
-#   v23:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d008000		st1 {v0.s}[0], [x0]
-#    v0:                         0x00000000 (s0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d82902b		st1 {v11.s}[3], [x1], x2
-#   v11: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d9f9038		st1 {v24.s}[3], [x1], #4
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c008007		st2 {v7.16b, v8.16b}, [x0]
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c828025		st2 {v5.16b, v6.16b}, [x1], x2
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f8032		st2 {v18.16b, v19.16b}, [x1], #32
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c008c0e		st2 {v14.2d, v15.2d}, [x0]
-#   v14: 0x00000000000000000000000000000001 (0.00000, 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 4.941e-324)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c828c27		st2 {v7.2d, v8.2d}, [x1], x2
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f8c38		st2 {v24.2d, v25.2d}, [x1], #32
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c008816		st2 {v22.2s, v23.2s}, [x0]
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c828824		st2 {v4.2s, v5.2s}, [x1], x2
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#       v5<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f8822		st2 {v2.2s, v3.2s}, [x1], #16
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c008417		st2 {v23.4h, v24.4h}, [x0]
-#   v23:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c828428		st2 {v8.4h, v9.4h}, [x1], x2
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f8427		st2 {v7.4h, v8.4h}, [x1], #16
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c008811		st2 {v17.4s, v18.4s}, [x0]
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c828826		st2 {v6.4s, v7.4s}, [x1], x2
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f883a		st2 {v26.4s, v27.4s}, [x1], #32
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00801f		st2 {v31.8b, v0.8b}, [x0]
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c828020		st2 {v0.8b, v1.8b}, [x1], x2
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f8035		st2 {v21.8b, v22.8b}, [x1], #16
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c008407		st2 {v7.8h, v8.8h}, [x0]
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c828436		st2 {v22.8h, v23.8h}, [x1], x2
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f8424		st2 {v4.8h, v5.8h}, [x1], #32
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d201c08		st2 {v8.b, v9.b}[15], [x0]
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da21c28		st2 {v8.b, v9.b}[15], [x1], x2
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dbf1027		st2 {v7.b, v8.b}[4], [x1], #2
-#    v7:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#    v8:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                                          ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d208419		st2 {v25.d, v26.d}[0], [x0]
-#   v25:                 0x0000000000000000 (d25: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (d26: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da28431		st2 {v17.d, v18.d}[1], [x1], x2
-#   v17: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dbf8423		st2 {v3.d, v4.d}[1], [x1], #16
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d205804		st2 {v4.h, v5.h}[3], [x0]
-#    v4:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da24820		st2 {v0.h, v1.h}[5], [x1], x2
-#    v0:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dbf5036		st2 {v22.h, v23.h}[2], [x1], #4
-#   v22:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v23:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d20900e		st2 {v14.s, v15.s}[3], [x0]
-#   v14: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da29037		st2 {v23.s, v24.s}[3], [x1], x2
-#   v23: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dbf8020		st2 {v0.s, v1.s}[2], [x1], #8
-#    v0:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00401a		st3 {v26.16b, v27.16b, v28.16b}, [x0]
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'fe'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c824035		st3 {v21.16b, v22.16b, v23.16b}, [x1], x2
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f4038		st3 {v24.16b, v25.16b, v26.16b}, [x1], #48
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c004c11		st3 {v17.2d, v18.2d, v19.2d}, [x0]
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c824c37		st3 {v23.2d, v24.2d, v25.2d}, [x1], x2
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f4c2a		st3 {v10.2d, v11.2d, v12.2d}, [x1], #48
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c004809		st3 {v9.2s, v10.2s, v11.2s}, [x0]
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82482d		st3 {v13.2s, v14.2s, v15.2s}, [x1], x2
-#   v13:                 0xffffffffffffffe1 (..., nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (..., 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan)
+#      v14<63:0>:                 0x0000000000000001 (0.000, 1.401e-45)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f4836		st3 {v22.2s, v23.2s, v24.2s}, [x1], #24
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00441f		st3 {v31.4h, v0.4h, v1.4h}, [x0]
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v0<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c824428		st3 {v8.4h, v9.4h, v10.4h}, [x1], x2
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f4433		st3 {v19.4h, v20.4h, v21.4h}, [x1], #24
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c004812		st3 {v18.4s, v19.4s, v20.4s}, [x0]
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 0.00000, 0.00000, 4.48416e-44) -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 4.484e-44)
+#                          ║       ║       ║       ╙─ 0x00000020'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c824839		st3 {v25.4s, v26.4s, v27.4s}, [x1], x2
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f4830		st3 {v16.4s, v17.4s, v18.4s}, [x1], #48
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00401b		st3 {v27.8b, v28.8b, v29.8b}, [x0]
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82403d		st3 {v29.8b, v30.8b, v31.8b}, [x1], x2
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f403e		st3 {v30.8b, v31.8b, v0.8b}, [x1], #24
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c004408		st3 {v8.8h, v9.8h, v10.8h}, [x0]
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c824432		st3 {v18.8h, v19.8h, v20.8h}, [x1], x2
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f4432		st3 {v18.8h, v19.8h, v20.8h}, [x1], #48
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d00281f		st3 {v31.b, v0.b, v1.b}[10], [x0]
-#   v31:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v0:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:           0x00                     -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d823424		st3 {v4.b, v5.b, v6.b}[5], [x1], x2
-#    v4:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v5:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v6:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                                        ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d9f2425		st3 {v5.b, v6.b, v7.b}[1], [x1], #3
-#    v5:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v6:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v7:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                                                ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d00a405		st3 {v5.d, v6.d, v7.d}[0], [x0]
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d82a426		st3 {v6.d, v7.d, v8.d}[0], [x1], x2
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d9fa420		st3 {v0.d, v1.d, v2.d}[0], [x1], #24
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#                                                  ╙─ 0x0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d00701f		st3 {v31.h, v0.h, v1.h}[2], [x0]
-#   v31:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v0:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v1:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d82682e		st3 {v14.h, v15.h, v16.h}[5], [x1], x2
-#   v14:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v15:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v16:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (..., 0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d9f7035		st3 {v21.h, v22.h, v23.h}[6], [x1], #6
-#   v21:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v22:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v23:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                          ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d00a015		st3 {v21.s, v22.s, v23.s}[0], [x0]
-#   v21:                         0xffff8007 (s21: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                         0x00000000 (s22: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                         0x00000000 (s23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., nan)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00000000'ffff8007 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d82b02b		st3 {v11.s, v12.s, v13.s}[1], [x1], x2
-#   v11:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffff         (..., nan, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (..., 0.000, ...)
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan, ...)
+#                                          ╙───────── 0xffffffff'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d9fa02f		st3 {v15.s, v16.s, v17.s}[0], [x1], #12
-#   v15:                         0x00000000 (s15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                         0x00007ff9 (s16: 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                         0x00000000 (s17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c000016		st4 {v22.16b, v23.16b, v24.16b, v25.16b}, [x0]
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'f9'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'7f'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c820038		st4 {v24.16b, v25.16b, v26.16b, v27.16b}, [x1], x2
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f002f		st4 {v15.16b, v16.16b, v17.16b, v18.16b}, [x1], #64
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#     v17<127:0>: 0x00000000000000000000000000000000
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c000c10		st4 {v16.2d, v17.2d, v18.2d, v19.2d}, [x0]
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c820c31		st4 {v17.2d, v18.2d, v19.2d, v20.2d}, [x1], x2
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f0c29		st4 {v9.2d, v10.2d, v11.2d, v12.2d}, [x1], #64
-#    v9: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000'0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c000817		st4 {v23.2s, v24.2s, v25.2s, v26.2s}, [x0]
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82082f		st4 {v15.2s, v16.2s, v17.2s, v18.2s}, [x1], x2
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f0838		st4 {v24.2s, v25.2s, v26.2s, v27.2s}, [x1], #32
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00040e		st4 {v14.4h, v15.4h, v16.4h, v17.4h}, [x0]
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'7ff9'0000'0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c820432		st4 {v18.4h, v19.4h, v20.4h, v21.4h}, [x1], x2
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f0421		st4 {v1.4h, v2.4h, v3.4h, v4.4h}, [x1], #32
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v2<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00080d		st4 {v13.4s, v14.4s, v15.4s, v16.4s}, [x0]
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000000000000000000001 (0.00000, 0.00000, 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 0.000, 0.000, 1.401e-45)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#                          ║       ║       ║       ╙─ 0x00007ff9'00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c820826		st4 {v6.4s, v7.4s, v8.4s, v9.4s}, [x1], x2
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f082f		st4 {v15.4s, v16.4s, v17.4s, v18.4s}, [x1], #64
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00001a		st4 {v26.8b, v27.8b, v28.8b, v29.8b}, [x0]
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c820039		st4 {v25.8b, v26.8b, v27.8b, v28.8b}, [x1], x2
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f0033		st4 {v19.8b, v20.8b, v21.8b, v22.8b}, [x1], #32
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#      v20<63:0>:                 0x0000000000000020
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07'20'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c000413		st4 {v19.8h, v20.8h, v21.8h, v22.8h}, [x0]
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'ffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82042f		st4 {v15.8h, v16.8h, v17.8h, v18.8h}, [x1], x2
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f043f		st4 {v31.8h, v0.8h, v1.8h, v2.8h}, [x1], #64
-#   v31: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0040'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d203400		st4 {v0.b, v1.b, v2.b, v3.b}[13], [x0]
-#    v0:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v1:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v2:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v3:     0x00                           -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#      v2<127:0>: 0x00000000000000000000000000000040
+#      v3<127:0>: 0x00000000000000000000000000000000
+#                        ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da22824		st4 {v4.b, v5.b, v6.b, v7.b}[10], [x1], x2
-#    v4:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v5:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v6:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v7:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dbf2429		st4 {v9.b, v10.b, v11.b, v12.b}[9], [x1], #4
-#    v9:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v10:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v11:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v12:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#     v10<127:0>: 0x00000000000000000000000000000000
+#     v11<127:0>: 0x00000000000000000000000000000000
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                                ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d20a402		st4 {v2.d, v3.d, v4.d, v5.d}[1], [x0]
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0da2a427		st4 {v7.d, v8.d, v9.d, v10.d}[0], [x1], x2
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (d9: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (d10: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dbfa43f		st4 {v31.d, v0.d, v1.d, v2.d}[1], [x1], #32
-#   v31: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d206802		st4 {v2.h, v3.h, v4.h, v5.h}[1], [x0]
-#    v2:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v3:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v4:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v5:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                              ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0da2783b		st4 {v27.h, v28.h, v29.h, v30.h}[3], [x1], x2
-#   v27:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v29<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dbf6038		st4 {v24.h, v25.h, v26.h, v27.h}[4], [x1], #8
-#   v24:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v25:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v26:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v27:             0x00fe                 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 1.514e-05, ...)
+#                                  ╙───────────────── 0x00fe'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d20a012		st4 {v18.s, v19.s, v20.s, v21.s}[2], [x0]
-#   v18:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v19:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v20:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v21:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v19<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v20<127:0>: 0x00000000000000000000000000000020 (..., 0.000, ...)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da2a026		st4 {v6.s, v7.s, v8.s, v9.s}[2], [x1], x2
-#    v6:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v8:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v9:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dbfb039		st4 {v25.s, v26.s, v27.s, v28.s}[1], [x1], #16
-#   v25:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7ee2862c		sub d12, d17, d2
-#   v12: 0x0000000000000000ffffffffffffffc0
+#            v12: 0x0000000000000000ffffffffffffffc0
 0x~~~~~~~~~~~~~~~~  6e288714		sub v20.16b, v24.16b, v8.16b
-#   v20: 0x00000000000000000000000000007ff9
+#            v20: 0x00000000000000000000000000007ff9
 0x~~~~~~~~~~~~~~~~  6ee587a8		sub v8.2d, v29.2d, v5.2d
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb88782		sub v2.2s, v28.2s, v24.2s
-#    v2: 0x000000000000000000000000ffff8007
+#             v2: 0x000000000000000000000000ffff8007
 0x~~~~~~~~~~~~~~~~  2e648558		sub v24.4h, v10.4h, v4.4h
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb1849c		sub v28.4s, v4.4s, v17.4s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e228770		sub v16.8b, v27.8b, v2.8b
-#   v16: 0x000000000000000000000000010180f9
+#            v16: 0x000000000000000000000000010180f9
 0x~~~~~~~~~~~~~~~~  6e6d8554		sub v20.8h, v10.8h, v13.8h
-#   v20: 0x0000000000000000000100010001001f
+#            v20: 0x0000000000000000000100010001001f
 0x~~~~~~~~~~~~~~~~  0ead61c5		subhn v5.2s, v14.2d, v13.2d
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e6860aa		subhn v10.4h, v5.4s, v8.4s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e366146		subhn v6.8b, v10.8h, v22.8h
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e2960cb		subhn2 v11.16b, v6.8h, v9.8h
-#   v11: 0x00000000000000ff0000000000000000
+#            v11: 0x00000000000000ff0000000000000000
 0x~~~~~~~~~~~~~~~~  4eb86259		subhn2 v25.4s, v18.2d, v24.2d
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6162b4		subhn2 v20.8h, v21.4s, v1.4s
-#   v20: 0x000000000000ffff000100010001001f
+#            v20: 0x000000000000ffff000100010001001f
 0x~~~~~~~~~~~~~~~~  5e203979		suqadd b25, b11
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee0382d		suqadd d13, d1
-#   v13: 0x0000000000000000ffffffffffffffe1
+#            v13: 0x0000000000000000ffffffffffffffe1
 0x~~~~~~~~~~~~~~~~  5e603920		suqadd h0, h9
-#    v0: 0x00000000000000000000000000000040
+#             v0: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  5ea03916		suqadd s22, s8
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e203b78		suqadd v24.16b, v27.16b
-#   v24: 0x000000000000007f0000000000000000
+#            v24: 0x000000000000007f0000000000000000
 0x~~~~~~~~~~~~~~~~  4ee039da		suqadd v26.2d, v14.2d
-#   v26: 0x00000000000000000000000000000001
+#            v26: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  0ea03947		suqadd v7.2s, v10.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e603999		suqadd v25.4h, v12.4h
-#   v25: 0x00000000000000007fff7fff7fff7fff
+#            v25: 0x00000000000000007fff7fff7fff7fff
 0x~~~~~~~~~~~~~~~~  4ea03864		suqadd v4.4s, v3.4s
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e203a4e		suqadd v14.8b, v18.8b
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  4e60391f		suqadd v31.8h, v8.8h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f20a690		sxtl v16.2d, v20.2s
-#   v16: 0x0000000000010001000000000001001f
+#            v16: 0x0000000000010001000000000001001f
 0x~~~~~~~~~~~~~~~~  0f10a79b		sxtl v27.4s, v28.4h
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f08a6c0		sxtl v0.8h, v22.8b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f20a4e6		sxtl2 v6.2d, v7.4s
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f10a769		sxtl2 v9.4s, v27.8h
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f08a610		sxtl2 v16.8h, v16.16b
-#   v16: 0x00000000000000000000000100000001
+#            v16: 0x00000000000000000000000100000001
 0x~~~~~~~~~~~~~~~~  4e166239		tbl v25.16b, {v17.16b, v18.16b, v19.16b, v20.16b}, v22.16b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e0441bc		tbl v28.16b, {v13.16b, v14.16b, v15.16b}, v4.16b
-#   v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
+#            v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
 0x~~~~~~~~~~~~~~~~  4e022003		tbl v3.16b, {v0.16b, v1.16b}, v2.16b
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e0401f4		tbl v20.16b, {v15.16b}, v4.16b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1462e7		tbl v7.8b, {v23.16b, v24.16b, v25.16b, v26.16b}, v20.8b
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1f4028		tbl v8.8b, {v1.16b, v2.16b, v3.16b}, v31.8b
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e102328		tbl v8.8b, {v25.16b, v26.16b}, v16.8b
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1e026b		tbl v11.8b, {v19.16b}, v30.8b
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e057339		tbx v25.16b, {v25.16b, v26.16b, v27.16b, v28.16b}, v5.16b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e1853b5		tbx v21.16b, {v29.16b, v30.16b, v31.16b}, v24.16b
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e013206		tbx v6.16b, {v16.16b, v17.16b}, v1.16b
-#    v6: 0x01010101010101010101010101010101
+#             v6: 0x01010101010101010101010101010101
 0x~~~~~~~~~~~~~~~~  4e14106d		tbx v13.16b, {v3.16b}, v20.16b
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e0973b8		tbx v24.8b, {v29.16b, v30.16b, v31.16b, v0.16b}, v9.8b
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1a5131		tbx v17.8b, {v9.16b, v10.16b, v11.16b}, v26.8b
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e153065		tbx v5.8b, {v3.16b, v4.16b}, v21.8b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1d1170		tbx v16.8b, {v11.16b}, v29.8b
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e0c2b13		trn1 v19.16b, v24.16b, v12.16b
-#   v19: 0x0000000000000000ff00ff00ff00c000
+#            v19: 0x0000000000000000ff00ff00ff00c000
 0x~~~~~~~~~~~~~~~~  4eca28e2		trn1 v2.2d, v7.2d, v10.2d
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e952816		trn1 v22.2s, v0.2s, v21.2s
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e5429ec		trn1 v12.4h, v15.4h, v20.4h
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e892a3e		trn1 v30.4s, v17.4s, v9.4s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1d2a6c		trn1 v12.8b, v19.8b, v29.8b
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e492917		trn1 v23.8h, v8.8h, v9.8h
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e196bdc		trn2 v28.16b, v30.16b, v25.16b
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ec76b67		trn2 v7.2d, v27.2d, v7.2d
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e936a1e		trn2 v30.2s, v16.2s, v19.2s
-#   v30: 0x0000000000000000ff00ff0000000000
+#            v30: 0x0000000000000000ff00ff0000000000
 0x~~~~~~~~~~~~~~~~  0e5968d8		trn2 v24.4h, v6.4h, v25.4h
-#   v24: 0x00000000000000000000010100000101
+#            v24: 0x00000000000000000000010100000101
 0x~~~~~~~~~~~~~~~~  4e8b6a62		trn2 v2.4s, v19.4s, v11.4s
-#    v2: 0x000000000000000000000000ff00ff00
+#             v2: 0x000000000000000000000000ff00ff00
 0x~~~~~~~~~~~~~~~~  0e126b79		trn2 v25.8b, v27.8b, v18.8b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e4f688c		trn2 v12.8h, v4.8h, v15.8h
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e3c7d9f		uaba v31.16b, v12.16b, v28.16b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eae7cb2		uaba v18.2s, v5.2s, v14.2s
-#   v18: 0x00000000000000000000000000000001
+#            v18: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  2e757e89		uaba v9.4h, v20.4h, v21.4h
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea27e86		uaba v6.4s, v20.4s, v2.4s
-#    v6: 0x01010101010101010101010100020001
+#             v6: 0x01010101010101010101010100020001
 0x~~~~~~~~~~~~~~~~  2e257d90		uaba v16.8b, v12.8b, v5.8b
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7e7f4f		uaba v15.8h, v26.8h, v30.8h
-#   v15: 0x0000000000000000ff00ff0000000001
+#            v15: 0x0000000000000000ff00ff0000000001
 0x~~~~~~~~~~~~~~~~  2eaf524a		uabal v10.2d, v18.2s, v15.2s
-#   v10: 0x00000000ff00ff000000000000000000
+#            v10: 0x00000000ff00ff000000000000000000
 0x~~~~~~~~~~~~~~~~  2e67527e		uabal v30.4s, v19.4h, v7.4h
-#   v30: 0x0000ff000000ff00ff01fe000000c000
+#            v30: 0x0000ff000000ff00ff01fe000000c000
 0x~~~~~~~~~~~~~~~~  2e205364		uabal v4.8h, v27.8b, v0.8b
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea25193		uabal2 v19.2d, v12.4s, v2.4s
-#   v19: 0x0000000000000000ff00ff00ff00c000
+#            v19: 0x0000000000000000ff00ff00ff00c000
 0x~~~~~~~~~~~~~~~~  6e6c50ba		uabal2 v26.4s, v5.8h, v12.8h
-#   v26: 0x00000000000000000000000000000001
+#            v26: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  6e3c5293		uabal2 v19.8h, v20.16b, v28.16b
-#   v19: 0x0000000000000000ff00ff00ff00c000
+#            v19: 0x0000000000000000ff00ff00ff00c000
 0x~~~~~~~~~~~~~~~~  6e357492		uabd v18.16b, v4.16b, v21.16b
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb076be		uabd v30.2s, v21.2s, v16.2s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e797788		uabd v8.4h, v28.4h, v25.4h
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb5759c		uabd v28.4s, v12.4s, v21.4s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e3c7613		uabd v19.8b, v16.8b, v28.8b
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7d7589		uabd v9.8h, v12.8h, v29.8h
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea8701a		uabdl v26.2d, v0.2s, v8.2s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e7973fd		uabdl v29.4s, v31.4h, v25.4h
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2e73bb		uabdl v27.8h, v29.8b, v14.8b
-#   v27: 0x00000000000000000000000000000001
+#            v27: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  6ea87294		uabdl2 v20.2d, v20.4s, v8.4s
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7271f6		uabdl2 v22.4s, v15.8h, v18.8h
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e377249		uabdl2 v9.8h, v18.16b, v23.16b
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea069e9		uadalp v9.1d, v15.2s
-#    v9: 0x000000000000000000000000ff00ff01
+#             v9: 0x000000000000000000000000ff00ff01
 0x~~~~~~~~~~~~~~~~  6ea0698e		uadalp v14.2d, v12.4s
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  2e60699c		uadalp v28.2s, v12.4h
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e206a20		uadalp v0.4h, v17.8b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e606ba1		uadalp v1.4s, v29.8h
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e206acf		uadalp v15.8h, v22.16b
-#   v15: 0x0000000000000000ff00ff0000000001
+#            v15: 0x0000000000000000ff00ff0000000001
 0x~~~~~~~~~~~~~~~~  2ebb0281		uaddl v1.2d, v20.2s, v27.2s
-#    v1: 0x00000000000000000000000000000001
+#             v1: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  2e65033f		uaddl v31.4s, v25.4h, v5.4h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e23006c		uaddl v12.8h, v3.8b, v3.8b
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea602e5		uaddl2 v5.2d, v23.4s, v6.4s
-#    v5: 0x00000000010101010000000001010101
+#             v5: 0x00000000010101010000000001010101
 0x~~~~~~~~~~~~~~~~  6e7900a1		uaddl2 v1.4s, v5.8h, v25.8h
-#    v1: 0x00000000000000000000010100000101
+#             v1: 0x00000000000000000000010100000101
 0x~~~~~~~~~~~~~~~~  6e3c03d6		uaddl2 v22.8h, v30.16b, v28.16b
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea02927		uaddlp v7.1d, v9.2s
-#    v7: 0x000000000000000000000000ff00ff01
+#             v7: 0x000000000000000000000000ff00ff01
 0x~~~~~~~~~~~~~~~~  6ea0289a		uaddlp v26.2d, v4.4s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e60283c		uaddlp v28.2s, v1.4h
-#   v28: 0x00000000000000000000010100000101
+#            v28: 0x00000000000000000000010100000101
 0x~~~~~~~~~~~~~~~~  2e202bf4		uaddlp v20.4h, v31.8b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e602a30		uaddlp v16.4s, v17.8h
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e202846		uaddlp v6.8h, v2.16b
-#    v6: 0x00000000000000000000000000ff00ff
+#             v6: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  6eb03adc		uaddlv d28, v22.4s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e303a60		uaddlv h0, v19.16b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e303bde		uaddlv h30, v30.8b
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e703a58		uaddlv s24, v18.4h
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e70380a		uaddlv s10, v0.8h
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eae1229		uaddw v9.2d, v17.2d, v14.2s
-#    v9: 0x00000000000000000000000000000001
+#             v9: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  2e631329		uaddw v9.4s, v25.4s, v3.4h
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e201032		uaddw v18.8h, v1.8h, v0.8b
-#   v18: 0x00000000000000000000010100000101
+#            v18: 0x00000000000000000000010100000101
 0x~~~~~~~~~~~~~~~~  6ea610b2		uaddw2 v18.2d, v5.2d, v6.4s
-#   v18: 0x00000000010101010000000001010101
+#            v18: 0x00000000010101010000000001010101
 0x~~~~~~~~~~~~~~~~  6e6b11f1		uaddw2 v17.4s, v15.4s, v11.8h
-#   v17: 0x0000000000000000ff00ff0000000001
+#            v17: 0x0000000000000000ff00ff0000000001
 0x~~~~~~~~~~~~~~~~  6e27117d		uaddw2 v29.8h, v11.8h, v7.16b
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e23052d		uhadd v13.16b, v9.16b, v3.16b
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb80731		uhadd v17.2s, v25.2s, v24.2s
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e6d06f9		uhadd v25.4h, v23.4h, v13.4h
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb00680		uhadd v0.4s, v20.4s, v16.4s
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e3904a5		uhadd v5.8b, v5.8b, v25.8b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7207a3		uhadd v3.8h, v29.8h, v18.8h
-#    v3: 0x00000000008000800000000000800080
+#             v3: 0x00000000008000800000000000800080
 0x~~~~~~~~~~~~~~~~  6e2d26c1		uhsub v1.16b, v22.16b, v13.16b
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebe27ce		uhsub v14.2s, v30.2s, v30.2s
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e7125dd		uhsub v29.4h, v14.4h, v17.4h
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb224ba		uhsub v26.4s, v5.4s, v18.4s
-#   v26: 0x00000000ff7f7f7f00000000ff7f7f7f
+#            v26: 0x00000000ff7f7f7f00000000ff7f7f7f
 0x~~~~~~~~~~~~~~~~  2e2c24e3		uhsub v3.8b, v7.8b, v12.8b
-#    v3: 0x0000000000000000000000007f007f00
+#             v3: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  6e6526b9		uhsub v25.8h, v21.8h, v5.8h
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e26659c		umax v28.16b, v12.16b, v6.16b
-#   v28: 0x00000000000000000000000000ff00ff
+#            v28: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  2eba6674		umax v20.2s, v19.2s, v26.2s
-#   v20: 0x000000000000000000000000ff7f7f7f
+#            v20: 0x000000000000000000000000ff7f7f7f
 0x~~~~~~~~~~~~~~~~  2e7267e0		umax v0.4h, v31.4h, v18.4h
-#    v0: 0x00000000000000000000000001010101
+#             v0: 0x00000000000000000000000001010101
 0x~~~~~~~~~~~~~~~~  6ebc66a6		umax v6.4s, v21.4s, v28.4s
-#    v6: 0x00000000000000000000000000ff00ff
+#             v6: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  2e346440		umax v0.8b, v2.8b, v20.8b
-#    v0: 0x000000000000000000000000ff7fff7f
+#             v0: 0x000000000000000000000000ff7fff7f
 0x~~~~~~~~~~~~~~~~  6e766564		umax v4.8h, v11.8h, v22.8h
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e3da4c1		umaxp v1.16b, v6.16b, v29.16b
-#    v1: 0x0000000000000000000000000000ffff
+#             v1: 0x0000000000000000000000000000ffff
 0x~~~~~~~~~~~~~~~~  2ebba633		umaxp v19.2s, v17.2s, v27.2s
-#   v19: 0x00000000000000000000000100000000
+#            v19: 0x00000000000000000000000100000000
 0x~~~~~~~~~~~~~~~~  2e67a615		umaxp v21.4h, v16.4h, v7.4h
-#   v21: 0x00000000000000000000ff0100000000
+#            v21: 0x00000000000000000000ff0100000000
 0x~~~~~~~~~~~~~~~~  6ebda689		umaxp v9.4s, v20.4s, v29.4s
-#    v9: 0x000000000000000000000000ff7f7f7f
+#             v9: 0x000000000000000000000000ff7f7f7f
 0x~~~~~~~~~~~~~~~~  2e30a42d		umaxp v13.8b, v1.8b, v16.8b
-#   v13: 0x000000000000000000000000000000ff
+#            v13: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  6e7aa6f3		umaxp v19.8h, v23.8h, v26.8h
-#   v19: 0x0000ff7f0000ff7f0000000000000000
+#            v19: 0x0000ff7f0000ff7f0000000000000000
 0x~~~~~~~~~~~~~~~~  6e30abd1		umaxv b17, v30.16b
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e30a997		umaxv b23, v12.8b
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e70a9ff		umaxv h31, v15.4h
-#   v31: 0x0000000000000000000000000000ff00
+#            v31: 0x0000000000000000000000000000ff00
 0x~~~~~~~~~~~~~~~~  6e70ab2f		umaxv h15, v25.8h
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb0aab2		umaxv s18, v21.4s
-#   v18: 0x0000000000000000000000000000ff01
+#            v18: 0x0000000000000000000000000000ff01
 0x~~~~~~~~~~~~~~~~  6e326c16		umin v22.16b, v0.16b, v18.16b
-#   v22: 0x0000000000000000000000000000ff01
+#            v22: 0x0000000000000000000000000000ff01
 0x~~~~~~~~~~~~~~~~  2eb06ea1		umin v1.2s, v21.2s, v16.2s
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e796c91		umin v17.4h, v4.4h, v25.4h
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ead6f58		umin v24.4s, v26.4s, v13.4s
-#   v24: 0x000000000000000000000000000000ff
+#            v24: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  2e256c34		umin v20.8b, v1.8b, v5.8b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e776f3a		umin v26.8h, v25.8h, v23.8h
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e37ac25		uminp v5.16b, v1.16b, v23.16b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebeaf47		uminp v7.2s, v26.2s, v30.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e79aca9		uminp v9.4h, v5.4h, v25.4h
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea1ad57		uminp v23.4s, v10.4s, v1.4s
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2eafa4		uminp v4.8b, v29.8b, v14.8b
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e6eac15		uminp v21.8h, v0.8h, v14.8h
-#   v21: 0x0000000000000000000000000000ff7f
+#            v21: 0x0000000000000000000000000000ff7f
 0x~~~~~~~~~~~~~~~~  6e31aa20		uminv b0, v17.16b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e31abe0		uminv b0, v31.8b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e71a818		uminv h24, v0.4h
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e71a9dd		uminv h29, v14.8h
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb1a87e		uminv s30, v3.4s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb8816b		umlal v11.2d, v11.2s, v24.2s
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2fab2a1e		umlal v30.2d, v16.2s, v11.s[3]
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e7a8120		umlal v0.4s, v9.4h, v26.4h
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f4c2b14		umlal v20.4s, v24.4h, v12.h[4]
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2682b0		umlal v16.8h, v21.8b, v6.8b
-#   v16: 0x00000000000000000000000000007e81
+#            v16: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  6eb78271		umlal2 v17.2d, v19.4s, v23.4s
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f8823c5		umlal2 v5.2d, v30.4s, v8.s[0]
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e6f8110		umlal2 v16.4s, v8.8h, v15.8h
-#   v16: 0x00000000000000000000000000007e81
+#            v16: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  6f512b4f		umlal2 v15.4s, v26.8h, v1.h[5]
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e31803e		umlal2 v30.8h, v1.16b, v17.16b
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebca272		umlsl v18.2d, v19.2s, v28.2s
-#   v18: 0x0000000000000000000000000000ff01
+#            v18: 0x0000000000000000000000000000ff01
 0x~~~~~~~~~~~~~~~~  2f8860e7		umlsl v7.2d, v7.2s, v8.s[0]
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e64a118		umlsl v24.4s, v8.4h, v4.4h
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f4c6ad2		umlsl v18.4s, v22.4h, v12.h[4]
-#   v18: 0x0000000000000000000000000000ff01
+#            v18: 0x0000000000000000000000000000ff01
 0x~~~~~~~~~~~~~~~~  2e34a1dc		umlsl v28.8h, v14.8b, v20.8b
-#   v28: 0x00000000000000000000000000ff00ff
+#            v28: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  6ea9a00b		umlsl2 v11.2d, v0.4s, v9.4s
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f896a1a		umlsl2 v26.2d, v16.4s, v9.s[2]
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e69a163		umlsl2 v3.4s, v11.8h, v9.8h
-#    v3: 0x0000000000000000000000007f007f00
+#             v3: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  6f496b2a		umlsl2 v10.4s, v25.8h, v9.h[4]
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e3ca218		umlsl2 v24.8h, v16.16b, v28.16b
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e183f3e		mov x30, v25.d[1]
-#    lr: 0x0000000000000000
+#             lr: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  2ebdc14c		umull v12.2d, v10.2s, v29.2s
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2fa5abd6		umull v22.2d, v30.2s, v5.s[3]
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e79c007		umull v7.4s, v0.4h, v25.4h
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f63a1ab		umull v11.4s, v13.4h, v3.h[2]
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2ac219		umull v25.8h, v16.8b, v10.8b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ebac071		umull2 v17.2d, v3.4s, v26.4s
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6fa2a97a		umull2 v26.2d, v11.4s, v2.s[3]
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e77c22c		umull2 v12.4s, v17.8h, v23.8h
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f61a3e4		umull2 v4.4s, v31.8h, v1.h[2]
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e31c185		umull2 v5.8h, v12.16b, v17.16b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e3c0c9e		uqadd b30, b4, b28
-#   v30: 0x000000000000000000000000000000ff
+#            v30: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  7ef00e9b		uqadd d27, d20, d16
-#   v27: 0x00000000000000000000000000007e81
+#            v27: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  7e7c0dc7		uqadd h7, h14, h28
-#    v7: 0x000000000000000000000000000000ff
+#             v7: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  7ea40e3c		uqadd s28, s17, s4
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e350ed3		uqadd v19.16b, v22.16b, v21.16b
-#   v19: 0x0000000000000000000000000000ff7f
+#            v19: 0x0000000000000000000000000000ff7f
 0x~~~~~~~~~~~~~~~~  6eeb0c90		uqadd v16.2d, v4.2d, v11.2d
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea40dd4		uqadd v20.2s, v14.2s, v4.2s
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e700c05		uqadd v5.4h, v0.4h, v16.4h
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea90ff5		uqadd v21.4s, v31.4s, v9.4s
-#   v21: 0x0000000000000000000000000000ff00
+#            v21: 0x0000000000000000000000000000ff00
 0x~~~~~~~~~~~~~~~~  2e230f17		uqadd v23.8b, v24.8b, v3.8b
-#   v23: 0x0000000000000000000000007f007f00
+#            v23: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  6e6b0f71		uqadd v17.8h, v27.8h, v11.8h
-#   v17: 0x00000000000000000000000000007e81
+#            v17: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  7e2a5eca		uqrshl b10, b22, b10
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eeb5cbd		uqrshl d29, d5, d11
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e7e5f1b		uqrshl h27, h24, h30
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea85daa		uqrshl s10, s13, s8
-#   v10: 0x000000000000000000000000000000ff
+#            v10: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  6e2e5e49		uqrshl v9.16b, v18.16b, v14.16b
-#    v9: 0x0000000000000000000000000000ff01
+#             v9: 0x0000000000000000000000000000ff01
 0x~~~~~~~~~~~~~~~~  6ef15df8		uqrshl v24.2d, v15.2d, v17.2d
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebb5dc4		uqrshl v4.2s, v14.2s, v27.2s
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e685caf		uqrshl v15.4h, v5.4h, v8.4h
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea05fb5		uqrshl v21.4s, v29.4s, v0.4s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e295f10		uqrshl v16.8b, v24.8b, v9.8b
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e6f5c02		uqrshl v2.8h, v0.8h, v15.8h
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f0c9f4b		uqrshrn b11, h26, #4
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f1b9fc7		uqrshrn h7, s30, #5
-#    v7: 0x00000000000000000000000000000008
+#             v7: 0x00000000000000000000000000000008
 0x~~~~~~~~~~~~~~~~  7f2b9d0a		uqrshrn s10, d8, #21
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f359ccf		uqrshrn v15.2s, v6.2d, #11
-#   v15: 0x00000000000000000000000000001fe0
+#            v15: 0x00000000000000000000000000001fe0
 0x~~~~~~~~~~~~~~~~  2f149f45		uqrshrn v5.4h, v26.4s, #12
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0b9f3c		uqrshrn v28.8b, v25.8h, #5
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0e9fd9		uqrshrn2 v25.16b, v30.8h, #2
-#   v25: 0x00000000000000400000000000000000
+#            v25: 0x00000000000000400000000000000000
 0x~~~~~~~~~~~~~~~~  6f209dd5		uqrshrn2 v21.4s, v14.2d, #32
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1e9ced		uqrshrn2 v13.8h, v7.4s, #2
-#   v13: 0x000000000000000200000000000000ff
+#            v13: 0x000000000000000200000000000000ff
 0x~~~~~~~~~~~~~~~~  7e374c0d		uqshl b13, b0, b23
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f0c7629		uqshl b9, b17, #4
-#    v9: 0x000000000000000000000000000000ff
+#             v9: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  7ee44cd7		uqshl d23, d6, d4
-#   v23: 0x00000000000000000000000000ff00ff
+#            v23: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  7f6c7568		uqshl d8, d11, #44
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e6f4db3		uqshl h19, h13, h15
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f167759		uqshl h25, h26, #6
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eaa4f04		uqshl s4, s24, s10
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f2175d3		uqshl s19, s14, #1
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e394fce		uqshl v14.16b, v30.16b, v25.16b
-#   v14: 0x000000000000000000000000000000ff
+#            v14: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  6f0d7546		uqshl v6.16b, v10.16b, #5
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee74d12		uqshl v18.2d, v8.2d, v7.2d
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f5275d9		uqshl v25.2d, v14.2d, #18
-#   v25: 0x00000000000000000000000003fc0000
+#            v25: 0x00000000000000000000000003fc0000
 0x~~~~~~~~~~~~~~~~  2eb74e19		uqshl v25.2s, v16.2s, v23.2s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f3f75ed		uqshl v13.2s, v15.2s, #31
-#   v13: 0x000000000000000000000000ffffffff
+#            v13: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  2e6f4f1c		uqshl v28.4h, v24.4h, v15.4h
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f117624		uqshl v4.4h, v17.4h, #1
-#    v4: 0x0000000000000000000000000000fd02
+#             v4: 0x0000000000000000000000000000fd02
 0x~~~~~~~~~~~~~~~~  6eb74fe9		uqshl v9.4s, v31.4s, v23.4s
-#    v9: 0x00000000000000000000000000007f80
+#             v9: 0x00000000000000000000000000007f80
 0x~~~~~~~~~~~~~~~~  6f3f7792		uqshl v18.4s, v28.4s, #31
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2f4ebf		uqshl v31.8b, v21.8b, v15.8b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0976a6		uqshl v6.8b, v21.8b, #1
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e714c5c		uqshl v28.8h, v2.8h, v17.8h
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1e7518		uqshl v24.8h, v8.8h, #14
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f099775		uqshrn b21, h27, #7
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f15975c		uqshrn h28, s26, #11
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f2f97ed		uqshrn s13, d31, #17
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f389615		uqshrn v21.2s, v16.2d, #8
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f1e9718		uqshrn v24.4h, v24.4s, #2
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f089425		uqshrn v5.8b, v1.8h, #8
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0a97b0		uqshrn2 v16.16b, v29.8h, #6
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f3f94c2		uqshrn2 v2.4s, v6.2d, #1
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f129550		uqshrn2 v16.8h, v10.4s, #14
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e3a2e9c		uqsub b28, b20, b26
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eea2ce0		uqsub d0, d7, d10
-#    v0: 0x00000000000000000000000000000008
+#             v0: 0x00000000000000000000000000000008
 0x~~~~~~~~~~~~~~~~  7e672f1a		uqsub h26, h24, h7
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eb02ef7		uqsub s23, s23, s16
-#   v23: 0x00000000000000000000000000ff00ff
+#            v23: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  6e382e0e		uqsub v14.16b, v16.16b, v24.16b
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee62e2b		uqsub v11.2d, v17.2d, v6.2d
-#   v11: 0x00000000000000000000000000007e81
+#            v11: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  2ea82d4a		uqsub v10.2s, v10.2s, v8.2s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e6c2de9		uqsub v9.4h, v15.4h, v12.4h
-#    v9: 0x00000000000000000000000000001fe0
+#             v9: 0x00000000000000000000000000001fe0
 0x~~~~~~~~~~~~~~~~  6ea72e57		uqsub v23.4s, v18.4s, v7.4s
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e312e69		uqsub v9.8b, v19.8b, v17.8b
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e662c54		uqsub v20.8h, v2.8h, v6.8h
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e214a7d		uqxtn b29, h19
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e6149a0		uqxtn h0, s13
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea14ada		uqxtn s26, d22
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea14be5		uqxtn v5.2s, v31.2d
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e614a7e		uqxtn v30.4h, v19.4s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e21484f		uqxtn v15.8b, v2.8h
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e21487d		uqxtn2 v29.16b, v3.8h
-#   v29: 0x000000000000ffff0000000000000000
+#            v29: 0x000000000000ffff0000000000000000
 0x~~~~~~~~~~~~~~~~  6ea14a2d		uqxtn2 v13.4s, v17.2d
-#   v13: 0x0000000000007e810000000000000000
+#            v13: 0x0000000000007e810000000000000000
 0x~~~~~~~~~~~~~~~~  6e61497c		uqxtn2 v28.8h, v11.4s
-#   v28: 0x0000000000007e810000000000000000
+#            v28: 0x0000000000007e810000000000000000
 0x~~~~~~~~~~~~~~~~  0ea1c9f7		urecpe v23.2s, v15.2s
-#   v23: 0x0000000000000000ffffffffffffffff
+#            v23: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4ea1c8fb		urecpe v27.4s, v7.4s
-#   v27: 0xffffffffffffffffffffffffffffffff
+#            v27: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e3b15e2		urhadd v2.16b, v15.16b, v27.16b
-#    v2: 0x80808080808080808080808080808080
+#             v2: 0x80808080808080808080808080808080
 0x~~~~~~~~~~~~~~~~  2eb2142f		urhadd v15.2s, v1.2s, v18.2s
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e7a1491		urhadd v17.4h, v4.4h, v26.4h
-#   v17: 0x00000000000000000000000000007e81
+#            v17: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  6eae1762		urhadd v2.4s, v27.4s, v14.4s
-#    v2: 0x80000000800000008000000080000000
+#             v2: 0x80000000800000008000000080000000
 0x~~~~~~~~~~~~~~~~  2e2e1625		urhadd v5.8b, v17.8b, v14.8b
-#    v5: 0x00000000000000000000000000003f41
+#             v5: 0x00000000000000000000000000003f41
 0x~~~~~~~~~~~~~~~~  6e79145e		urhadd v30.8h, v2.8h, v25.8h
-#   v30: 0x40000000400000004000000040000000
+#            v30: 0x40000000400000004000000040000000
 0x~~~~~~~~~~~~~~~~  7efe5784		urshl d4, d28, d30
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e3357ed		urshl v13.16b, v31.16b, v19.16b
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ef556ee		urshl v14.2d, v23.2d, v21.2d
-#   v14: 0x0000000000000000ffffffffffffffff
+#            v14: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2ea854ea		urshl v10.2s, v7.2s, v8.2s
-#   v10: 0x00000000000000000000000000000008
+#            v10: 0x00000000000000000000000000000008
 0x~~~~~~~~~~~~~~~~  2e7c56af		urshl v15.4h, v21.4h, v28.4h
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb7551e		urshl v30.4s, v8.4s, v23.4s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e25569f		urshl v31.8b, v20.8b, v5.8b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7e577e		urshl v30.8h, v27.8h, v30.8h
-#   v30: 0xffffffffffffffffffffffffffffffff
+#            v30: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7f4f25a4		urshr d4, d13, #49
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0f2682		urshr v2.16b, v20.16b, #1
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f4d256d		urshr v13.2d, v11.2d, #51
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f3627f5		urshr v21.2s, v31.2s, #10
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f152635		urshr v21.4h, v17.4h, #11
-#   v21: 0x00000000000000000000000000000010
+#            v21: 0x00000000000000000000000000000010
 0x~~~~~~~~~~~~~~~~  6f3f26c4		urshr v4.4s, v22.4s, #1
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f092420		urshr v0.8b, v1.8b, #7
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1f268d		urshr v13.8h, v20.8h, #1
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea1ca14		ursqrte v20.2s, v16.2s
-#   v20: 0x0000000000000000ffffffffffffffff
+#            v20: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ea1c91c		ursqrte v28.4s, v8.4s
-#   v28: 0xffffffffffffffffffffffffffffffff
+#            v28: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7f53361b		ursra d27, d16, #45
-#   v27: 0x0000000000000000ffffffffffffffff
+#            v27: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6f0d3632		ursra v18.16b, v17.16b, #3
-#   v18: 0x00000000000000000000000000001010
+#            v18: 0x00000000000000000000000000001010
 0x~~~~~~~~~~~~~~~~  6f46379a		ursra v26.2d, v28.2d, #58
-#   v26: 0x00000000000000400000000000000040
+#            v26: 0x00000000000000400000000000000040
 0x~~~~~~~~~~~~~~~~  2f2136c8		ursra v8.2s, v22.2s, #31
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f19349f		ursra v31.4h, v4.4h, #7
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f3e35ff		ursra v31.4s, v15.4s, #2
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0b3423		ursra v3.8b, v1.8b, #5
-#    v3: 0x0000000000000000000000007f007f00
+#             v3: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  6f1335d2		ursra v18.8h, v14.8h, #13
-#   v18: 0x00000000000000000008000800081018
+#            v18: 0x00000000000000000008000800081018
 0x~~~~~~~~~~~~~~~~  7ef0441f		ushl d31, d0, d16
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e2244c0		ushl v0.16b, v6.16b, v2.16b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ef24432		ushl v18.2d, v1.2d, v18.2d
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebd44fb		ushl v27.2s, v7.2s, v29.2s
-#   v27: 0x00000000000000000000000000000008
+#            v27: 0x00000000000000000000000000000008
 0x~~~~~~~~~~~~~~~~  2e6d45ce		ushl v14.4h, v14.4h, v13.4h
-#   v14: 0x0000000000000000ffffffffffffffff
+#            v14: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ea94496		ushl v22.4s, v4.4s, v9.4s
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e3b46d7		ushl v23.8b, v22.8b, v27.8b
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e684735		ushl v21.8h, v25.8h, v8.8h
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f35a40b		ushll v11.2d, v0.2s, #21
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f18a622		ushll v2.4s, v17.4h, #8
-#    v2: 0x000000000000000000000000007e8100
+#             v2: 0x000000000000000000000000007e8100
 0x~~~~~~~~~~~~~~~~  2f09a5cb		ushll v11.8h, v14.8b, #1
-#   v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
+#            v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
 0x~~~~~~~~~~~~~~~~  6f27a7a8		ushll2 v8.2d, v29.4s, #7
-#    v8: 0x000000000000000000000000007fff80
+#             v8: 0x000000000000000000000000007fff80
 0x~~~~~~~~~~~~~~~~  6f12a53d		ushll2 v29.4s, v9.8h, #2
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0ea705		ushll2 v5.8h, v24.16b, #6
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f4b077c		ushr d28, d27, #53
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f090521		ushr v1.16b, v9.16b, #7
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f550702		ushr v2.2d, v24.2d, #43
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f35073e		ushr v30.2s, v25.2s, #11
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f14074a		ushr v10.4h, v26.4h, #12
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f2204a4		ushr v4.4s, v5.4s, #30
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0f045e		ushr v30.8b, v2.8b, #1
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1e0586		ushr v6.8h, v12.8h, #2
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e2038b3		usqadd b19, b5
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ee03849		usqadd d9, d2
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e603a02		usqadd h2, h16
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea03870		usqadd s16, s3
-#   v16: 0x0000000000000000000000007f007f00
+#            v16: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  6e203bbf		usqadd v31.16b, v29.16b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee03948		usqadd v8.2d, v10.2d
-#    v8: 0x000000000000000000000000007fff80
+#             v8: 0x000000000000000000000000007fff80
 0x~~~~~~~~~~~~~~~~  2ea03932		usqadd v18.2s, v9.2s
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e6039d8		usqadd v24.4h, v14.4h
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea03bca		usqadd v10.4s, v30.4s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e203a90		usqadd v16.8b, v20.8b
-#   v16: 0x0000000000000000000000007e007e00
+#            v16: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  6e603a0c		usqadd v12.8h, v16.8h
-#   v12: 0x0000000000000000000000007e007e00
+#            v12: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  7f5b177c		usra d28, d27, #37
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0b16c5		usra v5.16b, v22.16b, #5
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f5f1662		usra v2.2d, v19.2d, #33
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f2b1400		usra v0.2s, v0.2s, #21
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f1414c7		usra v7.4h, v6.4h, #12
-#    v7: 0x00000000000000000000000000000008
+#             v7: 0x00000000000000000000000000000008
 0x~~~~~~~~~~~~~~~~  6f371624		usra v4.4s, v17.4s, #9
-#    v4: 0x0000000000000000000000000000003f
+#             v4: 0x0000000000000000000000000000003f
 0x~~~~~~~~~~~~~~~~  2f091589		usra v9.8b, v12.8b, #7
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f121763		usra v3.8h, v27.8h, #14
-#    v3: 0x0000000000000000000000007f007f00
+#             v3: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  2ebe219d		usubl v29.2d, v12.2s, v30.2s
-#   v29: 0x0000000000000000000000007e007e00
+#            v29: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  2e66239d		usubl v29.4s, v28.4h, v6.4h
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2e208c		usubl v12.8h, v4.8b, v14.8b
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
 0x~~~~~~~~~~~~~~~~  6eb12301		usubl2 v1.2d, v24.4s, v17.4s
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e632024		usubl2 v4.4s, v1.8h, v3.8h
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e272097		usubl2 v23.8h, v4.16b, v7.16b
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebe3289		usubw v9.2d, v20.2d, v30.2s
-#    v9: 0x0000000000000000ffffffffffffffff
+#             v9: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2e773214		usubw v20.4s, v16.4s, v23.4h
-#   v20: 0x0000000000000000000000007e007e00
+#            v20: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  2e3d3119		usubw v25.8h, v8.8h, v29.8b
-#   v25: 0x000000000000000000000000007fff80
+#            v25: 0x000000000000000000000000007fff80
 0x~~~~~~~~~~~~~~~~  6ea633b2		usubw2 v18.2d, v29.2d, v6.4s
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7430c6		usubw2 v6.4s, v6.4s, v20.8h
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e303092		usubw2 v18.8h, v4.8h, v16.16b
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f20a6bb		uxtl v27.2d, v21.2s
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f10a7e0		uxtl v0.4s, v31.4h
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f08a55b		uxtl v27.8h, v10.8b
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f20a606		uxtl2 v6.2d, v16.4s
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f10a696		uxtl2 v22.4s, v20.8h
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f08a6b4		uxtl2 v20.8h, v21.16b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e11193e		uzp1 v30.16b, v9.16b, v17.16b
-#   v30: 0x000000000000008100000000ffffffff
+#            v30: 0x000000000000008100000000ffffffff
 0x~~~~~~~~~~~~~~~~  4edc1b47		uzp1 v7.2d, v26.2d, v28.2d
-#    v7: 0x00000000000000000000000000000040
+#             v7: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  0e961a1a		uzp1 v26.2s, v16.2s, v22.2s
-#   v26: 0x0000000000000000000000007e007e00
+#            v26: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  0e461a6e		uzp1 v14.4h, v19.4h, v6.4h
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e9e1af1		uzp1 v17.4s, v23.4s, v30.4s
-#   v17: 0x00000081ffffffff0000000000000000
+#            v17: 0x00000081ffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  0e0d1b7c		uzp1 v28.8b, v27.8b, v13.8b
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e4c1831		uzp1 v17.8h, v1.8h, v12.8h
-#   v17: 0xff01ff01ff01ff400000000000000000
+#            v17: 0xff01ff01ff01ff400000000000000000
 0x~~~~~~~~~~~~~~~~  4e1a5a48		uzp2 v8.16b, v18.16b, v26.16b
-#    v8: 0x0000000000007e7e0000000000000000
+#             v8: 0x0000000000007e7e0000000000000000
 0x~~~~~~~~~~~~~~~~  4ed85ad5		uzp2 v21.2d, v22.2d, v24.2d
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e825ab4		uzp2 v20.2s, v21.2s, v2.2s
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e465bf0		uzp2 v16.4h, v31.4h, v6.4h
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e885979		uzp2 v25.4s, v11.4s, v8.4s
-#   v25: 0x000000000000000001fe01fe01fe01fe
+#            v25: 0x000000000000000001fe01fe01fe01fe
 0x~~~~~~~~~~~~~~~~  0e0d5bff		uzp2 v31.8b, v31.8b, v13.8b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e415a28		uzp2 v8.8h, v17.8h, v1.8h
-#    v8: 0x0000000000000000ff01ff0100000000
+#             v8: 0x0000000000000000ff01ff0100000000
 0x~~~~~~~~~~~~~~~~  0ea12b51		xtn v17.2s, v26.2d
-#   v17: 0x0000000000000000000000007e007e00
+#            v17: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  0e612803		xtn v3.4h, v0.4s
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e212912		xtn v18.8b, v8.8h
-#   v18: 0x00000000000000000000000001010000
+#            v18: 0x00000000000000000000000001010000
 0x~~~~~~~~~~~~~~~~  4e212800		xtn2 v0.16b, v0.8h
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea1288f		xtn2 v15.4s, v4.2d
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e612a5f		xtn2 v31.8h, v18.4s
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e063936		zip1 v22.16b, v9.16b, v6.16b
-#   v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
+#            v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
 0x~~~~~~~~~~~~~~~~  4ec23977		zip1 v23.2d, v11.2d, v2.2d
-#   v23: 0x000000000000000001fe01fe01fe01fe
+#            v23: 0x000000000000000001fe01fe01fe01fe
 0x~~~~~~~~~~~~~~~~  0e893a1a		zip1 v26.2s, v16.2s, v9.2s
-#   v26: 0x0000000000000000ffffffff00000000
+#            v26: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  0e473921		zip1 v1.4h, v9.4h, v7.4h
-#    v1: 0x00000000000000000000ffff0040ffff
+#             v1: 0x00000000000000000000ffff0040ffff
 0x~~~~~~~~~~~~~~~~  4e943bc0		zip1 v0.4s, v30.4s, v20.4s
-#    v0: 0x000000000000000000000000ffffffff
+#             v0: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  0e0f3a3e		zip1 v30.8b, v17.8b, v15.8b
-#   v30: 0x0000000000000000007e0000007e0000
+#            v30: 0x0000000000000000007e0000007e0000
 0x~~~~~~~~~~~~~~~~  4e423911		zip1 v17.8h, v8.8h, v2.8h
-#   v17: 0x0000ff010000ff010000000000000000
+#            v17: 0x0000ff010000ff010000000000000000
 0x~~~~~~~~~~~~~~~~  4e0b7957		zip2 v23.16b, v10.16b, v11.16b
-#   v23: 0x0100fe000100fe000100fe000100fe00
+#            v23: 0x0100fe000100fe000100fe000100fe00
 0x~~~~~~~~~~~~~~~~  4ece78de		zip2 v30.2d, v6.2d, v14.2d
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e957949		zip2 v9.2s, v10.2s, v21.2s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e5d7b08		zip2 v8.4h, v24.4h, v29.4h
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e977aa0		zip2 v0.4s, v21.4s, v23.4s
-#    v0: 0x0100fe00000000000100fe0000000000
+#             v0: 0x0100fe00000000000100fe0000000000
 0x~~~~~~~~~~~~~~~~  0e1e7af9		zip2 v25.8b, v23.8b, v30.8b
-#   v25: 0x00000000000000000001000000fe0000
+#            v25: 0x00000000000000000001000000fe0000
 0x~~~~~~~~~~~~~~~~  4e5e7947		zip2 v7.8h, v10.8h, v30.8h
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee8d723		fabd v3.2d, v25.2d, v8.2d
-#    v3: 0x00000000000000000001000000fe0000
+#             v3: 0x00000000000000000001000000fe0000
 0x~~~~~~~~~~~~~~~~  2eabd76e		fabd v14.2s, v27.2s, v11.2s
-#   v14: 0x000000000000000001fe01fe01fe01fe
+#            v14: 0x000000000000000001fe01fe01fe01fe
 0x~~~~~~~~~~~~~~~~  6eb2d6c9		fabd v9.4s, v22.4s, v18.4s
-#    v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
+#             v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
 0x~~~~~~~~~~~~~~~~  4ee0fba1		fabs v1.2d, v29.2d
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea0faa6		fabs v6.2s, v21.2s
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea0fb2c		fabs v12.4s, v25.4s
-#   v12: 0x00000000000000000001000000fe0000
+#            v12: 0x00000000000000000001000000fe0000
 0x~~~~~~~~~~~~~~~~  6e60ecb2		facge v18.2d, v5.2d, v0.2d
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e26ed6f		facge v15.2s, v11.2s, v6.2s
-#   v15: 0x0000000000000000ffffffffffffffff
+#            v15: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e39ed5e		facge v30.4s, v10.4s, v25.4s
-#   v30: 0xffffffffffffffff0000000000000000
+#            v30: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  6effee1c		facgt v28.2d, v16.2d, v31.2d
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea4ec2f		facgt v15.2s, v1.2s, v4.2s
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eaaec76		facgt v22.4s, v3.4s, v10.4s
-#   v22: 0x0000000000000000ffffffffffffffff
+#            v22: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e78d547		fadd v7.2d, v10.2d, v24.2d
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e27d6ea		fadd v10.2s, v23.2s, v7.2s
-#   v10: 0x00000000000000000100fe000100fe00
+#            v10: 0x00000000000000000100fe000100fe00
 0x~~~~~~~~~~~~~~~~  4e2bd6d0		fadd v16.4s, v22.4s, v11.4s
-#   v16: 0x01fe01fe01fe01feffffffffffffffff
+#            v16: 0x01fe01fe01fe01feffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7e70db9b		faddp d27, v28.2d
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e30daf4		faddp s20, v23.2s
-#   v20: 0x0000000000000000000000000180fe00
+#            v20: 0x0000000000000000000000000180fe00
 0x~~~~~~~~~~~~~~~~  6e6bd495		faddp v21.2d, v4.2d, v11.2d
-#   v21: 0x020e01fe01fe01fe0000000000000000
+#            v21: 0x020e01fe01fe01fe0000000000000000
 0x~~~~~~~~~~~~~~~~  2e21d75f		faddp v31.2s, v26.2s, v1.2s
-#   v31: 0x000000000000000000000000ffffffff
+#            v31: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  6e3cd76d		faddp v13.4s, v27.4s, v28.4s
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e74e5b1		fcmeq v17.2d, v13.2d, v20.2d
-#   v17: 0xffffffffffffffff0000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  4ee0da18		fcmeq v24.2d, v16.2d, #0.0
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e2ae63a		fcmeq v26.2s, v17.2s, v10.2s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea0d898		fcmeq v24.2s, v4.2s, #0.0
-#   v24: 0x0000000000000000ffffffffffffffff
+#            v24: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e2ee488		fcmeq v8.4s, v4.4s, v14.4s
-#    v8: 0xffffffffffffffff0000000000000000
+#             v8: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  4ea0db3a		fcmeq v26.4s, v25.4s, #0.0
-#   v26: 0xffffffffffffffff0000000000000000
+#            v26: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  6e60e41b		fcmge v27.2d, v0.2d, v0.2d
-#   v27: 0xffffffffffffffffffffffffffffffff
+#            v27: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ee0cbd6		fcmge v22.2d, v30.2d, #0.0
-#   v22: 0x0000000000000000ffffffffffffffff
+#            v22: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2e39e6a7		fcmge v7.2s, v21.2s, v25.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea0c9ef		fcmge v15.2s, v15.2s, #0.0
-#   v15: 0x0000000000000000ffffffffffffffff
+#            v15: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e3be49d		fcmge v29.4s, v4.4s, v27.4s
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea0cab6		fcmge v22.4s, v21.4s, #0.0
-#   v22: 0xffffffffffffffffffffffffffffffff
+#            v22: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6eefe741		fcmgt v1.2d, v26.2d, v15.2d
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee0caef		fcmgt v15.2d, v23.2d, #0.0
-#   v15: 0xffffffffffffffffffffffffffffffff
+#            v15: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2ea6e615		fcmgt v21.2s, v16.2s, v6.2s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea0c9a1		fcmgt v1.2s, v13.2s, #0.0
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb9e40e		fcmgt v14.4s, v0.4s, v25.4s
-#   v14: 0xffffffff00000000ffffffff00000000
+#            v14: 0xffffffff00000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  4ea0c90d		fcmgt v13.4s, v8.4s, #0.0
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee0d8c4		fcmle v4.2d, v6.2d, #0.0
-#    v4: 0xffffffffffffffffffffffffffffffff
+#             v4: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2ea0dbf8		fcmle v24.2s, v31.2s, #0.0
-#   v24: 0x0000000000000000ffffffff00000000
+#            v24: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  6ea0dae8		fcmle v8.4s, v23.4s, #0.0
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee0e867		fcmlt v7.2d, v3.2d, #0.0
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea0eaaf		fcmlt v15.2s, v21.2s, #0.0
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea0e841		fcmlt v1.4s, v2.4s, #0.0
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e61c906		fcvtas v6.2d, v8.2d
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e21c921		fcvtas v1.2s, v9.2s
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e21ca68		fcvtas v8.4s, v19.4s
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e61cbe5		fcvtau v5.2d, v31.2d
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e21cbbc		fcvtau v28.2s, v29.2s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e21cb4b		fcvtau v11.4s, v26.4s
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e617b28		fcvtl v8.2d, v25.2s
-#    v8: 0x37a0000000000000381fc00000000000
+#             v8: 0x37a0000000000000381fc00000000000
 0x~~~~~~~~~~~~~~~~  0e2179db		fcvtl v27.4s, v14.4h
-#   v27: 0xffffe000ffffe0000000000000000000
+#            v27: 0xffffe000ffffe0000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6178c1		fcvtl2 v1.2d, v6.4s
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e217938		fcvtl2 v24.4s, v9.8h
-#   v24: 0x377f0000377f0000377f0000377f0000
+#            v24: 0x377f0000377f0000377f0000377f0000
 0x~~~~~~~~~~~~~~~~  4e61bb09		fcvtms v9.2d, v24.2d
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e21b967		fcvtms v7.2s, v11.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e21bab7		fcvtms v23.4s, v21.4s
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e61b82d		fcvtmu v13.2d, v1.2d
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e21b99a		fcvtmu v26.2s, v12.2s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e21bab5		fcvtmu v21.4s, v21.4s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e61682b		fcvtn v11.2s, v1.2d
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e216848		fcvtn v8.4h, v2.4s
-#    v8: 0x37a00000000000000000000000000000
+#             v8: 0x37a00000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e616bb8		fcvtn2 v24.4s, v29.2d
-#   v24: 0x0000000000000000377f0000377f0000
+#            v24: 0x0000000000000000377f0000377f0000
 0x~~~~~~~~~~~~~~~~  4e216944		fcvtn2 v4.8h, v10.4s
-#    v4: 0x0000000000000000ffffffffffffffff
+#             v4: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e61a959		fcvtns v25.2d, v10.2d
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e21a904		fcvtns v4.2s, v8.2s
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e21ab7d		fcvtns v29.4s, v27.4s
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e61ab72		fcvtnu v18.2d, v27.2d
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e21a9cb		fcvtnu v11.2s, v14.2s
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e21aabb		fcvtnu v27.4s, v21.4s
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee1a8b7		fcvtps v23.2d, v5.2d
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea1a9f8		fcvtps v24.2s, v15.2s
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea1aa65		fcvtps v5.4s, v19.4s
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee1aaa3		fcvtpu v3.2d, v21.2d
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea1aaa3		fcvtpu v3.2s, v21.2s
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea1a8e0		fcvtpu v0.4s, v7.4s
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e61697d		fcvtxn v29.2s, v11.2d
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e616b3f		fcvtxn2 v31.4s, v25.2d
-#   v31: 0x000000000000000000000000ffffffff
+#            v31: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  4ee1ba33		fcvtzs v19.2d, v17.2d
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f40ff0c		fcvtzs v12.2d, v24.2d, #64
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea1b849		fcvtzs v9.2s, v2.2s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f23fe85		fcvtzs v5.2s, v20.2s, #29
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea1bb35		fcvtzs v21.4s, v25.4s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f3afc3a		fcvtzs v26.4s, v1.4s, #6
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee1bb2d		fcvtzu v13.2d, v25.2d
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f60fdbc		fcvtzu v28.2d, v13.2d, #32
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea1b8da		fcvtzu v26.2s, v6.2s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f31fd49		fcvtzu v9.2s, v10.2s, #15
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea1b8de		fcvtzu v30.4s, v6.4s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f2efed3		fcvtzu v19.4s, v22.4s, #18
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e6ffd0f		fdiv v15.2d, v8.2d, v15.2d
-#   v15: 0x7ff00000000000007ff8000000000000
+#            v15: 0x7ff00000000000007ff8000000000000
 0x~~~~~~~~~~~~~~~~  2e3afd2c		fdiv v12.2s, v9.2s, v26.2s
-#   v12: 0x00000000000000007fc000007fc00000
+#            v12: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  6e33fed3		fdiv v19.4s, v22.4s, v19.4s
-#   v19: 0xffffffffffffffffffffffffffffffff
+#            v19: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e68f4f3		fmax v19.2d, v7.2d, v8.2d
-#   v19: 0x37a00000000000000000000000000000
+#            v19: 0x37a00000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e3df599		fmax v25.2s, v12.2s, v29.2s
-#   v25: 0x00000000000000007fc000007fc00000
+#            v25: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  4e25f5e6		fmax v6.4s, v15.4s, v5.4s
-#    v6: 0x7ff00000000000007ff8000000000000
+#             v6: 0x7ff00000000000007ff8000000000000
 0x~~~~~~~~~~~~~~~~  4e74c510		fmaxnm v16.2d, v8.2d, v20.2d
-#   v16: 0x37a0000000000000000000000180fe00
+#            v16: 0x37a0000000000000000000000180fe00
 0x~~~~~~~~~~~~~~~~  0e39c74f		fmaxnm v15.2s, v26.2s, v25.2s
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e30c5d7		fmaxnm v23.4s, v14.4s, v16.4s
-#   v23: 0x37a0000000000000000000000180fe00
+#            v23: 0x37a0000000000000000000000180fe00
 0x~~~~~~~~~~~~~~~~  7e70ca66		fmaxnmp d6, v19.2d
-#    v6: 0x000000000000000037a0000000000000
+#             v6: 0x000000000000000037a0000000000000
 0x~~~~~~~~~~~~~~~~  7e30cb5b		fmaxnmp s27, v26.2s
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e77c588		fmaxnmp v8.2d, v12.2d, v23.2d
-#    v8: 0x37a00000000000007fc000007fc00000
+#             v8: 0x37a00000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  2e36c72d		fmaxnmp v13.2s, v25.2s, v22.2s
-#   v13: 0x0000000000000000ffffffff7fc00000
+#            v13: 0x0000000000000000ffffffff7fc00000
 0x~~~~~~~~~~~~~~~~  6e31c56f		fmaxnmp v15.4s, v11.4s, v17.4s
-#   v15: 0xffffffff000000000000000000000000
+#            v15: 0xffffffff000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e30ca7b		fmaxnmv s27, v19.4s
-#   v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
 0x~~~~~~~~~~~~~~~~  7e70f9d4		fmaxp d20, v14.2d
-#   v20: 0x0000000000000000ffffffff00000000
+#            v20: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  7e30f852		fmaxp s18, v2.2s
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7ff6e9		fmaxp v9.2d, v23.2d, v31.2d
-#    v9: 0x00000000ffffffff37a0000000000000
+#             v9: 0x00000000ffffffff37a0000000000000
 0x~~~~~~~~~~~~~~~~  2e3ff6c7		fmaxp v7.2s, v22.2s, v31.2s
-#    v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e3df4f2		fmaxp v18.4s, v7.4s, v29.4s
-#   v18: 0x000000000000000000000000ffffffff
+#            v18: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  6e30fbbf		fmaxv s31, v29.4s
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee2f4a2		fmin v2.2d, v5.2d, v2.2d
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eaaf63f		fmin v31.2s, v17.2s, v10.2s
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eb0f48a		fmin v10.4s, v4.4s, v16.4s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee5c4d5		fminnm v21.2d, v6.2d, v5.2d
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eaec656		fminnm v22.2s, v18.2s, v14.2s
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea3c7f9		fminnm v25.4s, v31.4s, v3.4s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ef0c829		fminnmp d9, v1.2d
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eb0ca95		fminnmp s21, v20.2s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ef3c6b0		fminnmp v16.2d, v21.2d, v19.2d
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb9c7f0		fminnmp v16.2s, v31.2s, v25.2s
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eafc61a		fminnmp v26.4s, v16.4s, v15.4s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb0c883		fminnmv s3, v4.4s
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ef0fb58		fminp d24, v26.2d
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eb0fa27		fminp s7, v17.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee3f677		fminp v23.2d, v19.2d, v3.2d
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea9f6bd		fminp v29.2s, v21.2s, v9.2s
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb5f700		fminp v0.4s, v24.4s, v21.4s
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb0f919		fminv s25, v8.4s
-#   v25: 0x0000000000000000000000007fc00000
+#            v25: 0x0000000000000000000000007fc00000
 0x~~~~~~~~~~~~~~~~  5fc91817		fmla d23, d0, v9.d[2]
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f8711f7		fmla s23, s15, v7.s[0]
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e66cd71		fmla v17.2d, v11.2d, v6.2d
-#   v17: 0xffffffffffffffff0000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  4fcb13de		fmla v30.2d, v30.2d, v11.d[0]
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e26cd93		fmla v19.2s, v12.2s, v6.2s
-#   v19: 0x00000000000000007fc000007fc00000
+#            v19: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  0f891238		fmla v24.2s, v17.2s, v9.s[0]
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e2bcd70		fmla v16.4s, v11.4s, v11.4s
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f891afb		fmla v27.4s, v23.4s, v9.s[2]
-#   v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
 0x~~~~~~~~~~~~~~~~  5fc653db		fmls d27, d30, v6.d[0]
-#   v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
 0x~~~~~~~~~~~~~~~~  5f825215		fmls s21, s16, v2.s[0]
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ef5ce65		fmls v5.2d, v19.2d, v21.2d
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4fcc53d2		fmls v18.2d, v30.2d, v12.d[0]
-#   v18: 0x000000000000000000000000ffffffff
+#            v18: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  0ea7ce05		fmls v5.2s, v16.2s, v7.2s
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0fab5243		fmls v3.2s, v18.2s, v11.s[1]
-#    v3: 0x0000000000000000000000007fffffff
+#             v3: 0x0000000000000000000000007fffffff
 0x~~~~~~~~~~~~~~~~  4ebeccbb		fmls v27.4s, v5.4s, v30.4s
-#   v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
 0x~~~~~~~~~~~~~~~~  4fa45a9a		fmls v26.4s, v20.4s, v4.s[3]
-#   v26: 0x00000000000000007fffffff00000000
+#            v26: 0x00000000000000007fffffff00000000
 0x~~~~~~~~~~~~~~~~  6f06f6ce		fmov v14.2d, #0xd6 (-0.3438)
-#   v14: 0xbfd6000000000000bfd6000000000000
+#            v14: 0xbfd6000000000000bfd6000000000000
 0x~~~~~~~~~~~~~~~~  0f03f5ba		fmov v26.2s, #0x6d (0.9062)
-#   v26: 0x00000000000000003f6800003f680000
+#            v26: 0x00000000000000003f6800003f680000
 0x~~~~~~~~~~~~~~~~  4f04f69f		fmov v31.4s, #0x94 (-5.0000)
-#   v31: 0xc0a00000c0a00000c0a00000c0a00000
+#            v31: 0xc0a00000c0a00000c0a00000c0a00000
 0x~~~~~~~~~~~~~~~~  9eaf033c		fmov v28.D[1], x25
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  9eae0052		fmov x18, v2.D[1]
-#   x18: 0x0000000000000000
+#            x18: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5fc1988c		fmul d12, d4, v1.d[2]
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5faf983e		fmul s30, s1, v15.s[3]
-#   v30: 0x000000000000000000000000ffffffff
+#            v30: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  6e75dc19		fmul v25.2d, v0.2d, v21.2d
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4fca9b0a		fmul v10.2d, v24.2d, v10.d[2]
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e30df07		fmul v7.2s, v24.2s, v16.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f849a01		fmul v1.2s, v16.2s, v4.s[2]
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e39df85		fmul v5.4s, v28.4s, v25.4s
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f88906b		fmul v11.4s, v3.4s, v8.s[0]
-#   v11: 0x7fc000007fc000007fc000007fffffff
+#            v11: 0x7fc000007fc000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  7fc3993c		fmulx d28, d9, v3.d[2]
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7faf92b9		fmulx s25, s21, v15.s[1]
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e68df9f		fmulx v31.2d, v28.2d, v8.2d
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6fc692a3		fmulx v3.2d, v21.2d, v6.d[0]
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e20dc29		fmulx v9.2s, v1.2s, v0.2s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f869370		fmulx v16.2s, v27.2s, v6.s[0]
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e25dc82		fmulx v2.4s, v4.4s, v5.4s
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f8490f2		fmulx v18.4s, v7.4s, v4.s[0]
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee0fb21		fneg v1.2d, v25.2d
-#    v1: 0x80000000000000008000000000000000
+#             v1: 0x80000000000000008000000000000000
 0x~~~~~~~~~~~~~~~~  2ea0fbee		fneg v14.2s, v31.2s
-#   v14: 0x00000000000000008000000080000000
+#            v14: 0x00000000000000008000000080000000
 0x~~~~~~~~~~~~~~~~  6ea0f885		fneg v5.4s, v4.4s
-#    v5: 0x80000000800000008000000080000000
+#             v5: 0x80000000800000008000000080000000
 0x~~~~~~~~~~~~~~~~  4ee1d992		frecpe v18.2d, v12.2d
-#   v18: 0x7ff00000000000007ff0000000000000
+#            v18: 0x7ff00000000000007ff0000000000000
 0x~~~~~~~~~~~~~~~~  0ea1daca		frecpe v10.2s, v22.2s
-#   v10: 0x00000000000000007f8000007f800000
+#            v10: 0x00000000000000007f8000007f800000
 0x~~~~~~~~~~~~~~~~  4ea1d8c5		frecpe v5.4s, v6.4s
-#    v5: 0x7f8000007f800000474c80007f800000
+#             v5: 0x7f8000007f800000474c80007f800000
 0x~~~~~~~~~~~~~~~~  4e7afcf6		frecps v22.2d, v7.2d, v26.2d
-#   v22: 0x40000000000000004000000000000000
+#            v22: 0x40000000000000004000000000000000
 0x~~~~~~~~~~~~~~~~  0e22ff7f		frecps v31.2s, v27.2s, v2.2s
-#   v31: 0x00000000000000004000000040000000
+#            v31: 0x00000000000000004000000040000000
 0x~~~~~~~~~~~~~~~~  4e3bfcd2		frecps v18.4s, v6.4s, v27.4s
-#   v18: 0x40000000400000004000000040000000
+#            v18: 0x40000000400000004000000040000000
 0x~~~~~~~~~~~~~~~~  6e6189ba		frinta v26.2d, v13.2d
-#   v26: 0x0000000000000000ffffffff7fc00000
+#            v26: 0x0000000000000000ffffffff7fc00000
 0x~~~~~~~~~~~~~~~~  2e218b4f		frinta v15.2s, v26.2s
-#   v15: 0x0000000000000000ffffffff7fc00000
+#            v15: 0x0000000000000000ffffffff7fc00000
 0x~~~~~~~~~~~~~~~~  6e218a0d		frinta v13.4s, v16.4s
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee19989		frinti v9.2d, v12.2d
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea19a65		frinti v5.2s, v19.2s
-#    v5: 0x00000000000000007fc000007fc00000
+#             v5: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  6ea1996f		frinti v15.4s, v11.4s
-#   v15: 0x7fc000007fc000007fc000007fffffff
+#            v15: 0x7fc000007fc000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  4e619bb1		frintm v17.2d, v29.2d
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e21997e		frintm v30.2s, v11.2s
-#   v30: 0x00000000000000007fc000007fffffff
+#            v30: 0x00000000000000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  4e219a81		frintm v1.4s, v20.4s
-#    v1: 0x0000000000000000ffffffff00000000
+#             v1: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  4e6188d8		frintn v24.2d, v6.2d
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e218a2c		frintn v12.2s, v17.2s
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e21897d		frintn v29.4s, v11.4s
-#   v29: 0x7fc000007fc000007fc000007fffffff
+#            v29: 0x7fc000007fc000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  4ee188ea		frintp v10.2d, v7.2d
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea18a4c		frintp v12.2s, v18.2s
-#   v12: 0x00000000000000004000000040000000
+#            v12: 0x00000000000000004000000040000000
 0x~~~~~~~~~~~~~~~~  4ea18bfa		frintp v26.4s, v31.4s
-#   v26: 0x00000000000000004000000040000000
+#            v26: 0x00000000000000004000000040000000
 0x~~~~~~~~~~~~~~~~  6e6199b8		frintx v24.2d, v13.2d
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e219927		frintx v7.2s, v9.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e219ab2		frintx v18.4s, v21.4s
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee19b33		frintz v19.2d, v25.2d
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea1990f		frintz v15.2s, v8.2s
-#   v15: 0x00000000000000007fc000007fc00000
+#            v15: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  4ea19874		frintz v20.4s, v3.4s
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee1d8b7		frsqrte v23.2d, v5.2d
-#   v23: 0x7ff00000000000002006900000000000
+#            v23: 0x7ff00000000000002006900000000000
 0x~~~~~~~~~~~~~~~~  2ea1d8e9		frsqrte v9.2s, v7.2s
-#    v9: 0x00000000000000007f8000007f800000
+#             v9: 0x00000000000000007f8000007f800000
 0x~~~~~~~~~~~~~~~~  6ea1d923		frsqrte v3.4s, v9.4s
-#    v3: 0x7f8000007f8000000000000000000000
+#             v3: 0x7f8000007f8000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eefff99		frsqrts v25.2d, v28.2d, v15.2d
-#   v25: 0x3ff80000000000003ff8000000000000
+#            v25: 0x3ff80000000000003ff8000000000000
 0x~~~~~~~~~~~~~~~~  0eaaff49		frsqrts v9.2s, v26.2s, v10.2s
-#    v9: 0x00000000000000003fc000003fc00000
+#             v9: 0x00000000000000003fc000003fc00000
 0x~~~~~~~~~~~~~~~~  4eaafc25		frsqrts v5.4s, v1.4s, v10.4s
-#    v5: 0x3fc000003fc000007fffffff3fc00000
+#             v5: 0x3fc000003fc000007fffffff3fc00000
 0x~~~~~~~~~~~~~~~~  6ee1fa46		fsqrt v6.2d, v18.2d
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea1fa46		fsqrt v6.2s, v18.2s
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea1fbe0		fsqrt v0.4s, v31.4s
-#    v0: 0x00000000000000003fb504f33fb504f3
+#             v0: 0x00000000000000003fb504f33fb504f3
 0x~~~~~~~~~~~~~~~~  4effd7df		fsub v31.2d, v30.2d, v31.2d
-#   v31: 0x00000000000000007fc000007fffffff
+#            v31: 0x00000000000000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  0ea6d50b		fsub v11.2s, v8.2s, v6.2s
-#   v11: 0x00000000000000007fc000007fc00000
+#            v11: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  4ebfd410		fsub v16.4s, v0.4s, v31.4s
-#   v16: 0x00000000000000007fc000007fffffff
+#            v16: 0x00000000000000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  4e61dbf9		scvtf v25.2d, v31.2d
-#   v25: 0x000000000000000043dff00000200000
+#            v25: 0x000000000000000043dff00000200000
 0x~~~~~~~~~~~~~~~~  4f53e5aa		scvtf v10.2d, v13.2d, #45
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e21d9ea		scvtf v10.2s, v15.2s
-#   v10: 0x00000000000000004eff80004eff8000
+#            v10: 0x00000000000000004eff80004eff8000
 0x~~~~~~~~~~~~~~~~  0f25e492		scvtf v18.2s, v4.2s, #27
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e21d8b1		scvtf v17.4s, v5.4s
-#   v17: 0x4e7f00004e7f00004f0000004e7f0000
+#            v17: 0x4e7f00004e7f00004f0000004e7f0000
 0x~~~~~~~~~~~~~~~~  4f28e72b		scvtf v11.4s, v25.4s, #24
-#   v11: 0x00000000000000004287bfe03e000000
+#            v11: 0x00000000000000004287bfe03e000000
 0x~~~~~~~~~~~~~~~~  6e61d869		ucvtf v9.2d, v3.2d
-#    v9: 0x43dfe000001fe0000000000000000000
+#             v9: 0x43dfe000001fe0000000000000000000
 0x~~~~~~~~~~~~~~~~  6f52e7da		ucvtf v26.2d, v30.2d, #46
-#   v26: 0x000000000000000040fff00000200000
+#            v26: 0x000000000000000040fff00000200000
 0x~~~~~~~~~~~~~~~~  2e21d88b		ucvtf v11.2s, v4.2s
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f27e47d		ucvtf v29.2s, v3.2s, #25
-#   v29: 0x7fc000007fc000000000000000000000
+#            v29: 0x7fc000007fc000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e21daf6		ucvtf v22.4s, v23.4s
-#   v22: 0x4effe000000000004e001a4000000000
+#            v22: 0x4effe000000000004e001a4000000000
 0x~~~~~~~~~~~~~~~~  6f27e532		ucvtf v18.4s, v9.4s, #25
-#   v18: 0x4207bfc03d7f00000000000000000000
+#            v18: 0x4207bfc03d7f00000000000000000000
+0x~~~~~~~~~~~~~~~~  e5810c0c		str p12, [x0, #11, mul vl]
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5810c0d		str p13, [x0, #11, mul vl]
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5810c0e		str p14, [x0, #11, mul vl]
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5810c0f		str p15, [x0, #11, mul vl]
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 -> 0x~~~~~~~~~~~~~~~~
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85810c08		ldr p8, [x0, #11, mul vl]
+#       p8<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85810c09		ldr p9, [x0, #11, mul vl]
+#       p9<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p9<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85810c0a		ldr p10, [x0, #11, mul vl]
+#      p10<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p10<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85810c0b		ldr p11, [x0, #11, mul vl]
+#      p11<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5814c00		str z0, [x0, #11, mul vl]
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5814c01		str z1, [x0, #11, mul vl]
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5814c02		str z2, [x0, #11, mul vl]
+#      z2<127:0>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5814c03		str z3, [x0, #11, mul vl]
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85814c14		ldr z20, [x0, #11, mul vl]
+#     z20<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85814c15		ldr z21, [x0, #11, mul vl]
+#     z21<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85814c16		ldr z22, [x0, #11, mul vl]
+#     z22<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85814c17		ldr z23, [x0, #11, mul vl]
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e403e800		st1b {z0.b}, p2, [x0, #3, mul vl]
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4a3e401		st1h {z1.h}, p1, [x0, #3, mul vl]
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (..., 0.000, 0.000, ..., nan, nan, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, ..., 0.000, 0.000, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5434402		st1w {z2.s}, p1, [x0, x3, lsl #2]
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5e3e803		st1d {z3.d}, p2, [x0, #3, mul vl]
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a403a414		ld1b {z20.b}, p1/z, [x0, #3, mul vl]
+#     z20<127:0>: 0x7f000000008000000000000000000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x80 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x7f <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x2f000000000029000000000023000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4a24815		ld1h {z21.h}, p2/z, [x0, x2, lsl #1]
+#     z21<127:0>: 0x0d0c0b0a09080706050403020100fffe (0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (...)
+#
+#   z21<639:512>: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a543a416		ld1w {z22.s}, p1/z, [x0, #3, mul vl]
+#     z22<127:0>: 0x7f800000000000000000000000000000 (inf, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z22<511:384>: 0x2f2e0000000000000000000023220000 (1.583e-10, ..., 0.000, 8.782e-18)
+#                          ║               ║       ╙─ 0x23220000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e0000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5e3a417		ld1d {z23.d}, p1/z, [x0, #3, mul vl]
+#     z23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z23<511:384>: 0x00000000000000000000000023220000 (..., 2.912e-315)
+#                                                  ╙─ 0x0000000023220000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e423e402		st1b {z2.h}, p1, [x0, #3, mul vl]
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e443e803		st1b {z3.s}, p2, [x0, #3, mul vl]
+#      z3<127:0>: 0x7f8000007f8000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e463e804		st1b {z4.d}, p2, [x0, #3, mul vl]
+#      z4<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4c3e400		st1h {z0.s}, p1, [x0, #3, mul vl]
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                          ║               ║       ╙─ 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4e24401		st1h {z1.d}, p1, [x0, x2, lsl #1]
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e563e402		st1w {z2.d}, p1, [x0, #3, mul vl]
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4224414		ld1b {z20.h}, p1/z, [x0, x2]
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#                          ║   ║       ║   ║       ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000230022000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a443a415		ld1b {z21.s}, p1/z, [x0, #3, mul vl]
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a463a416		ld1b {z22.d}, p1/z, [x0, #3, mul vl]
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4c3a817		ld1h {z23.s}, p2/z, [x0, #3, mul vl]
+#     z23<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4e3a818		ld1h {z24.d}, p2/z, [x0, #3, mul vl]
+#     z24<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a563a414		ld1w {z20.d}, p1/z, [x0, #3, mul vl]
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5c3a415		ld1sb {z21.h}, p1/z, [x0, #3, mul vl]
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5a3a416		ld1sb {z22.s}, p1/z, [x0, #3, mul vl]
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5824817		ld1sb {z23.d}, p2/z, [x0, x2]
+#     z23<127:0>: 0x0000000000000000000000000000007f
+#                                  ║               ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a523a818		ld1sh {z24.s}, p2/z, [x0, #3, mul vl]
+#     z24<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a503a414		ld1sh {z20.d}, p1/z, [x0, #3, mul vl]
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a483a415		ld1sw {z21.d}, p1/z, [x0, #3, mul vl]
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e432f000		st2b {z0.b, z1.b}, p4, [x0, #4, mul vl]
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'04 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0xff'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0xff'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0xff'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4b2f001		st2h {z1.h, z2.h}, p4, [x0, #4, mul vl]
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5226c02		st2w {z2.s, z3.s}, p3, [x0, x2, lsl #2]
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5b2f003		st2d {z3.d, z4.d}, p4, [x0, #4, mul vl]
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a422d414		ld2b {z20.b, z21.b}, p5/z, [x0, x2]
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x000000000000002f0000290000230000
+#   z21<255:128>: 0x00000000000000002e00000000002200
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x22'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x2e'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x0000007f007f00000000000000000000
+#   z21<383:256>: 0x00000000800000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x80'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4a2f815		ld2h {z21.h, z22.h}, p6/z, [x0, #4, mul vl]
+#     z21<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     z22<127:0>: 0x000000007f807f800000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a522f816		ld2w {z22.s, z23.s}, p6/z, [x0, #4, mul vl]
+#     z22<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#     z23<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'7f800000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5a2f417		ld2d {z23.d, z24.d}, p5/z, [x0, #4, mul vl]
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#     z24<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z24<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e451f004		st3b {z4.b, z5.b, z6.b}, p4, [x0, #3, mul vl]
+#      z4<127:0>: 0x00000000000000000000000000000000
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000
+#      z6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#    z5<255:128>: 0x00000000000000000000000000000000
+#    z6<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#    z5<383:256>: 0x00000000000000000000000000000000
+#    z6<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<511:384>: 0x00000000000000000000000000000000
+#    z5<511:384>: 0x00000000000000000000000000000000
+#    z6<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#    z5<639:512>: 0x00000000000000000000000000000000
+#    z6<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4d1f005		st3h {z5.h, z6.h, z7.h}, p4, [x0, #3, mul vl]
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z6<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'7fff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e551ec06		st3w {z6.s, z7.s, z8.s}, p3, [x0, #3, mul vl]
+#      z6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x7fc00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5c27007		st3d {z7.d, z8.d, z9.d}, p4, [x0, x2, lsl #3]
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000)
+#      z9<127:0>: 0x43dfe000001fe0000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'7fc000007fc00000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x43dfe000001fe000'37a0000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a441f418		ld3b {z24.b, z25.b, z26.b}, p5/z, [x0, #3, mul vl]
+#     z24<127:0>: 0x0000000000000000000000ff00000000
+#     z25<127:0>: 0xa000000000000000000000ffc0000000
+#     z26<127:0>: 0x3700000000000000000000007f000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x7f'c0'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'ff'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x37'a0'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<639:512>: 0x00000000000000000000000000000000
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4c2d819		ld3h {z25.h, z26.h, z27.h}, p6/z, [x0, x2, lsl #1]
+#     z25<127:0>: 0x292823221d1c17160000000000000000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z26<127:0>: 0x2b2a25241f1e191813120d0c07060100 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z27<127:0>: 0x2d2c272621201b1a1514000009080000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0100'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0908'0706'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0d0c'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514'1312'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1b1a'1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2120'1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x595853524d4c474641403b3a35342f2e (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z26<255:128>: 0x5b5a55544f4e494843423d3c37363130 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z27<255:128>: 0x5d5c575651504b4a45443f3e39383332 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3332'3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3938'3736'3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544'4342'4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4b4a'4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5150'4f4e'4d4c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c'5b5a'5958 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x898883827d7c777671706b6a65645f5e (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z26<383:256>: 0x8b8a85847f7e797873726d6c67666160 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z27<383:256>: 0x8d8c878681807b7a75746f6e69686362 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x6362'6160'5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6968'6766'6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6f6e'6d6c'6b6a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x7574'7372'7170 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7b7a'7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x8180'7f7e'7d7c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x8786'8584'8382 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8d8c'8b8a'8988 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0xb9b8b3b2adaca7a6a1a09b9a95948f8e (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z26<511:384>: 0xbbbab5b4afaea9a8a3a29d9c97969190 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z27<511:384>: 0xbdbcb7b6b1b0abaaa5a49f9e99989392 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x9392'9190'8f8e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x9998'9796'9594 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x9f9e'9d9c'9b9a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xa5a4'a3a2'a1a0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xabaa'a9a8'a7a6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xb1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xb7b6'b5b4'b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xbdbc'bbba'b9b8 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0xe9e8e3e2dddcd7d6d1d0cbcac5c4bfbe (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z26<639:512>: 0xebeae5e4dfded9d8d3d2cdccc7c6c1c0 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z27<639:512>: 0xedece7e6e1e0dbdad5d4cfcec9c8c3c2 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xc3c2'c1c0'bfbe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xc9c8'c7c6'c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xcfce'cdcc'cbca <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd5d4'd3d2'd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xdbda'd9d8'd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xe1e0'dfde'dddc <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xe7e6'e5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a541f81a		ld3w {z26.s, z27.s, z28.s}, p6/z, [x0, #3, mul vl]
+#     z26<127:0>: 0x00000000000000000000ffff00000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z27<127:0>: 0x00000000000000007fff000000000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z28<127:0>: 0x37a0000000000000000000007fc00000 (0.000, 0.000, 9.183e-41, 0.000)
+#                          ║       ║       ║       ╙─ 0x7fc00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'7fff0000'0000ffff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5c1f41b		ld3d {z27.d, z28.d, z29.d}, p5/z, [x0, #3, mul vl]
+#     z27<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000ffff7fc00000 (0.000, 0.000)
+#     z29<127:0>: 0x37a0000000000000000000007fff0000 (0.000, 0.000)
+#                                  ║               ╙─ 0x000000007fff0000'0000ffff7fc00000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x37a0000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e471f01f		st4b {z31.b, z0.b, z1.b, z2.b}, p4, [x0, #4, mul vl]
+#     z31<127:0>: 0x00000000000000007fc000007fffffff
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'f3'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'04'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'b5'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'f3'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'b5'c0 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'ff'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<255:128>: 0x00000000000000000000000000000000
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<383:256>: 0x00000000000000000000000000000000
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#    z2<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<511:384>: 0x00000000000000000000000000000000
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<639:512>: 0x00000000000000000000000000000000
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4f1f000		st4h {z0.h, z1.h, z2.h, z3.h}, p4, [x0, #4, mul vl]
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e571ec01		st4w {z1.s, z2.s, z3.s, z4.s}, p3, [x0, #4, mul vl]
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, ..., 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5e27002		st4d {z2.d, z3.d, z4.d, z5.d}, p4, [x0, x2, lsl #3]
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (0.000, 0.000)
+#                                  ║               ╙─ 0x7fffffff3fc00000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3fc000003fc00000'0000000000000000'7f8000007f800000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a461f419		ld4b {z25.b, z26.b, z27.b, z28.b}, p5/z, [x0, #4, mul vl]
+#     z25<127:0>: 0x0000000000000000000000f300000000
+#     z26<127:0>: 0x00000000000000000000000400000000
+#     z27<127:0>: 0x0080000000800000000000ff00000000
+#     z28<127:0>: 0x007f0000007f0000000000ff00000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0xff'ff'04'f3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#   z27<255:128>: 0x00000000000000000000000000000000
+#   z28<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#   z27<383:256>: 0x00000000000000000000000000000000
+#   z28<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#   z27<511:384>: 0x00000000000000000000000000000000
+#   z28<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#   z27<639:512>: 0x00000000000000000000000000000000
+#   z28<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4e1f81a		ld4h {z26.h, z27.h, z28.h, z29.h}, p6/z, [x0, #4, mul vl]
+#     z26<127:0>: 0x00000000000000003fb504f300000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z27<127:0>: 0x7f8000007f800000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a562d81b		ld4w {z27.s, z28.s, z29.s, z30.s}, p6/z, [x0, x2, lsl #2]
+#     z27<127:0>: 0x2f2e2d2c000000000000000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z28<127:0>: 0x33323130000000007f80000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000007060504 (1.584e-10, 0.000, 0.000, 0.000)
+#     z30<127:0>: 0x00000000000000007f8000000b0a0908 (1.584e-10, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7f800000'00000000'7f800000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000005756555400000000 (0.000, 0.000, 0.000, 0.000)
+#   z30<255:128>: 0x00000000000000005b5a595800000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5b5a5958'57565554'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0xafaeadac9f9e9d9c8f8e8d8c7f7e7d7c (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z28<383:256>: 0xb3b2b1b0a3a2a1a09392919083828180 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z29<383:256>: 0xb7b6b5b4a7a6a5a49796959487868584 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z30<383:256>: 0xbbbab9b8abaaa9a89b9a99988b8a8988 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#                          ║       ║       ║       ╙─ 0x8b8a8988'87868584'83828180'7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x9b9a9998'97969594'93929190'8f8e8d8c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xabaaa9a8'a7a6a5a4'a3a2a1a0'9f9e9d9c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xbbbab9b8'b7b6b5b4'b3b2b1b0'afaeadac <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z28<511:384>: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z29<511:384>: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z30<511:384>: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x2f2e2d2c1f1e1d1c0f0e0d0cfffefdfc (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z28<639:512>: 0x33323130232221201312111003020100 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z29<639:512>: 0x37363534272625241716151407060504 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z30<639:512>: 0x3b3a39382b2a29281b1a19180b0a0908 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'03020100'fffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1b1a1918'17161514'13121110'0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928'27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3b3a3938'37363534'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5e1f41c		ld4d {z28.d, z29.d, z30.d, z31.d}, p5/z, [x0, #4, mul vl]
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z29<127:0>: 0x000000007f8000000000000000000000 (0.000, 0.000)
+#     z30<127:0>: 0x000000000000000000000000ffff04f3 (0.000, 0.000)
+#     z31<127:0>: 0x000000007f80000000000000ffff3fb5 (0.000, 0.000)
+#                                  ║               ╙─ 0x00000000ffff3fb5'00000000ffff04f3'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x000000007f800000'0000000000000000'000000007f800000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z30<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z31<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  d65f03c0		ret
 # Branch to 0x~~~~~~~~~~~~~~~~.
diff --git a/test/test-trace-reference/log-all-colour b/test/test-trace-reference/log-all-colour
index f70031f..a844829 100644
--- a/test/test-trace-reference/log-all-colour
+++ b/test/test-trace-reference/log-all-colour
@@ -1,119 +1,332 @@
-#    x0: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0300003000300303
-#    x4: 0x0400004000400404
-#    x5: 0x0500005000500505
-#    x6: 0x0600006000600606
-#    x7: 0x0700007000700707
-#    x8: 0x0800008000800808
-#    x9: 0x0900009000900909
-#   x10: 0x0a0000a000a00a0a
-#   x11: 0x0b0000b000b00b0b
-#   x12: 0x0c0000c000c00c0c
-#   x13: 0x0d0000d000d00d0d
-#   x14: 0x0e0000e000e00e0e
-#   x15: 0x0f0000f000f00f0f
-#   x16: 0x1000010001001010
-#   x17: 0x1100011001101111
-#   x18: 0x1200012001201212
-#   x19: 0x1300013001301313
-#   x20: 0x1400014001401414
-#   x21: 0x1500015001501515
-#   x22: 0x1600016001601616
-#   x23: 0x1700017001701717
-#   x24: 0x1800018001801818
-#   x25: 0x1900019001901919
-#   x26: 0x1a0001a001a01a1a
-#   x27: 0x1b0001b001b01b1b
-#   x28: 0x1c0001c001c01c1c
-#   x29: 0x1d0001d001d01d1d
-#    lr: 0x0000000000000000
-#    sp: 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00055555005555550000000000000000
-#    v1: 0x3ff0d2c63fcb514c3ff587933f9e0419
-#    v2: 0x4000d2c6404b514c40058793401e0419
-#    v3: 0x401570fb40385373401025ae406d0626
-#    v4: 0x4010d2c640cb514c40158793409e0419
-#    v5: 0x401fbc2d4090d04a401ae97840c5851f
-#    v6: 0x402570fb40b85373402025ae40ed0626
-#    v7: 0x402783f4415f16c34022d6a1410a4396
-#    v8: 0x4020d2c6414b514c40258793411e0419
-#    v9: 0x402d6dd3416491c9402838864131c49c
-#   v10: 0x402fbc2d4110d04a402ae9784145851f
-#   v11: 0x4028cf3e410c10f7402d9a6b415945a2
-#   v12: 0x403570fb41385373403025ae416d0626
-#   v13: 0x40342b7d41d5360140317e2841806354
-#   v14: 0x403783f441df16c34032d6a1418a4396
-#   v15: 0x40317a4f41c1768240342f1a419423d7
-#   v16: 0x4030d2c641cb514c40358793419e0419
-#   v17: 0x4033b55841f2b10e4036e00d41a7e45b
-#   v18: 0x403d6dd341e491c94038388641b1c49c
-#   v19: 0x403cc5aa41eef18b403990ff41bba4de
-#   v20: 0x403fbc2d4190d04a403ae97841c5851f
-#   v21: 0x403914a7419a3034403c41f241cf6561
-#   v22: 0x4038cf3e418c10f7403d9a6b41d945a2
-#   v23: 0x403ba7b141b670b1403ef2e441e325e4
-#   v24: 0x404570fb41b85373404025ae41ed0626
-#   v25: 0x404584be41a3b3324040d1eb41f6e667
-#   v26: 0x40442b7d4255360140417e2842006354
-#   v27: 0x40477f314250062040422a6442055375
-#   v28: 0x404783f4425f16c34042d6a1420a4396
-#   v29: 0x4046d78b425a66e2404382de420f33b7
-#   v30: 0x40417a4f4241768240442f1a421423d7
-#   v31: 0x40418e02424c46ad4044db57421913f8
+#             x0: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             x3: 0x0300003000300303
+#             x4: 0x0400004000400404
+#             x5: 0x0500005000500505
+#             x6: 0x0600006000600606
+#             x7: 0x0700007000700707
+#             x8: 0x0800008000800808
+#             x9: 0x0900009000900909
+#            x10: 0x0a0000a000a00a0a
+#            x11: 0x0b0000b000b00b0b
+#            x12: 0x0c0000c000c00c0c
+#            x13: 0x0d0000d000d00d0d
+#            x14: 0x0e0000e000e00e0e
+#            x15: 0x0f0000f000f00f0f
+#            x16: 0x1000010001001010
+#            x17: 0x1100011001101111
+#            x18: 0x1200012001201212
+#            x19: 0x1300013001301313
+#            x20: 0x1400014001401414
+#            x21: 0x1500015001501515
+#            x22: 0x1600016001601616
+#            x23: 0x1700017001701717
+#            x24: 0x1800018001801818
+#            x25: 0x1900019001901919
+#            x26: 0x1a0001a001a01a1a
+#            x27: 0x1b0001b001b01b1b
+#            x28: 0x1c0001c001c01c1c
+#            x29: 0x1d0001d001d01d1d
+#             lr: 0x0000000000000000
+#             sp: 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x47e000017f03380147e000007f023800
+#    z0<255:128>: 0x47e000037f03380347e000027f023802
+#    z0<383:256>: 0x47e000057f07380547e000047f063804
+#    z0<511:384>: 0x47e000077f07380747e000067f063806
+#    z0<639:512>: 0x47e000097f0b380947e000087f0a3808
+#      z1<127:0>: 0x47f000017f833c0147f000007f823c00
+#    z1<255:128>: 0x47f000037f833c0347f000027f823c02
+#    z1<383:256>: 0x47f000057f873c0547f000047f863c04
+#    z1<511:384>: 0x47f000077f873c0747f000067f863c06
+#    z1<639:512>: 0x47f000097f8b3c0947f000087f8a3c08
+#      z2<127:0>: 0x48000001800340014800000080024000
+#    z2<255:128>: 0x48000003800340034800000280024002
+#    z2<383:256>: 0x48000005800740054800000480064004
+#    z2<511:384>: 0x48000007800740074800000680064006
+#    z2<639:512>: 0x48000009800b400948000008800a4008
+#      z3<127:0>: 0x48100001808344014810000080824400
+#    z3<255:128>: 0x48100003808344034810000280824402
+#    z3<383:256>: 0x48100005808744054810000480864404
+#    z3<511:384>: 0x48100007808744074810000680864406
+#    z3<639:512>: 0x48100009808b440948100008808a4408
+#      z4<127:0>: 0x48200001810348014820000081024800
+#    z4<255:128>: 0x48200003810348034820000281024802
+#    z4<383:256>: 0x48200005810748054820000481064804
+#    z4<511:384>: 0x48200007810748074820000681064806
+#    z4<639:512>: 0x48200009810b480948200008810a4808
+#      z5<127:0>: 0x4830000181834c014830000081824c00
+#    z5<255:128>: 0x4830000381834c034830000281824c02
+#    z5<383:256>: 0x4830000581874c054830000481864c04
+#    z5<511:384>: 0x4830000781874c074830000681864c06
+#    z5<639:512>: 0x48300009818b4c0948300008818a4c08
+#      z6<127:0>: 0x48400001820350014840000082025000
+#    z6<255:128>: 0x48400003820350034840000282025002
+#    z6<383:256>: 0x48400005820750054840000482065004
+#    z6<511:384>: 0x48400007820750074840000682065006
+#    z6<639:512>: 0x48400009820b500948400008820a5008
+#      z7<127:0>: 0x48500001828354014850000082825400
+#    z7<255:128>: 0x48500003828354034850000282825402
+#    z7<383:256>: 0x48500005828754054850000482865404
+#    z7<511:384>: 0x48500007828754074850000682865406
+#    z7<639:512>: 0x48500009828b540948500008828a5408
+#      z8<127:0>: 0x48600001830358014860000083025800
+#    z8<255:128>: 0x48600003830358034860000283025802
+#    z8<383:256>: 0x48600005830758054860000483065804
+#    z8<511:384>: 0x48600007830758074860000683065806
+#    z8<639:512>: 0x48600009830b580948600008830a5808
+#      z9<127:0>: 0x4870000183835c014870000083825c00
+#    z9<255:128>: 0x4870000383835c034870000283825c02
+#    z9<383:256>: 0x4870000583875c054870000483865c04
+#    z9<511:384>: 0x4870000783875c074870000683865c06
+#    z9<639:512>: 0x48700009838b5c0948700008838a5c08
+#     z10<127:0>: 0x48800001840360014880000084026000
+#   z10<255:128>: 0x48800003840360034880000284026002
+#   z10<383:256>: 0x48800005840760054880000484066004
+#   z10<511:384>: 0x48800007840760074880000684066006
+#   z10<639:512>: 0x48800009840b600948800008840a6008
+#     z11<127:0>: 0x48900001848364014890000084826400
+#   z11<255:128>: 0x48900003848364034890000284826402
+#   z11<383:256>: 0x48900005848764054890000484866404
+#   z11<511:384>: 0x48900007848764074890000684866406
+#   z11<639:512>: 0x48900009848b640948900008848a6408
+#     z12<127:0>: 0x48a000018503680148a0000085026800
+#   z12<255:128>: 0x48a000038503680348a0000285026802
+#   z12<383:256>: 0x48a000058507680548a0000485066804
+#   z12<511:384>: 0x48a000078507680748a0000685066806
+#   z12<639:512>: 0x48a00009850b680948a00008850a6808
+#     z13<127:0>: 0x48b0000185836c0148b0000085826c00
+#   z13<255:128>: 0x48b0000385836c0348b0000285826c02
+#   z13<383:256>: 0x48b0000585876c0548b0000485866c04
+#   z13<511:384>: 0x48b0000785876c0748b0000685866c06
+#   z13<639:512>: 0x48b00009858b6c0948b00008858a6c08
+#     z14<127:0>: 0x48c000018603700148c0000086027000
+#   z14<255:128>: 0x48c000038603700348c0000286027002
+#   z14<383:256>: 0x48c000058607700548c0000486067004
+#   z14<511:384>: 0x48c000078607700748c0000686067006
+#   z14<639:512>: 0x48c00009860b700948c00008860a7008
+#     z15<127:0>: 0x48d000018683740148d0000086827400
+#   z15<255:128>: 0x48d000038683740348d0000286827402
+#   z15<383:256>: 0x48d000058687740548d0000486867404
+#   z15<511:384>: 0x48d000078687740748d0000686867406
+#   z15<639:512>: 0x48d00009868b740948d00008868a7408
+#     z16<127:0>: 0x48e000018703780148e0000087027800
+#   z16<255:128>: 0x48e000038703780348e0000287027802
+#   z16<383:256>: 0x48e000058707780548e0000487067804
+#   z16<511:384>: 0x48e000078707780748e0000687067806
+#   z16<639:512>: 0x48e00009870b780948e00008870a7808
+#     z17<127:0>: 0x48f0000187837c0148f0000087827c00
+#   z17<255:128>: 0x48f0000387837c0348f0000287827c02
+#   z17<383:256>: 0x48f0000587877c0548f0000487867c04
+#   z17<511:384>: 0x48f0000787877c0748f0000687867c06
+#   z17<639:512>: 0x48f00009878b7c0948f00008878a7c08
+#     z18<127:0>: 0x49000001880380014900000088028000
+#   z18<255:128>: 0x49000003880380034900000288028002
+#   z18<383:256>: 0x49000005880780054900000488068004
+#   z18<511:384>: 0x49000007880780074900000688068006
+#   z18<639:512>: 0x49000009880b800949000008880a8008
+#     z19<127:0>: 0x49100001888384014910000088828400
+#   z19<255:128>: 0x49100003888384034910000288828402
+#   z19<383:256>: 0x49100005888784054910000488868404
+#   z19<511:384>: 0x49100007888784074910000688868406
+#   z19<639:512>: 0x49100009888b840949100008888a8408
+#     z20<127:0>: 0x49200001890388014920000089028800
+#   z20<255:128>: 0x49200003890388034920000289028802
+#   z20<383:256>: 0x49200005890788054920000489068804
+#   z20<511:384>: 0x49200007890788074920000689068806
+#   z20<639:512>: 0x49200009890b880949200008890a8808
+#     z21<127:0>: 0x4930000189838c014930000089828c00
+#   z21<255:128>: 0x4930000389838c034930000289828c02
+#   z21<383:256>: 0x4930000589878c054930000489868c04
+#   z21<511:384>: 0x4930000789878c074930000689868c06
+#   z21<639:512>: 0x49300009898b8c0949300008898a8c08
+#     z22<127:0>: 0x494000018a039001494000008a029000
+#   z22<255:128>: 0x494000038a039003494000028a029002
+#   z22<383:256>: 0x494000058a079005494000048a069004
+#   z22<511:384>: 0x494000078a079007494000068a069006
+#   z22<639:512>: 0x494000098a0b9009494000088a0a9008
+#     z23<127:0>: 0x495000018a839401495000008a829400
+#   z23<255:128>: 0x495000038a839403495000028a829402
+#   z23<383:256>: 0x495000058a879405495000048a869404
+#   z23<511:384>: 0x495000078a879407495000068a869406
+#   z23<639:512>: 0x495000098a8b9409495000088a8a9408
+#     z24<127:0>: 0x496000018b039801496000008b029800
+#   z24<255:128>: 0x496000038b039803496000028b029802
+#   z24<383:256>: 0x496000058b079805496000048b069804
+#   z24<511:384>: 0x496000078b079807496000068b069806
+#   z24<639:512>: 0x496000098b0b9809496000088b0a9808
+#     z25<127:0>: 0x497000018b839c01497000008b829c00
+#   z25<255:128>: 0x497000038b839c03497000028b829c02
+#   z25<383:256>: 0x497000058b879c05497000048b869c04
+#   z25<511:384>: 0x497000078b879c07497000068b869c06
+#   z25<639:512>: 0x497000098b8b9c09497000088b8a9c08
+#     z26<127:0>: 0x498000018c03a001498000008c02a000
+#   z26<255:128>: 0x498000038c03a003498000028c02a002
+#   z26<383:256>: 0x498000058c07a005498000048c06a004
+#   z26<511:384>: 0x498000078c07a007498000068c06a006
+#   z26<639:512>: 0x498000098c0ba009498000088c0aa008
+#     z27<127:0>: 0x499000018c83a401499000008c82a400
+#   z27<255:128>: 0x499000038c83a403499000028c82a402
+#   z27<383:256>: 0x499000058c87a405499000048c86a404
+#   z27<511:384>: 0x499000078c87a407499000068c86a406
+#   z27<639:512>: 0x499000098c8ba409499000088c8aa408
+#     z28<127:0>: 0x49a000018d03a80149a000008d02a800
+#   z28<255:128>: 0x49a000038d03a80349a000028d02a802
+#   z28<383:256>: 0x49a000058d07a80549a000048d06a804
+#   z28<511:384>: 0x49a000078d07a80749a000068d06a806
+#   z28<639:512>: 0x49a000098d0ba80949a000088d0aa808
+#     z29<127:0>: 0x49b000018d83ac0149b000008d82ac00
+#   z29<255:128>: 0x49b000038d83ac0349b000028d82ac02
+#   z29<383:256>: 0x49b000058d87ac0549b000048d86ac04
+#   z29<511:384>: 0x49b000078d87ac0749b000068d86ac06
+#   z29<639:512>: 0x49b000098d8bac0949b000088d8aac08
+#     z30<127:0>: 0x49c000018e03b00149c000008e02b000
+#   z30<255:128>: 0x49c000038e03b00349c000028e02b002
+#   z30<383:256>: 0x49c000058e07b00549c000048e06b004
+#   z30<511:384>: 0x49c000078e07b00749c000068e06b006
+#   z30<639:512>: 0x49c000098e0bb00949c000088e0ab008
+#     z31<127:0>: 0x49d000018e83b40149d000008e82b400
+#   z31<255:128>: 0x49d000038e83b40349d000028e82b402
+#   z31<383:256>: 0x49d000058e87b40549d000048e86b404
+#   z31<511:384>: 0x49d000078e87b40749d000068e86b406
+#   z31<639:512>: 0x49d000098e8bb40949d000088e8ab408
+#       p0<15:0>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<47:32>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<79:64>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#       p1<15:0>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<31:16>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#      p1<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p1<63:48>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<79:64>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#       p2<15:0>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<31:16>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<47:32>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p2<79:64>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#       p3<15:0>: 0b 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1
+#      p3<31:16>: 0b 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1
+#      p3<47:32>: 0b 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1
+#      p3<63:48>: 0b 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1
+#      p3<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#       p4<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<31:16>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#      p4<47:32>: 0b 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1
+#      p4<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<79:64>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#       p5<15:0>: 0b 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p5<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1
+#      p5<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1
+#      p5<63:48>: 0b 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0
+#      p5<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1
+#       p6<15:0>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<31:16>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<47:32>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<63:48>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<79:64>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p7<15:0>: 0b 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
+#      p7<31:16>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1
+#      p7<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1
+#      p7<63:48>: 0b 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p7<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p8<15:0>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#      p8<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p8<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1
+#      p8<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#       p9<15:0>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p9<47:32>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p9<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1
+#      p10<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p10<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p10<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p11<15:0>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p11<31:16>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p11<79:64>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      FFR<15:0>: 0b 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
+#     FFR<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0x~~~~~~~~~~~~~~~~  1a050083		adc w3, w4, w5
-#    x3: 0x0000000000900909
+#             w3:         0x00900909
 0x~~~~~~~~~~~~~~~~  9a0800e6		adc x6, x7, x8
-#    x6: 0x0f0000f000f00f0f
+#             x6: 0x0f0000f000f00f0f
 0x~~~~~~~~~~~~~~~~  3a0b0149		adcs w9, w10, w11
 # NZCV: N:0 Z:0 C:0 V:0
-#    x9: 0x0000000001501515
+#             w9:         0x01501515
 0x~~~~~~~~~~~~~~~~  ba0e01ac		adcs x12, x13, x14
 # NZCV: N:0 Z:0 C:0 V:0
-#   x12: 0x1b0001b001b01b1b
+#            x12: 0x1b0001b001b01b1b
 0x~~~~~~~~~~~~~~~~  0b11020f		add w15, w16, w17
-#   x15: 0x0000000002102121
+#            w15:         0x02102121
 0x~~~~~~~~~~~~~~~~  8b140272		add x18, x19, x20
-#   x18: 0x2700027002702727
+#            x18: 0x2700027002702727
 0x~~~~~~~~~~~~~~~~  2b1702d5		adds w21, w22, w23
 # NZCV: N:0 Z:0 C:0 V:0
-#   x21: 0x0000000002d02d2d
+#            w21:         0x02d02d2d
 0x~~~~~~~~~~~~~~~~  ab1a0338		adds x24, x25, x26
 # NZCV: N:0 Z:0 C:0 V:0
-#   x24: 0x3300033003303333
+#            x24: 0x3300033003303333
 0x~~~~~~~~~~~~~~~~  0a1d039b		and w27, w28, w29
-#   x27: 0x0000000001c01c1c
+#            w27:         0x01c01c1c
 0x~~~~~~~~~~~~~~~~  8a040062		and x2, x3, x4
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  6a0700c5		ands w5, w6, w7
 # NZCV: N:0 Z:0 C:0 V:0
-#    x5: 0x0000000000700707
+#             w5:         0x00700707
 0x~~~~~~~~~~~~~~~~  ea0a0128		ands x8, x9, x10
 # NZCV: N:0 Z:1 C:0 V:0
-#    x8: 0x0000000000000000
+#             x8: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  13007d8b		sbfx w11, w12, #0, #32
-#   x11: 0x0000000001b01b1b
+#            w11:         0x01b01b1b
 0x~~~~~~~~~~~~~~~~  9341fdcd		asr x13, x14, #1
-#   x13: 0x0700007000700707
+#            x13: 0x0700007000700707
 0x~~~~~~~~~~~~~~~~  1ad12a0f		asr w15, w16, w17
-#   x15: 0x0000000000000080
+#            w15:         0x00000080
 0x~~~~~~~~~~~~~~~~  9ad42a72		asr x18, x19, x20
-#   x18: 0x0000013000130013
+#            x18: 0x0000013000130013
 0x~~~~~~~~~~~~~~~~  33051ad5		bfxil w21, w22, #5, #2
-#   x21: 0x0000000002d02d2c
+#            w21:         0x02d02d2c
 0x~~~~~~~~~~~~~~~~  b3472317		bfxil x23, x24, #7, #2
-#   x23: 0x1700017001701716
+#            x23: 0x1700017001701716
 0x~~~~~~~~~~~~~~~~  0a3b0359		bic w25, w26, w27
-#   x25: 0x0000000000200202
+#            w25:         0x00200202
 0x~~~~~~~~~~~~~~~~  8a2203bc		bic x28, x29, x2
-#   x28: 0x1d0001d001d01d1d
+#            x28: 0x1d0001d001d01d1d
 0x~~~~~~~~~~~~~~~~  6a250083		bics w3, w4, w5
 # NZCV: N:0 Z:1 C:0 V:0
-#    x3: 0x0000000000000000
+#             w3:         0x00000000
 0x~~~~~~~~~~~~~~~~  ea2800e6		bics x6, x7, x8
 # NZCV: N:0 Z:0 C:0 V:0
-#    x6: 0x0700007000700707
+#             x6: 0x0700007000700707
 0x~~~~~~~~~~~~~~~~  3a4ae120		ccmn w9, w10, #nzcv, al
 # NZCV: N:0 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  3a4a0120		ccmn w9, w10, #nzcv, eq
@@ -139,30 +352,30 @@
 0x~~~~~~~~~~~~~~~~  fa5011e3		ccmp x15, x16, #nzCV, ne
 # NZCV: N:1 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  1a922651		cinc w17, w18, lo
-#   x17: 0x0000000000130014
+#            w17:         0x00130014
 0x~~~~~~~~~~~~~~~~  1a923651		cinc w17, w18, hs
-#   x17: 0x0000000000130013
+#            w17:         0x00130013
 0x~~~~~~~~~~~~~~~~  9a949693		cinc x19, x20, hi
-#   x19: 0x1400014001401414
+#            x19: 0x1400014001401414
 0x~~~~~~~~~~~~~~~~  9a948693		cinc x19, x20, ls
-#   x19: 0x1400014001401415
+#            x19: 0x1400014001401415
 0x~~~~~~~~~~~~~~~~  5a9612d5		cinv w21, w22, eq
-#   x21: 0x0000000001601616
+#            w21:         0x01601616
 0x~~~~~~~~~~~~~~~~  5a9602d5		cinv w21, w22, ne
-#   x21: 0x00000000fe9fe9e9
+#            w21:         0xfe9fe9e9
 0x~~~~~~~~~~~~~~~~  da982317		cinv x23, x24, lo
-#   x23: 0xccfffccffccfcccc
+#            x23: 0xccfffccffccfcccc
 0x~~~~~~~~~~~~~~~~  da983317		cinv x23, x24, hs
-#   x23: 0x3300033003303333
+#            x23: 0x3300033003303333
 0x~~~~~~~~~~~~~~~~  d5033f5f		clrex
 0x~~~~~~~~~~~~~~~~  5ac01759		cls w25, w26
-#   x25: 0x0000000000000006
+#            w25:         0x00000006
 0x~~~~~~~~~~~~~~~~  dac0179b		cls x27, x28
-#   x27: 0x0000000000000002
+#            x27: 0x0000000000000002
 0x~~~~~~~~~~~~~~~~  5ac0105d		clz w29, w2
-#   x29: 0x0000000000000020
+#            w29:         0x00000020
 0x~~~~~~~~~~~~~~~~  dac01083		clz x3, x4
-#    x3: 0x0000000000000005
+#             x3: 0x0000000000000005
 0x~~~~~~~~~~~~~~~~  2b0600bf		cmn w5, w6
 # NZCV: N:0 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  ab0800ff		cmn x7, x8
@@ -172,606 +385,660 @@
 0x~~~~~~~~~~~~~~~~  eb0c017f		cmp x11, x12
 # NZCV: N:1 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  5a8e95cd		cneg w13, w14, hi
-#   x13: 0x0000000000e00e0e
+#            w13:         0x00e00e0e
 0x~~~~~~~~~~~~~~~~  5a8e85cd		cneg w13, w14, ls
-#   x13: 0x00000000ff1ff1f2
+#            w13:         0xff1ff1f2
 0x~~~~~~~~~~~~~~~~  da90160f		cneg x15, x16, eq
-#   x15: 0x1000010001001010
+#            x15: 0x1000010001001010
 0x~~~~~~~~~~~~~~~~  da90060f		cneg x15, x16, ne
-#   x15: 0xeffffefffeffeff0
+#            x15: 0xeffffefffeffeff0
 0x~~~~~~~~~~~~~~~~  1ad34251		crc32b w17, w18, w19
-#   x17: 0x00000000e963b635
+#            w17:         0xe963b635
 0x~~~~~~~~~~~~~~~~  1ad652b4		crc32cb w20, w21, w22
-#   x20: 0x00000000ad83ccb8
+#            w20:         0xad83ccb8
 0x~~~~~~~~~~~~~~~~  1ad95717		crc32ch w23, w24, w25
-#   x23: 0x000000003ed5525d
+#            w23:         0x3ed5525d
 0x~~~~~~~~~~~~~~~~  1adc5b7a		crc32cw w26, w27, w28
-#   x26: 0x00000000bc365145
+#            w26:         0xbc365145
 0x~~~~~~~~~~~~~~~~  1ac644a4		crc32h w4, w5, w6
-#    x4: 0x0000000000000070
+#             w4:         0x00000070
 0x~~~~~~~~~~~~~~~~  1ac94907		crc32w w7, w8, w9
-#    x7: 0x00000000b096abf4
+#             w7:         0xb096abf4
 0x~~~~~~~~~~~~~~~~  1a8f31cd		csel w13, w14, w15, lo
-#   x13: 0x0000000000e00e0e
+#            w13:         0x00e00e0e
 0x~~~~~~~~~~~~~~~~  1a8f21cd		csel w13, w14, w15, hs
-#   x13: 0x00000000feffeff0
+#            w13:         0xfeffeff0
 0x~~~~~~~~~~~~~~~~  9a928230		csel x16, x17, x18, hi
-#   x16: 0x0000013000130013
+#            x16: 0x0000013000130013
 0x~~~~~~~~~~~~~~~~  9a929230		csel x16, x17, x18, ls
-#   x16: 0x00000000e963b635
+#            x16: 0x00000000e963b635
 0x~~~~~~~~~~~~~~~~  1a9f17f3		cset w19, eq
-#   x19: 0x0000000000000000
+#            w19:         0x00000000
 0x~~~~~~~~~~~~~~~~  1a9f07f3		cset w19, ne
-#   x19: 0x0000000000000001
+#            w19:         0x00000001
 0x~~~~~~~~~~~~~~~~  9a9f27f4		cset x20, lo
-#   x20: 0x0000000000000001
+#            x20: 0x0000000000000001
 0x~~~~~~~~~~~~~~~~  9a9f37f4		cset x20, hs
-#   x20: 0x0000000000000000
+#            x20: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5a9f93f5		csetm w21, hi
-#   x21: 0x0000000000000000
+#            w21:         0x00000000
 0x~~~~~~~~~~~~~~~~  5a9f83f5		csetm w21, ls
-#   x21: 0x00000000ffffffff
+#            w21:         0xffffffff
 0x~~~~~~~~~~~~~~~~  da9f13f6		csetm x22, eq
-#   x22: 0x0000000000000000
+#            x22: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  da9f03f6		csetm x22, ne
-#   x22: 0xffffffffffffffff
+#            x22: 0xffffffffffffffff
 0x~~~~~~~~~~~~~~~~  1a993717		csinc w23, w24, w25, lo
-#   x23: 0x0000000003303333
+#            w23:         0x03303333
 0x~~~~~~~~~~~~~~~~  1a992717		csinc w23, w24, w25, hs
-#   x23: 0x0000000000000007
+#            w23:         0x00000007
 0x~~~~~~~~~~~~~~~~  9a9c877a		csinc x26, x27, x28, hi
-#   x26: 0x1d0001d001d01d1e
+#            x26: 0x1d0001d001d01d1e
 0x~~~~~~~~~~~~~~~~  9a9c977a		csinc x26, x27, x28, ls
-#   x26: 0x0000000000000002
+#            x26: 0x0000000000000002
 0x~~~~~~~~~~~~~~~~  5a83005d		csinv w29, w2, w3, eq
-#   x29: 0x00000000fffffffa
+#            w29:         0xfffffffa
 0x~~~~~~~~~~~~~~~~  5a83105d		csinv w29, w2, w3, ne
-#   x29: 0x0000000000000000
+#            w29:         0x00000000
 0x~~~~~~~~~~~~~~~~  da8630a4		csinv x4, x5, x6, lo
-#    x4: 0x0000000000700707
+#             x4: 0x0000000000700707
 0x~~~~~~~~~~~~~~~~  da8620a4		csinv x4, x5, x6, hs
-#    x4: 0xf8ffff8fff8ff8f8
+#             x4: 0xf8ffff8fff8ff8f8
 0x~~~~~~~~~~~~~~~~  5a898507		csneg w7, w8, w9, hi
-#    x7: 0x00000000feafeaeb
+#             w7:         0xfeafeaeb
 0x~~~~~~~~~~~~~~~~  5a899507		csneg w7, w8, w9, ls
-#    x7: 0x0000000000000000
+#             w7:         0x00000000
 0x~~~~~~~~~~~~~~~~  da8c056a		csneg x10, x11, x12, eq
-#   x10: 0xe4fffe4ffe4fe4e5
+#            x10: 0xe4fffe4ffe4fe4e5
 0x~~~~~~~~~~~~~~~~  da8c156a		csneg x10, x11, x12, ne
-#   x10: 0x0000000001b01b1b
+#            x10: 0x0000000001b01b1b
 0x~~~~~~~~~~~~~~~~  d50b7a20		dc cvac, x0
 0x~~~~~~~~~~~~~~~~  d5033bbf		dmb ish
 0x~~~~~~~~~~~~~~~~  d5033b9f		dsb ish
 0x~~~~~~~~~~~~~~~~  4a2f01cd		eon w13, w14, w15
-#   x13: 0x0000000001e01e01
+#            w13:         0x01e01e01
 0x~~~~~~~~~~~~~~~~  ca320230		eon x16, x17, x18
-#   x16: 0xfffffecf168f49d9
+#            x16: 0xfffffecf168f49d9
 0x~~~~~~~~~~~~~~~~  4a150293		eor w19, w20, w21
-#   x19: 0x00000000ffffffff
+#            w19:         0xffffffff
 0x~~~~~~~~~~~~~~~~  ca1802f6		eor x22, x23, x24
-#   x22: 0x3300033003303334
+#            x22: 0x3300033003303334
 0x~~~~~~~~~~~~~~~~  139b2759		extr w25, w26, w27, #9
-#   x25: 0x0000000001000000
+#            w25:         0x01000000
 0x~~~~~~~~~~~~~~~~  93c22bbc		extr x28, x29, x2, #10
-#   x28: 0x0000000000000000
+#            x28: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  d503201f		nop
 0x~~~~~~~~~~~~~~~~  d50b7520		ic ivau, x0
 0x~~~~~~~~~~~~~~~~  d5033fdf		isb
 0x~~~~~~~~~~~~~~~~  88dffc03		ldar w3, [x0]
-#    x3: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c8dffc04		ldar x4, [x0]
-#    x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#             x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  08dffc05		ldarb w5, [x0]
-#    x5: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  08dffc06		ldarb w6, [x0]
-#    x6: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  48dffc07		ldarh w7, [x0]
-#    x7: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  48dffc08		ldarh w8, [x0]
-#    x8: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w8:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  887fa809		ldaxp w9, w10, [x0]
-#    x9: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w10:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c87fb00b		ldaxp x11, x12, [x0]
-#   x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  885ffc0d		ldaxr w13, [x0]
-#   x13: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
+#            w13:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c85ffc0e		ldaxr x14, [x0]
-#   x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  085ffc0f		ldaxrb w15, [x0]
-#   x15: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  085ffc10		ldaxrb w16, [x0]
-#   x16: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  485ffc11		ldaxrh w17, [x0]
-#   x17: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  485ffc12		ldaxrh w18, [x0]
-#   x18: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  28405013		ldnp w19, w20, [x0]
-#   x19: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
+#            w19:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a8405815		ldnp x21, x22, [x0]
-#   x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  29406017		ldp w23, w24, [x0]
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  28c16037		ldp w23, w24, [x1], #8
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  29c16037		ldp w23, w24, [x1, #8]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000013121110 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000017161514 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w23:         0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x17161514 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a9406819		ldp x25, x26, [x0]
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a8c16839		ldp x25, x26, [x1], #16
-#   x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a9c16839		ldp x25, x26, [x1, #16]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  6940701b		ldpsw x27, x28, [x0]
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000007060504
+#                                  ╙─ 0x07060504 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  68c1703b		ldpsw x27, x28, [x1], #8
-#   x27: 0x0000000033323130 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000037363534 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000033323130
+#                                  ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000037363534
+#                                  ╙─ 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  69c1703b		ldpsw x27, x28, [x1, #8]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000047464544 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000043424140
+#                                  ╙─ 0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000047464544
+#                                  ╙─ 0x47464544 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b940001d		ldr w29, [x0]
-#   x29: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b840443d		ldr w29, [x1], #4
-#   x29: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            w29:         0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b8404c3d		ldr w29, [x1, #4]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x29: 0x000000004b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w29:         0x4b4a4948 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f9400002		ldr x2, [x0]
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f8408422		ldr x2, [x1], #8
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f8408c22		ldr x2, [x1, #8]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39400003		ldrb w3, [x0]
-#    x3: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38401423		ldrb w3, [x1], #1
-#    x3: 0x0000000000000058 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000058
+#                                  ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38401c23		ldrb w3, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w3:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39400004		ldrb w4, [x0]
-#    x4: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38401424		ldrb w4, [x1], #1
-#    x4: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38401c24		ldrb w4, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x000000000000005c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005c
+#                                  ╙─ 0x5c <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  79400005		ldrh w5, [x0]
-#    x5: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78402425		ldrh w5, [x1], #2
-#    x5: 0x0000000000005d5c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00005d5c
+#                                  ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78402c25		ldrh w5, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  79400006		ldrh w6, [x0]
-#    x6: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78402426		ldrh w6, [x1], #2
-#    x6: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78402c26		ldrh w6, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000006564 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006564
+#                                  ╙─ 0x6564 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39c00007		ldrsb w7, [x0]
-#    x7: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38c01427		ldrsb w7, [x1], #1
-#    x7: 0x0000000000000064 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000064
+#                                  ╙─ 0x64 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38c01c27		ldrsb w7, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39800008		ldrsb x8, [x0]
-#    x8: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38801428		ldrsb x8, [x1], #1
-#    x8: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38801c28		ldrsb x8, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000068 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000068
+#                                  ╙─ 0x68 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  79c00009		ldrsh w9, [x0]
-#    x9: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78c02429		ldrsh w9, [x1], #2
-#    x9: 0x0000000000006968 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006968
+#                                  ╙─ 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78c02c29		ldrsh w9, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7980000a		ldrsh x10, [x0]
-#   x10: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7880242a		ldrsh x10, [x1], #2
-#   x10: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78802c2a		ldrsh x10, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000007170 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000007170
+#                                  ╙─ 0x7170 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b980000b		ldrsw x11, [x0]
-#   x11: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b880442b		ldrsw x11, [x1], #4
-#   x11: 0x0000000073727170 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000073727170
+#                                  ╙─ 0x73727170 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b8804c2b		ldrsw x11, [x1, #4]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x11: 0x000000007b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x11: 0x000000007b7a7978
+#                                  ╙─ 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b840700c		ldur w12, [x0, #7]
-#   x12: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
+#            w12:         0x0a090807 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f840f00d		ldur x13, [x0, #15]
-#   x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
+#            x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  3840100e		ldurb w14, [x0, #1]
-#   x14: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
+#            w14:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  3840100f		ldurb w15, [x0, #1]
-#   x15: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78403010		ldurh w16, [x0, #3]
-#   x16: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78403011		ldurh w17, [x0, #3]
-#   x17: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38c01012		ldursb w18, [x0, #1]
-#   x18: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38801013		ldursb x19, [x0, #1]
-#   x19: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
+#            x19: 0x0000000000000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78c03014		ldursh w20, [x0, #3]
-#   x20: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78803015		ldursh x21, [x0, #3]
-#   x21: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0000000000000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b8807016		ldursw x22, [x0, #7]
-#   x22: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x000000000a090807
+#                                  ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  887f6017		ldxp w23, w24, [x0]
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c87f6819		ldxp x25, x26, [x0]
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  885f7c1b		ldxr w27, [x0]
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
+#            w27:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c85f7c1c		ldxr x28, [x0]
-#   x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  085f7c1d		ldxrb w29, [x0]
-#   x29: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  085f7c02		ldxrb w2, [x0]
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             w2:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  485f7c03		ldxrh w3, [x0]
-#    x3: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  485f7c04		ldxrh w4, [x0]
-#    x4: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  531e74c5		lsl w5, w6, #2
-#    x5: 0x0000000000019590
+#             w5:         0x00019590
 0x~~~~~~~~~~~~~~~~  d37df107		lsl x7, x8, #3
-#    x7: 0x0000000000000340
+#             x7: 0x0000000000000340
 0x~~~~~~~~~~~~~~~~  1acb2149		lsl w9, w10, w11
-#    x9: 0x0000000070000000
+#             w9:         0x70000000
 0x~~~~~~~~~~~~~~~~  9ace21ac		lsl x12, x13, x14
-#   x12: 0x2c2a28262422201e
+#            x12: 0x2c2a28262422201e
 0x~~~~~~~~~~~~~~~~  53047e0f		lsr w15, w16, #4
-#   x15: 0x0000000000000040
+#            w15:         0x00000040
 0x~~~~~~~~~~~~~~~~  d345fe51		lsr x17, x18, #5
-#   x17: 0x0000000000000000
+#            x17: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1ad52693		lsr w19, w20, w21
-#   x19: 0x0000000000000080
+#            w19:         0x00000080
 0x~~~~~~~~~~~~~~~~  9ad826f6		lsr x22, x23, x24
-#   x22: 0x0000000000302010
+#            x22: 0x0000000000302010
 0x~~~~~~~~~~~~~~~~  1b1b7359		madd w25, w26, w27, w28
-#   x25: 0x00000000371b0900
+#            w25:         0x371b0900
 0x~~~~~~~~~~~~~~~~  9b03105d		madd x29, x2, x3, x4
-#   x29: 0x0000000000000100
+#            x29: 0x0000000000000100
 0x~~~~~~~~~~~~~~~~  1b07fcc5		mneg w5, w6, w7
-#    x5: 0x00000000feb67b00
+#             w5:         0xfeb67b00
 0x~~~~~~~~~~~~~~~~  9b0afd28		mneg x8, x9, x10
-#    x8: 0xffffce5f00000000
+#             x8: 0xffffce5f00000000
 0x~~~~~~~~~~~~~~~~  2a0c03eb		mov w11, w12
-#   x11: 0x000000002422201e
+#            w11:         0x2422201e
 0x~~~~~~~~~~~~~~~~  aa0e03ed		mov x13, x14
-#   x13: 0x0000000000000001
+#            x13: 0x0000000000000001
 0x~~~~~~~~~~~~~~~~  7280104f		movk w15, #0x82
-#   x15: 0x0000000000000082
+#            x15: 0x0000000000000082
 0x~~~~~~~~~~~~~~~~  f2801070		movk x16, #0x83
-#   x16: 0x0000000000000083
+#            x16: 0x0000000000000083
 0x~~~~~~~~~~~~~~~~  12801091		mov w17, #0xffffff7b
-#   x17: 0x00000000ffffff7b
+#            x17: 0x00000000ffffff7b
 0x~~~~~~~~~~~~~~~~  928010b2		mov x18, #0xffffffffffffff7a
-#   x18: 0xffffffffffffff7a
+#            x18: 0xffffffffffffff7a
 0x~~~~~~~~~~~~~~~~  528010d3		mov w19, #0x86
-#   x19: 0x0000000000000086
+#            x19: 0x0000000000000086
 0x~~~~~~~~~~~~~~~~  d28010f4		mov x20, #0x87
-#   x20: 0x0000000000000087
+#            x20: 0x0000000000000087
 0x~~~~~~~~~~~~~~~~  1b18e6f6		msub w22, w23, w24, w25
-#   x22: 0x000000001b0e0500
+#            w22:         0x1b0e0500
 0x~~~~~~~~~~~~~~~~  9b1cf77a		msub x26, x27, x28, x29
-#   x26: 0xe3e9eff5fbff0100
+#            x26: 0xe3e9eff5fbff0100
 0x~~~~~~~~~~~~~~~~  1b047c62		mul w2, w3, w4
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             w2:         0x00010000
 0x~~~~~~~~~~~~~~~~  9b077cc5		mul x5, x6, x7
-#    x5: 0x0000000001498500
+#             x5: 0x0000000001498500
 0x~~~~~~~~~~~~~~~~  2a2903e8		mvn w8, w9
-#    x8: 0x000000008fffffff
+#             w8:         0x8fffffff
 0x~~~~~~~~~~~~~~~~  aa2b03ea		mvn x10, x11
-#   x10: 0xffffffffdbdddfe1
+#            x10: 0xffffffffdbdddfe1
 0x~~~~~~~~~~~~~~~~  4b0d03ec		neg w12, w13
-#   x12: 0x00000000ffffffff
+#            w12:         0xffffffff
 0x~~~~~~~~~~~~~~~~  cb0f03ee		neg x14, x15
-#   x14: 0xffffffffffffff7e
+#            x14: 0xffffffffffffff7e
 0x~~~~~~~~~~~~~~~~  6b1103f0		negs w16, w17
 # NZCV: N:0 Z:0 C:0 V:0
-#   x16: 0x0000000000000085
+#            w16:         0x00000085
 0x~~~~~~~~~~~~~~~~  eb1303f2		negs x18, x19
 # NZCV: N:1 Z:0 C:0 V:0
-#   x18: 0xffffffffffffff7a
+#            x18: 0xffffffffffffff7a
 0x~~~~~~~~~~~~~~~~  5a1503f4		ngc w20, w21
-#   x20: 0x00000000fffffbfc
+#            w20:         0xfffffbfc
 0x~~~~~~~~~~~~~~~~  da1703f6		ngc x22, x23
-#   x22: 0xfffffffffcfdfeff
+#            x22: 0xfffffffffcfdfeff
 0x~~~~~~~~~~~~~~~~  7a1903f8		ngcs w24, w25
 # NZCV: N:1 Z:0 C:0 V:0
-#   x24: 0x00000000c8e4f6ff
+#            w24:         0xc8e4f6ff
 0x~~~~~~~~~~~~~~~~  fa1b03fa		ngcs x26, x27
 # NZCV: N:1 Z:0 C:0 V:0
-#   x26: 0xfffffffffcfdfeff
+#            x26: 0xfffffffffcfdfeff
 0x~~~~~~~~~~~~~~~~  d503201f		nop
 0x~~~~~~~~~~~~~~~~  2a2203bc		orn w28, w29, w2
-#   x28: 0x00000000fffeffff
+#            w28:         0xfffeffff
 0x~~~~~~~~~~~~~~~~  aa250083		orn x3, x4, x5
-#    x3: 0xfffffffffeb67bff
+#             x3: 0xfffffffffeb67bff
 0x~~~~~~~~~~~~~~~~  2a0800e6		orr w6, w7, w8
-#    x6: 0x000000008fffffff
+#             w6:         0x8fffffff
 0x~~~~~~~~~~~~~~~~  aa0b0149		orr x9, x10, x11
-#    x9: 0xffffffffffffffff
+#             x9: 0xffffffffffffffff
 0x~~~~~~~~~~~~~~~~  f8804000		prfum pldl1keep, [x0, #4]
 0x~~~~~~~~~~~~~~~~  f8801000		prfum pldl1keep, [x0, #1]
 0x~~~~~~~~~~~~~~~~  5ac001ac		rbit w12, w13
-#   x12: 0x0000000080000000
+#            w12:         0x80000000
 0x~~~~~~~~~~~~~~~~  dac001ee		rbit x14, x15
-#   x14: 0x4100000000000000
+#            x14: 0x4100000000000000
 0x~~~~~~~~~~~~~~~~  5ac00a30		rev w16, w17
-#   x16: 0x000000007bffffff
+#            w16:         0x7bffffff
 0x~~~~~~~~~~~~~~~~  dac00e72		rev x18, x19
-#   x18: 0x8600000000000000
+#            x18: 0x8600000000000000
 0x~~~~~~~~~~~~~~~~  5ac006b4		rev16 w20, w21
-#   x20: 0x0000000000000304
+#            w20:         0x00000304
 0x~~~~~~~~~~~~~~~~  dac006f6		rev16 x22, x23
-#   x22: 0x0000000002030001
+#            x22: 0x0000000002030001
 0x~~~~~~~~~~~~~~~~  dac00b38		rev32 x24, x25
-#   x24: 0x0000000000091b37
+#            x24: 0x0000000000091b37
 0x~~~~~~~~~~~~~~~~  1adc2f7a		ror w26, w27, w28
-#   x26: 0x0000000006040200
+#            w26:         0x06040200
 0x~~~~~~~~~~~~~~~~  9ac32c5d		ror x29, x2, x3
-#   x29: 0x0000000000020000
+#            x29: 0x0000000000020000
 0x~~~~~~~~~~~~~~~~  5a0600a4		sbc w4, w5, w6
-#    x4: 0x0000000071498500
+#             w4:         0x71498500
 0x~~~~~~~~~~~~~~~~  da090107		sbc x7, x8, x9
-#    x7: 0x000000008fffffff
+#             x7: 0x000000008fffffff
 0x~~~~~~~~~~~~~~~~  7a0c016a		sbcs w10, w11, w12
 # NZCV: N:1 Z:0 C:0 V:1
-#   x10: 0x00000000a422201d
+#            w10:         0xa422201d
 0x~~~~~~~~~~~~~~~~  fa0f01cd		sbcs x13, x14, x15
 # NZCV: N:0 Z:0 C:1 V:0
-#   x13: 0x40ffffffffffff7d
+#            x13: 0x40ffffffffffff7d
 0x~~~~~~~~~~~~~~~~  131e0a30		sbfiz w16, w17, #2, #3
-#   x16: 0x000000000000000c
+#            w16:         0x0000000c
 0x~~~~~~~~~~~~~~~~  937c1272		sbfiz x18, x19, #4, #5
-#   x18: 0x0000000000000060
+#            x18: 0x0000000000000060
 0x~~~~~~~~~~~~~~~~  130632f6		sbfx w22, w23, #6, #7
-#   x22: 0x0000000000000004
+#            w22:         0x00000004
 0x~~~~~~~~~~~~~~~~  93484338		sbfx x24, x25, #8, #9
-#   x24: 0xffffffffffffff09
+#            x24: 0xffffffffffffff09
 0x~~~~~~~~~~~~~~~~  1adc0f7a		sdiv w26, w27, w28
-#   x26: 0x00000000fffffcff
+#            w26:         0xfffffcff
 0x~~~~~~~~~~~~~~~~  9ac30c5d		sdiv x29, x2, x3
-#   x29: 0x0000000000000000
+#            x29: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9b4e7dac		smulh x12, x13, x14
-#   x12: 0x1080ffffffffffde
+#            x12: 0x1080ffffffffffde
 0x~~~~~~~~~~~~~~~~  889ffc12		stlr w18, [x0]
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  c89ffc13		stlr x19, [x0]
-#   x19: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
+#      x19<63:0>: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  089ffc14		stlrb w20, [x0]
-#   w20<7:0>:          0x04 -> 0x~~~~~~~~~~~~~~~~
+#       x20<7:0>:               0x04 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  089ffc15		stlrb w21, [x0]
-#   w21<7:0>:          0x03 -> 0x~~~~~~~~~~~~~~~~
+#       x21<7:0>:               0x03 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  489ffc16		stlrh w22, [x0]
-#   w22<15:0>:       0x0004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<15:0>:             0x0004 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  489ffc17		stlrh w23, [x0]
-#   w23<15:0>:       0x0100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<15:0>:             0x0100 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  8838e819		stlxp w24, w25, w26, [x0]
-#   x24: 0x0000000000000001
+#            w24:         0x00000001
 0x~~~~~~~~~~~~~~~~  c83bf41c		stlxp w27, x28, x29, [x0]
-#   x27: 0x0000000000000001
+#            w27:         0x00000001
 0x~~~~~~~~~~~~~~~~  8802fc03		stlxr w2, w3, [x0]
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             w2:         0x00000001
 0x~~~~~~~~~~~~~~~~  c804fc05		stlxr w4, x5, [x0]
-#    x4: 0x0000000000000001
+#             w4:         0x00000001
 0x~~~~~~~~~~~~~~~~  0806fc07		stlxrb w6, w7, [x0]
-#    x6: 0x0000000000000001
+#             w6:         0x00000001
 0x~~~~~~~~~~~~~~~~  0808fc09		stlxrb w8, w9, [x0]
-#    x8: 0x0000000000000001
+#             w8:         0x00000001
 0x~~~~~~~~~~~~~~~~  480afc0b		stlxrh w10, w11, [x0]
-#   x10: 0x0000000000000001
+#            w10:         0x00000001
 0x~~~~~~~~~~~~~~~~  480cfc0d		stlxrh w12, w13, [x0]
-#   x12: 0x0000000000000001
+#            w12:         0x00000001
 0x~~~~~~~~~~~~~~~~  28003c0e		stnp w14, w15, [x0]
-#   w14:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
-#   w15:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
+#      x14<31:0>:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      x15<31:0>:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a8004410		stnp x16, x17, [x0]
-#   x16: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
-#   x17: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
+#      x16<63:0>: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
+#      x17<63:0>: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  29004c12		stp w18, w19, [x0]
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  28814c32		stp w18, w19, [x1], #8
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  29814c32		stp w18, w19, [x1, #8]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a9005414		stp x20, x21, [x0]
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a8815434		stp x20, x21, [x1], #16
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  a9815434		stp x20, x21, [x1, #16]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b9000016		str w22, [x0]
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b8004436		str w22, [x1], #4
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b8004c36		str w22, [x1, #4]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f9000017		str x23, [x0]
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f8008437		str x23, [x1], #8
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f8008c37		str x23, [x1, #8]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39000018		strb w24, [x0]
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001438		strb w24, [x1], #1
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001c38		strb w24, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  39000019		strb w25, [x0]
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001439		strb w25, [x1], #1
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001c39		strb w25, [x1, #1]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7900001a		strh w26, [x0]
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7800243a		strh w26, [x1], #2
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78002c3a		strh w26, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7900001b		strh w27, [x0]
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7800243b		strh w27, [x1], #2
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78002c3b		strh w27, [x1, #2]!
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  b800701c		stur w28, [x0, #7]
-#   w28:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
+#      x28<31:0>:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  f800f01d		stur x29, [x0, #15]
-#   x29: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      x29<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001002		sturb w2, [x0, #1]
-#    w2<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
+#        x2<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  38001003		sturb w3, [x0, #1]
-#    w3<7:0>:          0xff -> 0x~~~~~~~~~~~~~~~~
+#        x3<7:0>:               0xff -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78003004		sturh w4, [x0, #3]
-#    w4<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
+#       x4<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  78003005		sturh w5, [x0, #3]
-#    w5<15:0>:       0x8500 -> 0x~~~~~~~~~~~~~~~~
+#       x5<15:0>:             0x8500 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  88262007		stxp w6, w7, w8, [x0]
-#    x6: 0x0000000000000001
+#             w6:         0x00000001
 0x~~~~~~~~~~~~~~~~  c8292c0a		stxp w9, x10, x11, [x0]
-#    x9: 0x0000000000000001
+#             w9:         0x00000001
 0x~~~~~~~~~~~~~~~~  880c7c0d		stxr w12, w13, [x0]
-#   x12: 0x0000000000000001
+#            w12:         0x00000001
 0x~~~~~~~~~~~~~~~~  c80e7c0f		stxr w14, x15, [x0]
-#   x14: 0x0000000000000001
+#            w14:         0x00000001
 0x~~~~~~~~~~~~~~~~  08107c11		stxrb w16, w17, [x0]
-#   x16: 0x0000000000000001
+#            w16:         0x00000001
 0x~~~~~~~~~~~~~~~~  08127c13		stxrb w18, w19, [x0]
-#   x18: 0x0000000000000001
+#            w18:         0x00000001
 0x~~~~~~~~~~~~~~~~  48147c15		stxrh w20, w21, [x0]
-#   x20: 0x0000000000000001
+#            w20:         0x00000001
 0x~~~~~~~~~~~~~~~~  48167c17		stxrh w22, w23, [x0]
-#   x22: 0x0000000000000001
+#            w22:         0x00000001
 0x~~~~~~~~~~~~~~~~  4b1a0338		sub w24, w25, w26
-#   x24: 0x00000000371b0c01
+#            w24:         0x371b0c01
 0x~~~~~~~~~~~~~~~~  cb1d039b		sub x27, x28, x29
-#   x27: 0x00000000fffeffff
+#            x27: 0x00000000fffeffff
 0x~~~~~~~~~~~~~~~~  6b040062		subs w2, w3, w4
 # NZCV: N:1 Z:0 C:1 V:0
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             w2:         0xfeb67bfe
 0x~~~~~~~~~~~~~~~~  eb0700c5		subs x5, x6, x7
 # NZCV: N:1 Z:0 C:0 V:0
-#    x5: 0xffffffff70000002
+#             x5: 0xffffffff70000002
 0x~~~~~~~~~~~~~~~~  13001d28		sxtb w8, w9
-#    x8: 0x0000000000000001
+#             w8:         0x00000001
 0x~~~~~~~~~~~~~~~~  93401d6a		sxtb x10, w11
-#   x10: 0x000000000000001e
+#            x10: 0x000000000000001e
 0x~~~~~~~~~~~~~~~~  13003dac		sxth w12, w13
-#   x12: 0x00000000ffffff7d
+#            w12:         0xffffff7d
 0x~~~~~~~~~~~~~~~~  93403dee		sxth x14, w15
-#   x14: 0x0000000000000082
+#            x14: 0x0000000000000082
 0x~~~~~~~~~~~~~~~~  13007e30		sbfx w16, w17, #0, #32
-#   x16: 0x00000000ffffff7b
+#            w16:         0xffffff7b
 0x~~~~~~~~~~~~~~~~  93407e72		sxtw x18, w19
-#   x18: 0x0000000000000086
+#            x18: 0x0000000000000086
 0x~~~~~~~~~~~~~~~~  6a15029f		tst w20, w21
 # NZCV: N:0 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  ea1702df		tst x22, x23
 # NZCV: N:0 Z:1 C:0 V:0
 0x~~~~~~~~~~~~~~~~  53162b38		ubfiz w24, w25, #10, #11
-#   x24: 0x0000000000040000
+#            w24:         0x00040000
 0x~~~~~~~~~~~~~~~~  d374337a		ubfiz x26, x27, #12, #13
-#   x26: 0x0000000001fff000
+#            x26: 0x0000000001fff000
 0x~~~~~~~~~~~~~~~~  530e3fbc		ubfx w28, w29, #14, #2
-#   x28: 0x0000000000000000
+#            w28:         0x00000000
 0x~~~~~~~~~~~~~~~~  d3410862		ubfx x2, x3, #1, #2
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  530318a4		ubfx w4, w5, #3, #4
-#    x4: 0x0000000000000000
+#             w4:         0x00000000
 0x~~~~~~~~~~~~~~~~  d34528e6		ubfx x6, x7, #5, #6
-#    x6: 0x000000000000003f
+#             x6: 0x000000000000003f
 0x~~~~~~~~~~~~~~~~  1aca0928		udiv w8, w9, w10
-#    x8: 0x0000000000000000
+#             w8:         0x00000000
 0x~~~~~~~~~~~~~~~~  9acd098b		udiv x11, x12, x13
-#   x11: 0x0000000000000000
+#            x11: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9bd87ef6		umulh x22, x23, x24
-#   x22: 0x0000000000000000
+#            x22: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  53001fbc		uxtb w28, w29
-#   x28: 0x0000000000000000
+#            w28:         0x00000000
 0x~~~~~~~~~~~~~~~~  d3401c62		uxtb x2, w3
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  53003ca4		uxth w4, w5
-#    x4: 0x0000000000000002
+#             w4:         0x00000002
 0x~~~~~~~~~~~~~~~~  d3403ce6		uxth x6, w7
-#    x6: 0x000000000000ffff
+#             x6: 0x000000000000ffff
 0x~~~~~~~~~~~~~~~~  53007d28		lsr w8, w9, #0
-#    x8: 0x0000000000000001
+#             w8:         0x00000001
 0x~~~~~~~~~~~~~~~~  d3407d6a		ubfx x10, x11, #0, #32
-#   x10: 0x0000000000000000
+#            x10: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  14000001		b #+0x4 (addr 0x~~~~~~~~~~~~~~~~)
 # Branch to 0x~~~~~~~~~~~~~~~~.
 0x~~~~~~~~~~~~~~~~  eb030063		subs x3, x3, x3
 # NZCV: N:0 Z:1 C:1 V:0
-#    x3: 0x0000000000000000
+#             x3: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  54000061		b.ne #+0xc (addr 0x~~~~~~~~~~~~~~~~)
 0x~~~~~~~~~~~~~~~~  f100047f		cmp x3, #0x1 (1)
 # NZCV: N:1 Z:0 C:0 V:0
@@ -780,5299 +1047,10814 @@
 0x~~~~~~~~~~~~~~~~  54000061		b.ne #+0xc (addr 0x~~~~~~~~~~~~~~~~)
 # Branch to 0x~~~~~~~~~~~~~~~~.
 0x~~~~~~~~~~~~~~~~  7ef3d44d		fabd d13, d2, d19
-#   v13: 0x00000000000000004036e00cd9b7e45b
+#            v13: 0x0000000000000000490ffff1110487fe
 0x~~~~~~~~~~~~~~~~  7ebed548		fabd s8, s10, s30
-#    v8: 0x00000000000000000000000041c5851e
+#             v8: 0x0000000000000000000000000e02aff8
 0x~~~~~~~~~~~~~~~~  1e60c021		fabs d1, d1
-#    v1: 0x00000000000000003ff587933f9e0419 (d1: 1.34560)
+#             d1:                 0x47f000007f823c00 (3.403e+38)
 0x~~~~~~~~~~~~~~~~  1e20c0f9		fabs s25, s7
-#   v25: 0x000000000000000000000000410a4396 (s25: 8.64150)
+#            s25:                         0x02825400 (1.915e-37)
 0x~~~~~~~~~~~~~~~~  7e70eee1		facge d1, d23, d16
-#    v1: 0x0000000000000000ffffffffffffffff
+#             v1: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7e21ee24		facge s4, s17, s1
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ef8eea2		facgt d2, d21, d24
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eacef4c		facgt s12, s26, s12
-#   v12: 0x000000000000000000000000ffffffff
+#            v12: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  1e76296d		fadd d13, d11, d22
-#   v13: 0x0000000000000000404633d07142f43a (d13: 44.4048)
+#            d13:                 0x494002008a13204c (7.140e+44)
 0x~~~~~~~~~~~~~~~~  1e282a7b		fadd s27, s19, s8
-#   v27: 0x000000000000000000000000424094fe (s27: 48.1455)
+#            s27:                         0x0e029fa8 (1.610e-30)
 0x~~~~~~~~~~~~~~~~  1e6a24c0		fccmp d6, d10, #nzcv, hs
 # NZCV: N:0 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  1e3417ad		fccmp s29, s20, #NZcV, ne
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:1 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  1e62e55e		fccmpe d10, d2, #NZCv, al
 # NZCV: N:0 Z:0 C:1 V:0
 0x~~~~~~~~~~~~~~~~  1e23547d		fccmpe s3, s3, #NZcV, pl
 # NZCV: N:0 Z:1 C:1 V:0
 0x~~~~~~~~~~~~~~~~  5e6ae513		fcmeq d19, d8, d10
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee0da40		fcmeq d0, d18, #0.0
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e3ee481		fcmeq s1, s4, s30
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea0dbb6		fcmeq s22, s29, #0.0
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e61e65b		fcmge d27, d18, d1
-#   v27: 0x0000000000000000ffffffffffffffff
+#            v27: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7ee0cb9f		fcmge d31, d28, #0.0
-#   v31: 0x0000000000000000ffffffffffffffff
+#            v31: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7e29e67f		fcmge s31, s19, s9
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  7ea0cb21		fcmge s1, s25, #0.0
-#    v1: 0x000000000000000000000000ffffffff
+#             v1: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  7eefe432		fcmgt d18, d1, d15
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee0cbe3		fcmgt d3, d31, #0.0
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7ea2e72b		fcmgt s11, s25, s2
-#   v11: 0x000000000000000000000000ffffffff
+#            v11: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  5ea0ca11		fcmgt s17, s16, #0.0
-#   v17: 0x000000000000000000000000ffffffff
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ee0da38		fcmle d24, d17, #0.0
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7ea0d90b		fcmle s11, s8, #0.0
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee0ebe5		fcmlt d5, d31, #0.0
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea0eaf2		fcmlt s18, s23, #0.0
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  1e782140		fcmp d10, d24
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:0 Z:0 C:1 V:1
 0x~~~~~~~~~~~~~~~~  1e6021a8		fcmp d13, #0.0
 # NZCV: N:0 Z:0 C:1 V:0
 0x~~~~~~~~~~~~~~~~  1e262240		fcmp s18, s6
-# NZCV: N:1 Z:0 C:0 V:0
+# NZCV: N:0 Z:0 C:1 V:1
 0x~~~~~~~~~~~~~~~~  1e202208		fcmp s16, #0.0
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:1 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  1e712130		fcmpe d9, d17
 # NZCV: N:0 Z:0 C:1 V:0
 0x~~~~~~~~~~~~~~~~  1e6023b8		fcmpe d29, #0.0
 # NZCV: N:0 Z:0 C:1 V:0
 0x~~~~~~~~~~~~~~~~  1e312210		fcmpe s16, s17
-# NZCV: N:0 Z:0 C:1 V:1
+# NZCV: N:1 Z:0 C:0 V:0
 0x~~~~~~~~~~~~~~~~  1e2022d8		fcmpe s22, #0.0
 # NZCV: N:0 Z:1 C:1 V:0
 0x~~~~~~~~~~~~~~~~  1e73cdca		fcsel d10, d14, d19, gt
-#   v10: 0x00000000000000000000000000000000 (d10: 0.00000)
+#            d10:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e22ae56		fcsel s22, s18, s2, ge
-#   v22: 0x00000000000000000000000000000000 (s22: 0.00000)
+#            s22:                         0xffffffff
 0x~~~~~~~~~~~~~~~~  1ee2c304		fcvt d4, h24
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
+#             d4:                 0xfffffc0000000000
 0x~~~~~~~~~~~~~~~~  1e22c04b		fcvt d11, s2
-#   v11: 0x00000000000000000000000000000000 (d11: 0.00000)
+#            d11:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e63c128		fcvt h8, d9
-#    v8: 0x00000000000000000000000000004a0e
+#             h8:                             0x7c00
 0x~~~~~~~~~~~~~~~~  1e23c02c		fcvt h12, s1
-#   v12: 0x0000000000000000000000000000ffff
+#            h12:                             0xffff
 0x~~~~~~~~~~~~~~~~  1e6243ec		fcvt s12, d31
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
+#            s12:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1ee2433b		fcvt s27, h25
-#   v27: 0x0000000000000000000000004072c000 (s27: 3.79297)
+#            s27:                         0x42800000
 0x~~~~~~~~~~~~~~~~  5e61ca1c		fcvtas d28, d16
-#   v28: 0x00000000000000000000000000000016
+#            v28: 0x00000000000000007fffffffffffffff
 0x~~~~~~~~~~~~~~~~  5e21c8a3		fcvtas s3, s5
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e6403f2		fcvtas w18, d31
-#   x18: 0x0000000000000000
+#            w18:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e24031d		fcvtas w29, s24
-#   x29: 0x0000000000000000
+#            w29:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e640029		fcvtas x9, d1
-#    x9: 0x0000000000000000
+#             x9: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e24005e		fcvtas x30, s2
-#    lr: 0x0000000000000000
+#             lr: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  7e61c80e		fcvtau d14, d0
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e21c9df		fcvtau s31, s14
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e650050		fcvtau w16, d2
-#   x16: 0x0000000000000000
+#            w16:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e250012		fcvtau w18, s0
-#   x18: 0x0000000000000000
+#            w18:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e6500fa		fcvtau x26, d7
-#   x26: 0x0000000000000009
+#            x26: 0xffffffffffffffff
 0x~~~~~~~~~~~~~~~~  9e250279		fcvtau x25, s19
-#   x25: 0x0000000000000000
+#            x25: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5e61bb3e		fcvtms d30, d25
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e21b9ec		fcvtms s12, s15
-#   v12: 0x00000000000000000000000000000012
+#            v12: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  1e7000e9		fcvtms w9, d7
-#    x9: 0x0000000000000009
+#             w9:         0x7fffffff
 0x~~~~~~~~~~~~~~~~  1e3000d3		fcvtms w19, s6
-#   x19: 0x0000000000000007
+#            w19:         0xffffffff
 0x~~~~~~~~~~~~~~~~  9e7000c6		fcvtms x6, d6
-#    x6: 0x0000000000000008
+#             x6: 0x7fffffffffffffff
 0x~~~~~~~~~~~~~~~~  9e3000f6		fcvtms x22, s7
-#   x22: 0x0000000000000008
+#            x22: 0xffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7e61b81b		fcvtmu d27, d0
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e21bac8		fcvtmu s8, s22
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e71027d		fcvtmu w29, d19
-#   x29: 0x0000000000000000
+#            w29:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e31001a		fcvtmu w26, s0
-#   x26: 0x0000000000000000
+#            w26:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e7100ad		fcvtmu x13, d5
-#   x13: 0x0000000000000000
+#            x13: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e310245		fcvtmu x5, s18
-#    x5: 0x0000000000000000
+#             x5: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5e61a9fe		fcvtns d30, d15
-#   v30: 0x00000000000000000000000000000014
+#            v30: 0x00000000000000007fffffffffffffff
 0x~~~~~~~~~~~~~~~~  5e21a96a		fcvtns s10, s11
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e6001f5		fcvtns w21, d15
-#   x21: 0x0000000000000014
+#            w21:         0x7fffffff
 0x~~~~~~~~~~~~~~~~  1e200152		fcvtns w18, s10
-#   x18: 0x0000000000000000
+#            w18:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e600228		fcvtns x8, d17
-#    x8: 0x0000000000000000
+#             x8: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e200191		fcvtns x17, s12
-#   x17: 0x0000000000000000
+#            x17: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  7e61aaa0		fcvtnu d0, d21
-#    v0: 0x0000000000000000000000000000001c
+#             v0: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7e21ab26		fcvtnu s6, s25
-#    v6: 0x00000000000000000000000000000009
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e61017d		fcvtnu w29, d11
-#   x29: 0x0000000000000000
+#            w29:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e2103f9		fcvtnu w25, s31
-#   x25: 0x0000000000000000
+#            w25:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e61017e		fcvtnu x30, d11
-#    lr: 0x0000000000000000
+#             lr: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e21025b		fcvtnu x27, s18
-#   x27: 0x0000000000000000
+#            x27: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5ee1aacb		fcvtps d11, d22
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  5ea1aa9d		fcvtps s29, s20
-#   v29: 0x00000000000000000000000000000019
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e68032f		fcvtps w15, d25
-#   x15: 0x0000000000000001
+#            w15:         0x00000001
 0x~~~~~~~~~~~~~~~~  1e2800f0		fcvtps w16, s7
-#   x16: 0x0000000000000009
+#            w16:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e68028d		fcvtps x13, d20
-#   x13: 0x000000000000001b
+#            x13: 0x7fffffffffffffff
 0x~~~~~~~~~~~~~~~~  9e2802e3		fcvtps x3, s23
-#    x3: 0x000000000000001d
+#             x3: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  7ee1a838		fcvtpu d24, d1
-#   v24: 0x00000000000000000000000000000001
+#            v24: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  7ea1ab0e		fcvtpu s14, s24
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  1e6903ba		fcvtpu w26, d29
-#   x26: 0x0000000000000001
+#            w26:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e29035f		fcvtpu wzr, s26
 0x~~~~~~~~~~~~~~~~  9e6900db		fcvtpu x27, d6
-#   x27: 0x0000000000000001
+#            x27: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e2901dd		fcvtpu x29, s14
-#   x29: 0x0000000000000001
+#            x29: 0x0000000000000001
 0x~~~~~~~~~~~~~~~~  7e61698c		fcvtxn s12, d12
-#   v12: 0x00000000000000000000000000000001
+#            v12: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  5ee1b80f		fcvtzs d15, d0
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f56fc8d		fcvtzs d13, d4, #42
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea1b968		fcvtzs s8, s11
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f27fcdf		fcvtzs s31, s6, #25
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e780126		fcvtzs w6, d9
-#    x6: 0x000000000000000c
+#             w6:         0x7fffffff
 0x~~~~~~~~~~~~~~~~  1e58b159		fcvtzs w25, d10, #20
-#   x25: 0x0000000000000000
+#            w25:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e380029		fcvtzs w9, s1
-#    x9: 0x0000000000000000
+#             w9:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e188bb1		fcvtzs w17, s29, #30
-#   x17: 0x0000000000000000
+#            w17:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e780053		fcvtzs x19, d2
-#   x19: 0x0000000000000000
+#            x19: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e58fdd6		fcvtzs x22, d14, #1
-#   x22: 0x0000000000000000
+#            x22: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e38028e		fcvtzs x14, s20
-#   x14: 0x0000000000000018
+#            x14: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e187fc3		fcvtzs x3, s30, #33
-#    x3: 0x0000000000000000
+#             x3: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  7ee1b9fc		fcvtzu d28, d15
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f7dfc80		fcvtzu d0, d4, #3
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea1b8a2		fcvtzu s2, s5
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f22fc04		fcvtzu s4, s0, #30
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e79008b		fcvtzu w11, d4
-#   x11: 0x0000000000000000
+#            w11:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e598307		fcvtzu w7, d24, #32
-#    x7: 0x0000000000000000
+#             w7:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e390312		fcvtzu w18, s24
-#   x18: 0x0000000000000000
+#            w18:         0x00000000
 0x~~~~~~~~~~~~~~~~  1e19f36e		fcvtzu w14, s27, #4
-#   x14: 0x0000000000000000
+#            w14:         0x00000000
 0x~~~~~~~~~~~~~~~~  9e790176		fcvtzu x22, d11
-#   x22: 0x0000000000000000
+#            x22: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e593368		fcvtzu x8, d27, #52
-#    x8: 0x0000000000000000
+#             x8: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e390287		fcvtzu x7, s20
-#    x7: 0x0000000000000018
+#             x7: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e1950f6		fcvtzu x22, s7, #44
-#   x22: 0x00008a4396000000
+#            x22: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e6f19c6		fdiv d6, d14, d15
-#    v6: 0x00000000000000007ff0000000000000 (d6: inf)
+#             d6:                 0x7ff0000000000000 (inf)
 0x~~~~~~~~~~~~~~~~  1e3918ba		fdiv s26, s5, s25
-#   v26: 0x00000000000000000000000000000000 (s26: 0.00000)
+#            s26:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1f4c7b52		fmadd d18, d26, d12, d30
-#   v18: 0x00000000000000000000000000000014 (d18: 9.88131e-323)
+#            d18:                 0x7fffffffffffffff
 0x~~~~~~~~~~~~~~~~  1f1c112d		fmadd s13, s9, s28, s4
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
+#            s13:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1e6548ac		fmax d12, d5, d5
-#   v12: 0x00000000000000000000000000000000 (d12: 0.00000)
+#            d12:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e264b8c		fmax s12, s28, s6
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
+#            s12:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e62689c		fmaxnm d28, d4, d2
-#   v28: 0x00000000000000000000000000000000 (d28: 0.00000)
+#            d28:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e286946		fmaxnm s6, s10, s8
-#    v6: 0x00000000000000000000000000000000 (s6: 0.00000)
+#             s6:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e725a94		fmin d20, d20, d18
-#   v20: 0x00000000000000000000000000000014 (d20: 9.88131e-323)
+#            d20:                 0x7fffffffffffffff (nan)
 0x~~~~~~~~~~~~~~~~  1e3059a7		fmin s7, s13, s16
-#    v7: 0x00000000000000000000000000000000 (s7: 0.00000)
+#             s7:                         0x87027800 (-9.815e-35)
 0x~~~~~~~~~~~~~~~~  1e7e79d3		fminnm d19, d14, d30
-#   v19: 0x00000000000000000000000000000001 (d19: 4.94066e-324)
+#            d19:                 0x0000000000000001 (4.941e-324)
 0x~~~~~~~~~~~~~~~~  1e217820		fminnm s0, s1, s1
-#    v0: 0x000000000000000000000000ffffffff (s0: nan)
+#             s0:                         0xffffffff (nan)
 0x~~~~~~~~~~~~~~~~  1e6040cd		fmov d13, d6
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
+#            d13:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e670222		fmov d2, x17
-#    v2: 0x00000000000000000000000000000000
+#             d2:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e709008		fmov d8, #0x84 (-2.5000)
-#    v8: 0x0000000000000000c004000000000000 (d8: -2.50000)
+#             d8:                 0xc004000000000000
 0x~~~~~~~~~~~~~~~~  1e204065		fmov s5, s3
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
+#             s5:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1e270299		fmov s25, w20
-#   v25: 0x00000000000000000000000000000001
+#            s25:                         0x00000001
 0x~~~~~~~~~~~~~~~~  1e20f015		fmov s21, #0x7 (2.8750)
-#   v21: 0x00000000000000000000000040380000 (s21: 2.87500)
+#            s21:                         0x40380000
 0x~~~~~~~~~~~~~~~~  1e260312		fmov w18, s24
-#   x18: 0x0000000000000001
+#            w18:         0x00000001
 0x~~~~~~~~~~~~~~~~  9e660052		fmov x18, d2
-#   x18: 0x0000000000000000
+#            x18: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1f43cfd4		fmsub d20, d30, d3, d19
-#   v20: 0x00000000000000000000000000000001 (d20: 4.94066e-324)
+#            d20:                 0xffffffffffffffff
 0x~~~~~~~~~~~~~~~~  1f04b265		fmsub s5, s19, s4, s12
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
+#             s5:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1e770b7e		fmul d30, d27, d23
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
+#            d30:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e2f0a39		fmul s25, s17, s15
-#   v25: 0x000000000000000000000000ffffffff (s25: nan)
+#            s25:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  5e61de24		fmulx d4, d17, d1
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e24df2e		fmulx s14, s25, s4
-#   v14: 0x000000000000000000000000ffffffff
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e61400f		fneg d15, d0
-#   v15: 0x000000000000000080000000ffffffff (d15: -2.12200e-314)
+#            d15:                 0x80000000ffffffff (-2.122e-314)
 0x~~~~~~~~~~~~~~~~  1e2141ee		fneg s14, s15
-#   v14: 0x0000000000000000000000007fffffff (s14: nan)
+#            s14:                         0x7fffffff (nan)
 0x~~~~~~~~~~~~~~~~  1f767e00		fnmadd d0, d16, d22, d31
-#    v0: 0x00000000000000008000000000000000 (d0: -0.00000)
+#             d0:                 0x87c0000086f277ff
 0x~~~~~~~~~~~~~~~~  1f3a4a40		fnmadd s0, s18, s26, s18
-#    v0: 0x00000000000000000000000080000014 (s0: -2.80260e-44)
+#             s0:                         0x7fffffff
 0x~~~~~~~~~~~~~~~~  1f6fd593		fnmsub d19, d12, d15, d21
-#   v19: 0x00000000000000008000000040380000 (d19: -5.32312e-315)
+#            d19:                 0x8000000040380000
 0x~~~~~~~~~~~~~~~~  1f2be81d		fnmsub s29, s0, s11, s26
-#   v29: 0x00000000000000000000000080000000 (s29: -0.00000)
+#            s29:                         0x7fffffff
 0x~~~~~~~~~~~~~~~~  1e618a7f		fnmul d31, d19, d1
-#   v31: 0x00000000000000000000000000000000 (d31: 0.00000)
+#            d31:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e318872		fnmul s18, s3, s17
-#   v18: 0x0000000000000000000000007fffffff (s18: nan)
+#            s18:                         0x80000000 (-0.000)
 0x~~~~~~~~~~~~~~~~  5ee1daa7		frecpe d7, d21
-#    v7: 0x00000000000000007ff0000000000000
+#             v7: 0x00000000000000007ff0000000000000
 0x~~~~~~~~~~~~~~~~  5ea1da3d		frecpe s29, s17
-#   v29: 0x000000000000000000000000ffffffff
+#            v29: 0x0000000000000000000000007f800000
 0x~~~~~~~~~~~~~~~~  5e71ff4b		frecps d11, d26, d17
-#   v11: 0x00000000000000004000000000000000
+#            v11: 0x00000000000000004000000000000000
 0x~~~~~~~~~~~~~~~~  5e21ff72		frecps s18, s27, s1
-#   v18: 0x000000000000000000000000ffffffff
+#            v18: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  5ee1fa4f		frecpx d15, d18
-#   v15: 0x00000000000000007fe0000000000000
+#            v15: 0x00000000000000007fe0000000000000
 0x~~~~~~~~~~~~~~~~  5ea1f945		frecpx s5, s10
-#    v5: 0x0000000000000000000000007f000000
+#             v5: 0x0000000000000000000000007f000000
 0x~~~~~~~~~~~~~~~~  1e6643d0		frinta d16, d30
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
+#            d16:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e2642c1		frinta s1, s22
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
+#             s1:                         0xffffffff (nan)
 0x~~~~~~~~~~~~~~~~  1e67c3b3		frinti d19, d29
-#   v19: 0x00000000000000000000000000000000 (d19: 0.00000)
+#            d19:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e27c2ae		frinti s14, s21
-#   v14: 0x00000000000000000000000040400000 (s14: 3.00000)
+#            s14:                         0x40400000 (3.000)
 0x~~~~~~~~~~~~~~~~  1e6543d4		frintm d20, d30
-#   v20: 0x00000000000000000000000000000000 (d20: 0.00000)
+#            d20:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e254201		frintm s1, s16
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
+#             s1:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e64403e		frintn d30, d1
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
+#            d30:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e244158		frintn s24, s10
-#   v24: 0x00000000000000000000000000000000 (s24: 0.00000)
+#            s24:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e64c284		frintp d4, d20
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
+#             d4:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e24c06d		frintp s13, s3
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
+#            s13:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e67428d		frintx d13, d20
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
+#            d13:                 0x0000000000000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e2740f1		frintx s17, s7
-#   v17: 0x00000000000000000000000000000000 (s17: 0.00000)
+#            s17:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  1e65c100		frintz d0, d8
-#    v0: 0x0000000000000000c000000000000000 (d0: -2.00000)
+#             d0:                 0xc000000000000000 (-2.000)
 0x~~~~~~~~~~~~~~~~  1e25c3af		frintz s15, s29
-#   v15: 0x000000000000000000000000ffffffff (s15: nan)
+#            s15:                         0x7f800000 (inf)
 0x~~~~~~~~~~~~~~~~  7ee1d955		frsqrte d21, d10
-#   v21: 0x00000000000000007ff0000000000000
+#            v21: 0x00000000000000007ff0000000000000
 0x~~~~~~~~~~~~~~~~  7ea1db31		frsqrte s17, s25
-#   v17: 0x000000000000000000000000ffffffff
+#            v17: 0x0000000000000000000000007f800000
 0x~~~~~~~~~~~~~~~~  5ef1ffa4		frsqrts d4, d29, d17
-#    v4: 0x00000000000000003ff8000000000000
+#             v4: 0x00000000000000003ff8000000000000
 0x~~~~~~~~~~~~~~~~  5eb8fc6e		frsqrts s14, s3, s24
-#   v14: 0x0000000000000000000000003fc00000
+#            v14: 0x0000000000000000000000003fc00000
 0x~~~~~~~~~~~~~~~~  1e61c22e		fsqrt d14, d17
-#   v14: 0x00000000000000001f5ffffffff00000 (d14: 1.45671e-157)
+#            d14:                 0x1f56954b41cd4293 (1.028e-157)
 0x~~~~~~~~~~~~~~~~  1e21c1c4		fsqrt s4, s14
-#    v4: 0x000000000000000000000000fff00000 (s4: nan)
+#             s4:                         0x40a21722 (5.065)
 0x~~~~~~~~~~~~~~~~  1e673a6d		fsub d13, d19, d7
-#   v13: 0x0000000000000000fff0000000000000 (d13: -inf)
+#            d13:                 0xfff0000000000000 (-inf)
 0x~~~~~~~~~~~~~~~~  1e3b3aa3		fsub s3, s21, s27
-#    v3: 0x00000000000000000000000000000000 (s3: 0.00000)
+#             s3:                         0x00000000 (0.000)
 0x~~~~~~~~~~~~~~~~  5e61da1f		scvtf d31, d16
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f68e7fa		scvtf d26, d31, #24
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  1e620206		scvtf d6, w16
-#    v6: 0x00000000000000004022000000000000 (d6: 9.00000)
+#             d6:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e42ea85		scvtf d5, w20, #6
-#    v5: 0x00000000000000003f90000000000000 (d5: 0.0156250)
+#             d5:                 0x3f90000000000000
 0x~~~~~~~~~~~~~~~~  9e620110		scvtf d16, x8
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
+#            d16:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e42d90f		scvtf d15, x8, #10
-#   v15: 0x00000000000000000000000000000000 (d15: 0.00000)
+#            d15:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5e21d887		scvtf s7, s4
-#    v7: 0x00000000000000007ff00000c9800000
+#             v7: 0x00000000000000007ff000004e81442e
 0x~~~~~~~~~~~~~~~~  5f32e5e8		scvtf s8, s15, #14
-#    v8: 0x0000000000000000c004000000000000
+#             v8: 0x0000000000000000c004000000000000
 0x~~~~~~~~~~~~~~~~  1e22015d		scvtf s29, w10
-#   v29: 0x00000000000000000000000000000000 (s29: 0.00000)
+#            s29:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1e02d6af		scvtf s15, w21, #11
-#   v15: 0x0000000000000000000000003c200000 (s15: 0.00976562)
+#            s15:                         0x49800000
 0x~~~~~~~~~~~~~~~~  9e22035b		scvtf s27, x26
-#   v27: 0x0000000000000000000000003f800000 (s27: 1.00000)
+#            s27:                         0x00000000
 0x~~~~~~~~~~~~~~~~  9e02699a		scvtf s26, x12, #38
-#   v26: 0x0000000000000000000000003c7fffff (s26: 0.0156250)
+#            s26:                         0x3c7fffff
 0x~~~~~~~~~~~~~~~~  7e61d920		ucvtf d0, d9
-#    v0: 0x000000000000000043d00a0e21904c71
+#             v0: 0x000000000000000043d21c000020e097
 0x~~~~~~~~~~~~~~~~  7f51e6c5		ucvtf d5, d22, #47
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000003effffffffe00000
 0x~~~~~~~~~~~~~~~~  1e63037e		ucvtf d30, w27
-#   v30: 0x00000000000000003ff0000000000000 (d30: 1.00000)
+#            d30:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  1e43fe63		ucvtf d3, w19, #1
-#    v3: 0x00000000000000000000000000000000 (d3: 0.00000)
+#             d3:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  9e6302bc		ucvtf d28, x21
-#   v28: 0x00000000000000004034000000000000 (d28: 20.0000)
+#            d28:                 0x41dfffffffc00000
 0x~~~~~~~~~~~~~~~~  9e4377db		ucvtf d27, x30, #35
-#   v27: 0x00000000000000000000000000000000 (d27: 0.00000)
+#            d27:                 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  7e21d8ab		ucvtf s11, s5
-#   v11: 0x00000000000000004000000000000000
+#            v11: 0x0000000000000000400000004f7fe000
 0x~~~~~~~~~~~~~~~~  7f32e6e0		ucvtf s0, s23, #14
-#    v0: 0x000000000000000043d00a0e4783c64c
+#             v0: 0x000000000000000043d21c00480a8294
 0x~~~~~~~~~~~~~~~~  1e230274		ucvtf s20, w19
-#   v20: 0x00000000000000000000000000000000 (s20: 0.00000)
+#            s20:                         0x00000000
 0x~~~~~~~~~~~~~~~~  1e03bad5		ucvtf s21, w22, #18
-#   v21: 0x00000000000000000000000046160000 (s21: 9600.00)
+#            s21:                         0x00000000
 0x~~~~~~~~~~~~~~~~  9e2301a6		ucvtf s6, x13
-#    v6: 0x00000000000000000000000041d80000 (s6: 27.0000)
+#             s6:                         0x5f000000
 0x~~~~~~~~~~~~~~~~  9e03ac47		ucvtf s7, x2, #21
-#    v7: 0x00000000000000000000000038ff0000 (s7: 0.000121593)
+#             s7:                         0x38ff0000
 0x~~~~~~~~~~~~~~~~  5ee0b813		abs d19, d0
-#   v19: 0x000000000000000043d00a0e4783c64c
+#            v19: 0x000000000000000043d21c00480a8294
 0x~~~~~~~~~~~~~~~~  4e20b970		abs v16.16b, v11.16b
-#   v16: 0x00000000000000004000000000000000
+#            v16: 0x0000000000000000400000004f7f2000
 0x~~~~~~~~~~~~~~~~  4ee0bbe0		abs v0.2d, v31.2d
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea0bb3b		abs v27.2s, v25.2s
-#   v27: 0x00000000000000000000000000000001
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e60bb75		abs v21.4h, v27.4h
-#   v21: 0x00000000000000000000000000000001
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea0b830		abs v16.4s, v1.4s
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e20b8bf		abs v31.8b, v5.8b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000003e01010101200000
 0x~~~~~~~~~~~~~~~~  4e60b9bd		abs v29.8h, v13.8h
-#   v29: 0x00000000000000000010000000000000
+#            v29: 0x00000000000000000010000000000000
 0x~~~~~~~~~~~~~~~~  5ef184aa		add d10, d5, d17
-#   v10: 0x000000000000000000000000ffffffff
+#            v10: 0x00000000000000003f0000007f600000
 0x~~~~~~~~~~~~~~~~  4e3785ff		add v31.16b, v15.16b, v23.16b
-#   v31: 0x403ba7b141b670b1403ef2e47d0325e4
+#            v31: 0x495000018a83940149500000d3029400
 0x~~~~~~~~~~~~~~~~  4eee87ea		add v10.2d, v31.2d, v14.2d
-#   v10: 0x403ba7b141b670b15f9ef2e47cf325e4
+#            v10: 0x495000018a83940168a6954c14cfd693
 0x~~~~~~~~~~~~~~~~  0eb385cf		add v15.2s, v14.2s, v19.2s
-#   v15: 0x000000000000000063300a0d4773c64c
+#            v15: 0x00000000000000006328b14b89d7c527
 0x~~~~~~~~~~~~~~~~  0e7186fb		add v27.4h, v23.4h, v17.4h
-#   v27: 0x0000000000000000403ef2e441e225e3
+#            v27: 0x0000000000000000495000000a029400
 0x~~~~~~~~~~~~~~~~  4ebd8799		add v25.4s, v28.4s, v29.4s
-#   v25: 0x00000000000000004044000000000000
+#            v25: 0x000000000000000041efffffffc00000
 0x~~~~~~~~~~~~~~~~  0e3284ed		add v13.8b, v7.8b, v18.8b
-#   v13: 0x00000000000000000000000037feffff
+#            v13: 0x00000000000000000000000037feffff
 0x~~~~~~~~~~~~~~~~  4e618444		add v4.8h, v2.8h, v1.8h
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eaf41ca		addhn v10.2s, v14.2d, v15.2d
-#   v10: 0x00000000000000000000000082900a0d
+#            v10: 0x000000000000000000000000827f4696
 0x~~~~~~~~~~~~~~~~  0e7a43ca		addhn v10.4h, v30.4s, v26.4s
-#   v10: 0x0000000000000000000000003ff03c7f
+#            v10: 0x00000000000000000000000000003c7f
 0x~~~~~~~~~~~~~~~~  0e36419f		addhn v31.8b, v12.8h, v22.8h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x0000000000000000000000000000ffff
 0x~~~~~~~~~~~~~~~~  4e3442b0		addhn2 v16.16b, v21.8h, v20.8h
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eb14040		addhn2 v0.4s, v2.2d, v17.2d
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7140ff		addhn2 v31.8h, v7.4s, v17.4s
-#   v31: 0x00000000000038fe0000000000000000
+#            v31: 0x000000000000b87f000000000000ffff
 0x~~~~~~~~~~~~~~~~  5ef1ba6e		addp d14, v19.2d
-#   v14: 0x000000000000000043d00a0e4783c64c
+#            v14: 0x000000000000000043d21c00480a8294
 0x~~~~~~~~~~~~~~~~  4e3cbd03		addp v3.16b, v8.16b, v28.16b
-#    v3: 0x000000007400000000000000c4000000
+#             v3: 0x0000000020febf0000000000c4000000
 0x~~~~~~~~~~~~~~~~  4ef1bca8		addp v8.2d, v5.2d, v17.2d
-#    v8: 0x00000000ffffffff0000000000000000
+#             v8: 0x000000007f8000003effffffffe00000
 0x~~~~~~~~~~~~~~~~  0ebabfd6		addp v22.2s, v30.2s, v26.2s
-#   v22: 0x00000000000000003c7fffff3ff00000
+#            v22: 0x00000000000000003c7fffff00000000
 0x~~~~~~~~~~~~~~~~  0e6ebf1d		addp v29.4h, v24.4h, v14.4h
-#   v29: 0x00000000000000004dde0dcf00000000
+#            v29: 0x00000000000000005fd2ca9e00000000
 0x~~~~~~~~~~~~~~~~  4eb8bf5e		addp v30.4s, v26.4s, v24.4s
-#   v30: 0x0000000000000000000000003c7fffff
+#            v30: 0x0000000000000000000000003c7fffff
 0x~~~~~~~~~~~~~~~~  0e27bf4c		addp v12.8b, v26.8b, v7.8b
-#   v12: 0x0000000000000000000037000000bbfe
+#            v12: 0x0000000000000000000037000000bbfe
 0x~~~~~~~~~~~~~~~~  4e6cbd11		addp v17.8h, v8.8h, v12.8h
-#   v17: 0x000000003700bbfe0000fffe00000000
+#            v17: 0x000000003700bbfe00007f803efeffe0
 0x~~~~~~~~~~~~~~~~  4e31bafb		addv b27, v23.16b
-#   v27: 0x0000000000000000000000000000006c
+#            v27: 0x00000000000000000000000000000075
 0x~~~~~~~~~~~~~~~~  0e31ba8c		addv b12, v20.8b
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e71bbdb		addv h27, v30.4h
-#   v27: 0x00000000000000000000000000003c7e
+#            v27: 0x00000000000000000000000000003c7e
 0x~~~~~~~~~~~~~~~~  4e71b9d3		addv h19, v14.8h
-#   v19: 0x00000000000000000000000000005bad
+#            v19: 0x00000000000000000000000000002a70
 0x~~~~~~~~~~~~~~~~  4eb1bb6e		addv s14, v27.4s
-#   v14: 0x00000000000000000000000000003c7e
+#            v14: 0x00000000000000000000000000003c7e
 0x~~~~~~~~~~~~~~~~  4e3b1d0a		and v10.16b, v8.16b, v27.16b
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e301c25		and v5.8b, v1.8b, v16.8b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e781c7a		bic v26.16b, v3.16b, v24.16b
-#   v26: 0x000000007400000000000000c4000000
+#            v26: 0x0000000020febf0000000000c4000000
 0x~~~~~~~~~~~~~~~~  2f075487		bic v7.2s, #0xe4, lsl #16
-#    v7: 0x000000000000000000000000381b0000
+#             v7: 0x000000000000000000000000381b0000
 0x~~~~~~~~~~~~~~~~  2f01b47c		bic v28.4h, #0x23, lsl #8
-#   v28: 0x00000000000000004034000000000000
+#            v28: 0x000000000000000040dfdcffdcc00000
 0x~~~~~~~~~~~~~~~~  6f05159d		bic v29.4s, #0xac, lsl #0
-#   v29: 0x00000000000000004dde0d4300000000
+#            v29: 0x00000000000000005fd2ca1200000000
 0x~~~~~~~~~~~~~~~~  0e751fec		bic v12.8b, v31.8b, v21.8b
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x0000000000000000000000000000ffff
 0x~~~~~~~~~~~~~~~~  6f049712		bic v18.8h, #0x98, lsl #0
-#   v18: 0x000000000000000000000000ff67ff67
+#            v18: 0x000000000000000000000000ff67ff67
 0x~~~~~~~~~~~~~~~~  6ee81f4c		bif v12.16b, v26.16b, v8.16b
-#   v12: 0x000000000000000000000000c4000000
+#            v12: 0x00000000007ebf000000000000000000
 0x~~~~~~~~~~~~~~~~  2efb1ee2		bif v2.8b, v23.8b, v27.8b
-#    v2: 0x0000000000000000403ef2e441e30180
+#             v2: 0x0000000000000000495000008a828000
 0x~~~~~~~~~~~~~~~~  6ead1c68		bit v8.16b, v3.16b, v13.16b
-#    v8: 0x00000000ffffffff0000000004000000
+#             v8: 0x000000007f8000003effffffcc000000
 0x~~~~~~~~~~~~~~~~  2eb71ca5		bit v5.8b, v5.8b, v23.8b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e771fe9		bsl v9.16b, v31.16b, v23.16b
-#    v9: 0x00128220009270f80016c26000c22160
+#             v9: 0x0100000008009801010000000800dc00
 0x~~~~~~~~~~~~~~~~  2e631cee		bsl v14.8b, v7.8b, v3.8b
-#   v14: 0x000000000000000000000000c4000000
+#            v14: 0x000000000000000000000000c4000000
 0x~~~~~~~~~~~~~~~~  4e2048bd		cls v29.16b, v5.16b
-#   v29: 0x07070707070707070707070707070707
+#            v29: 0x07070707070707070707070707070707
 0x~~~~~~~~~~~~~~~~  0ea04815		cls v21.2s, v0.2s
-#   v21: 0x00000000000000000000001f0000001f
+#            v21: 0x00000000000000000000001f0000001f
 0x~~~~~~~~~~~~~~~~  0e604981		cls v1.4h, v12.4h
-#    v1: 0x0000000000000000000f000f0001000f
+#             v1: 0x0000000000000000000f000f000f000f
 0x~~~~~~~~~~~~~~~~  4ea0495b		cls v27.4s, v10.4s
-#   v27: 0x0000001f0000001f0000001f0000001f
+#            v27: 0x0000001f0000001f0000001f0000001f
 0x~~~~~~~~~~~~~~~~  0e204893		cls v19.8b, v4.8b
-#   v19: 0x00000000000000000707070707070707
+#            v19: 0x00000000000000000707070707070707
 0x~~~~~~~~~~~~~~~~  4e6049cf		cls v15.8h, v14.8h
-#   v15: 0x000f000f000f000f000f000f0001000f
+#            v15: 0x000f000f000f000f000f000f0001000f
 0x~~~~~~~~~~~~~~~~  6e204881		clz v1.16b, v4.16b
-#    v1: 0x08080808080808080808080808080808
+#             v1: 0x08080808080808080808080808080808
 0x~~~~~~~~~~~~~~~~  2ea04a3b		clz v27.2s, v17.2s
-#   v27: 0x00000000000000000000001000000020
+#            v27: 0x00000000000000000000001100000002
 0x~~~~~~~~~~~~~~~~  2e604929		clz v9.4h, v9.4h
-#    v9: 0x0000000000000000000b000000080002
+#             v9: 0x00000000000000000007001000040000
 0x~~~~~~~~~~~~~~~~  6ea049ff		clz v31.4s, v15.4s
-#   v31: 0x0000000c0000000c0000000c0000000f
+#            v31: 0x0000000c0000000c0000000c0000000f
 0x~~~~~~~~~~~~~~~~  2e204a6e		clz v14.8b, v19.8b
-#   v14: 0x00000000000000000505050505050505
+#            v14: 0x00000000000000000505050505050505
 0x~~~~~~~~~~~~~~~~  6e604966		clz v6.8h, v11.8h
-#    v6: 0x00100010001000100001001000100010
+#             v6: 0x00100010001000100001001000010000
 0x~~~~~~~~~~~~~~~~  7efd8cb2		cmeq d18, d5, d29
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee09bee		cmeq d14, d31, #0
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e368c73		cmeq v19.16b, v3.16b, v22.16b
-#   v19: 0xffffffff00ffffff000000000000ffff
+#            v19: 0xffffffff000000ff0000000000ffffff
 0x~~~~~~~~~~~~~~~~  4e20992f		cmeq v15.16b, v9.16b, #0
-#   v15: 0xffffffffffffffffff00ffffff00ff00
+#            v15: 0xffffffffffffffffff00ff00ff00ffff
 0x~~~~~~~~~~~~~~~~  6eea8e0c		cmeq v12.2d, v16.2d, v10.2d
-#   v12: 0xffffffffffffffffffffffffffffffff
+#            v12: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4ee09ac8		cmeq v8.2d, v22.2d, #0
-#    v8: 0xffffffffffffffff0000000000000000
+#             v8: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  2ea98c62		cmeq v2.2s, v3.2s, v9.2s
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea09b30		cmeq v16.2s, v25.2s, #0
-#   v16: 0x000000000000000000000000ffffffff
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e748ee6		cmeq v6.4h, v23.4h, v20.4h
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000ffff00000000
 0x~~~~~~~~~~~~~~~~  0e6099b0		cmeq v16.4h, v13.4h, #0
-#   v16: 0x0000000000000000ffffffff00000000
+#            v16: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  6ea28e35		cmeq v21.4s, v17.4s, v2.4s
-#   v21: 0xffffffff0000000000000000ffffffff
+#            v21: 0xffffffff000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea09b26		cmeq v6.4s, v25.4s, #0
-#    v6: 0xffffffffffffffff00000000ffffffff
+#             v6: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  2e228db0		cmeq v16.8b, v13.8b, v2.8b
-#   v16: 0x0000000000000000ffffffff00000000
+#            v16: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  0e209a15		cmeq v21.8b, v16.8b, #0
-#   v21: 0x000000000000000000000000ffffffff
+#            v21: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  6e798cf4		cmeq v20.8h, v7.8h, v25.8h
-#   v20: 0xffffffffffffffff0000ffff0000ffff
+#            v20: 0xffffffffffffffff000000000000ffff
 0x~~~~~~~~~~~~~~~~  4e60991a		cmeq v26.8h, v8.8h, #0
-#   v26: 0x0000000000000000ffffffffffffffff
+#            v26: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  5eff3db0		cmge d16, d13, d31
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ee08b19		cmge d25, d24, #0
-#   v25: 0x0000000000000000ffffffffffffffff
+#            v25: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e313e71		cmge v17.16b, v19.16b, v17.16b
-#   v17: 0x000000000000ffffffffffffffff0000
+#            v17: 0x0000000000ffffffffff00ff00ffffff
 0x~~~~~~~~~~~~~~~~  6e208bd6		cmge v22.16b, v30.16b, #0
-#   v22: 0xffffffffffffffffffffffffffff0000
+#            v22: 0xffffffffffffffffffffffffffff0000
 0x~~~~~~~~~~~~~~~~  4efa3e9c		cmge v28.2d, v20.2d, v26.2d
-#   v28: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ee08ae6		cmge v6.2d, v23.2d, #0
-#    v6: 0xffffffffffffffffffffffffffffffff
+#             v6: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0ea33ed9		cmge v25.2s, v22.2s, v3.2s
-#   v25: 0x000000000000000000000000ffffffff
+#            v25: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  2ea08975		cmge v21.2s, v11.2s, #0
-#   v21: 0x0000000000000000ffffffffffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0e6c3c70		cmge v16.4h, v3.4h, v12.4h
-#   v16: 0x0000000000000000ffffffff0000ffff
+#            v16: 0x0000000000000000ffffffff0000ffff
 0x~~~~~~~~~~~~~~~~  2e608937		cmge v23.4h, v9.4h, #0
-#   v23: 0x0000000000000000ffffffffffffffff
+#            v23: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4eab3c47		cmge v7.4s, v2.4s, v11.4s
-#    v7: 0xffffffffffffffff00000000ffffffff
+#             v7: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  6ea08ac0		cmge v0.4s, v22.4s, #0
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e293fca		cmge v10.8b, v30.8b, v9.8b
-#   v10: 0x0000000000000000ff00ffffffff0000
+#            v10: 0x0000000000000000ff00ff00ffff0000
 0x~~~~~~~~~~~~~~~~  2e208915		cmge v21.8b, v8.8b, #0
-#   v21: 0x0000000000000000ffffffffffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e7a3ce2		cmge v2.8h, v7.8h, v26.8h
-#    v2: 0x0000000000000000ffffffffffffffff
+#             v2: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e608953		cmge v19.8h, v10.8h, #0
-#   v19: 0xffffffffffffffff000000000000ffff
+#            v19: 0xffffffffffffffff000000000000ffff
 0x~~~~~~~~~~~~~~~~  5ee135a6		cmgt d6, d13, d1
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee08b1e		cmgt d30, d24, #0
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e3b3734		cmgt v20.16b, v25.16b, v27.16b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e208b20		cmgt v0.16b, v25.16b, #0
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee13736		cmgt v22.2d, v25.2d, v1.2d
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee08a10		cmgt v16.2d, v16.2d, #0
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eaf3525		cmgt v5.2s, v9.2s, v15.2s
-#    v5: 0x0000000000000000ffffffffffffffff
+#             v5: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0ea08a4c		cmgt v12.2s, v18.2s, #0
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e6b365c		cmgt v28.4h, v18.4h, v11.4h
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000000ffff
 0x~~~~~~~~~~~~~~~~  0e608876		cmgt v22.4h, v3.4h, #0
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ebb3565		cmgt v5.4s, v11.4s, v27.4s
-#    v5: 0x0000000000000000ffffffff00000000
+#             v5: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4ea08a8d		cmgt v13.4s, v20.4s, #0
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e2737fb		cmgt v27.8b, v31.8b, v7.8b
-#   v27: 0x0000000000000000000000ffffffffff
+#            v27: 0x0000000000000000000000ff000000ff
 0x~~~~~~~~~~~~~~~~  0e208805		cmgt v5.8b, v0.8b, #0
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6d3796		cmgt v22.8h, v28.8h, v13.8h
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e608846		cmgt v6.8h, v2.8h, #0
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ef63515		cmhi d21, d8, d22
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e333672		cmhi v18.16b, v19.16b, v19.16b
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ef53407		cmhi v7.2d, v0.2d, v21.2d
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea0366f		cmhi v15.2s, v19.2s, v0.2s
-#   v15: 0x000000000000000000000000ffffffff
+#            v15: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  2e6c34ff		cmhi v31.4h, v7.4h, v12.4h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb63609		cmhi v9.4s, v16.4s, v22.4s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e3c3707		cmhi v7.8b, v24.8b, v28.8b
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e79354b		cmhi v11.8h, v10.8h, v25.8h
-#   v11: 0x0000000000000000ffffffff00000000
+#            v11: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  7ef13d81		cmhs d1, d12, d17
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e3e3f35		cmhs v21.16b, v25.16b, v30.16b
-#   v21: 0xffffffffffffffffffffffffffffffff
+#            v21: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6efa3c48		cmhs v8.2d, v2.2d, v26.2d
-#    v8: 0xffffffffffffffffffffffffffffffff
+#             v8: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2ebd3ec1		cmhs v1.2s, v22.2s, v29.2s
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e7e3fda		cmhs v26.4h, v30.4h, v30.4h
-#   v26: 0x0000000000000000ffffffffffffffff
+#            v26: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6eb03e93		cmhs v19.4s, v20.4s, v16.4s
-#   v19: 0xffffffffffffffffffffffffffffffff
+#            v19: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2e3a3c61		cmhs v1.8b, v3.8b, v26.8b
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e683f94		cmhs v20.8h, v28.8h, v8.8h
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000000000000000ffff
 0x~~~~~~~~~~~~~~~~  7ee09b1e		cmle d30, d24, #0
-#   v30: 0x0000000000000000ffffffffffffffff
+#            v30: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e209860		cmle v0.16b, v3.16b, #0
-#    v0: 0xffffffff00ffffffffffffffffffffff
+#             v0: 0xffffffff00ffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ee09bc2		cmle v2.2d, v30.2d, #0
-#    v2: 0xffffffffffffffffffffffffffffffff
+#             v2: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2ea09947		cmle v7.2s, v10.2s, #0
-#    v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2e609be9		cmle v9.4h, v31.4h, #0
-#    v9: 0x0000000000000000ffffffffffffffff
+#             v9: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ea09a49		cmle v9.4s, v18.4s, #0
-#    v9: 0xffffffffffffffffffffffffffffffff
+#             v9: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2e209bf5		cmle v21.8b, v31.8b, #0
-#   v21: 0x0000000000000000ffffffffffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e609abd		cmle v29.8h, v21.8h, #0
-#   v29: 0xffffffffffffffffffffffffffffffff
+#            v29: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  5ee0aaf9		cmlt d25, d23, #0
-#   v25: 0x0000000000000000ffffffffffffffff
+#            v25: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e20aaa7		cmlt v7.16b, v21.16b, #0
-#    v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4ee0abc7		cmlt v7.2d, v30.2d, #0
-#    v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0ea0ab99		cmlt v25.2s, v28.2s, #0
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e60a960		cmlt v0.4h, v11.4h, #0
-#    v0: 0x0000000000000000ffffffff00000000
+#             v0: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  4ea0a8b8		cmlt v24.4s, v5.4s, #0
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e20a97a		cmlt v26.8b, v11.8b, #0
-#   v26: 0x0000000000000000ffffffff00000000
+#            v26: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  4e60aaa1		cmlt v1.8h, v21.8h, #0
-#    v1: 0x0000000000000000ffffffffffffffff
+#             v1: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  5efe8efc		cmtst d28, d23, d30
-#   v28: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e3f8cda		cmtst v26.16b, v6.16b, v31.16b
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee48ea1		cmtst v1.2d, v21.2d, v4.2d
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eb48f5b		cmtst v27.2s, v26.2s, v20.2s
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e728c1a		cmtst v26.4h, v0.4h, v18.4h
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea48e19		cmtst v25.4s, v16.4s, v4.4s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e298d4b		cmtst v11.8b, v10.8b, v9.8b
-#   v11: 0x0000000000000000ff00ffffffff0000
+#            v11: 0x0000000000000000ff00ff00ffff0000
 0x~~~~~~~~~~~~~~~~  4e618c40		cmtst v0.8h, v2.8h, v1.8h
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e2059f9		cnt v25.16b, v15.16b
-#   v25: 0x00000000000000000000000008080808
+#            v25: 0x00000000000000000000000008080808
 0x~~~~~~~~~~~~~~~~  0e2058dc		cnt v28.8b, v6.8b
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e0f04e6		dup v6.16b, v7.b[7]
-#    v6: 0xffffffffffffffffffffffffffffffff
+#             v6: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e010e89		dup v9.16b, w20
-#    v9: 0x01010101010101010101010101010101
+#             v9: 0x01010101010101010101010101010101
 0x~~~~~~~~~~~~~~~~  4e1805ac		dup v12.2d, v13.d[1]
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e080fe9		dup v9.2d, xzr
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e140744		dup v4.2s, v26.s[2]
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e040d83		dup v3.2s, w12
-#    v3: 0x0000000000000000ffffff7dffffff7d
+#             v3: 0x0000000000000000ffffff7dffffff7d
 0x~~~~~~~~~~~~~~~~  0e1e04b6		dup v22.4h, v5.h[7]
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e020f30		dup v16.4h, w25
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e140554		dup v20.4s, v10.s[2]
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e040cea		dup v10.4s, w7
-#   v10: 0x00000018000000180000001800000018
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e0507de		dup v30.8b, v30.b[2]
-#   v30: 0x0000000000000000ffffffffffffffff
+#            v30: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0e010dff		dup v31.8b, w15
-#   v31: 0x00000000000000000101010101010101
+#            v31: 0x00000000000000000101010101010101
 0x~~~~~~~~~~~~~~~~  4e12063c		dup v28.8h, v17.h[4]
-#   v28: 0xffffffffffffffffffffffffffffffff
+#            v28: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e020c62		dup v2.8h, w3
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e231f3d		eor v29.16b, v25.16b, v3.16b
-#   v29: 0x0000000000000000ffffff7df7f7f775
+#            v29: 0x0000000000000000ffffff7df7f7f775
 0x~~~~~~~~~~~~~~~~  2e3c1e03		eor v3.8b, v16.8b, v28.8b
-#    v3: 0x0000000000000000ffffffffffffffff
+#             v3: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e060b41		ext v1.16b, v26.16b, v6.16b, #1
-#    v1: 0xff000000000000000000000000000000
+#             v1: 0xff000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e010bc2		ext v2.8b, v30.8b, v1.8b, #1
-#    v2: 0x000000000000000000ffffffffffffff
+#             v2: 0x000000000000000000ffffffffffffff
 0x~~~~~~~~~~~~~~~~  4c402012		ld1 {v18.16b, v19.16b, v20.16b, v21.16b}, [x0]
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x3f3e3d3c3b3a39383736353433323130
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc22037		ld1 {v23.16b, v24.16b, v25.16b, v26.16b}, [x1], x2
-#   v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0b0a09080706050403020100fffefdfc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0b0a09080706050403020100fffefdfc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfb <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xeb <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xdb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf2025		ld1 {v5.16b, v6.16b, v7.16b, v8.16b}, [x1], #64
-#    v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0a09080706050403020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v8: 0x0a09080706050403020100fffefdfcfb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xeb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c406012		ld1 {v18.16b, v19.16b, v20.16b}, [x0]
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2602d		ld1 {v13.16b, v14.16b, v15.16b}, [x1], x2
-#   v13: 0x1a191817161514131211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x2a292827262524232221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x3a393837363534333231302f2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3a393837363534333231302f2e2d2c2b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x2a292827262524232221201f1e1d1c1b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x1a191817161514131211100f0e0d0c0b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf6033		ld1 {v19.16b, v20.16b, v21.16b}, [x1], #48
-#   v19: 0x191817161514131211100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x292827262524232221201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x393837363534333231302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x393837363534333231302f2e2d2c2b2a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x292827262524232221201f1e1d1c1b1a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x191817161514131211100f0e0d0c0b0a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40a011		ld1 {v17.16b, v18.16b}, [x0]
-#   v17: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2a034		ld1 {v20.16b, v21.16b}, [x1], x2
-#   v20: 0x494847464544434241403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x595857565554535251504f4e4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x595857565554535251504f4e4d4c4b4a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x494847464544434241403f3e3d3c3b3a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdfa03c		ld1 {v28.16b, v29.16b}, [x1], #32
-#   v28: 0x4847464544434241403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x5857565554535251504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x5857565554535251504f4e4d4c4b4a49
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x49 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x4847464544434241403f3e3d3c3b3a39
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40701d		ld1 {v29.16b}, [x0]
-#   v29: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc27035		ld1 {v21.16b}, [x1], x2
-#   v21: 0x6867666564636261605f5e5d5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x6867666564636261605f5e5d5c5b5a59
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x68 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf7024		ld1 {v4.16b}, [x1], #16
-#    v4: 0x67666564636261605f5e5d5c5b5a5958 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v4: 0x67666564636261605f5e5d5c5b5a5958
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c402c04		ld1 {v4.1d, v5.1d, v6.1d, v7.1d}, [x0]
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001f1e1d1c1b1a1918 (d7: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc22c31		ld1 {v17.1d, v18.1d, v19.1d, v20.1d}, [x1], x2
-#   v17: 0x00000000000000006f6e6d6c6b6a6968 (d17: 5.76650e+228) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000007776757473727170 (d18: 2.89670e+267) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000007f7e7d7c7b7a7978 (d19: 1.33818e+306) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000008786858483828180 (d20: -2.08158e-272) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8786858483828180 (-2.082e-272)
+#                                                  ╙─ 0x8786858483828180 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x7f7e7d7c7b7a7978 (1.338e+306)
+#                                                  ╙─ 0x7f7e7d7c7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x7776757473727170 (2.897e+267)
+#                                                  ╙─ 0x7776757473727170 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x6f6e6d6c6b6a6968 (5.766e+228)
+#                                                  ╙─ 0x6f6e6d6c6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf2c3c		ld1 {v28.1d, v29.1d, v30.1d, v31.1d}, [x1], #32
-#   v28: 0x00000000000000006e6d6c6b6a696867 (d28: 8.50866e+223) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000767574737271706f (d29: 4.22243e+262) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000007e7d7c7b7a797877 (d30: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000868584838281807f (d31: -3.03465e-277) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x868584838281807f (-3.035e-277)
+#                                                  ╙─ 0x868584838281807f <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x767574737271706f (4.222e+262)
+#                                                  ╙─ 0x767574737271706f <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x6e6d6c6b6a696867 (8.509e+223)
+#                                                  ╙─ 0x6e6d6c6b6a696867 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c406c14		ld1 {v20.1d, v21.1d, v22.1d}, [x0]
-#   v20: 0x0000000000000000ff0000850002ff01 (d20: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000000000000fffeff (d21: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000001700000000000000 (d22: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc26c33		ld1 {v19.1d, v20.1d, v21.1d}, [x1], x2
-#   v19: 0x00000000000000008e8d8c8b8a898887 (d19: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000969594939291908f (d20: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000009e9d9c9b9a999897 (d21: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x9e9d9c9b9a999897 (-3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x969594939291908f (-7.048e-200)
+#                                                  ╙─ 0x969594939291908f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8e8d8c8b8a898887 (-1.418e-238)
+#                                                  ╙─ 0x8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf6c2c		ld1 {v12.1d, v13.1d, v14.1d}, [x1], #24
-#   v12: 0x00000000000000008d8c8b8a89888786 (d12: -2.09028e-243) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000009594939291908f8e (d13: -1.02545e-204) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009d9c9b9a99989796 (d14: -4.85140e-166) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9d9c9b9a99989796 (-4.851e-166)
+#                                                  ╙─ 0x9d9c9b9a99989796 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x9594939291908f8e (-1.025e-204)
+#                                                  ╙─ 0x9594939291908f8e <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x8d8c8b8a89888786 (-2.090e-243)
+#                                                  ╙─ 0x8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40ac1d		ld1 {v29.1d, v30.1d}, [x0]
-#   v29: 0x0000000000000000ff0000850002ff01 (d29: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000fffeff (d30: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2ac3f		ld1 {v31.1d, v0.1d}, [x1], x2
-#   v31: 0x0000000000000000a5a4a3a2a1a09f9e (d31: -2.38202e-127) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000adacabaaa9a8a7a6 (d0: -1.12597e-88) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xadacabaaa9a8a7a6 (-1.126e-88)
+#                                                  ╙─ 0xadacabaaa9a8a7a6 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xa5a4a3a2a1a09f9e (-2.382e-127)
+#                                                  ╙─ 0xa5a4a3a2a1a09f9e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdfac23		ld1 {v3.1d, v4.1d}, [x1], #16
-#    v3: 0x0000000000000000a4a3a2a1a09f9e9d (d3: -3.45787e-132) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000acabaaa9a8a7a6a5 (d4: -1.65794e-93) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xacabaaa9a8a7a6a5 (-1.658e-93)
+#                                                  ╙─ 0xacabaaa9a8a7a6a5 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xa4a3a2a1a09f9e9d (-3.458e-132)
+#                                                  ╙─ 0xa4a3a2a1a09f9e9d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c407c1c		ld1 {v28.1d}, [x0]
-#   v28: 0x0000000000000000ff0000850002ff01 (d28: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc27c2b		ld1 {v11.1d}, [x1], x2
-#   v11: 0x0000000000000000b4b3b2b1b0afaead (d11: -8.03348e-55) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xb4b3b2b1b0afaead (-8.033e-55)
+#                                                  ╙─ 0xb4b3b2b1b0afaead <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf7c3d		ld1 {v29.1d}, [x1], #8
-#   v29: 0x0000000000000000b3b2b1b0afaeadac (d29: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c402c1c		ld1 {v28.2d, v29.2d, v30.2d, v31.2d}, [x0]
-#   v28: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x3f3e3d3c3b3a39383736353433323130 (0.000461414, 9.95833e-43) <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x3f3e3d3c3b3a39383736353433323130 (0.0004614, 9.958e-43)
+#                                  ║               ╙─ 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc22c28		ld1 {v8.2d, v9.2d, v10.2d, v11.2d}, [x1], x2
-#    v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.70315e+18, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.28100e+95, -1.31369e+57) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.45943e+173, -3.04943e+134) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.39104e+250, -7.07849e+211) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.391e+250, -7.078e+211)
+#                                  ║               ╙─ 0xebeae9e8e7e6e5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.459e+173, -3.049e+134)
+#                                  ║               ╙─ 0xdbdad9d8d7d6d5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.281e+95, -1.314e+57)
+#                                  ║               ╙─ 0xcbcac9c8c7c6c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd3d2d1d0cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.703e+18, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf2c2e		ld1 {v14.2d, v15.2d, v16.2d, v17.2d}, [x1], #64
-#   v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.90391e+13, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.07279e+90, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.10851e+168, -4.47908e+129) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.90012e+245, -1.03980e+207) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.900e+245, -1.040e+207)
+#                                  ║               ╙─ 0xeae9e8e7e6e5e4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.109e+168, -4.479e+129)
+#                                  ║               ╙─ 0xdad9d8d7d6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.073e+90, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.904e+13, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c406c1a		ld1 {v26.2d, v27.2d, v28.2d}, [x0]
-#   v26: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc26c25		ld1 {v5.2d, v6.2d, v7.2d}, [x1], x2
-#    v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.07812e-299, -2.41385e+284) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1211100f0e0d0c0b0a09080706050403 (1.18008e-221, 2.54377e-260) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2221201f1e1d1c1b1a19181716151413 (2.74293e-144, 5.90574e-183) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2221201f1e1d1c1b1a19181716151413 (2.743e-144, 5.906e-183)
+#                                  ║               ╙─ 0x1a19181716151413 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1211100f0e0d0c0b0a09080706050403 (1.180e-221, 2.544e-260)
+#                                  ║               ╙─ 0x0a09080706050403 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.078e-299, -2.414e+284)
+#                                  ║               ╙─ 0xfaf9f8f7f6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf6c3a		ld1 {v26.2d, v27.2d, v28.2d}, [x1], #48
-#   v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.74681e-304, -3.54087e+279) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x11100f0e0d0c0b0a0908070605040302 (1.69471e-226, 3.72581e-265) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x21201f1e1d1c1b1a1918171615141312 (3.94003e-149, 8.65093e-188) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x21201f1e1d1c1b1a1918171615141312 (3.940e-149, 8.651e-188)
+#                                  ║               ╙─ 0x1918171615141312 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x21201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x11100f0e0d0c0b0a0908070605040302 (1.695e-226, 3.726e-265)
+#                                  ║               ╙─ 0x0908070605040302 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x11100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.747e-304, -3.541e+279)
+#                                  ║               ╙─ 0xf9f8f7f6f5f4f3f2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0100fffefdfcfbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40ac12		ld1 {v18.2d, v19.2d}, [x0]
-#   v18: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2ac35		ld1 {v21.2d, v22.2d}, [x1], x2
-#   v21: 0x31302f2e2d2c2b2a2928272625242322 (9.15999e-72, 2.00864e-110) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x41403f3e3d3c3b3a3938373635343332 (2.12953e+06, 4.66377e-33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x41403f3e3d3c3b3a3938373635343332 (2.130e+06, 4.664e-33)
+#                                  ║               ╙─ 0x3938373635343332 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x41403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x31302f2e2d2c2b2a2928272625242322 (9.160e-72, 2.009e-110)
+#                                  ║               ╙─ 0x2928272625242322 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x31302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdfac31		ld1 {v17.2d, v18.2d}, [x1], #32
-#   v17: 0x302f2e2d2c2b2a292827262524232221 (1.34639e-76, 2.93754e-115) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x403f3e3d3c3b3a393837363534333231 (31.2431, 6.82132e-38) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0x403f3e3d3c3b3a393837363534333231 (31.24, 6.821e-38)
+#                                  ║               ╙─ 0x3837363534333231 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x302f2e2d2c2b2a292827262524232221 (1.346e-76, 2.938e-115)
+#                                  ║               ╙─ 0x2827262524232221 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x302f2e2d2c2b2a29 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c407c05		ld1 {v5.2d}, [x0]
-#    v5: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc27c26		ld1 {v6.2d}, [x1], x2
-#    v6: 0x504f4e4d4c4b4a494847464544434241 (7.24994e+78, 1.58398e+40) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0x504f4e4d4c4b4a494847464544434241 (7.250e+78, 1.584e+40)
+#                                  ║               ╙─ 0x4847464544434241 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf7c2f		ld1 {v15.2d}, [x1], #16
-#   v15: 0x4f4e4d4c4b4a49484746454443424140 (1.07078e+74, 2.31271e+35) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x4f4e4d4c4b4a49484746454443424140 (1.071e+74, 2.313e+35)
+#                                  ║               ╙─ 0x4746454443424140 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x4f4e4d4c4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40281e		ld1 {v30.2s, v31.2s, v0.2s, v1.2s}, [x0]
-#   v30: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000001f1e1d1c1b1a1918 (..., 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x1f1e1d1c1b1a1918 (3.348e-20, 1.275e-22)
+#                                          ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc22838		ld1 {v24.2s, v25.2s, v26.2s, v27.2s}, [x1], x2
-#   v24: 0x00000000000000005756555453525150 (..., 2.35662e+14, 9.03307e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000005f5e5d5c5b5a5958 (..., 1.60231e+19, 6.14598e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000006766656463626160 (..., 1.08801e+24, 4.17598e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000006f6e6d6c6b6a6968 (..., 7.37897e+28, 2.83386e+26) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x6f6e6d6c6b6a6968 (7.379e+28, 2.834e+26)
+#                                          ║       ╙─ 0x6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x6766656463626160 (1.088e+24, 4.176e+21)
+#                                          ║       ╙─ 0x63626160 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x67666564 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0x5f5e5d5c5b5a5958 (1.602e+19, 6.146e+16)
+#                                          ║       ╙─ 0x5b5a5958 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x5756555453525150 (2.357e+14, 9.033e+11)
+#                                          ║       ╙─ 0x53525150 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x57565554 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf283b		ld1 {v27.2s, v28.2s, v29.2s, v30.2s}, [x1], #32
-#   v27: 0x0000000000000000565554535251504f (..., 5.86395e+13, 2.24749e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000005e5d5c5b5a595857 (..., 3.98768e+18, 1.52943e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000666564636261605f (..., 2.70818e+23, 1.03937e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000006e6d6c6b6a696867 (..., 1.83698e+28, 7.05432e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x6e6d6c6b6a696867 (1.837e+28, 7.054e+25)
+#                                          ║       ╙─ 0x6a696867 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x666564636261605f (2.708e+23, 1.039e+21)
+#                                          ║       ╙─ 0x6261605f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x66656463 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x5e5d5c5b5a595857 (3.988e+18, 1.529e+16)
+#                                          ║       ╙─ 0x5a595857 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x565554535251504f (5.864e+13, 2.247e+11)
+#                                          ║       ╙─ 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40680b		ld1 {v11.2s, v12.2s, v13.2s}, [x0]
-#   v11: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc26828		ld1 {v8.2s, v9.2s, v10.2s}, [x1], x2
-#    v8: 0x0000000000000000767574737271706f (..., 1.24460e+33, 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007e7d7c7b7a797877 (..., 8.42353e+37, 3.23831e+35) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000868584838281807f (..., -5.02237e-35, -1.90286e-37) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x868584838281807f (-5.022e-35, -1.903e-37)
+#                                          ║       ╙─ 0x8281807f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x86858483 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (8.424e+37, 3.238e+35)
+#                                          ║       ╙─ 0x7a797877 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7e7d7c7b <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0x767574737271706f (1.245e+33, 4.782e+30)
+#                                          ║       ╙─ 0x7271706f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf683f		ld1 {v31.2s, v0.2s, v1.2s}, [x1], #24
-#   v31: 0x00000000000000007574737271706f6e (..., 3.09878e+32, 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000007d7c7b7a79787776 (..., 2.09754e+37, 8.06320e+34) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000008584838281807f7e (..., -1.24615e-35, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8584838281807f7e (-1.246e-35, -4.720e-38)
+#                                          ║       ╙─ 0x81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x85848382 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x7d7c7b7a79787776 (2.098e+37, 8.063e+34)
+#                                          ║       ╙─ 0x79787776 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7d7c7b7a <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x7574737271706f6e (3.099e+32, 1.191e+30)
+#                                          ║       ╙─ 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40a800		ld1 {v0.2s, v1.2s}, [x0]
-#    v0: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2a82d		ld1 {v13.2s, v14.2s}, [x1], x2
-#   v13: 0x00000000000000008d8c8b8a89888786 (..., -8.66176e-31, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009594939291908f8e (..., -6.00095e-26, -2.28077e-28) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9594939291908f8e (-6.001e-26, -2.281e-28)
+#                                          ║       ╙─ 0x91908f8e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x95949392 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x8d8c8b8a89888786 (-8.662e-31, -3.287e-33)
+#                                          ║       ╙─ 0x89888786 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8d8c8b8a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdfa823		ld1 {v3.2s, v4.2s}, [x1], #16
-#    v3: 0x00000000000000008c8b8a8988878685 (..., -2.14997e-31, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x000000000000000094939291908f8e8d (..., -1.49010e-26, -5.66232e-29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x94939291908f8e8d (-1.490e-26, -5.662e-29)
+#                                          ║       ╙─ 0x908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x94939291 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0x8c8b8a8988878685 (-2.150e-31, -8.157e-34)
+#                                          ║       ╙─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40781a		ld1 {v26.2s}, [x0]
-#   v26: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc27820		ld1 {v0.2s}, [x1], x2
-#    v0: 0x00000000000000009c9b9a9998979695 (..., -1.02970e-21, -3.91846e-24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x9c9b9a9998979695 (-1.030e-21, -3.918e-24)
+#                                          ║       ╙─ 0x98979695 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf782b		ld1 {v11.2s}, [x1], #8
-#   v11: 0x00000000000000009b9a999897969594 (..., -2.55764e-22, -9.73128e-25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9b9a999897969594 (-2.558e-22, -9.731e-25)
+#                                          ║       ╙─ 0x97969594 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9b9a9998 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c402410		ld1 {v16.4h, v17.4h, v18.4h, v19.4h}, [x0]
-#   v16: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1f1e1d1c1b1a1918 (0.006950, 0.004990, 0.003468, 0.002487)
+#                                      ║   ║   ║   ╙─ 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d16:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc22438		ld1 {v24.4h, v25.4h, v26.4h, v27.4h}, [x1], x2
-#   v24: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000abaaa9a8a7a6a5a4 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000bbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xbbbab9b8b7b6b5b4 (-0.9658, -0.7148, -0.4819, -0.3564)
+#                                      ║   ║   ║   ╙─ 0xb5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb7b6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb9b8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xb3b2b1b0afaeadac (-0.2405, -0.1777, -0.1200, -0.08862)
+#                                      ║   ║   ║   ╙─ 0xadac <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xafae <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb1b0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb3b2 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xabaaa9a8a7a6a5a4 (-0.05988, -0.04419, -0.02988, -0.02203)
+#                                      ║   ║   ║   ╙─ 0xa5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa7a6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa9a8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xabaa <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xa3a2a1a09f9e9d9c (-0.01491, -0.01099, -0.007439, -0.005478)
+#                                      ║   ║   ║   ╙─ 0x9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9f9e <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa1a0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa3a2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf2421		ld1 {v1.4h, v2.4h, v3.4h, v4.4h}, [x1], #32
-#    v1: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3 (-0.8403, -0.5894, -0.4192, -0.2937)
+#                                      ║   ║   ║   ╙─ 0xb4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb6b5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb8b7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbab9 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab (-0.2091, -0.1464, -0.1043, -0.07294)
+#                                      ║   ║   ║   ╙─ 0xacab <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xaead <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb0af <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb2b1 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3 (-0.05203, -0.03635, -0.02596, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa8a7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xaaa9 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xa2a1a09f9e9d9c9b (-0.01295, -0.009026, -0.006458, -0.004498)
+#                                      ║   ║   ║   ╙─ 0x9c9b <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa09f <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa2a1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40641e		ld1 {v30.4h, v31.4h, v0.4h}, [x0]
-#   v30: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc26439		ld1 {v25.4h, v26.4h, v27.4h}, [x1], x2
-#   v25: 0x0000000000000000c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000cac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xd2d1d0cfcecdcccb (-54.53, -38.47, -27.20, -19.17)
+#                                      ║   ║   ║   ╙─ 0xcccb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcecd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xcac9c8c7c6c5c4c3 (-13.57, -9.555, -6.770, -4.762)
+#                                      ║   ║   ║   ╙─ 0xc4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc6c5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc8c7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xcac9 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xc2c1c0bfbebdbcbb (-3.377, -2.373, -1.685, -1.183)
+#                                      ║   ║   ║   ╙─ 0xbcbb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbebd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc0bf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc2c1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf6423		ld1 {v3.4h, v4.4h, v5.4h}, [x1], #24
-#    v3: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000d1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d5:                 0xd1d0cfcecdcccbca (-46.50, -31.22, -23.19, -15.58)
+#                                      ║   ║   ║   ╙─ 0xcbca <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcdcc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xcfce <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xc9c8c7c6c5c4c3c2 (-11.56, -7.773, -5.766, -3.879)
+#                                      ║   ║   ║   ╙─ 0xc3c2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc7c6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc9c8 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xc1c0bfbebdbcbbba (-2.875, -1.936, -1.434, -0.9658)
+#                                      ║   ║   ║   ╙─ 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbdbc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xbfbe <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc1c0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40a403		ld1 {v3.4h, v4.4h}, [x0]
-#    v3: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2a423		ld1 {v3.4h, v4.4h}, [x1], x2
-#    v3: 0x0000000000000000d9d8d7d6d5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000e1e0dfdedddcdbda <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xe1e0dfdedddcdbda (-752.0, -503.5, -375.0, -251.2)
+#                                      ║   ║   ║   ╙─ 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xd9d8d7d6d5d4d3d2 (-187.0, -125.4, -93.25, -62.56)
+#                                      ║   ║   ║   ╙─ 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdfa437		ld1 {v23.4h, v24.4h}, [x1], #16
-#   v23: 0x0000000000000000d8d7d6d5d4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e0dfdedddcdbdad9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xe0dfdedddcdbdad9 (-623.5, -439.2, -310.8, -219.1)
+#                                      ║   ║   ║   ╙─ 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xd8d7d6d5d4d3d2d1 (-154.9, -109.3, -77.19, -54.53)
+#                                      ║   ║   ║   ╙─ 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40741a		ld1 {v26.4h}, [x0]
-#   v26: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc27421		ld1 {v1.4h}, [x1], x2
-#    v1: 0x0000000000000000e8e7e6e5e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe8e7e6e5e4e3e2e1 (-2510., -1765., -1251., -880.5)
+#                                      ║   ║   ║   ╙─ 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf742e		ld1 {v14.4h}, [x1], #8
-#   v14: 0x0000000000000000e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xe7e6e5e4e3e2e1e0 (-2022., -1508., -1009., -752.0)
+#                                      ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40281a		ld1 {v26.4s, v27.4s, v28.4s, v29.4s}, [x0]
-#   v26: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x3f3e3d3c3b3a39383736353433323130 (0.743122, 0.00284155, 1.08604e-05, 4.14886e-08) <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x3f3e3d3c3b3a39383736353433323130 (0.7431, 0.002842, 1.086e-05, 4.149e-08)
+#                          ║       ║       ║       ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2283c		ld1 {v28.4s, v29.4s, v30.4s, v31.4s}, [x1], x2
-#   v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.00179e+34, -3.84962e+31, -1.47890e+29, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.00825e-34, 3.82047e-37, nan, -2.60629e+36) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17161514131211100f0e0d0c0b0a0908 (4.84942e-25, 1.84362e-27, 7.00365e-30, 2.65846e-32) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x27262524232221201f1e1d1c1b1a1918 (2.30573e-15, 8.78905e-18, 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v31: 0x27262524232221201f1e1d1c1b1a1918 (2.306e-15, 8.789e-18, 3.348e-20, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x17161514131211100f0e0d0c0b0a0908 (4.849e-25, 1.844e-27, 7.004e-30, 2.658e-32)
+#                          ║       ║       ║       ╙─ 0x0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x17161514 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.008e-34, 3.820e-37, nan, -2.606e+36)
+#                          ║       ║       ║       ╙─ 0xfbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.002e+34, -3.850e+31, -1.479e+29, -5.680e+26)
+#                          ║       ║       ║       ╙─ 0xebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xefeeedec <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf7f6f5f4 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf2824		ld1 {v4.4s, v5.4s, v6.4s, v7.4s}, [x1], #64
-#    v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.49430e+33, -9.58428e+30, -3.68172e+28, -1.41390e+26) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.50175e-35, 9.47771e-38, -1.68804e+38, -6.48966e+35) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x161514131211100f0e0d0c0b0a090807 (1.20425e-25, 4.57737e-28, 1.73854e-30, 6.59782e-33) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x262524232221201f1e1d1c1b1a191817 (5.72948e-16, 2.18366e-18, 8.31732e-21, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x262524232221201f1e1d1c1b1a191817 (5.729e-16, 2.184e-18, 8.317e-21, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2221201f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x26252423 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x161514131211100f0e0d0c0b0a090807 (1.204e-25, 4.577e-28, 1.739e-30, 6.598e-33)
+#                          ║       ║       ║       ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x16151413 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.502e-35, 9.478e-38, -1.688e+38, -6.490e+35)
+#                          ║       ║       ║       ╙─ 0xfaf9f8f7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x020100ff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x06050403 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.494e+33, -9.584e+30, -3.682e+28, -1.414e+26)
+#                          ║       ║       ║       ╙─ 0xeae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf2f1f0ef <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c406802		ld1 {v2.4s, v3.4s, v4.4s}, [x0]
-#    v2: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc26836		ld1 {v22.4s, v23.4s, v24.4s}, [x1], x2
-#   v22: 0x363534333231302f2e2d2c2b2a292827 (2.70015e-06, 1.03137e-08, 3.93749e-11, 1.50241e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x464544434241403f3e3d3c3b3a393837 (12625.1, 48.3127, 0.184800, 0.000706557) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x565554535251504f4e4d4c4b4a494847 (5.86395e+13, 2.24749e+11, 8.61082e+08, 3.29781e+06) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0x565554535251504f4e4d4c4b4a494847 (5.864e+13, 2.247e+11, 8.611e+08, 3.298e+06)
+#                          ║       ║       ║       ╙─ 0x4a494847 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4e4d4c4b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0x464544434241403f3e3d3c3b3a393837 (1.263e+04, 48.31, 0.1848, 0.0007066)
+#                          ║       ║       ║       ╙─ 0x3a393837 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3e3d3c3b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x4241403f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x46454443 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x363534333231302f2e2d2c2b2a292827 (2.700e-06, 1.031e-08, 3.937e-11, 1.502e-13)
+#                          ║       ║       ║       ╙─ 0x2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x36353433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf682f		ld1 {v15.4s, v16.4s, v17.4s}, [x1], #48
-#   v15: 0x3534333231302f2e2d2c2b2a29282726 (6.71297e-07, 2.56382e-09, 9.78665e-12, 3.73374e-14) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x4544434241403f3e3d3c3b3a39383736 (3140.20, 12.0154, 0.0459549, 0.000175682) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x5554535251504f4e4d4c4b4a49484746 (1.45909e+13, 5.59177e+10, 2.14218e+08, 820340.) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v17: 0x5554535251504f4e4d4c4b4a49484746 (1.459e+13, 5.592e+10, 2.142e+08, 8.203e+05)
+#                          ║       ║       ║       ╙─ 0x49484746 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x51504f4e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x55545352 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e3d3c3b3a39383736 (3140., 12.02, 0.04595, 0.0001757)
+#                          ║       ║       ║       ╙─ 0x39383736 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x41403f3e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x45444342 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3534333231302f2e2d2c2b2a29282726 (6.713e-07, 2.564e-09, 9.787e-12, 3.734e-14)
+#                          ║       ║       ║       ╙─ 0x29282726 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x31302f2e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x35343332 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40a814		ld1 {v20.4s, v21.4s}, [x0]
-#   v20: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2a83e		ld1 {v30.4s, v31.4s}, [x1], x2
-#   v30: 0x6564636261605f5e5d5c5b5a59585756 (6.74083e+22, 2.58684e+20, 9.92399e+17, 3.80591e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e6d6c6b6a69686766 (3.09878e+32, 1.19058e+30, 4.57302e+27, 1.75599e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v31: 0x7574737271706f6e6d6c6b6a69686766 (3.099e+32, 1.191e+30, 4.573e+27, 1.756e+25)
+#                          ║       ║       ║       ╙─ 0x69686766 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6d6c6b6a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x6564636261605f5e5d5c5b5a59585756 (6.741e+22, 2.587e+20, 9.924e+17, 3.806e+15)
+#                          ║       ║       ║       ╙─ 0x59585756 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5d5c5b5a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x61605f5e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x65646362 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdfa82b		ld1 {v11.4s, v12.4s}, [x1], #32
-#   v11: 0x64636261605f5e5d5c5b5a5958575655 (1.67780e+22, 6.43816e+19, 2.46969e+17, 9.47063e+14) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x74737271706f6e6d6c6b6a6968676665 (7.71514e+31, 2.96402e+29, 1.13840e+27, 4.37102e+24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x74737271706f6e6d6c6b6a6968676665 (7.715e+31, 2.964e+29, 1.138e+27, 4.371e+24)
+#                          ║       ║       ║       ╙─ 0x68676665 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6c6b6a69 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x706f6e6d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x74737271 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0x64636261605f5e5d5c5b5a5958575655 (1.678e+22, 6.438e+19, 2.470e+17, 9.471e+14)
+#                          ║       ║       ║       ╙─ 0x58575655 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x605f5e5d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x64636261 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40780f		ld1 {v15.4s}, [x0]
-#   v15: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2782c		ld1 {v12.4s}, [x1], x2
-#   v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.09178e-36, -1.17085e-38, 5.22300e+36, 2.00766e+34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.092e-36, -1.171e-38, 5.223e+36, 2.008e+34)
+#                          ║       ║       ║       ╙─ 0x78777675 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x84838281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf7820		ld1 {v0.4s}, [x1], #16
-#    v0: 0x838281807f7e7d7c7b7a797877767574 (-7.67045e-37, 3.38275e+38, 1.30054e+36, 4.99878e+33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v0: 0x838281807f7e7d7c7b7a797877767574 (-7.670e-37, 3.383e+38, 1.301e+36, 4.999e+33)
+#                          ║       ║       ║       ╙─ 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x83828180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c402011		ld1 {v17.8b, v18.8b, v19.8b, v20.8b}, [x0]
-#   v17: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x1f1e1d1c1b1a1918
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc22025		ld1 {v5.8b, v6.8b, v7.8b, v8.8b}, [x1], x2
-#    v5: 0x00000000000000008b8a898887868584 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000939291908f8e8d8c <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xa3a2a1a09f9e9d9c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x9b9a999897969594
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9b <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x939291908f8e8d8c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x93 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x8b8a898887868584
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf2029		ld1 {v9.8b, v10.8b, v11.8b, v12.8b}, [x1], #32
-#    v9: 0x00000000000000008a89888786858483 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000009291908f8e8d8c8b <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000009a99989796959493 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa2a1a09f9e9d9c9b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9a99989796959493
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x93 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x9291908f8e8d8c8b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x8a89888786858483
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x83 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c406004		ld1 {v4.8b, v5.8b, v6.8b}, [x0]
-#    v4: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc26022		ld1 {v2.8b, v3.8b, v4.8b}, [x1], x2
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xba <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xaa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf602c		ld1 {v12.8b, v13.8b, v14.8b}, [x1], #24
-#   v12: 0x0000000000000000a9a8a7a6a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000b1b0afaeadacabaa <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xb9b8b7b6b5b4b3b2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0xb1b0afaeadacabaa
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xaa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa9a8a7a6a5a4a3a2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40a00a		ld1 {v10.8b, v11.8b}, [x0]
-#   v10: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2a02b		ld1 {v11.8b, v12.8b}, [x1], x2
-#   v11: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xc9c8c7c6c5c4c3c2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xc1c0bfbebdbcbbba
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdfa03b		ld1 {v27.8b, v28.8b}, [x1], #16
-#   v27: 0x0000000000000000c0bfbebdbcbbbab9 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000c8c7c6c5c4c3c2c1 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xc8c7c6c5c4c3c2c1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xc0bfbebdbcbbbab9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40701f		ld1 {v31.8b}, [x0]
-#   v31: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2702a		ld1 {v10.8b}, [x1], x2
-#   v10: 0x0000000000000000d0cfcecdcccbcac9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xd0cfcecdcccbcac9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf703c		ld1 {v28.8b}, [x1], #8
-#   v28: 0x0000000000000000cfcecdcccbcac9c8 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xcfcecdcccbcac9c8
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c402405		ld1 {v5.8h, v6.8h, v7.8h, v8.8h}, [x0]
-#    v5: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0x3f3e3d3c3b3a39383736353433323130 (1.811, 1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc22422		ld1 {v2.8h, v3.8h, v4.8h, v5.8h}, [x1], x2
-#    v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0f0e0d0c0b0a09080706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0f0e0d0c0b0a09080706050403020100 (0.0004306, 0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 (nan, nan, -6.534e+04, -4.890e+04, -3.261e+04, -2.438e+04, -1.627e+04, -1.216e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf1f0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf3f2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf5f4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf7f6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfbfa <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfdfc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 (-8120., -6064., -4052., -3024., -2022., -1508., -1009., -752.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe9e8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xebea <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xedec <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xefee <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 (-503.5, -375.0, -251.2, -187.0, -125.4, -93.25, -62.56, -46.50)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf242a		ld1 {v10.8h, v11.8h, v12.8h, v13.8h}, [x1], #64
-#   v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0e0d0c0b0a09080706050403020100ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b0a09080706050403020100ff (0.0003693, 0.0002468, 0.0001842, 0.0001229, 9.185e-05, 6.121e-05, 3.058e-05, 1.520e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0201 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0605 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0807 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0a09 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0c0b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0e0d <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef (nan, nan, -5.712e+04, -4.067e+04, -2.850e+04, -2.027e+04, -1.422e+04, -1.010e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf0ef <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf2f1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf4f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf6f5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf8f7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfcfb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfefd <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df (-7092., -5036., -3538., -2510., -1765., -1251., -880.5, -623.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xeae9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xeceb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xeeed <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf (-439.2, -310.8, -219.1, -154.9, -109.3, -77.19, -54.53, -38.47)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40641a		ld1 {v26.8h, v27.8h, v28.8h}, [x0]
-#   v26: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc26423		ld1 {v3.8h, v4.8h, v5.8h}, [x1], x2
-#    v3: 0x1e1d1c1b1a191817161514131211100f <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2e2d2c2b2a292827262524232221201f <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3d3c3b3a393837363534333231302f <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3e3d3c3b3a393837363534333231302f (1.560, 1.058, 0.7778, 0.5269, 0.3879, 0.2625, 0.1935, 0.1307)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x302f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3433 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3635 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3837 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3c3b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2e2d2c2b2a292827262524232221201f (0.09650, 0.06512, 0.04813, 0.03244, 0.02400, 0.01616, 0.01197, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2e2d <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1e1d1c1b1a191817161514131211100f (0.005970, 0.004009, 0.002977, 0.001997, 0.001485, 0.0009947, 0.0007405, 0.0004954)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x100f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1211 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1413 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1615 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1e1d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf6431		ld1 {v17.8h, v18.8h, v19.8h}, [x1], #48
-#   v17: 0x1d1c1b1a191817161514131211100f0e <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x2d2c2b2a292827262524232221201f1e <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3a393837363534333231302f2e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a393837363534333231302f2e (1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40a404		ld1 {v4.8h, v5.8h}, [x0]
-#    v4: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2a435		ld1 {v21.8h, v22.8h}, [x1], x2
-#   v21: 0x4d4c4b4a494847464544434241403f3e <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x5d5c5b5a595857565554535251504f4e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x5d5c5b5a595857565554535251504f4e (343.0, 235.2, 171.0, 117.4, 85.25, 58.56, 42.50, 29.22)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4f4e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5150 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5554 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5958 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5b5a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdfa424		ld1 {v4.8h, v5.8h}, [x1], #32
-#    v4: 0x4c4b4a494847464544434241403f3e3d <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5c5b5a595857565554535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857565554535251504f4e4d (278.8, 203.1, 138.9, 101.3, 69.19, 50.53, 34.47, 25.20)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4e4d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x504f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5251 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5453 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5857 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5a59 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5c5b <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x4c4b4a494847464544434241403f3e3d (17.17, 12.57, 8.555, 6.270, 4.262, 3.127, 2.123, 1.560)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x403f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4443 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4645 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4c4b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c407409		ld1 {v9.8h}, [x0]
-#    v9: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2743b		ld1 {v27.8h}, [x1], x2
-#   v27: 0x6c6b6a696867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a696867666564636261605f5e5d (4524., 3282., 2254., 1637., 1123., 816.5, 559.5, 407.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5e5d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6463 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6665 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6a69 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6c6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf743a		ld1 {v26.8h}, [x1], #16
-#   v26: 0x6b6a696867666564636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x6b6a696867666564636261605f5e5d5c (3796., 2768., 1894., 1380., 945.0, 688.0, 471.5, 343.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6766 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6b6a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d400413		ld1 {v19.b}[1], [x0]
-#   v19: 0x3d3c3b3a39383736353433323130012e <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a39383736353433323130012e
+#                                                ╙─── 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc20c2c		ld1 {v12.b}[3], [x1], x2
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef
+#                                            ╙─────── 0x6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddf103b		ld1 {v27.b}[12], [x1], #1
-#   v27: 0x6c6b6a6b6867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a6b6867666564636261605f5e5d
+#                          ╙───────────────────────── 0x6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40840a		ld1 {v10.d}[1], [x0]
-#   v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.487e+303, ...)
+#                                  ╙───────────────── 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2843a		ld1 {v26.d}[1], [x1], x2
-#   v26: 0x737271706f6e6d6c636261605f5e5d5c (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x737271706f6e6d6c636261605f5e5d5c (1.290e+248, ...)
+#                                  ╙───────────────── 0x737271706f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddf8427		ld1 {v7.d}[1], [x1], #8
-#    v7: 0x7271706f6e6d6c6b2726252423222120 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x7271706f6e6d6c6b2726252423222120 (1.861e+243, ...)
+#                                  ╙───────────────── 0x7271706f6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d404813		ld1 {v19.h}[5], [x0]
-#   v19: 0x3d3c3b3aff013736353433323130012e <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3aff013736353433323130012e (..., nan, ...)
+#                              ╙───────────────────── 0xff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2482a		ld1 {v10.h}[1], [x1], x2
-#   v10: 0xff0000850002ff01d6d5d4d37473d0cf <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d37473d0cf (..., 1.822e+04, ...)
+#                                              ╙───── 0x7473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddf4025		ld1 {v5.h}[4], [x1], #2
-#    v5: 0x5c5b5a595857737254535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857737254535251504f4e4d (..., 1.525e+04, ...)
+#                                  ╙───────────────── 0x7372 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d408015		ld1 {v21.s}[2], [x0]
-#   v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.751e-40, ...)
+#                                  ╙───────────────── 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2802d		ld1 {v13.s}[2], [x1], x2
-#   v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.99878e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.999e+33, ...)
+#                                  ╙───────────────── 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddf8021		ld1 {v1.s}[2], [x1], #4
-#    v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.24460e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.245e+33, ...)
+#                                  ╙───────────────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40c002		ld1r {v2.16b}, [x0]
-#    v2: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x01010101010101010101010101010101
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2c022		ld1r {v2.16b}, [x1], x2
-#    v2: 0x77777777777777777777777777777777 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x77777777777777777777777777777777
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x77 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfc036		ld1r {v22.16b}, [x1], #1
-#   v22: 0x76767676767676767676767676767676 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x76767676767676767676767676767676
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x76 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40cc19		ld1r {v25.1d}, [x0]
-#   v25: 0x0000000000000000ff0000850002ff01 (d25: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2cc29		ld1r {v9.1d}, [x1], x2
-#    v9: 0x00000000000000007e7d7c7b7a797877 (d9: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfcc37		ld1r {v23.1d}, [x1], #8
-#   v23: 0x00000000000000007d7c7b7a79787776 (d23: 2.91053e+296) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x7d7c7b7a79787776 (2.911e+296)
+#                                                  ╙─ 0x7d7c7b7a79787776 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40cc13		ld1r {v19.2d}, [x0]
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#                                  ╙───────────────╨─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2cc35		ld1r {v21.2d}, [x1], x2
-#   v21: 0x8584838281807f7e8584838281807f7e (-4.41447e-282, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8584838281807f7e8584838281807f7e (-4.414e-282, -4.414e-282)
+#                                  ╙───────────────╨─ 0x8584838281807f7e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfcc3e		ld1r {v30.2d}, [x1], #8
-#   v30: 0x84838281807f7e7d84838281807f7e7d (-6.40629e-287, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84838281807f7e7d84838281807f7e7d (-6.406e-287, -6.406e-287)
+#                                  ╙───────────────╨─ 0x84838281807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40c818		ld1r {v24.2s}, [x0]
-#   v24: 0x00000000000000000002ff010002ff01 (s24: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#                                          ╙───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2c83a		ld1r {v26.2s}, [x1], x2
-#   v26: 0x00000000000000008887868588878685 (s26: -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x8887868588878685 (-8.157e-34, -8.157e-34)
+#                                          ╙───────╨─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfc83c		ld1r {v28.2s}, [x1], #4
-#   v28: 0x00000000000000008786858487868584 (s28: -2.02406e-34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x8786858487868584 (-2.024e-34, -2.024e-34)
+#                                          ╙───────╨─ 0x87868584 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40c413		ld1r {v19.4h}, [x0]
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2c421		ld1r {v1.4h}, [x1], x2
-#    v1: 0x00000000000000008988898889888988 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8988898889888988 (-0.0001688, -0.0001688, -0.0001688, -0.0001688)
+#                                      ╙───╨───╨───╨─ 0x8988 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfc435		ld1r {v21.4h}, [x1], #2
-#   v21: 0x00000000000000008887888788878887 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x8887888788878887 (-0.0001382, -0.0001382, -0.0001382, -0.0001382)
+#                                      ╙───╨───╨───╨─ 0x8887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40c80f		ld1r {v15.4s}, [x0]
-#   v15: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#                          ╙───────╨───────╨───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2c835		ld1r {v21.4s}, [x1], x2
-#   v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (..., -2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (-2.150e-31, -2.150e-31, -2.150e-31, -2.150e-31)
+#                          ╙───────╨───────╨───────╨─ 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfc837		ld1r {v23.4s}, [x1], #4
-#   v23: 0x8b8a89888b8a89888b8a89888b8a8988 (..., -5.33626e-32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0x8b8a89888b8a89888b8a89888b8a8988 (-5.336e-32, -5.336e-32, -5.336e-32, -5.336e-32)
+#                          ╙───────╨───────╨───────╨─ 0x8b8a8988 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40c01a		ld1r {v26.8b}, [x0]
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2c02e		ld1r {v14.8b}, [x1], x2
-#   v14: 0x00000000000000008c8c8c8c8c8c8c8c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x8c8c8c8c8c8c8c8c
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfc033		ld1r {v19.8b}, [x1], #1
-#   v19: 0x00000000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8b8b8b8b8b8b8b8b
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40c40d		ld1r {v13.8h}, [x0]
-#   v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2c43e		ld1r {v30.8h}, [x1], x2
-#   v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c (-0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8d8c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfc43b		ld1r {v27.8h}, [x1], #2
-#   v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b (-0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8c8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c408015		ld2 {v21.16b, v22.16b}, [x0]
-#   v21: 0x1e1c1a18000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1d1b1917000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1e1c1a18000000000000ffff00850201
+#            v22: 0x1f1d1b1917000000000000feff0000ff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x17'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1b'1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f'1e <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc28035		ld2 {v21.16b, v22.16b}, [x1], x2
-#   v21: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xacaaa8a6a4a2a09e9c9a98969492908e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#            v22: 0xacaaa8a6a4a2a09e9c9a98969492908e
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x92'91 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x98'97 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa4'a3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaa'a9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xac'ab <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf802c		ld2 {v12.16b, v13.16b}, [x1], #32
-#   v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c
+#            v13: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x8f'8e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x95'94 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa1'a0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa7'a6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xa9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xab'aa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c408c0e		ld2 {v14.2d, v15.2d}, [x0]
-#   v14: 0x1700000000000000ff0000850002ff01 (6.68887e-198, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.56775e-159, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x1700000000000000ff0000850002ff01 (6.689e-198, -5.487e+303)
+#            v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.568e-159, 8.289e-317)
+#                                  ║               ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc28c20		ld2 {v0.2d, v1.2d}, [x1], x2
-#    v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.70315e+18, -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.31369e+57, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.703e+18, -1.163e-59)
+#             v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.314e+57, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4'b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcbcac9c8c7c6c5c4'c3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf8c2c		ld2 {v12.2d, v13.2d}, [x1], #32
-#   v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.90391e+13, -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.92941e+52, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.904e+13, -1.680e-64)
+#            v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.929e+52, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3'b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40881b		ld2 {v27.2s, v28.2s}, [x0]
-#   v27: 0x000000000000000000fffeff0002ff01 (..., 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00fffeff0002ff01 (2.351e-38, 2.751e-40)
+#            d28:                 0x00000000ff000085 (0.000, -1.701e+38)
+#                                          ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc28822		ld2 {v2.2s, v3.2s}, [x1], x2
-#    v2: 0x0000000000000000d6d5d4d3cecdcccb (..., -1.17555e+14, -1.72638e+09) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000dad9d8d7d2d1d0cf (..., -3.06592e+16, -4.50576e+11) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xd6d5d4d3cecdcccb (-1.176e+14, -1.726e+09)
+#             d3:                 0xdad9d8d7d2d1d0cf (-3.066e+16, -4.506e+11)
+#                                          ║       ╙─ 0xd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xdad9d8d7'd6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf882c		ld2 {v12.2s, v13.2s}, [x1], #16
-#   v12: 0x0000000000000000d5d4d3d2cdcccbca (..., -2.92508e+13, -4.29488e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000d9d8d7d6d1d0cfce (..., -7.62949e+15, -1.12105e+11) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xd5d4d3d2cdcccbca (-2.925e+13, -4.295e+08)
+#            d13:                 0xd9d8d7d6d1d0cfce (-7.629e+15, -1.121e+11)
+#                                          ║       ╙─ 0xd1d0cfce'cdcccbca <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c408409		ld2 {v9.4h, v10.4h}, [x0]
-#    v9: 0x00000000000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x0000feff0085ff01 (0.000, nan, 7.927e-06, nan)
+#            d10:                 0x000000ffff000002 (0.000, 1.520e-05, nan, 1.192e-07)
+#                                      ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc28437		ld2 {v23.4h, v24.4h}, [x1], x2
-#   v23: 0x0000000000000000e7e6e3e2dfdedbda <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e9e8e5e4e1e0dddc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe7e6e3e2dfdedbda (-2022., -1009., -503.5, -251.2)
+#            d24:                 0xe9e8e5e4e1e0dddc (-3024., -1508., -752.0, -375.0)
+#                                      ║   ║   ║   ╙─ 0xdddc'dbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe1e0'dfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe9e8'e7e6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf8421		ld2 {v1.4h, v2.4h}, [x1], #16
-#    v1: 0x0000000000000000e6e5e2e1dedddad9 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e8e7e4e3e0dfdcdb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe6e5e2e1dedddad9 (-1765., -880.5, -439.2, -219.1)
+#             d2:                 0xe8e7e4e3e0dfdcdb (-2510., -1251., -623.5, -310.8)
+#                                      ║   ║   ║   ╙─ 0xdcdb'dad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe0df'dedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7'e6e5 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c408814		ld2 {v20.4s, v21.4s}, [x0]
-#   v20: 0x1b1a19180000000000fffeff0002ff01 (1.27467e-22, 0.00000, 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1700000000000000ff000085 (3.34819e-20, 4.13590e-25, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x1b1a19180000000000fffeff0002ff01 (1.275e-22, 0.000, 2.351e-38, 2.751e-40)
+#            v21: 0x1f1e1d1c1700000000000000ff000085 (3.348e-20, 4.136e-25, 0.000, -1.701e+38)
+#                          ║       ║       ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2882a		ld2 {v10.4s, v11.4s}, [x1], x2
-#   v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.53999e-36, -1.04669e+37, -1.54621e+32, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.06322e-34, 2.35095e-38, -4.02346e+34, -5.94046e+29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.540e-36, -1.047e+37, -1.546e+32, -2.282e+27)
+#            v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.063e-34, 2.351e-38, -4.023e+34, -5.940e+29)
+#                          ║       ║       ║       ╙─ 0xf0efeeed'ecebeae9 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf8f7f6f5'f4f3f2f1 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffefd'fcfbfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x08070605'04030201 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf8838		ld2 {v24.4s, v25.4s}, [x1], #32
-#   v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.82047e-37, -2.60629e+36, -3.84962e+31, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.00825e-34, nan, -1.00179e+34, -1.47890e+29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.820e-37, -2.606e+36, -3.850e+31, -5.680e+26)
+#            v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.008e-34, nan, -1.002e+34, -1.479e+29)
+#                          ║       ║       ║       ╙─ 0xefeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf7f6f5f4'f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xfffefdfc'fbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504'03020100 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c408011		ld2 {v17.8b, v18.8b}, [x0]
-#   v17: 0x00000000000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000ffff00850201
+#            d18:                 0x000000feff0000ff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2802d		ld2 {v13.8b, v14.8b}, [x1], x2
-#   v13: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000171513110f0d0b09 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x161412100e0c0a08
+#            d14:                 0x171513110f0d0b09
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x09'08 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x11'10 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'16 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf8027		ld2 {v7.8b, v8.8b}, [x1], #16
-#    v7: 0x00000000000000001513110f0d0b0907 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1513110f0d0b0907
+#             d8:                 0x161412100e0c0a08
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0a'09 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0e'0d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x16'15 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c40841e		ld2 {v30.8h, v31.8h}, [x0]
-#   v30: 0x1d1c1918000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a17000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c1918000000000000feff0085ff01 (0.004990, 0.002487, 0.000, 0.000, 0.000, nan, 7.927e-06, nan)
+#            v31: 0x1f1e1b1a17000000000000ffff000002 (0.006950, 0.003468, 0.001709, 0.000, 0.000, 1.520e-05, nan, 1.192e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1700'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc28424		ld2 {v4.8h, v5.8h}, [x1], x2
-#    v4: 0x3433302f2c2b28272423201f1c1b1817 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x363532312e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v4: 0x3433302f2c2b28272423201f1c1b1817 (0.2625, 0.1307, 0.06512, 0.03244, 0.01616, 0.008049, 0.004009, 0.001997)
+#             v5: 0x363532312e2d2a29262522211e1d1a19 (0.3879, 0.1935, 0.09650, 0.04813, 0.02400, 0.01197, 0.005970, 0.002977)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1a19'1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1e1d'1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2221'201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625'2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2a29'2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2e2d'2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3231'302f <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3635'3433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf842d		ld2 {v13.8h, v14.8h}, [x1], #32
-#   v13: 0x33322f2e2b2a272623221f1e1b1a1716 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x353431302d2c2928252421201d1c1918 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x33322f2e2b2a272623221f1e1b1a1716 (0.2249, 0.1122, 0.05597, 0.02792, 0.01393, 0.006950, 0.003468, 0.001730)
+#            v14: 0x353431302d2c2928252421201d1c1918 (0.3252, 0.1621, 0.08081, 0.04028, 0.02008, 0.01001, 0.004990, 0.002487)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928'2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d601005		ld2 {v5.b, v6.b}[12], [x0]
-#    v5: 0x363532012e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1dff1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x363532012e2d2a29262522211e1d1a19
+#             v6: 0x1f1e1dff1b1a19181700000000000000
+#                          ╙───────────────────────── 0xff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de21c30		ld2 {v16.b, v17.b}[7], [x1], x2
-#   v16: 0x4544434241403f3e363c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e363c3b3a39383736
+#            v17: 0x00000000000000003700ffff00850201
+#                                    ╙─────────────── 0x37'36 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dff083d		ld2 {v29.b, v30.b}[2], [x1], #2
-#   v29: 0x0706050403020100fffefdfcfb35f9f8 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c1918000000000000feff0036ff01 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfb35f9f8
+#            v30: 0x1d1c1918000000000000feff0036ff01
+#                                              ╙───── 0x36'35 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60840b		ld2 {v11.d, v12.d}[1], [x0]
-#   v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.487e+303, ...)
+#            v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.289e-317, ...)
+#                                  ╙───────────────── 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2843a		ld2 {v26.d, v27.d}[0], [x1], x2
-#   v26: 0x00000000000000003e3d3c3b3a393837 (d26: 6.80687e-09) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000464544434241403f (d27: 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x00000000000000003e3d3c3b3a393837 (..., 6.807e-09)
+#            v27: 0x0000000000000000464544434241403f (..., 3.370e+30)
+#                                                  ╙─ 0x464544434241403f'3e3d3c3b3a393837 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dff8439		ld2 {v25.d, v26.d}[0], [x1], #16
-#   v25: 0x07060504fffefdfc3d3c3b3a39383736 (d25: 1.00298e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000004544434241403f3e (d26: 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x07060504fffefdfc3d3c3b3a39383736 (..., 1.003e-13)
+#            v26: 0x00000000000000004544434241403f3e (..., 4.899e+25)
+#                                                  ╙─ 0x4544434241403f3e'3d3c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d605812		ld2 {v18.h, v19.h}[7], [x0]
-#   v18: 0xff01000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00020000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0xff01000000000000000000feff0000ff (nan, ...)
+#            v19: 0x00020000000000008b8b8b8b8b8b8b8b (1.192e-07, ...)
+#                      ╙───────────────────────────── 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de24831		ld2 {v17.h, v18.h}[5], [x1], x2
-#   v17: 0x00000000474600003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xff01000049480000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v17: 0x00000000474600003700ffff00850201 (..., 7.273, ...)
+#            v18: 0xff01000049480000000000feff0000ff (..., 10.56, ...)
+#                              ╙───────────────────── 0x4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dff503e		ld2 {v30.h, v31.h}[2], [x1], #4
-#   v30: 0x1d1c191800000000000046450036ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a1700000000004847ff000002 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c191800000000000046450036ff01 (..., 6.270, ...)
+#            v31: 0x1f1e1b1a1700000000004847ff000002 (..., 8.555, ...)
+#                                          ╙───────── 0x4847'4645 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60901d		ld2 {v29.s, v30.s}[3], [x0]
-#   v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xff00008500000000000046450036ff01 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.751e-40, ...)
+#            v30: 0xff00008500000000000046450036ff01 (-1.701e+38, ...)
+#                          ╙───────────────────────── 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2803c		ld2 {v28.s, v29.s}[0], [x1], x2
-#   v28: 0x0000000000000000000000004c4b4a49 (s28: 5.32913e+07) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002ff0103020100fffefdfc504f4e4d (s29: 1.39121e+10) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000000000000000004c4b4a49 (..., 5.329e+07)
+#            v29: 0x0002ff0103020100fffefdfc504f4e4d (..., 1.391e+10)
+#                                                  ╙─ 0x504f4e4d'4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dff9026		ld2 {v6.s, v7.s}[1], [x1], #8
-#    v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.32570e+07, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.46117e+09, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.326e+07, ...)
+#             v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.461e+09, ...)
+#                                          ╙───────── 0x4f4e4d4c'4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60c01a		ld2r {v26.16b, v27.16b}, [x0]
-#   v26: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x01010101010101010101010101010101
+#            v27: 0xffffffffffffffffffffffffffffffff
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2c035		ld2r {v21.16b, v22.16b}, [x1], x2
-#   v21: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x51515151515151515151515151515151 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x50505050505050505050505050505050
+#            v22: 0x51515151515151515151515151515151
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x51'50 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffc025		ld2r {v5.16b, v6.16b}, [x1], #2
-#    v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f
+#             v6: 0x50505050505050505050505050505050
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x50'4f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60cc1a		ld2r {v26.1d, v27.1d}, [x0]
-#   v26: 0x0000000000000000ff0000850002ff01 (d26: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000000000000000fffeff (d27: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-5.487e+303)
+#            d27:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2cc2e		ld2r {v14.1d, v15.1d}, [x1], x2
-#   v14: 0x00000000000000005857565554535251 (d14: 3.67814e+117) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0000000000000000605f5e5d5c5b5a59 (d15: 1.68234e+156) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x5857565554535251 (3.678e+117)
+#            d15:                 0x605f5e5d5c5b5a59 (1.682e+156)
+#                                                  ╙─ 0x605f5e5d5c5b5a59'5857565554535251 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffcc37		ld2r {v23.1d, v24.1d}, [x1], #16
-#   v23: 0x00000000000000005756555453525150 (d23: 5.37096e+112) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000005f5e5d5c5b5a5958 (d24: 2.48489e+151) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x5756555453525150 (5.371e+112)
+#            d24:                 0x5f5e5d5c5b5a5958 (2.485e+151)
+#                                                  ╙─ 0x5f5e5d5c5b5a5958'5756555453525150 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60cc0b		ld2r {v11.2d, v12.2d}, [x0]
-#   v11: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v12: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#                                  ╙───────────────╨─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2cc3d		ld2r {v29.2d, v30.2d}, [x1], x2
-#   v29: 0x67666564636261606766656463626160 (1.24732e+190, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.76650e+228, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x67666564636261606766656463626160 (1.247e+190, 1.247e+190)
+#            v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.766e+228, 5.766e+228)
+#                                  ╙───────────────╨─ 0x6f6e6d6c6b6a6968'6766656463626160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffcc2f		ld2r {v15.2d, v16.2d}, [x1], #16
-#   v15: 0x666564636261605f666564636261605f (1.81795e+185, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.50866e+223, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x666564636261605f666564636261605f (1.818e+185, 1.818e+185)
+#            v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.509e+223, 8.509e+223)
+#                                  ╙───────────────╨─ 0x6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60c81a		ld2r {v26.2s, v27.2s}, [x0]
-#   v26: 0x00000000000000000002ff010002ff01 (s26: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ff000085ff000085 (s27: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d27:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#                                          ╙───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2c836		ld2r {v22.2s, v23.2s}, [x1], x2
-#   v22: 0x00000000000000007271706f7271706f (s22: 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000007675747376757473 (s23: 1.24460e+33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x7271706f7271706f (4.782e+30, 4.782e+30)
+#            d23:                 0x7675747376757473 (1.245e+33, 1.245e+33)
+#                                          ╙───────╨─ 0x76757473'7271706f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffc822		ld2r {v2.2s, v3.2s}, [x1], #8
-#    v2: 0x000000000000000071706f6e71706f6e (s2: 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000007574737275747372 (s3: 3.09878e+32) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x71706f6e71706f6e (1.191e+30, 1.191e+30)
+#             d3:                 0x7574737275747372 (3.099e+32, 3.099e+32)
+#                                          ╙───────╨─ 0x75747372'71706f6e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60c402		ld2r {v2.4h, v3.4h}, [x0]
-#    v2: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#             d3:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                                      ╙───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2c429		ld2r {v9.4h, v10.4h}, [x1], x2
-#    v9: 0x00000000000000007776777677767776 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000007978797879787978 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7776777677767776 (3.056e+04, 3.056e+04, 3.056e+04, 3.056e+04)
+#            d10:                 0x7978797879787978 (4.480e+04, 4.480e+04, 4.480e+04, 4.480e+04)
+#                                      ╙───╨───╨───╨─ 0x7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffc426		ld2r {v6.4h, v7.4h}, [x1], #4
-#    v6: 0x00000000000000007675767576757675 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000007877787778777877 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x7675767576757675 (2.645e+04, 2.645e+04, 2.645e+04, 2.645e+04)
+#             d7:                 0x7877787778777877 (3.658e+04, 3.658e+04, 3.658e+04, 3.658e+04)
+#                                      ╙───╨───╨───╨─ 0x7877'7675 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60c807		ld2r {v7.4s, v8.4s}, [x0]
-#    v7: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#             v8: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#                          ╙───────╨───────╨───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2c833		ld2r {v19.4s, v20.4s}, [x1], x2
-#   v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (..., 5.22300e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (..., -1.17085e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (5.223e+36, 5.223e+36, 5.223e+36, 5.223e+36)
+#            v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (-1.171e-38, -1.171e-38, -1.171e-38, -1.171e-38)
+#                          ╙───────╨───────╨───────╨─ 0x807f7e7d'7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffc835		ld2r {v21.4s, v22.4s}, [x1], #8
-#   v21: 0x7b7a79787b7a79787b7a79787b7a7978 (..., 1.30054e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (..., 3.38275e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x7b7a79787b7a79787b7a79787b7a7978 (1.301e+36, 1.301e+36, 1.301e+36, 1.301e+36)
+#            v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (3.383e+38, 3.383e+38, 3.383e+38, 3.383e+38)
+#                          ╙───────╨───────╨───────╨─ 0x7f7e7d7c'7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60c01a		ld2r {v26.8b, v27.8b}, [x0]
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#            d27:                 0xffffffffffffffff
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2c034		ld2r {v20.8b, v21.8b}, [x1], x2
-#   v20: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000008181818181818181 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8080808080808080
+#            d21:                 0x8181818181818181
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x81'80 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffc02b		ld2r {v11.8b, v12.8b}, [x1], #2
-#   v11: 0x00000000000000007f7f7f7f7f7f7f7f <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x7f7f7f7f7f7f7f7f
+#            d12:                 0x8080808080808080
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x80'7f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60c40c		ld2r {v12.8h, v13.8h}, [x0]
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v13: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2c426		ld2r {v6.8h, v7.8h}, [x1], x2
-#    v6: 0x82818281828182818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x84838483848384838483848384838483 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0x82818281828182818281828182818281 (-3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05)
+#             v7: 0x84838483848384838483848384838483 (-6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8483'8281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffc439		ld2r {v25.8h, v26.8h}, [x1], #4
-#   v25: 0x81808180818081808180818081808180 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x83828382838283828382838283828382 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x81808180818081808180818081808180 (-2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05)
+#            v26: 0x83828382838283828382838283828382 (-5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c404014		ld3 {v20.16b, v21.16b, v22.16b}, [x0]
-#   v20: 0x2d2a2724211e1b1800000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x2e2b2825221f1c1900000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2f2c292623201d1a1700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2d2a2724211e1b1800000000fe000001
+#            v21: 0x2e2b2825221f1c1900000000ffff85ff
+#            v22: 0x2f2c292623201d1a1700000000ff0002
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x20'1f'1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x23'22'21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2c'2b'2a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f'2e'2d <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2403c		ld3 {v28.16b, v29.16b, v30.16b}, [x1], x2
-#   v28: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v29: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#            v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x89'88'87 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8c'8b'8a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8f'8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x95'94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x98'97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa1'a0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa4'a3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa7'a6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xaa'a9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xad'ac'ab <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb3'b2'b1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf4034		ld3 {v20.16b, v21.16b, v22.16b}, [x1], #48
-#   v20: 0xb0adaaa7a4a19e9b9895928f8c898683 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0xb0adaaa7a4a19e9b9895928f8c898683
+#            v21: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v22: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x85'84'83 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x88'87'86 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8b'8a'89 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8e'8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x91'90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x94'93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x97'96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9a'99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa3'a2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa6'a5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa9'a8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xac'ab'aa <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb2'b1'b0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c404c15		ld3 {v21.2d, v22.2d, v23.2d}, [x0]
-#   v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.56775e-159, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x27262524232221200000000000fffeff (4.28794e-120, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2f2e2d2c2b2a29281700000000000000 (1.98829e-81, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.568e-159, -5.487e+303)
+#            v22: 0x27262524232221200000000000fffeff (4.288e-120, 8.289e-317)
+#            v23: 0x2f2e2d2c2b2a29281700000000000000 (1.988e-81, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928'2726252423222120'1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc24c32		ld3 {v18.2d, v19.2d, v20.2d}, [x1], x2
-#   v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.07279e+90, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.47908e+129, -3.90391e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.10851e+168, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.073e+90, -8.311e-26)
+#            v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.479e+129, -3.904e+13)
+#            v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.109e+168, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb'dad9d8d7d6d5d4d3'd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf4c3b		ld3 {v27.2d, v28.2d, v29.2d}, [x1], #48
-#   v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.30639e+86, -1.21867e-30) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.56908e+124, -5.62003e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.03668e+163, -2.82942e+47) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.306e+86, -1.219e-30)
+#            v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.569e+124, -5.620e+08)
+#            v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.037e+163, -2.829e+47)
+#                                  ║               ╙─ 0xc9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe1e0dfdedddcdbda'd9d8d7d6d5d4d3d2'd1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c404807		ld3 {v7.2s, v8.2s, v9.2s}, [x0]
-#    v7: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000001700000000fffeff (..., 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x000000000002ff01 (0.000, 2.751e-40)
+#             d8:                 0x00000000ff000085 (0.000, -1.701e+38)
+#             d9:                 0x1700000000fffeff (4.136e-25, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc24834		ld3 {v20.2s, v21.2s, v22.2s}, [x1], x2
-#   v20: 0x0000000000000000f1f0efeee5e4e3e2 (..., -2.38613e+30, -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000f5f4f3f2e9e8e7e6 (..., -6.21029e+32, -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000f9f8f7f6edecebea (..., -1.61590e+35, -9.16546e+27) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xf1f0efeee5e4e3e2 (-2.386e+30, -1.351e+23)
+#            d21:                 0xf5f4f3f2e9e8e7e6 (-6.210e+32, -3.520e+25)
+#            d22:                 0xf9f8f7f6edecebea (-1.616e+35, -9.165e+27)
+#                                          ║       ╙─ 0xedecebea'e9e8e7e6'e5e4e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf483a		ld3 {v26.2s, v27.2s, v28.2s}, [x1], #24
-#   v26: 0x0000000000000000f0efeeede4e3e2e1 (..., -5.94046e+29, -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000f4f3f2f1e8e7e6e5 (..., -1.54621e+32, -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f7f6f5ecebeae9 (..., -4.02346e+34, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xf0efeeede4e3e2e1 (-5.940e+29, -3.363e+22)
+#            d27:                 0xf4f3f2f1e8e7e6e5 (-1.546e+32, -8.761e+24)
+#            d28:                 0xf8f7f6f5ecebeae9 (-4.023e+34, -2.282e+27)
+#                                          ║       ╙─ 0xecebeae9'e8e7e6e5'e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40441b		ld3 {v27.4h, v28.4h, v29.4h}, [x0]
-#   v27: 0x000000000000000000000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00000000ff00ff01 (0.000, 0.000, nan, nan)
+#            d28:                 0x00000000feff0002 (0.000, 0.000, nan, 1.192e-07)
+#            d29:                 0x1700000000ff0085 (0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                                      ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2443c		ld3 {v28.4h, v29.4h, v30.4h}, [x1], x2
-#   v28: 0x00000000000000000c0b060500fffaf9 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000e0d08070201fcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000100f0a090403fefd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x0c0b060500fffaf9 (0.0002468, 9.185e-05, 1.520e-05, -5.712e+04)
+#            d29:                 0x0e0d08070201fcfb (0.0003693, 0.0001229, 3.058e-05, nan)
+#            d30:                 0x100f0a090403fefd (0.0004954, 0.0001842, 6.121e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0403'0201'00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0a09'0807'0605 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x100f'0e0d'0c0b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf4427		ld3 {v7.4h, v8.4h, v9.4h}, [x1], #24
-#    v7: 0x00000000000000000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000d0c07060100fbfa <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000f0e09080302fdfc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x0b0a0504fffef9f8 (0.0002148, 7.653e-05, nan, -4.890e+04)
+#             d8:                 0x0d0c07060100fbfa (0.0003080, 0.0001072, 1.526e-05, -6.534e+04)
+#             d9:                 0x0f0e09080302fdfc (0.0004306, 0.0001535, 4.590e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfdfc'fbfa'f9f8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0302'0100'fffe <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0908'0706'0504 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0f0e'0d0c'0b0a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c404802		ld3 {v2.4s, v3.4s, v4.4s}, [x0]
-#    v2: 0x272625241b1a1918000000000002ff01 (2.30573e-15, 1.27467e-22, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.04532e-13, 3.34819e-20, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c232221201700000000fffeff (1.58413e-10, 8.78905e-18, 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x272625241b1a1918000000000002ff01 (2.306e-15, 1.275e-22, 0.000, 2.751e-40)
+#             v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.045e-13, 3.348e-20, 0.000, -1.701e+38)
+#             v4: 0x2f2e2d2c232221201700000000fffeff (1.584e-10, 8.789e-18, 4.136e-25, 2.351e-38)
+#                          ║       ║       ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120'1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c'2b2a2928'27262524 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc24838		ld3 {v24.4s, v25.4s, v26.4s}, [x1], x2
-#   v24: 0x373635342b2a29281f1e1d1c13121110 (1.08604e-05, 6.04532e-13, 3.34819e-20, 1.84362e-27) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161514 (0.00284155, 1.58413e-10, 8.78905e-18, 4.84942e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3f3e3d3c33323130272625241b1a1918 (0.743122, 4.14886e-08, 2.30573e-15, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0x373635342b2a29281f1e1d1c13121110 (1.086e-05, 6.045e-13, 3.348e-20, 1.844e-27)
+#            v25: 0x3b3a39382f2e2d2c2322212017161514 (0.002842, 1.584e-10, 8.789e-18, 4.849e-25)
+#            v26: 0x3f3e3d3c33323130272625241b1a1918 (0.7431, 4.149e-08, 2.306e-15, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918'17161514'13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x33323130'2f2e2d2c'2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf482b		ld3 {v11.4s, v12.4s, v13.4s}, [x1], #48
-#   v11: 0x363534332a2928271e1d1c1b1211100f (2.70015e-06, 1.50241e-13, 8.31732e-21, 4.57737e-28) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x3a3938372e2d2c2b2221201f16151413 (0.000706557, 3.93749e-11, 2.18366e-18, 1.20425e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x3e3d3c3b3231302f262524231a191817 (0.184800, 1.03137e-08, 5.72948e-16, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v11: 0x363534332a2928271e1d1c1b1211100f (2.700e-06, 1.502e-13, 8.317e-21, 4.577e-28)
+#            v12: 0x3a3938372e2d2c2b2221201f16151413 (0.0007066, 3.937e-11, 2.184e-18, 1.204e-25)
+#            v13: 0x3e3d3c3b3231302f262524231a191817 (0.1848, 1.031e-08, 5.729e-16, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817'16151413'1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x26252423'2221201f'1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f'2e2d2c2b'2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3e3d3c3b'3a393837'36353433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40401d		ld3 {v29.8b, v30.8b, v31.8b}, [x0]
-#   v29: 0x000000000000000000000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x000000000000000000000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000001700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x00000000fe000001
+#            d30:                 0x00000000ffff85ff
+#            d31:                 0x1700000000ff0002
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc24021		ld3 {v1.8b, v2.8b, v3.8b}, [x1], x2
-#    v1: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000005653504d4a474441 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x54514e4b4845423f
+#             d2:                 0x55524f4c49464340
+#             d3:                 0x5653504d4a474441
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x41'40'3f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x44'43'42 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x47'46'45 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x4a'49'48 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4d'4c'4b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x50'4f'4e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x53'52'51 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x56'55'54 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf402c		ld3 {v12.8b, v13.8b, v14.8b}, [x1], #24
-#   v12: 0x000000000000000053504d4a4744413e <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x53504d4a4744413e
+#            d13:                 0x54514e4b4845423f
+#            d14:                 0x55524f4c49464340
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40'3f'3e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x43'42'41 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x46'45'44 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x49'48'47 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4c'4b'4a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x4f'4e'4d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x52'51'50 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x55'54'53 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c404416		ld3 {v22.8h, v23.8h, v24.8h}, [x0]
-#   v22: 0x2b2a25241f1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272621201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x2b2a25241f1e191800000000ff00ff01 (0.05597, 0.02008, 0.006950, 0.002487, 0.000, 0.000, nan, nan)
+#            v23: 0x2d2c272621201b1a00000000feff0002 (0.08081, 0.02792, 0.01001, 0.003468, 0.000, 0.000, nan, 1.192e-07)
+#            v24: 0x2f2e292823221d1c1700000000ff0085 (0.1122, 0.04028, 0.01393, 0.004990, 0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2322'2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2928'2726'2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2442d		ld3 {v13.8h, v14.8h, v15.8h}, [x1], x2
-#   v13: 0x81807b7a75746f6e696863625d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a65645f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c676661605b5a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e696863625d5c5756 (-2.289e-05, 6.125e+04, 2.234e+04, 7608., 2768., 945.0, 343.0, 117.4)
+#            v14: 0x83827d7c777671706b6a65645f5e5958 (-5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5, 171.0)
+#            v15: 0x85847f7e797873726d6c676661605b5a (-8.416e-05, nan, 4.480e+04, 1.525e+04, 5552., 1894., 688.0, 235.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5b5a'5958'5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6160'5f5e'5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6766'6564'6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6d6c'6b6a'6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7372'7170'6f6e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7978'7776'7574 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8584'8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf443c		ld3 {v28.8h, v29.8h, v30.8h}, [x1], #48
-#   v28: 0x807f7a7974736e6d686762615c5b5655 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x82817c7b7675706f6a6964635e5d5857 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84837e7d787772716c6b6665605f5a59 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x807f7a7974736e6d686762615c5b5655 (-7.570e-06, 5.302e+04, 1.822e+04, 6580., 2254., 816.5, 278.8, 101.3)
+#            v29: 0x82817c7b7675706f6a6964635e5d5857 (-3.821e-05, nan, 2.645e+04, 9080., 3282., 1123., 407.2, 138.9)
+#            v30: 0x84837e7d787772716c6b6665605f5a59 (-6.884e-05, nan, 3.658e+04, 1.319e+04, 4524., 1637., 559.5, 203.1)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5a59'5857'5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f'5e5d'5c5b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6665'6463'6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6c6b'6a69'6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7271'706f'6e6d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7877'7675'7473 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7e7d'7c7b'7a79 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8483'8281'807f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d402c15		ld3 {v21.b, v22.b, v23.b}[11], [x0]
-#   v21: 0x0000000001000000f5f4f3f2e9e8e7e6 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2b2a2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272602201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x0000000001000000f5f4f3f2e9e8e7e6
+#            v22: 0x2b2a2524ff1e191800000000ff00ff01
+#            v23: 0x2d2c272602201b1a00000000feff0002
+#                            ╙─────────────────────── 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc22425		ld3 {v5.b, v6.b, v7.b}[9], [x1], x2
-#    v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x82818281828186818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000087000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f
+#             v6: 0x82818281828186818281828182818281
+#             v7: 0x00000000000087000b0a0504fffef9f8
+#                                ╙─────────────────── 0x87'86'85 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddf2037		ld3 {v23.b, v24.b, v25.b}[0], [x1], #3
-#   v23: 0x2d2c272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161586 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0x2d2c272602201b1a00000000feff0084
+#            v24: 0x2f2e292823221d1c1700000000ff0085
+#            v25: 0x3b3a39382f2e2d2c2322212017161586
+#                                                  ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40a410		ld3 {v16.d, v17.d, v18.d}[0], [x0]
-#   v16: 0x6e6d6c6b6a696867ff0000850002ff01 (d16: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000474600000000000000fffeff (d17: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd2d1d0cfcecdcccb1700000000000000 (d18: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6e6d6c6b6a696867ff0000850002ff01 (..., -5.487e+303)
+#            v17: 0x00000000474600000000000000fffeff (..., 8.289e-317)
+#            v18: 0xd2d1d0cfcecdcccb1700000000000000 (..., 6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2a43e		ld3 {v30.d, v31.d, v0.d}[0], [x1], x2
-#   v30: 0x84837e7d787772718e8d8c8b8a898887 (d30: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000969594939291908f (d31: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (d0: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84837e7d787772718e8d8c8b8a898887 (..., -1.418e-238)
+#            v31: 0x0000000000000000969594939291908f (..., -7.048e-200)
+#             v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (..., -3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897'969594939291908f'8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfa43c		ld3 {v28.d, v29.d, v30.d}[1], [x1], #24
-#   v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.09028e-243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x9594939291908f8e6a6964635e5d5857 (-1.02545e-204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.85140e-166, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.090e-243, ...)
+#            v29: 0x9594939291908f8e6a6964635e5d5857 (-1.025e-204, ...)
+#            v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.851e-166, ...)
+#                                  ╙───────────────── 0x9d9c9b9a99989796'9594939291908f8e'8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40700d		ld3 {v13.h, v14.h, v15.h}[2], [x0]
-#   v13: 0x81807b7a75746f6e6968ff015d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c008561605b5a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e6968ff015d5c5756 (..., nan, ...)
+#            v14: 0x83827d7c777671706b6a00025f5e5958 (..., 1.192e-07, ...)
+#            v15: 0x85847f7e797873726d6c008561605b5a (..., 7.927e-06, ...)
+#                                          ╙───────── 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc27836		ld3 {v22.h, v23.h, v24.h}[7], [x1], x2
-#   v22: 0x9f9e2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xa1a0272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xa3a2292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x9f9e2524ff1e191800000000ff00ff01 (-0.007439, ...)
+#            v23: 0xa1a0272602201b1a00000000feff0084 (-0.01099, ...)
+#            v24: 0xa3a2292823221d1c1700000000ff0085 (-0.01491, ...)
+#                      ╙───────────────────────────── 0xa3a2'a1a0'9f9e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddf782e		ld3 {v14.h, v15.h, v16.h}[3], [x1], #6
-#   v14: 0x83827d7c777671709e9d00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e79787372a09f008561605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a696867a2a100850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0x83827d7c777671709e9d00025f5e5958 (..., -0.006458, ...)
+#            v15: 0x85847f7e79787372a09f008561605b5a (..., -0.009026, ...)
+#            v16: 0x6e6d6c6b6a696867a2a100850002ff01 (..., -0.01295, ...)
+#                                      ╙───────────── 0xa2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40b016		ld3 {v22.s, v23.s, v24.s}[3], [x0]
-#   v22: 0x0002ff01ff1e191800000000ff00ff01 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xff00008502201b1a00000000feff0084 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00fffeff23221d1c1700000000ff0085 (2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x0002ff01ff1e191800000000ff00ff01 (2.751e-40, ...)
+#            v23: 0xff00008502201b1a00000000feff0084 (-1.701e+38, ...)
+#            v24: 0x00fffeff23221d1c1700000000ff0085 (2.351e-38, ...)
+#                          ╙───────────────────────── 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2a03e		ld3 {v30.s, v31.s, v0.s}[2], [x1], x2
-#   v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.14938e-15, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000aaa9a8a7969594939291908f (..., -3.01375e-13, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.89780e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.149e-15, ...)
+#            v31: 0x00000000aaa9a8a7969594939291908f (..., -3.014e-13, ...)
+#             v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.898e-11, ...)
+#                                  ╙───────────────── 0xaeadacab'aaa9a8a7'a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfb02c		ld3 {v12.s, v13.s, v14.s}[1], [x1], #12
-#   v12: 0x0000000000000000a5a4a3a24744413e (..., -2.85603e-16, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.48978e-14, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.96304e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000a5a4a3a24744413e (..., -2.856e-16, ...)
+#            v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.490e-14, ...)
+#            v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.963e-11, ...)
+#                                          ╙───────── 0xadacabaa'a9a8a7a6'a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40e018		ld3r {v24.16b, v25.16b, v26.16b}, [x0]
-#   v24: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x01010101010101010101010101010101
+#            v25: 0xffffffffffffffffffffffffffffffff
+#            v26: 0x02020202020202020202020202020202
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2e038		ld3r {v24.16b, v25.16b, v26.16b}, [x1], x2
-#   v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#            v25: 0xafafafafafafafafafafafafafafafaf
+#            v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfe023		ld3r {v3.16b, v4.16b, v5.16b}, [x1], #3
-#    v3: 0xadadadadadadadadadadadadadadadad <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v3: 0xadadadadadadadadadadadadadadadad
+#             v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#             v5: 0xafafafafafafafafafafafafafafafaf
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40ec04		ld3r {v4.1d, v5.1d, v6.1d}, [x0]
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2ec27		ld3r {v7.1d, v8.1d, v9.1d}, [x1], x2
-#    v7: 0x0000000000000000b7b6b5b4b3b2b1b0 (d7: -2.60696e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000bfbebdbcbbbab9b8 (d8: -0.120083) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000c7c6c5c4c3c2c1c0 (d9: -6.05398e+37) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xb7b6b5b4b3b2b1b0 (-2.607e-40)
+#             d8:                 0xbfbebdbcbbbab9b8 (-0.1201)
+#             d9:                 0xc7c6c5c4c3c2c1c0 (-6.054e+37)
+#                                                  ╙─ 0xc7c6c5c4c3c2c1c0'bfbebdbcbbbab9b8'b7b6b5b4b3b2b1b0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfec31		ld3r {v17.1d, v18.1d, v19.1d}, [x1], #24
-#   v17: 0x0000000000000000b6b5b4b3b2b1b0af (d17: -3.80205e-45) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000bebdbcbbbab9b8b7 (d18: -1.77248e-06) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000c6c5c4c3c2c1c0bf (d19: -8.83040e+32) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xb6b5b4b3b2b1b0af (-3.802e-45)
+#            d18:                 0xbebdbcbbbab9b8b7 (-1.772e-06)
+#            d19:                 0xc6c5c4c3c2c1c0bf (-8.830e+32)
+#                                                  ╙─ 0xc6c5c4c3c2c1c0bf'bebdbcbbbab9b8b7'b6b5b4b3b2b1b0af <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40ec10		ld3r {v16.2d, v17.2d, v18.2d}, [x0]
-#   v16: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v17: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v18: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#                                  ╙───────────────╨─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2ec34		ld3r {v20.2d, v21.2d, v22.2d}, [x1], x2
-#   v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.11344e+71, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.05087e+110, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.54613e+148, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.113e+71, -4.113e+71)
+#            v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.051e+110, -2.051e+110)
+#            v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.546e+148, -9.546e+148)
+#                                  ╙───────────────╨─ 0xdedddcdbdad9d8d7'd6d5d4d3d2d1d0cf'cecdcccbcac9c8c7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfec2e		ld3r {v14.2d, v15.2d, v16.2d}, [x1], #24
-#   v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.06516e+66, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.98548e+105, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.40766e+144, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.065e+66, -6.065e+66)
+#            v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.985e+105, -2.985e+105)
+#            v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.408e+144, -1.408e+144)
+#                                  ╙───────────────╨─ 0xdddcdbdad9d8d7d6'd5d4d3d2d1d0cfce'cdcccbcac9c8c7c6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40e80a		ld3r {v10.2s, v11.2s, v12.2s}, [x0]
-#   v10: 0x00000000000000000002ff010002ff01 (s10: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000ff000085ff000085 (s11: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000fffeff00fffeff (s12: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d11:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#            d12:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#                                          ╙───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2e820		ld3r {v0.2s, v1.2s, v2.2s}, [x1], x2
-#    v0: 0x0000000000000000e1e0dfdee1e0dfde (s0: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e5e4e3e2e5e4e3e2 (s1: -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e9e8e7e6e9e8e7e6 (s2: -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#             d1:                 0xe5e4e3e2e5e4e3e2 (-1.351e+23, -1.351e+23)
+#             d2:                 0xe9e8e7e6e9e8e7e6 (-3.520e+25, -3.520e+25)
+#                                          ╙───────╨─ 0xe9e8e7e6'e5e4e3e2'e1e0dfde <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfe837		ld3r {v23.2s, v24.2s, v25.2s}, [x1], #12
-#   v23: 0x0000000000000000e0dfdedde0dfdedd (s23: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e4e3e2e1e4e3e2e1 (s24: -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e6e5e8e7e6e5 (s25: -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#            d24:                 0xe4e3e2e1e4e3e2e1 (-3.363e+22, -3.363e+22)
+#            d25:                 0xe8e7e6e5e8e7e6e5 (-8.761e+24, -8.761e+24)
+#                                          ╙───────╨─ 0xe8e7e6e5'e4e3e2e1'e0dfdedd <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40e416		ld3r {v22.4h, v23.4h, v24.4h}, [x0]
-#   v22: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d23:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d24:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                                      ╙───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2e426		ld3r {v6.4h, v7.4h, v8.4h}, [x1], x2
-#    v6: 0x0000000000000000eae9eae9eae9eae9 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000ecebecebecebeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000eeedeeedeeedeeed <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d6:                 0xeae9eae9eae9eae9 (-3538., -3538., -3538., -3538.)
+#             d7:                 0xecebecebecebeceb (-5036., -5036., -5036., -5036.)
+#             d8:                 0xeeedeeedeeedeeed (-7092., -7092., -7092., -7092.)
+#                                      ╙───╨───╨───╨─ 0xeeed'eceb'eae9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfe427		ld3r {v7.4h, v8.4h, v9.4h}, [x1], #6
-#    v7: 0x0000000000000000e9e8e9e8e9e8e9e8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000ebeaebeaebeaebea <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000edecedecedecedec <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xe9e8e9e8e9e8e9e8 (-3024., -3024., -3024., -3024.)
+#             d8:                 0xebeaebeaebeaebea (-4052., -4052., -4052., -4052.)
+#             d9:                 0xedecedecedecedec (-6064., -6064., -6064., -6064.)
+#                                      ╙───╨───╨───╨─ 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40e81a		ld3r {v26.4s, v27.4s, v28.4s}, [x0]
-#   v26: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v27: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v28: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#                          ╙───────╨───────╨───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2e820		ld3r {v0.4s, v1.4s, v2.4s}, [x1], x2
-#    v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (..., -2.38613e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (..., -6.21029e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (..., -1.61590e+35, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (-2.386e+30, -2.386e+30, -2.386e+30, -2.386e+30)
+#             v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (-6.210e+32, -6.210e+32, -6.210e+32, -6.210e+32)
+#             v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (-1.616e+35, -1.616e+35, -1.616e+35, -1.616e+35)
+#                          ╙───────╨───────╨───────╨─ 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfe83e		ld3r {v30.4s, v31.4s, v0.4s}, [x1], #12
-#   v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (..., -5.94046e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (..., -1.54621e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (..., -4.02346e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (-5.940e+29, -5.940e+29, -5.940e+29, -5.940e+29)
+#            v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (-1.546e+32, -1.546e+32, -1.546e+32, -1.546e+32)
+#             v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (-4.023e+34, -4.023e+34, -4.023e+34, -4.023e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d40e002		ld3r {v2.8b, v3.8b, v4.8b}, [x0]
-#    v2: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x0101010101010101
+#             d3:                 0xffffffffffffffff
+#             d4:                 0x0202020202020202
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dc2e02a		ld3r {v10.8b, v11.8b, v12.8b}, [x1], x2
-#   v10: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000fbfbfbfbfbfbfbfb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xf9f9f9f9f9f9f9f9
+#            d11:                 0xfafafafafafafafa
+#            d12:                 0xfbfbfbfbfbfbfbfb
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfb'fa'f9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0ddfe03c		ld3r {v28.8b, v29.8b, v30.8b}, [x1], #3
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d40e406		ld3r {v6.8h, v7.8h, v8.8h}, [x0]
-#    v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v7: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#             v8: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dc2e43d		ld3r {v29.8h, v30.8h, v31.8h}, [x1], x2
-#   v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4ddfe427		ld3r {v7.8h, v8.8h, v9.8h}, [x1], #6
-#    v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#             v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v9: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xfffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c400003		ld4 {v3.16b, v4.16b, v5.16b, v6.16b}, [x0]
-#    v3: 0x3c3834302c2824201c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3d3935312d2925211d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3a36322e2a26221e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3f3b37332f2b27231f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x3c3834302c2824201c18000000ff8501
+#             v4: 0x3d3935312d2925211d19000000fe00ff
+#             v5: 0x3e3a36322e2a26221e1a000000ff0002
+#             v6: 0x3f3b37332f2b27231f1b17000000ff00
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc20022		ld4 {v2.16b, v3.16b, v4.16b, v5.16b}, [x1], x2
-#    v2: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3f3b37332f2b27231f1b17130f0b0703 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x3c3834302c2824201c1814100c080400
+#             v3: 0x3d3935312d2925211d1915110d090501
+#             v4: 0x3e3a36322e2a26221e1a16120e0a0602
+#             v5: 0x3f3b37332f2b27231f1b17130f0b0703
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x03'02'01'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x07'06'05'04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0b'0a'09'08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0f'0e'0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x13'12'11'10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'16'15'14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf0025		ld4 {v5.16b, v6.16b, v7.16b, v8.16b}, [x1], #64
-#    v5: 0x3b37332f2b27231f1b17130f0b0703ff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3b37332f2b27231f1b17130f0b0703ff
+#             v6: 0x3c3834302c2824201c1814100c080400
+#             v7: 0x3d3935312d2925211d1915110d090501
+#             v8: 0x3e3a36322e2a26221e1a16120e0a0602
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1e'1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22'21'20'1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x26'25'24'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a'29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2e'2d'2c'2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x32'31'30'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x36'35'34'33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3a'39'38'37 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3e'3d'3c'3b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c400c12		ld4 {v18.2d, v19.2d, v20.2d, v21.2d}, [x0]
-#   v18: 0x2726252423222120ff0000850002ff01 (4.28794e-120, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.98829e-81, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x37363534333231301700000000000000 (9.95833e-43, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.000461414, 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2726252423222120ff0000850002ff01 (4.288e-120, -5.487e+303)
+#            v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.988e-81, 8.289e-317)
+#            v20: 0x37363534333231301700000000000000 (9.958e-43, 6.689e-198)
+#            v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.0004614, 8.568e-159)
+#                                  ║               ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938'3736353433323130'2f2e2d2c2b2a2928'2726252423222120 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc20c24		ld4 {v4.2d, v5.2d, v6.2d, v7.2d}, [x1], x2
-#    v4: 0x666564636261605f464544434241403f (1.81795e+185, 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.50866e+223, 1.57975e+69) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x767574737271706f565554535251504f (4.22243e+262, 7.82703e+107) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.97467e+301, 3.66628e+146) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v4: 0x666564636261605f464544434241403f (1.818e+185, 3.370e+30)
+#             v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.509e+223, 1.580e+69)
+#             v6: 0x767574737271706f565554535251504f (4.222e+262, 7.827e+107)
+#             v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.975e+301, 3.666e+146)
+#                                  ║               ╙─ 0x5e5d5c5b5a595857'565554535251504f'4e4d4c4b4a494847'464544434241403f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7e7d7c7b7a797877'767574737271706f'6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf0c3d		ld4 {v29.2d, v30.2d, v31.2d, v0.2d}, [x1], #64
-#   v29: 0x6564636261605f5e4544434241403f3e (2.64379e+180, 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.25402e+219, 2.32790e+64) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e5554535251504f4e (6.14144e+257, 1.13810e+103) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.91053e+296, 5.40301e+141) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x6564636261605f5e4544434241403f3e (2.644e+180, 4.899e+25)
+#            v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.254e+219, 2.328e+64)
+#            v31: 0x7574737271706f6e5554535251504f4e (6.141e+257, 1.138e+103)
+#             v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.911e+296, 5.403e+141)
+#                                  ║               ╙─ 0x5d5c5b5a59585756'5554535251504f4e'4d4c4b4a49484746'4544434241403f3e <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7d7c7b7a79787776'7574737271706f6e'6d6c6b6a69686766'6564636261605f5e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40081b		ld4 {v27.2s, v28.2s, v29.2s, v30.2s}, [x0]
-#   v27: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000017000000ff000085 (..., 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001b1a191800fffeff (..., 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001f1e1d1c00000000 (..., 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x000000000002ff01 (0.000, 2.751e-40)
+#            d28:                 0x17000000ff000085 (4.136e-25, -1.701e+38)
+#            d29:                 0x1b1a191800fffeff (1.275e-22, 2.351e-38)
+#            d30:                 0x1f1e1d1c00000000 (3.348e-20, 0.000)
+#                                          ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc20838		ld4 {v24.2s, v25.2s, v26.2s, v27.2s}, [x1], x2
-#   v24: 0x000000000000000091908f8e81807f7e (..., -2.28077e-28, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000009594939285848382 (..., -6.00095e-26, -1.24615e-35) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000009998979689888786 (..., -1.57777e-23, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000009d9c9b9a8d8c8b8a (..., -4.14537e-21, -8.66176e-31) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x91908f8e81807f7e (-2.281e-28, -4.720e-38)
+#            d25:                 0x9594939285848382 (-6.001e-26, -1.246e-35)
+#            d26:                 0x9998979689888786 (-1.578e-23, -3.287e-33)
+#            d27:                 0x9d9c9b9a8d8c8b8a (-4.145e-21, -8.662e-31)
+#                                          ║       ╙─ 0x8d8c8b8a'89888786'85848382'81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9d9c9b9a'99989796'95949392'91908f8e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf0824		ld4 {v4.2s, v5.2s, v6.2s, v7.2s}, [x1], #32
-#    v4: 0x0000000000000000908f8e8d807f7e7d (..., -5.66232e-29, -1.17085e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000009493929184838281 (..., -1.49010e-26, -3.09178e-36) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000009897969588878685 (..., -3.91846e-24, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009c9b9a998c8b8a89 (..., -1.02970e-21, -2.14997e-31) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x908f8e8d807f7e7d (-5.662e-29, -1.171e-38)
+#             d5:                 0x9493929184838281 (-1.490e-26, -3.092e-36)
+#             d6:                 0x9897969588878685 (-3.918e-24, -8.157e-34)
+#             d7:                 0x9c9b9a998c8b8a89 (-1.030e-21, -2.150e-31)
+#                                          ║       ╙─ 0x8c8b8a89'88878685'84838281'807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99'98979695'94939291'908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c400410		ld4 {v16.4h, v17.4h, v18.4h, v19.4h}, [x0]
-#   v16: 0x000000000000000019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
+#            d16:                 0x19180000feffff01 (0.002487, 0.000, nan, nan)
+#            d17:                 0x1b1a000000ff0002 (0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            d18:                 0x1d1c000000000085 (0.004990, 0.000, 0.000, 7.927e-06)
+#            d19:                 0x1f1e17000000ff00 (0.006950, 0.001709, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc20437		ld4 {v23.4h, v24.4h, v25.4h, v26.4h}, [x1], x2
-#   v23: 0x0000000000000000b6b5aeada6a59e9d <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000b8b7b0afa8a7a09f <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000bab9b2b1aaa9a2a1 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000bcbbb4b3acaba4a3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xb6b5aeada6a59e9d (-0.4192, -0.1043, -0.02596, -0.006458)
+#            d24:                 0xb8b7b0afa8a7a09f (-0.5894, -0.1464, -0.03635, -0.009026)
+#            d25:                 0xbab9b2b1aaa9a2a1 (-0.8403, -0.2091, -0.05203, -0.01295)
+#            d26:                 0xbcbbb4b3acaba4a3 (-1.183, -0.2937, -0.07294, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3'a2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xacab'aaa9'a8a7'a6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb4b3'b2b1'b0af'aead <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbcbb'bab9'b8b7'b6b5 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf0422		ld4 {v2.4h, v3.4h, v4.4h, v5.4h}, [x1], #32
-#    v2: 0x0000000000000000b5b4adaca5a49d9c <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b7b6afaea7a69f9e <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000b9b8b1b0a9a8a1a0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000bbbab3b2abaaa3a2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xb5b4adaca5a49d9c (-0.3564, -0.08862, -0.02203, -0.005478)
+#             d3:                 0xb7b6afaea7a69f9e (-0.4819, -0.1200, -0.02988, -0.007439)
+#             d4:                 0xb9b8b1b0a9a8a1a0 (-0.7148, -0.1777, -0.04419, -0.01099)
+#             d5:                 0xbbbab3b2abaaa3a2 (-0.9658, -0.2405, -0.05988, -0.01491)
+#                                      ║   ║   ║   ╙─ 0xa3a2'a1a0'9f9e'9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xabaa'a9a8'a7a6'a5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb3b2'b1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba'b9b8'b7b6'b5b4 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c400807		ld4 {v7.4s, v8.4s, v9.4s, v10.4s}, [x0]
-#    v7: 0x3332313023222120000000000002ff01 (4.14886e-08, 8.78905e-18, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x373635342726252417000000ff000085 (1.08604e-05, 2.30573e-15, 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a39382b2a29281b1a191800fffeff (0.00284155, 6.04532e-13, 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.743122, 1.58413e-10, 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x3332313023222120000000000002ff01 (4.149e-08, 8.789e-18, 0.000, 2.751e-40)
+#             v8: 0x373635342726252417000000ff000085 (1.086e-05, 2.306e-15, 4.136e-25, -1.701e+38)
+#             v9: 0x3b3a39382b2a29281b1a191800fffeff (0.002842, 6.045e-13, 1.275e-22, 2.351e-38)
+#            v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.7431, 1.584e-10, 3.348e-20, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2f2e2d2c'2b2a2928'27262524'23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534'33323130 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc2083c		ld4 {v28.4s, v29.4s, v30.4s, v31.4s}, [x1], x2
-#   v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.47890e+29, -3.21185e+19, -6.93919e+09, -1.49017) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.84962e+31, -8.37048e+21, -1.81093e+12, -389.514) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.00179e+34, -2.18077e+24, -4.72428e+14, -101772.) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.60629e+36, -5.67986e+26, -1.23202e+17, -2.65799e+07) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#            v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.850e+31, -8.370e+21, -1.811e+12, -389.5)
+#            v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.002e+34, -2.181e+24, -4.724e+14, -1.018e+05)
+#            v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.606e+36, -5.680e+26, -1.232e+17, -2.658e+07)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf083d		ld4 {v29.4s, v30.4s, v31.4s, v0.4s}, [x1], #64
-#   v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.68172e+28, -7.99345e+18, -1.72638e+09, -0.370581) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.58428e+30, -2.08336e+21, -4.50576e+11, -96.8765) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.49430e+33, -5.42822e+23, -1.17555e+14, -25314.4) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.48966e+35, -1.41390e+26, -3.06592e+16, -6.61207e+06) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.682e+28, -7.993e+18, -1.726e+09, -0.3706)
+#            v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.584e+30, -2.083e+21, -4.506e+11, -96.88)
+#            v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.494e+33, -5.428e+23, -1.176e+14, -2.531e+04)
+#             v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.490e+35, -1.414e+26, -3.066e+16, -6.612e+06)
+#                          ║       ║       ║       ╙─ 0xcac9c8c7'c6c5c4c3'c2c1c0bf'bebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdad9d8d7'd6d5d4d3'd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xeae9e8e7'e6e5e4e3'e2e1e0df'dedddcdb <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfaf9f8f7'f6f5f4f3'f2f1f0ef'eeedeceb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c40000f		ld4 {v15.8b, v16.8b, v17.8b, v18.8b}, [x0]
-#   v15: 0x00000000000000001c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000001d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
+#            d15:                 0x1c18000000ff8501
+#            d16:                 0x1d19000000fe00ff
+#            d17:                 0x1e1a000000ff0002
+#            d18:                 0x1f1b17000000ff00
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cc2003b		ld4 {v27.8b, v28.8b, v29.8b, v30.8b}, [x1], x2
-#   v27: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a16120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x17130f0b0703fffb
+#            d28:                 0x1814100c080400fc
+#            d29:                 0x1915110d090501fd
+#            d30:                 0x1a16120e0a0602fe
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfe'fd'fc'fb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0cdf0025		ld4 {v5.8b, v6.8b, v7.8b, v8.8b}, [x1], #32
-#    v5: 0x000000000000000016120e0a0602fefa <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x16120e0a0602fefa
+#             d6:                 0x17130f0b0703fffb
+#             d7:                 0x1814100c080400fc
+#             d8:                 0x1915110d090501fd
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfd'fc'fb'fa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x01'00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x05'04'03'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x09'08'07'06 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0d'0c'0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x11'10'0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14'13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x19'18'17'16 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c400419		ld4 {v25.8h, v26.8h, v27.8h, v28.8h}, [x0]
-#   v25: 0x393831302928212019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a33322b2a23221b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35342d2c25241d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831302928212019180000feffff01 (0.6523, 0.1621, 0.04028, 0.01001, 0.002487, 0.000, nan, nan)
+#            v26: 0x3b3a33322b2a23221b1a000000ff0002 (0.9033, 0.2249, 0.05597, 0.01393, 0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            v27: 0x3d3c35342d2c25241d1c000000000085 (1.309, 0.3252, 0.08081, 0.02008, 0.004990, 0.000, 0.000, 7.927e-06)
+#            v28: 0x3f3e37362f2e27261f1e17000000ff00 (1.811, 0.4507, 0.1122, 0.02792, 0.006950, 0.001709, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726'2524'2322'2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2f2e'2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3736'3534'3332'3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e'3d3c'3b3a'3938 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cc20422		ld4 {v2.8h, v3.8h, v4.8h, v5.8h}, [x1], x2
-#    v2: 0x53524b4a43423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x55544d4c45443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x57564f4e47463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x59585150494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x53524b4a43423b3a33322b2a23221b1a (58.56, 14.58, 3.629, 0.9033, 0.2249, 0.05597, 0.01393, 0.003468)
+#             v3: 0x55544d4c45443d3c35342d2c25241d1c (85.25, 21.19, 5.266, 1.309, 0.3252, 0.08081, 0.02008, 0.004990)
+#             v4: 0x57564f4e47463f3e37362f2e27261f1e (117.4, 29.22, 7.273, 1.811, 0.4507, 0.1122, 0.02792, 0.006950)
+#             v5: 0x59585150494841403938313029282120 (171.0, 42.50, 10.56, 2.625, 0.6523, 0.1621, 0.04028, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120'1f1e'1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2928'2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3130'2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3938'3736'3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4140'3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948'4746'4544'4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5150'4f4e'4d4c'4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5958'5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4cdf0434		ld4 {v20.8h, v21.8h, v22.8h, v23.8h}, [x1], #64
-#   v20: 0x52514a4942413a3932312a2922211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2b24231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d26251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f2827201f <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2922211a19 (50.53, 12.57, 3.127, 0.7778, 0.1935, 0.04813, 0.01197, 0.002977)
+#            v21: 0x54534c4b44433c3b34332c2b24231c1b (69.19, 17.17, 4.262, 1.058, 0.2625, 0.06512, 0.01616, 0.004009)
+#            v22: 0x56554e4d46453e3d36352e2d26251e1d (101.3, 25.20, 6.270, 1.560, 0.3879, 0.09650, 0.02400, 0.005970)
+#            v23: 0x5857504f4847403f3837302f2827201f (138.9, 34.47, 8.555, 2.123, 0.5269, 0.1307, 0.03244, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f'1e1d'1c1b'1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2827'2625'2423'2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x302f'2e2d'2c2b'2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3837'3635'3433'3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x403f'3e3d'3c3b'3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847'4645'4443'4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x504f'4e4d'4c4b'4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5857'5655'5453'5251 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d602c14		ld4 {v20.b, v21.b, v22.b, v23.b}[3], [x0]
-#   v20: 0x52514a4942413a3932312a2901211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2bff231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d02251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f0027201f <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2901211a19
+#            v21: 0x54534c4b44433c3b34332c2bff231c1b
+#            v22: 0x56554e4d46453e3d36352e2d02251e1d
+#            v23: 0x5857504f4847403f3837302f0027201f
+#                                            ╙─────── 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de22c2c		ld4 {v12.b, v13.b, v14.b, v15.b}[3], [x1], x2
-#   v12: 0x0000000000000000fbfbfbfb59fbfbfb <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65a5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000001c1800005cff8501 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000fbfbfbfb59fbfbfb
+#            v13: 0x81807b7a75746f6ea9a8a7a65a5c5756
+#            v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6
+#            v15: 0x00000000000000001c1800005cff8501
+#                                            ╙─────── 0x5c'5b'5a'59 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dff383b		ld4 {v27.b, v28.b, v29.b, v30.b}[6], [x1], #4
-#   v27: 0x3d3c35342d2c25241d58000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f5917000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000195a110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a5b120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x3d3c35342d2c25241d58000000000085
+#            v28: 0x3f3e37362f2e27261f5917000000ff00
+#            v29: 0x0000000000000000195a110d090501fd
+#            v30: 0x00000000000000001a5b120e0a0602fe
+#                                      ╙───────────── 0x5b'5a'59'58 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60a41c		ld4 {v28.d, v29.d, v30.d, v31.d}[1], [x0]
-#   v28: 0xff0000850002ff011f5917000000ff00 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000fffeff195a110d090501fd (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17000000000000001a5b120e0a0602fe (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff0000850002ff011f5917000000ff00 (-5.487e+303, ...)
+#            v29: 0x0000000000fffeff195a110d090501fd (8.289e-317, ...)
+#            v30: 0x17000000000000001a5b120e0a0602fe (6.689e-198, ...)
+#            v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.568e-159, ...)
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2a42f		ld4 {v15.d, v16.d, v17.d, v18.d}[1], [x1], x2
-#   v15: 0x636261605f5e5d5c1c1800005cff8501 (5.54935e+170, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6b6a6968676665641d19000000fe00ff (2.71346e+209, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7b7a7978777675741f1b17000000ff00 (6.29888e+286, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x636261605f5e5d5c1c1800005cff8501 (5.549e+170, ...)
+#            v16: 0x6b6a6968676665641d19000000fe00ff (2.713e+209, ...)
+#            v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.290e+248, ...)
+#            v18: 0x7b7a7978777675741f1b17000000ff00 (6.299e+286, ...)
+#                                  ╙───────────────── 0x7b7a797877767574'737271706f6e6d6c'6b6a696867666564'636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffa430		ld4 {v16.d, v17.d, v18.d, v19.d}[1], [x1], #32
-#   v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.00514e+165, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x6a696867666564631e1a000000ff0002 (3.98304e+204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x7a797877767574731f1e17000000ff00 (9.24687e+281, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.005e+165, ...)
+#            v17: 0x6a696867666564631e1a000000ff0002 (3.983e+204, ...)
+#            v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.861e+243, ...)
+#            v19: 0x7a797877767574731f1e17000000ff00 (9.247e+281, ...)
+#                                  ╙───────────────── 0x7a79787776757473'7271706f6e6d6c6b'6a69686766656463'6261605f5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d607002		ld4 {v2.h, v3.h, v4.h, v5.h}[6], [x0]
-#    v2: 0x5352ff0143423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x5554000245443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x5756008547463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5958ff00494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x5352ff0143423b3a33322b2a23221b1a (..., nan, ...)
+#             v3: 0x5554000245443d3c35342d2c25241d1c (..., 1.192e-07, ...)
+#             v4: 0x5756008547463f3e37362f2e27261f1e (..., 7.927e-06, ...)
+#             v5: 0x5958ff00494841403938313029282120 (..., nan, ...)
+#                          ╙───────────────────────── 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de27825		ld4 {v5.h, v6.h, v7.h, v8.h}[3], [x1], x2
-#    v5: 0x5958ff00494841407c7b313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000007e7d0f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5958ff00494841407c7b313029282120 (..., nan, ...)
+#             v6: 0x00000000000000007e7d0f0b0703fffb (..., nan, ...)
+#             v7: 0x0000000000000000807f100c080400fc (..., -7.570e-06, ...)
+#             v8: 0x00000000000000008281110d090501fd (..., -3.821e-05, ...)
+#                                      ╙───────────── 0x8281'807f'7e7d'7c7b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dff7027		ld4 {v7.h, v8.h, v9.h, v10.h}[6], [x1], #8
-#    v7: 0x00007b7a00000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29281b1a191800fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x00007b7a00000000807f100c080400fc (..., 6.125e+04, ...)
+#             v8: 0x00007d7c000000008281110d090501fd (..., nan, ...)
+#             v9: 0x3b3a7f7e2b2a29281b1a191800fffeff (..., nan, ...)
+#            v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 (..., -2.289e-05, ...)
+#                          ╙───────────────────────── 0x8180'7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60b006		ld4 {v6.s, v7.s, v8.s, v9.s}[1], [x0]
-#    v6: 0x00000000000000000002ff010703fffb (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00007b7a00000000ff000085080400fc (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c0000000000fffeff090501fd (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x00000000000000000002ff010703fffb (..., 2.751e-40, ...)
+#             v7: 0x00007b7a00000000ff000085080400fc (..., -1.701e+38, ...)
+#             v8: 0x00007d7c0000000000fffeff090501fd (..., 2.351e-38, ...)
+#             v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2a039		ld4 {v25.s, v26.s, v27.s, v28.s}[2], [x1], x2
-#   v25: 0x393831308584838219180000feffff01 (..., -1.24615e-35, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.28683e-33, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.66176e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.28077e-28, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831308584838219180000feffff01 (..., -1.246e-35, ...)
+#            v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.287e-33, ...)
+#            v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.662e-31, ...)
+#            v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.281e-28, ...)
+#                                  ╙───────────────── 0x91908f8e'8d8c8b8a'89888786'85848382 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffb028		ld4 {v8.s, v9.s, v10.s, v11.s}[3], [x1], #16
-#    v8: 0x848382810000000000fffeff090501fd (-3.09178e-36, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x888786852b2a29280000000000fffeff (-8.15664e-34, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x908f8e8d00000000fafafafafafafafa (-5.66232e-29, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v8: 0x848382810000000000fffeff090501fd (-3.092e-36, ...)
+#             v9: 0x888786852b2a29280000000000fffeff (-8.157e-34, ...)
+#            v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.150e-31, ...)
+#            v11: 0x908f8e8d00000000fafafafafafafafa (-5.662e-29, ...)
+#                          ╙───────────────────────── 0x908f8e8d'8c8b8a89'88878685'84838281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60e00e		ld4r {v14.16b, v15.16b, v16.16b, v17.16b}, [x0]
-#   v14: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x01010101010101010101010101010101
+#            v15: 0xffffffffffffffffffffffffffffffff
+#            v16: 0x02020202020202020202020202020202
+#            v17: 0x00000000000000000000000000000000
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2e02d		ld4r {v13.16b, v14.16b, v15.16b, v16.16b}, [x1], x2
-#   v13: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x94949494949494949494949494949494 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x91919191919191919191919191919191
+#            v14: 0x92929292929292929292929292929292
+#            v15: 0x93939393939393939393939393939393
+#            v16: 0x94949494949494949494949494949494
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x94'93'92'91 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffe029		ld4r {v9.16b, v10.16b, v11.16b, v12.16b}, [x1], #4
-#    v9: 0x90909090909090909090909090909090 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             v9: 0x90909090909090909090909090909090
+#            v10: 0x91919191919191919191919191919191
+#            v11: 0x92929292929292929292929292929292
+#            v12: 0x93939393939393939393939393939393
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x93'92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60ec08		ld4r {v8.1d, v9.1d, v10.1d, v11.1d}, [x0]
-#    v8: 0x0000000000000000ff0000850002ff01 (d8: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000fffeff (d9: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000001700000000000000 (d10: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000001f1e1d1c1b1a1918 (d11: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xff0000850002ff01 (-5.487e+303)
+#             d9:                 0x0000000000fffeff (8.289e-317)
+#            d10:                 0x1700000000000000 (6.689e-198)
+#            d11:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2ec24		ld4r {v4.1d, v5.1d, v6.1d, v7.1d}, [x1], x2
-#    v4: 0x00000000000000009b9a999897969594 (d4: -1.05028e-175) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000a3a2a1a09f9e9d9c (d5: -5.00653e-137) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000abaaa9a8a7a6a5a4 (d6: -2.43801e-98) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000b3b2b1b0afaeadac (d7: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x9b9a999897969594 (-1.050e-175)
+#             d5:                 0xa3a2a1a09f9e9d9c (-5.007e-137)
+#             d6:                 0xabaaa9a8a7a6a5a4 (-2.438e-98)
+#             d7:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac'abaaa9a8a7a6a5a4'a3a2a1a09f9e9d9c'9b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffec3a		ld4r {v26.1d, v27.1d, v28.1d, v29.1d}, [x1], #32
-#   v26: 0x00000000000000009a99989796959493 (d26: -1.54211e-180) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000a2a1a09f9e9d9c9b (d27: -7.22772e-142) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000aaa9a8a7a6a5a4a3 (d28: -3.58004e-103) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000b2b1b0afaeadacab (d29: -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x9a99989796959493 (-1.542e-180)
+#            d27:                 0xa2a1a09f9e9d9c9b (-7.228e-142)
+#            d28:                 0xaaa9a8a7a6a5a4a3 (-3.580e-103)
+#            d29:                 0xb2b1b0afaeadacab (-1.680e-64)
+#                                                  ╙─ 0xb2b1b0afaeadacab'aaa9a8a7a6a5a4a3'a2a1a09f9e9d9c9b'9a99989796959493 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60ec13		ld4r {v19.2d, v20.2d, v21.2d, v22.2d}, [x0]
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v20: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v21: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#            v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.568e-159, 8.568e-159)
+#                                  ╙───────────────╨─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2ec3c		ld4r {v28.2d, v29.2d, v30.2d, v31.2d}, [x1], x2
-#   v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.31108e-26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.90391e+13, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.92941e+52, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.07279e+90, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.311e-26, -8.311e-26)
+#            v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.904e+13, -3.904e+13)
+#            v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.929e+52, -1.929e+52)
+#            v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.073e+90, -9.073e+90)
+#                                  ╙───────────────╨─ 0xd2d1d0cfcecdcccb'cac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffec2f		ld4r {v15.2d, v16.2d, v17.2d, v18.2d}, [x1], #32
-#   v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.21867e-30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.62003e+08, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.82942e+47, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.30639e+86, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.219e-30, -1.219e-30)
+#            v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.620e+08, -5.620e+08)
+#            v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.829e+47, -2.829e+47)
+#            v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.306e+86, -1.306e+86)
+#                                  ╙───────────────╨─ 0xd1d0cfcecdcccbca'c9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60e81f		ld4r {v31.2s, v0.2s, v1.2s, v2.2s}, [x0]
-#   v31: 0x00000000000000000002ff010002ff01 (s31: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000ff000085ff000085 (s0: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x000000000000000000fffeff00fffeff (s1: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000000 (s2: 0.00000) <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#             d0:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#             d1:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#             d2:                 0x0000000000000000 (0.000, 0.000)
+#                                          ╙───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2e83c		ld4r {v28.2s, v29.2s, v30.2s, v31.2s}, [x1], x2
-#   v28: 0x0000000000000000d5d4d3d2d5d4d3d2 (s28: -2.92508e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000d9d8d7d6d9d8d7d6 (s29: -7.62949e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000dddcdbdadddcdbda (s30: -1.98932e+18) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000e1e0dfdee1e0dfde (s31: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xd5d4d3d2d5d4d3d2 (-2.925e+13, -2.925e+13)
+#            d29:                 0xd9d8d7d6d9d8d7d6 (-7.629e+15, -7.629e+15)
+#            d30:                 0xdddcdbdadddcdbda (-1.989e+18, -1.989e+18)
+#            d31:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#                                          ╙───────╨─ 0xe1e0dfde'dddcdbda'd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffe82b		ld4r {v11.2s, v12.2s, v13.2s, v14.2s}, [x1], #16
-#   v11: 0x0000000000000000d4d3d2d1d4d3d2d1 (s11: -7.27820e+12) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000d8d7d6d5d8d7d6d5 (s12: -1.89854e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000dcdbdad9dcdbdad9 (s13: -4.95069e+17) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000e0dfdedde0dfdedd (s14: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xd4d3d2d1d4d3d2d1 (-7.278e+12, -7.278e+12)
+#            d12:                 0xd8d7d6d5d8d7d6d5 (-1.899e+15, -1.899e+15)
+#            d13:                 0xdcdbdad9dcdbdad9 (-4.951e+17, -4.951e+17)
+#            d14:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#                                          ╙───────╨─ 0xe0dfdedd'dcdbdad9'd8d7d6d5'd4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60e413		ld4r {v19.4h, v20.4h, v21.4h, v22.4h}, [x0]
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d20:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d21:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            d22:                 0xff00ff00ff00ff00 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2e436		ld4r {v22.4h, v23.4h, v24.4h, v25.4h}, [x1], x2
-#   v22: 0x0000000000000000e2e1e2e1e2e1e2e1 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e4e3e4e3e4e3e4e3 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e6e5e6e5e6e5e6e5 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e8e7e8e7e8e7 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xe2e1e2e1e2e1e2e1 (-880.5, -880.5, -880.5, -880.5)
+#            d23:                 0xe4e3e4e3e4e3e4e3 (-1251., -1251., -1251., -1251.)
+#            d24:                 0xe6e5e6e5e6e5e6e5 (-1765., -1765., -1765., -1765.)
+#            d25:                 0xe8e7e8e7e8e7e8e7 (-2510., -2510., -2510., -2510.)
+#                                      ╙───╨───╨───╨─ 0xe8e7'e6e5'e4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffe434		ld4r {v20.4h, v21.4h, v22.4h, v23.4h}, [x1], #8
-#   v20: 0x0000000000000000e1e0e1e0e1e0e1e0 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000e3e2e3e2e3e2e3e2 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000e5e4e5e4e5e4e5e4 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e7e6e7e6e7e6e7e6 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xe1e0e1e0e1e0e1e0 (-752.0, -752.0, -752.0, -752.0)
+#            d21:                 0xe3e2e3e2e3e2e3e2 (-1009., -1009., -1009., -1009.)
+#            d22:                 0xe5e4e5e4e5e4e5e4 (-1508., -1508., -1508., -1508.)
+#            d23:                 0xe7e6e7e6e7e6e7e6 (-2022., -2022., -2022., -2022.)
+#                                      ╙───╨───╨───╨─ 0xe7e6'e5e4'e3e2'e1e0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60e810		ld4r {v16.4s, v17.4s, v18.4s, v19.4s}, [x0]
-#   v16: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v17: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v18: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#            v19: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ╙───────╨───────╨───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2e839		ld4r {v25.4s, v26.4s, v27.4s, v28.4s}, [x1], x2
-#   v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (..., -5.67986e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xefeeedecefeeedecefeeedecefeeedec (..., -1.47890e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (..., -3.84962e+31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (..., -1.00179e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (-5.680e+26, -5.680e+26, -5.680e+26, -5.680e+26)
+#            v26: 0xefeeedecefeeedecefeeedecefeeedec (-1.479e+29, -1.479e+29, -1.479e+29, -1.479e+29)
+#            v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (-3.850e+31, -3.850e+31, -3.850e+31, -3.850e+31)
+#            v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (-1.002e+34, -1.002e+34, -1.002e+34, -1.002e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf7f6f5f4'f3f2f1f0'efeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffe837		ld4r {v23.4s, v24.4s, v25.4s, v26.4s}, [x1], #16
-#   v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (..., -1.41390e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xeeedecebeeedecebeeedecebeeedeceb (..., -3.68172e+28, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (..., -9.58428e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (..., -2.49430e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (-1.414e+26, -1.414e+26, -1.414e+26, -1.414e+26)
+#            v24: 0xeeedecebeeedecebeeedecebeeedeceb (-3.682e+28, -3.682e+28, -3.682e+28, -3.682e+28)
+#            v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (-9.584e+30, -9.584e+30, -9.584e+30, -9.584e+30)
+#            v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (-2.494e+33, -2.494e+33, -2.494e+33, -2.494e+33)
+#                          ╙───────╨───────╨───────╨─ 0xf6f5f4f3'f2f1f0ef'eeedeceb'eae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d60e016		ld4r {v22.8b, v23.8b, v24.8b, v25.8b}, [x0]
-#   v22: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x0101010101010101
+#            d23:                 0xffffffffffffffff
+#            d24:                 0x0202020202020202
+#            d25:                 0x0000000000000000
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0de2e03b		ld4r {v27.8b, v28.8b, v29.8b, v30.8b}, [x1], x2
-#   v27: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xf7f7f7f7f7f7f7f7
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8'f7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dffe03d		ld4r {v29.8b, v30.8b, v31.8b, v0.8b}, [x1], #4
-#   v29: 0x0000000000000000f6f6f6f6f6f6f6f6 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xf6f6f6f6f6f6f6f6
+#            d30:                 0xf7f7f7f7f7f7f7f7
+#            d31:                 0xf8f8f8f8f8f8f8f8
+#             d0:                 0xf9f9f9f9f9f9f9f9
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xf9'f8'f7'f6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d60e41c		ld4r {v28.8h, v29.8h, v30.8h, v31.8h}, [x0]
-#   v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v29: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            v30: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4de2e439		ld4r {v25.8h, v26.8h, v27.8h, v28.8h}, [x1], x2
-#   v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x01000100010001000100010001000100 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#            v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v27: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v28: 0x01000100010001000100010001000100 (1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0100'fffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dffe436		ld4r {v22.8h, v23.8h, v24.8h, v25.8h}, [x1], #8
-#   v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 (-5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04)
+#            v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4e3a94fd		mla v29.16b, v7.16b, v26.16b
-#   v29: 0x0002000200020002e73aed42f34af952
+#            v29: 0x0002000200020002e73aed42f34af952
 0x~~~~~~~~~~~~~~~~  0eae9486		mla v6.2s, v4.2s, v14.2s
-#    v6: 0x0000000000000000dcbb11e0e6481e68
+#             v6: 0x0000000000000000dcbb11e0e6481e68
 0x~~~~~~~~~~~~~~~~  2f800969		mla v9.2s, v11.2s, v0.s[2]
-#    v9: 0x00000000000000000000000000fffeff
+#             v9: 0x00000000000000000000000000fffeff
 0x~~~~~~~~~~~~~~~~  0e799625		mla v5.4h, v17.4h, v25.4h
-#    v5: 0x0000000000000000a4a2261ba09e2217
+#             v5: 0x0000000000000000a4a2261ba09e2217
 0x~~~~~~~~~~~~~~~~  2f7b00f8		mla v24.4h, v7.4h, v11.h[3]
-#   v24: 0x000000000000000082b3330de36793c1
+#            v24: 0x000000000000000082b3330de36793c1
 0x~~~~~~~~~~~~~~~~  4ea4946c		mla v12.4s, v3.4s, v4.4s
-#   v12: 0x00000000000000006f49f4f5e911f705
+#            v12: 0x00000000000000006f49f4f5e911f705
 0x~~~~~~~~~~~~~~~~  6fa708ea		mla v10.4s, v7.4s, v7.s[3]
-#   v10: 0x00000000000000001700000000000000
+#            v10: 0x00000000000000001700000000000000
 0x~~~~~~~~~~~~~~~~  0e299603		mla v3.8b, v16.8b, v9.8b
-#    v3: 0x000000000000000035342d2c25221f1b
+#             v3: 0x000000000000000035342d2c25221f1b
 0x~~~~~~~~~~~~~~~~  4e7296d3		mla v19.8h, v22.8h, v18.8h
-#   v19: 0xfe070c07fe070c07fe070c07fe070c07
+#            v19: 0xfe070c07fe070c07fe070c07fe070c07
 0x~~~~~~~~~~~~~~~~  6f400046		mla v6.8h, v2.8h, v0.h[0]
-#    v6: 0x0000000000000000dcbb11e0e6481e68
+#             v6: 0x0000000000000000dcbb11e0e6481e68
 0x~~~~~~~~~~~~~~~~  6e2b9557		mls v23.16b, v10.16b, v11.16b
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
 0x~~~~~~~~~~~~~~~~  2eb697ee		mls v14.2s, v31.2s, v22.2s
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
 0x~~~~~~~~~~~~~~~~  2fa149bc		mls v28.2s, v13.2s, v1.s[3]
-#   v28: 0x00000000000000000100010001000100
+#            v28: 0x00000000000000000100010001000100
 0x~~~~~~~~~~~~~~~~  2e6d9662		mls v2.4h, v19.4h, v13.4h
-#    v2: 0x0000000000000000ac03d811ac03d811
+#             v2: 0x0000000000000000ac03d811ac03d811
 0x~~~~~~~~~~~~~~~~  2f6c49f2		mls v18.4h, v15.4h, v12.h[6]
-#   v18: 0x000000000000000000fffeff00fffeff
+#            v18: 0x000000000000000000fffeff00fffeff
 0x~~~~~~~~~~~~~~~~  6eb09566		mls v6.4s, v11.4s, v16.4s
-#    v6: 0x00000000000000006347100f6cd41c97
+#             v6: 0x00000000000000006347100f6cd41c97
 0x~~~~~~~~~~~~~~~~  6f8a4a17		mls v23.4s, v16.4s, v10.s[2]
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
 0x~~~~~~~~~~~~~~~~  2e3795ba		mls v26.8b, v13.8b, v23.8b
-#   v26: 0x0000000000000000bd4365396d436539
+#            v26: 0x0000000000000000bd4365396d436539
 0x~~~~~~~~~~~~~~~~  6e6c954a		mls v10.8h, v10.8h, v12.8h
-#   v10: 0x00000000000000008800000000000000
+#            v10: 0x00000000000000008800000000000000
 0x~~~~~~~~~~~~~~~~  6f7e480e		mls v14.8h, v0.8h, v14.h[7]
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
 0x~~~~~~~~~~~~~~~~  5e070436		mov b22, v1.b[3]
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e1805a7		mov d7, v13.d[1]
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e0a06ba		mov h26, v21.h[2]
-#   v26: 0x0000000000000000000000000000e3e2
+#            v26: 0x0000000000000000000000000000e3e2
 0x~~~~~~~~~~~~~~~~  5e04067a		mov s26, v19.s[0]
-#   v26: 0x000000000000000000000000fe070c07
+#            v26: 0x000000000000000000000000fe070c07
 0x~~~~~~~~~~~~~~~~  4eab1d7a		mov v26.16b, v11.16b
-#   v26: 0x0000000000000000d4d3d2d1d4d3d2d1
+#            v26: 0x0000000000000000d4d3d2d1d4d3d2d1
 0x~~~~~~~~~~~~~~~~  0ea01c14		mov v20.8b, v0.8b
-#   v20: 0x0000000000000000f9f9f9f9f9f9f9f9
+#            v20: 0x0000000000000000f9f9f9f9f9f9f9f9
 0x~~~~~~~~~~~~~~~~  6e1b24d3		mov v19.b[13], v6.b[4]
-#   v19: 0xfe070f07fe070c07fe070c07fe070c07
+#            v19: 0xfe070f07fe070c07fe070c07fe070c07
 0x~~~~~~~~~~~~~~~~  4e1b1e64		mov v4.b[13], w19
-#    v4: 0x00000000000000009b9a999897969594
+#             v4: 0x00000000000000009b9a999897969594
 0x~~~~~~~~~~~~~~~~  6e18050b		mov v11.d[1], v8.d[0]
-#   v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
+#            v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
 0x~~~~~~~~~~~~~~~~  4e081fc3		mov v3.d[0], x30
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e12757d		mov v29.h[4], v11.h[7]
-#   v29: 0x000200020002ff00e73aed42f34af952
+#            v29: 0x000200020002ff00e73aed42f34af952
 0x~~~~~~~~~~~~~~~~  4e1a1cc2		mov v2.h[6], w6
-#    v2: 0x0000000c00000000ac03d811ac03d811
+#             v2: 0x0000ffff00000000ac03d811ac03d811
 0x~~~~~~~~~~~~~~~~  6e0444b6		mov v22.s[0], v5.s[2]
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e1c1d18		mov v24.s[3], w8
-#   v24: 0x000000000000000082b3330de36793c1
+#            v24: 0x000000000000000082b3330de36793c1
 0x~~~~~~~~~~~~~~~~  0e1c3c32		mov w18, v1.s[3]
-#   x18: 0x0000000000000000
+#            x18: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  4e083ebc		mov x28, v21.d[0]
-#   x28: 0xe3e2e3e2e3e2e3e2
+#            x28: 0xe3e2e3e2e3e2e3e2
 0x~~~~~~~~~~~~~~~~  2f03e4f8		movi d24, #0xffff0000ffffff
-#   v24: 0x000000000000000000ffff0000ffffff
+#            v24: 0x000000000000000000ffff0000ffffff
 0x~~~~~~~~~~~~~~~~  4f04e41d		movi v29.16b, #0x80
-#   v29: 0x80808080808080808080808080808080
+#            v29: 0x80808080808080808080808080808080
 0x~~~~~~~~~~~~~~~~  6f06e6cc		movi v12.2d, #0xffff00ff00ffff00
-#   v12: 0xffff00ff00ffff00ffff00ff00ffff00
+#            v12: 0xffff00ff00ffff00ffff00ff00ffff00
 0x~~~~~~~~~~~~~~~~  0f07658c		movi v12.2s, #0xec, lsl #24
-#   v12: 0x0000000000000000ec000000ec000000
+#            v12: 0x0000000000000000ec000000ec000000
 0x~~~~~~~~~~~~~~~~  0f02d58a		movi v10.2s, #0x4c, msl #16
-#   v10: 0x0000000000000000004cffff004cffff
+#            v10: 0x0000000000000000004cffff004cffff
 0x~~~~~~~~~~~~~~~~  0f06841a		movi v26.4h, #0xc0, lsl #0
-#   v26: 0x000000000000000000c000c000c000c0
+#            v26: 0x000000000000000000c000c000c000c0
 0x~~~~~~~~~~~~~~~~  4f044718		movi v24.4s, #0x98, lsl #16
-#   v24: 0x00980000009800000098000000980000
+#            v24: 0x00980000009800000098000000980000
 0x~~~~~~~~~~~~~~~~  4f06d7c1		movi v1.4s, #0xde, msl #16
-#    v1: 0x00deffff00deffff00deffff00deffff
+#             v1: 0x00deffff00deffff00deffff00deffff
 0x~~~~~~~~~~~~~~~~  0f02e5b5		movi v21.8b, #0x4d
-#   v21: 0x00000000000000004d4d4d4d4d4d4d4d
+#            v21: 0x00000000000000004d4d4d4d4d4d4d4d
 0x~~~~~~~~~~~~~~~~  4f03853d		movi v29.8h, #0x69, lsl #0
-#   v29: 0x00690069006900690069006900690069
+#            v29: 0x00690069006900690069006900690069
 0x~~~~~~~~~~~~~~~~  4e319de1		mul v1.16b, v15.16b, v17.16b
-#    v1: 0x4700008e4b00007a4700008e4b00007a
+#             v1: 0x4700008e4b00007a4700008e4b00007a
 0x~~~~~~~~~~~~~~~~  0ebd9e75		mul v21.2s, v19.2s, v29.2s
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
 0x~~~~~~~~~~~~~~~~  0f8380b3		mul v19.2s, v5.2s, v3.s[0]
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e629d7d		mul v29.4h, v11.4h, v2.4h
-#   v29: 0x0000000000000000427957e1427957e1
+#            v29: 0x0000000000000000427957e1427957e1
 0x~~~~~~~~~~~~~~~~  0f4080e2		mul v2.4h, v7.4h, v0.h[0]
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eb09f59		mul v25.4s, v26.4s, v16.4s
-#   v25: 0x000000000000000042ff40c042ff40c0
+#            v25: 0x000000000000000042ff40c042ff40c0
 0x~~~~~~~~~~~~~~~~  4f8f88da		mul v26.4s, v6.4s, v15.s[2]
-#   v26: 0x00000000000000009d2fa76ed8a575fe
+#            v26: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  0e3f9deb		mul v11.8b, v15.8b, v31.8b
-#   v11: 0x0000000000000000470049004b004d00
+#            v11: 0x0000000000000000470049004b004d00
 0x~~~~~~~~~~~~~~~~  4e6f9ff4		mul v20.8h, v31.8h, v15.8h
-#   v20: 0x48004a004c004e0048004a004c004e00
+#            v20: 0x48004a004c004e0048004a004c004e00
 0x~~~~~~~~~~~~~~~~  4f4988bd		mul v29.8h, v5.8h, v9.h[4]
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e205aad		mvn v13.16b, v21.16b
-#   v13: 0xffffffffffffffffe03d1120e03d1120
+#            v13: 0xffffffffffffffffe03d1120e03d1120
 0x~~~~~~~~~~~~~~~~  2e205a7c		mvn v28.8b, v19.8b
-#   v28: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2f052719		mvni v25.2s, #0xb8, lsl #8
-#   v25: 0x0000000000000000ffff47ffffff47ff
+#            v25: 0x0000000000000000ffff47ffffff47ff
 0x~~~~~~~~~~~~~~~~  2f03d591		mvni v17.2s, #0x6c, msl #16
-#   v17: 0x0000000000000000ff930000ff930000
+#            v17: 0x0000000000000000ff930000ff930000
 0x~~~~~~~~~~~~~~~~  2f02851d		mvni v29.4h, #0x48, lsl #0
-#   v29: 0x0000000000000000ffb7ffb7ffb7ffb7
+#            v29: 0x0000000000000000ffb7ffb7ffb7ffb7
 0x~~~~~~~~~~~~~~~~  6f034754		mvni v20.4s, #0x7a, lsl #16
-#   v20: 0xff85ffffff85ffffff85ffffff85ffff
+#            v20: 0xff85ffffff85ffffff85ffffff85ffff
 0x~~~~~~~~~~~~~~~~  6f00c7c0		mvni v0.4s, #0x1e, msl #8
-#    v0: 0xffffe100ffffe100ffffe100ffffe100
+#             v0: 0xffffe100ffffe100ffffe100ffffe100
 0x~~~~~~~~~~~~~~~~  6f0187df		mvni v31.8h, #0x3e, lsl #0
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
 0x~~~~~~~~~~~~~~~~  7ee0b979		neg d25, d11
-#   v25: 0x0000000000000000b8ffb6ffb4ffb300
+#            v25: 0x0000000000000000b8ffb6ffb4ffb300
 0x~~~~~~~~~~~~~~~~  6e20b924		neg v4.16b, v9.16b
-#    v4: 0x00000000000000000000000000010201
+#             v4: 0x00000000000000000000000000010201
 0x~~~~~~~~~~~~~~~~  6ee0bb2b		neg v11.2d, v25.2d
-#   v11: 0x0000000000000000470049004b004d00
+#            v11: 0x0000000000000000470049004b004d00
 0x~~~~~~~~~~~~~~~~  2ea0ba47		neg v7.2s, v18.2s
-#    v7: 0x0000000000000000ff000101ff000101
+#             v7: 0x0000000000000000ff000101ff000101
 0x~~~~~~~~~~~~~~~~  2e60b9e7		neg v7.4h, v15.4h
-#    v7: 0x00000000000000004648484a4a4c4c4e
+#             v7: 0x00000000000000004648484a4a4c4c4e
 0x~~~~~~~~~~~~~~~~  6ea0ba51		neg v17.4s, v18.4s
-#   v17: 0x0000000000000000ff000101ff000101
+#            v17: 0x0000000000000000ff000101ff000101
 0x~~~~~~~~~~~~~~~~  2e20ba34		neg v20.8b, v17.8b
-#   v20: 0x00000000000000000100ffff0100ffff
+#            v20: 0x00000000000000000100ffff0100ffff
 0x~~~~~~~~~~~~~~~~  6e60b960		neg v0.8h, v11.8h
-#    v0: 0x0000000000000000b900b700b500b300
+#             v0: 0x0000000000000000b900b700b500b300
 0x~~~~~~~~~~~~~~~~  4eff1d6d		orn v13.16b, v11.16b, v31.16b
-#   v13: 0x003e003e003e003e473e493e4b3e4d3e
+#            v13: 0x003e003e003e003e473e493e4b3e4d3e
 0x~~~~~~~~~~~~~~~~  0ef61e16		orn v22.8b, v16.8b, v22.8b
-#   v22: 0x0000000000000000ffffffffffffffff
+#            v22: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4eb71e31		orr v17.16b, v17.16b, v23.16b
-#   v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
+#            v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
 0x~~~~~~~~~~~~~~~~  0f071468		orr v8.2s, #0xe3, lsl #0
-#    v8: 0x0000000000000000ff0000e70002ffe3
+#             v8: 0x0000000000000000ff0000e70002ffe3
 0x~~~~~~~~~~~~~~~~  0f04b6eb		orr v11.4h, #0x97, lsl #8
-#   v11: 0x0000000000000000d700df00df00df00
+#            v11: 0x0000000000000000d700df00df00df00
 0x~~~~~~~~~~~~~~~~  4f051567		orr v7.4s, #0xab, lsl #0
-#    v7: 0x000000ab000000ab464848eb4a4c4cef
+#             v7: 0x000000ab000000ab464848eb4a4c4cef
 0x~~~~~~~~~~~~~~~~  0ea31c88		orr v8.8b, v4.8b, v3.8b
-#    v8: 0x00000000000000000000000000010201
+#             v8: 0x00000000000000000000000000010201
 0x~~~~~~~~~~~~~~~~  4f05b61f		orr v31.8h, #0xb0, lsl #8
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
 0x~~~~~~~~~~~~~~~~  6e379e4b		pmul v11.16b, v18.16b, v23.16b
-#   v11: 0x000000000000000000a9a8a900a9a8a9
+#            v11: 0x000000000000000000a9a8a900a9a8a9
 0x~~~~~~~~~~~~~~~~  2e259f08		pmul v8.8b, v24.8b, v5.8b
-#    v8: 0x00000000000000000030000000100000
+#             v8: 0x00000000000000000030000000100000
 0x~~~~~~~~~~~~~~~~  0e36e258		pmull v24.8h, v18.8b, v22.8b
-#   v24: 0x0000555555aa55550000555555aa5555
+#            v24: 0x0000555555aa55550000555555aa5555
 0x~~~~~~~~~~~~~~~~  4e35e06d		pmull2 v13.8h, v3.16b, v21.16b
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb54156		raddhn v22.2s, v10.2d, v21.2d
-#   v22: 0x000000000000000000000000200feede
+#            v22: 0x000000000000000000000000200feede
 0x~~~~~~~~~~~~~~~~  2e6d41a5		raddhn v5.4h, v13.4s, v13.4s
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e3a422a		raddhn v10.8b, v17.8h, v26.8h
-#   v10: 0x0000000000000000fdfdfdfd9da5d974
+#            v10: 0x0000000000000000fdfdfdfd9da5d974
 0x~~~~~~~~~~~~~~~~  6e2d43a9		raddhn2 v9.16b, v29.8h, v13.8h
-#    v9: 0x00000000000000000000000000fffeff
+#             v9: 0x00000000000000000000000000fffeff
 0x~~~~~~~~~~~~~~~~  6eba42fb		raddhn2 v27.4s, v23.2d, v26.2d
-#   v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
+#            v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
 0x~~~~~~~~~~~~~~~~  6e6743a0		raddhn2 v0.8h, v29.4s, v7.4s
-#    v0: 0x0000000046004a04b900b700b500b300
+#             v0: 0x0000000046004a04b900b700b500b300
 0x~~~~~~~~~~~~~~~~  6e6059f6		rbit v22.16b, v15.16b
-#   v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
+#            v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
 0x~~~~~~~~~~~~~~~~  2e60587e		rbit v30.8b, v3.8b
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e201b7f		rev16 v31.16b, v27.16b
-#   v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
+#            v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
 0x~~~~~~~~~~~~~~~~  0e201b4c		rev16 v12.8b, v26.8b
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
 0x~~~~~~~~~~~~~~~~  6e200885		rev32 v5.16b, v4.16b
-#    v5: 0x00000000000000000000000001020100
+#             v5: 0x00000000000000000000000001020100
 0x~~~~~~~~~~~~~~~~  2e600b50		rev32 v16.4h, v26.4h
-#   v16: 0x0000000000000000a76e9d2f75fed8a5
+#            v16: 0x0000000000000000a76e9d2f75fed8a5
 0x~~~~~~~~~~~~~~~~  2e200874		rev32 v20.8b, v3.8b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e600b94		rev32 v20.8h, v28.8h
-#   v20: 0x0000000000000000ffffffffffffffff
+#            v20: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e200a69		rev64 v9.16b, v19.16b
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea00a05		rev64 v5.2s, v16.2s
-#    v5: 0x000000000000000075fed8a5a76e9d2f
+#             v5: 0x000000000000000075fed8a5a76e9d2f
 0x~~~~~~~~~~~~~~~~  0e600be7		rev64 v7.4h, v31.4h
-#    v7: 0x0000000000000000fefffefffefffeff
+#             v7: 0x0000000000000000fefffefffefffeff
 0x~~~~~~~~~~~~~~~~  4ea00b4f		rev64 v15.4s, v26.4s
-#   v15: 0x0000000000000000d8a575fe9d2fa76e
+#            v15: 0x0000000000000000d8a575fe9d2fa76e
 0x~~~~~~~~~~~~~~~~  0e200939		rev64 v25.8b, v9.8b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6008ab		rev64 v11.8h, v5.8h
-#   v11: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  0f3f8db2		rshrn v18.2s, v13.2d, #1
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f1e8fd9		rshrn v25.4h, v30.4s, #2
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f088d2d		rshrn v13.8b, v9.8h, #8
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f088cc3		rshrn2 v3.16b, v6.8h, #8
-#    v3: 0x0000000063106d1d0000000000000000
+#             v3: 0x0000000063106d1d0000000000000000
 0x~~~~~~~~~~~~~~~~  4f278fa0		rshrn2 v0.4s, v29.2d, #25
-#    v0: 0x00000000dbffdc00b900b700b500b300
+#             v0: 0x00000000dbffdc00b900b700b500b300
 0x~~~~~~~~~~~~~~~~  4f118f5b		rshrn2 v27.8h, v26.4s, #15
-#   v27: 0x000000003a5fb14bfffefffefffefffe
+#            v27: 0x000000003a5fb14bfffefffefffefffe
 0x~~~~~~~~~~~~~~~~  2ea4632f		rsubhn v15.2s, v25.2d, v4.2d
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e636137		rsubhn v23.4h, v9.4s, v3.4s
-#   v23: 0x000000000000000000009cf000000000
+#            v23: 0x000000000000000000009cf000000000
 0x~~~~~~~~~~~~~~~~  2e3863c6		rsubhn v6.8b, v30.8h, v24.8h
-#    v6: 0x000000000000000000abaaab00abaaab
+#             v6: 0x000000000000000000abaaab00abaaab
 0x~~~~~~~~~~~~~~~~  6e346304		rsubhn2 v4.16b, v24.8h, v20.8h
-#    v4: 0x00555655005556550000000000010201
+#             v4: 0x00555655005556550000000000010201
 0x~~~~~~~~~~~~~~~~  6eb662e1		rsubhn2 v1.4s, v23.2d, v22.2d
-#    v1: 0x62e2129262e2af824700008e4b00007a
+#             v1: 0x62e2129262e2af824700008e4b00007a
 0x~~~~~~~~~~~~~~~~  6e746053		rsubhn2 v19.8h, v2.4s, v20.4s
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e397d3c		saba v28.16b, v9.16b, v25.16b
-#   v28: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0eb47f89		saba v9.2s, v28.2s, v20.2s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e767ed1		saba v17.4h, v22.4h, v22.4h
-#   v17: 0x0000000000000000fffbfdfbfffbfdfb
+#            v17: 0x0000000000000000fffbfdfbfffbfdfb
 0x~~~~~~~~~~~~~~~~  4ebb7cbd		saba v29.4s, v5.4s, v27.4s
-#   v29: 0x000000003a5fb14b75b7d85e58486286
+#            v29: 0x000000003a5fb14b75b7d85e58486286
 0x~~~~~~~~~~~~~~~~  0e327eb4		saba v20.8b, v21.8b, v18.8b
-#   v20: 0x00000000000000001e3d11201e3d1120
+#            v20: 0x00000000000000001e3d11201e3d1120
 0x~~~~~~~~~~~~~~~~  4e7e7e3b		saba v27.8h, v17.8h, v30.8h
-#   v27: 0x000000003a5fb14b0003020300030203
+#            v27: 0x000000003a5fb14b0003020300030203
 0x~~~~~~~~~~~~~~~~  0ea751b4		sabal v20.2d, v13.2s, v7.2s
-#   v20: 0x00000000010001011e3d11201f3d1221
+#            v20: 0x00000000010001011e3d11201f3d1221
 0x~~~~~~~~~~~~~~~~  0e645184		sabal v4.4s, v12.4h, v4.4h
-#    v4: 0x005585f20055c4fc00005a290001058d
+#             v4: 0x005585f20055c4fc00005a290001058d
 0x~~~~~~~~~~~~~~~~  0e345317		sabal v23.8h, v24.8b, v20.8b
-#   v23: 0x001e003d0044003500369d8300430034
+#            v23: 0x001e003d0044003500369d8300430034
 0x~~~~~~~~~~~~~~~~  4eb252ba		sabal2 v26.2d, v21.4s, v18.4s
-#   v26: 0x00000000000000009d2fa76ed8a575fe
+#            v26: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  4e68539b		sabal2 v27.4s, v28.8h, v8.8h
-#   v27: 0x000000003a5fb14b0003020300030203
+#            v27: 0x000000003a5fb14b0003020300030203
 0x~~~~~~~~~~~~~~~~  4e35520c		sabal2 v12.8h, v16.16b, v21.16b
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
 0x~~~~~~~~~~~~~~~~  4e2d75e0		sabd v0.16b, v15.16b, v13.16b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ebe74ef		sabd v15.2s, v7.2s, v30.2s
-#   v15: 0x00000000000000000100010101000101
+#            v15: 0x00000000000000000100010101000101
 0x~~~~~~~~~~~~~~~~  0e6c7631		sabd v17.4h, v17.4h, v12.4h
-#   v17: 0x00000000000000002fa270ac5a23007a
+#            v17: 0x00000000000000002fa270ac5a23007a
 0x~~~~~~~~~~~~~~~~  4eb67487		sabd v7.4s, v4.4s, v22.4s
-#    v7: 0x633798855327f7af62e26cbc52d33840
+#             v7: 0x633798855327f7af62e26cbc52d33840
 0x~~~~~~~~~~~~~~~~  0e3a7477		sabd v23.8b, v3.8b, v26.8b
-#   v23: 0x0000000000000000632f596e285b7502
+#            v23: 0x0000000000000000632f596e285b7502
 0x~~~~~~~~~~~~~~~~  4e657794		sabd v20.8h, v28.8h, v5.8h
-#   v20: 0x000000000000000075ff275a589162d0
+#            v20: 0x000000000000000075ff275a589162d0
 0x~~~~~~~~~~~~~~~~  0eb472db		sabdl v27.2d, v22.2s, v20.2s
-#   v27: 0x00000000d8e139ed00000000ab639583
+#            v27: 0x00000000d8e139ed00000000ab639583
 0x~~~~~~~~~~~~~~~~  0e77729f		sabdl v31.4s, v20.4h, v23.4h
-#   v31: 0x000012d0000032140000303600001232
+#            v31: 0x000012d0000032140000303600001232
 0x~~~~~~~~~~~~~~~~  0e3b7280		sabdl v0.8h, v20.8b, v27.8b
-#    v0: 0x007500010027005a00ad00d200cd004d
+#             v0: 0x007500010027005a00ad00d200cd004d
 0x~~~~~~~~~~~~~~~~  4ea3717f		sabdl2 v31.2d, v11.4s, v3.4s
-#   v31: 0x00000000000000000000000063106d1d
+#            v31: 0x00000000000000000000000063106d1d
 0x~~~~~~~~~~~~~~~~  4e7b717a		sabdl2 v26.4s, v11.8h, v27.8h
-#   v26: 0x00000000000000000000271f000039ed
+#            v26: 0x00000000000000000000271f000039ed
 0x~~~~~~~~~~~~~~~~  4e327106		sabdl2 v6.8h, v8.16b, v18.16b
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea06b48		sadalp v8.1d, v26.2s
-#    v8: 0x0000000000000000003000000010610c
+#             v8: 0x0000000000000000003000000010610c
 0x~~~~~~~~~~~~~~~~  4ea06b4c		sadalp v12.2d, v26.4s
-#   v12: 0x00000000000000002f9d6ea7a5d95f81
+#            v12: 0x00000000000000002f9d6ea7a5d95f81
 0x~~~~~~~~~~~~~~~~  0e606b4c		sadalp v12.2s, v26.4h
-#   v12: 0x00000000000000002f9d95c6a5d9996e
+#            v12: 0x00000000000000002f9d95c6a5d9996e
 0x~~~~~~~~~~~~~~~~  0e206824		sadalp v4.4h, v1.8b
-#    v4: 0x0000000000000000004759b7004c0607
+#             v4: 0x0000000000000000004759b7004c0607
 0x~~~~~~~~~~~~~~~~  4e606a2f		sadalp v15.4s, v17.8h
-#   v15: 0x00000000000000000100a14f01005b9e
+#            v15: 0x00000000000000000100a14f01005b9e
 0x~~~~~~~~~~~~~~~~  4e206b35		sadalp v21.8h, v25.16b
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
 0x~~~~~~~~~~~~~~~~  0eae0145		saddl v5.2d, v10.2s, v14.2s
-#    v5: 0xffffffffd6dfd5daffffffff7687b151
+#             v5: 0xffffffffd6dfd5daffffffff7687b151
 0x~~~~~~~~~~~~~~~~  0e6f0072		saddl v18.4s, v3.4h, v15.4h
-#   v18: 0x00000100ffffa14f0000010000005b9e
+#            v18: 0x00000100ffffa14f0000010000005b9e
 0x~~~~~~~~~~~~~~~~  0e37004f		saddl v15.8h, v2.8b, v23.8b
-#   v15: 0x0063002f0059006e0028005b00750002
+#            v15: 0x0063002f0059006e0028005b00750002
 0x~~~~~~~~~~~~~~~~  4ebb0210		saddl2 v16.2d, v16.4s, v27.4s
-#   v16: 0x0000000000000000ffffffffd8e139ed
+#            v16: 0x0000000000000000ffffffffd8e139ed
 0x~~~~~~~~~~~~~~~~  4e600306		saddl2 v6.4s, v24.8h, v0.8h
-#    v6: 0x0000007500005556000055d1000055af
+#             v6: 0x0000007500005556000055d1000055af
 0x~~~~~~~~~~~~~~~~  4e3c0287		saddl2 v7.8h, v20.16b, v28.16b
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea02b2a		saddlp v10.1d, v25.2s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea02a0f		saddlp v15.2d, v16.4s
-#   v15: 0x0000000000000000ffffffffd8e139ec
+#            v15: 0x0000000000000000ffffffffd8e139ec
 0x~~~~~~~~~~~~~~~~  0e602952		saddlp v18.2s, v10.4h
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e202b5d		saddlp v29.4h, v26.8b
-#   v29: 0x00000000000000000000004600000026
+#            v29: 0x00000000000000000000004600000026
 0x~~~~~~~~~~~~~~~~  4e60282a		saddlp v10.4s, v1.8h
-#   v10: 0x00007574000012640000478e00004b7a
+#            v10: 0x00007574000012640000478e00004b7a
 0x~~~~~~~~~~~~~~~~  4e202aa0		saddlp v0.8h, v21.16b
-#    v0: 0x0000000000000000ffe1ffcdffe1ffcd
+#             v0: 0x0000000000000000ffe1ffcdffe1ffcd
 0x~~~~~~~~~~~~~~~~  4eb038ec		saddlv d12, v7.4s
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e303b8e		saddlv h14, v28.16b
-#   v14: 0x0000000000000000000000000000fff8
+#            v14: 0x0000000000000000000000000000fff8
 0x~~~~~~~~~~~~~~~~  0e303bde		saddlv h30, v30.8b
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e70387b		saddlv s27, v3.4h
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e703a10		saddlv s16, v16.8h
-#   v16: 0x000000000000000000000000000012cc
+#            v16: 0x000000000000000000000000000012cc
 0x~~~~~~~~~~~~~~~~  0eb21178		saddw v24.2d, v11.2d, v18.2s
-#   v24: 0x00000000000000009d2fa76ed8a575fe
+#            v24: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  0e66118d		saddw v13.4s, v12.4s, v6.4h
-#   v13: 0x00000000000055d100000000000055af
+#            v13: 0x00000000000055d100000000000055af
 0x~~~~~~~~~~~~~~~~  0e271273		saddw v19.8h, v19.8h, v7.8b
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eba113b		saddw2 v27.2d, v9.2d, v26.4s
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7512f3		saddw2 v19.4s, v23.4s, v21.8h
-#   v19: 0x0000000000000000632f596e285b7502
+#            v19: 0x0000000000000000632f596e285b7502
 0x~~~~~~~~~~~~~~~~  4e3e132f		saddw2 v15.8h, v25.8h, v30.16b
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e290487		shadd v7.16b, v4.16b, v9.16b
-#    v7: 0x000000000000000000232cdb00260303
+#             v7: 0x000000000000000000232cdb00260303
 0x~~~~~~~~~~~~~~~~  0eb8073d		shadd v29.2s, v25.2s, v24.2s
-#   v29: 0x0000000000000000ce97d3b7ec52baff
+#            v29: 0x0000000000000000ce97d3b7ec52baff
 0x~~~~~~~~~~~~~~~~  0e6d055f		shadd v31.4h, v10.4h, v13.4h
-#   v31: 0x0000000000000000000023c700005094
+#            v31: 0x0000000000000000000023c700005094
 0x~~~~~~~~~~~~~~~~  4ea80615		shadd v21.4s, v16.4s, v8.4s
-#   v21: 0x000000000000000000180000000839ec
+#            v21: 0x000000000000000000180000000839ec
 0x~~~~~~~~~~~~~~~~  0e3607ae		shadd v14.8b, v29.8b, v22.8b
-#   v14: 0x0000000000000000b5dae012cc3fc326
+#            v14: 0x0000000000000000b5dae012cc3fc326
 0x~~~~~~~~~~~~~~~~  4e740713		shadd v19.8h, v24.8h, v20.8h
-#   v19: 0x00000000000000000997e764189b6c67
+#            v19: 0x00000000000000000997e764189b6c67
 0x~~~~~~~~~~~~~~~~  5f575736		shl d22, d25, #23
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0f5625		shl v5.16b, v17.16b, #7
-#    v5: 0x00000000000000008000000000800000
+#             v5: 0x00000000000000008000000000800000
 0x~~~~~~~~~~~~~~~~  4f555482		shl v2.2d, v4.2d, #21
-#    v2: 0x000000000000000036e00980c0e00000
+#             v2: 0x000000000000000036e00980c0e00000
 0x~~~~~~~~~~~~~~~~  0f3a5464		shl v4.2s, v3.2s, #26
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f185783		shl v3.4h, v28.4h, #8
-#    v3: 0x0000000000000000ff00ff00ff00ff00
+#             v3: 0x0000000000000000ff00ff00ff00ff00
 0x~~~~~~~~~~~~~~~~  4f3857e4		shl v4.4s, v31.4s, #24
-#    v4: 0x0000000000000000c700000094000000
+#             v4: 0x0000000000000000c700000094000000
 0x~~~~~~~~~~~~~~~~  0f0a5612		shl v18.8b, v16.8b, #2
-#   v18: 0x00000000000000000000000000004830
+#            v18: 0x00000000000000000000000000004830
 0x~~~~~~~~~~~~~~~~  4f135560		shl v0.8h, v11.8h, #3
-#    v0: 0x0000000000000000e9783b70c528aff0
+#             v0: 0x0000000000000000e9783b70c528aff0
 0x~~~~~~~~~~~~~~~~  2ea13b05		shll v5.2d, v24.2s, #32
-#    v5: 0x9d2fa76e00000000d8a575fe00000000
+#             v5: 0x9d2fa76e00000000d8a575fe00000000
 0x~~~~~~~~~~~~~~~~  2e613a9a		shll v26.4s, v20.4h, #16
-#   v26: 0x75ff0000275a00005891000062d00000
+#            v26: 0x75ff0000275a00005891000062d00000
 0x~~~~~~~~~~~~~~~~  2e213925		shll v5.8h, v9.8b, #8
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea13b95		shll2 v21.2d, v28.4s, #32
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e613836		shll2 v22.4s, v1.8h, #16
-#   v22: 0x62e200001292000062e20000af820000
+#            v22: 0x62e200001292000062e20000af820000
 0x~~~~~~~~~~~~~~~~  6e213b3e		shll2 v30.8h, v25.16b, #8
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f248425		shrn v5.2s, v1.2d, #28
-#    v5: 0x00000000000000002e212926700008e4
+#             v5: 0x00000000000000002e212926700008e4
 0x~~~~~~~~~~~~~~~~  0f19865d		shrn v29.4h, v18.4s, #7
-#   v29: 0x00000000000000000000000000000090
+#            v29: 0x00000000000000000000000000000090
 0x~~~~~~~~~~~~~~~~  0f0e87b1		shrn v17.8b, v29.8h, #2
-#   v17: 0x00000000000000000000000000000024
+#            v17: 0x00000000000000000000000000000024
 0x~~~~~~~~~~~~~~~~  4f0d87c5		shrn2 v5.16b, v30.8h, #3
-#    v5: 0x00000000000000002e212926700008e4
+#             v5: 0x00000000000000002e212926700008e4
 0x~~~~~~~~~~~~~~~~  4f3f8438		shrn2 v24.4s, v1.2d, #1
-#   v24: 0x317157c12580003d9d2fa76ed8a575fe
+#            v24: 0x317157c12580003d9d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  4f1085c5		shrn2 v5.8h, v14.4s, #16
-#    v5: 0x00000000b5dacc3f2e212926700008e4
+#             v5: 0x00000000b5dacc3f2e212926700008e4
 0x~~~~~~~~~~~~~~~~  4e3726de		shsub v30.16b, v22.16b, v23.16b
-#   v30: 0x31f1000009c90000ffd9d3c9c393c5ff
+#            v30: 0x31f1000009c90000ffd9d3c9c393c5ff
 0x~~~~~~~~~~~~~~~~  0eb92776		shsub v22.2s, v27.2s, v25.2s
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e6126cd		shsub v13.4h, v22.4h, v1.4h
-#   v13: 0x0000000000000000dc80ffb9da80ffc3
+#            v13: 0x0000000000000000dc80ffb9da80ffc3
 0x~~~~~~~~~~~~~~~~  4eb7250a		shsub v10.4s, v8.4s, v23.4s
-#   v10: 0x0000000000000000ce805349ebda7605
+#            v10: 0x0000000000000000ce805349ebda7605
 0x~~~~~~~~~~~~~~~~  0e3f2526		shsub v6.8b, v9.8b, v31.8b
-#    v6: 0x00000000000000000000ee1c0000d836
+#             v6: 0x00000000000000000000ee1c0000d836
 0x~~~~~~~~~~~~~~~~  4e6827e8		shsub v8.8h, v31.8h, v8.8h
-#    v8: 0x0000000000000000ffe811e3fff8f7c4
+#             v8: 0x0000000000000000ffe811e3fff8f7c4
 0x~~~~~~~~~~~~~~~~  7f5457b3		sli d19, d29, #20
-#   v19: 0x000000000000000000000000090b6c67
+#            v19: 0x000000000000000000000000090b6c67
 0x~~~~~~~~~~~~~~~~  6f085709		sli v9.16b, v24.16b, #0
-#    v9: 0x317157c12580003d9d2fa76ed8a575fe
+#             v9: 0x317157c12580003d9d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  6f4a5536		sli v22.2d, v9.2d, #10
-#   v22: 0xc55f04960000f400be9dbb6295d7f800
+#            v22: 0xc55f04960000f400be9dbb6295d7f800
 0x~~~~~~~~~~~~~~~~  2f34576b		sli v11.2s, v27.2s, #20
-#   v11: 0x0000000000000000000fa76e000575fe
+#            v11: 0x0000000000000000000fa76e000575fe
 0x~~~~~~~~~~~~~~~~  2f1555f0		sli v16.4h, v15.4h, #5
-#   v16: 0x0000000000000000000000000000000c
+#            v16: 0x0000000000000000000000000000000c
 0x~~~~~~~~~~~~~~~~  6f395508		sli v8.4s, v8.4s, #25
-#    v8: 0x0000000000000000c7e811e389f8f7c4
+#             v8: 0x0000000000000000c7e811e389f8f7c4
 0x~~~~~~~~~~~~~~~~  2f0857ca		sli v10.8b, v30.8b, #0
-#   v10: 0x0000000000000000ffd9d3c9c393c5ff
+#            v10: 0x0000000000000000ffd9d3c9c393c5ff
 0x~~~~~~~~~~~~~~~~  6f165787		sli v7.8h, v28.8h, #6
-#    v7: 0x0000000000000000ffe3ffdbffe6ffc3
+#             v7: 0x0000000000000000ffe3ffdbffe6ffc3
 0x~~~~~~~~~~~~~~~~  4e216512		smax v18.16b, v8.16b, v1.16b
-#   v18: 0x6200120062000000470011e34b00007a
+#            v18: 0x6200120062000000470011e34b00007a
 0x~~~~~~~~~~~~~~~~  0ea164be		smax v30.2s, v5.2s, v1.2s
-#   v30: 0x00000000000000004700008e700008e4
+#            v30: 0x00000000000000004700008e700008e4
 0x~~~~~~~~~~~~~~~~  0e736731		smax v17.4h, v25.4h, v19.4h
-#   v17: 0x000000000000000000000000090b6c67
+#            v17: 0x000000000000000000000000090b6c67
 0x~~~~~~~~~~~~~~~~  4ebf6701		smax v1.4s, v24.4s, v31.4s
-#    v1: 0x317157c12580003d000023c700005094
+#             v1: 0x317157c12580003d000023c700005094
 0x~~~~~~~~~~~~~~~~  0e386711		smax v17.8b, v24.8b, v24.8b
-#   v17: 0x00000000000000009d2fa76ed8a575fe
+#            v17: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  4e6a674b		smax v11.8h, v26.8h, v10.8h
-#   v11: 0x75ff0000275a00005891000062d00000
+#            v11: 0x75ff0000275a00005891000062d00000
 0x~~~~~~~~~~~~~~~~  4e27a5cc		smaxp v12.16b, v14.16b, v7.16b
-#   v12: 0x00000000ffffffff00000000da123f26
+#            v12: 0x00000000ffffffff00000000da123f26
 0x~~~~~~~~~~~~~~~~  0ea6a71f		smaxp v31.2s, v24.2s, v6.2s
-#   v31: 0x00000000000000000000ee1cd8a575fe
+#            v31: 0x00000000000000000000ee1cd8a575fe
 0x~~~~~~~~~~~~~~~~  0e6aa7aa		smaxp v10.4h, v29.4h, v10.4h
-#   v10: 0x0000000000000000ffd9c5ff00000090
+#            v10: 0x0000000000000000ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  4ea7a572		smaxp v18.4s, v11.4s, v7.4s
-#   v18: 0x00000000ffe6ffc375ff000062d00000
+#            v18: 0x00000000ffe6ffc375ff000062d00000
 0x~~~~~~~~~~~~~~~~  0e32a415		smaxp v21.8b, v0.8b, v18.8b
-#   v21: 0x000000000000000075006200787028f0
+#            v21: 0x000000000000000075006200787028f0
 0x~~~~~~~~~~~~~~~~  4e6fa51a		smaxp v26.8h, v8.8h, v15.8h
-#   v26: 0x00000000000000000000000011e3f7c4
+#            v26: 0x00000000000000000000000011e3f7c4
 0x~~~~~~~~~~~~~~~~  4e30a8a4		smaxv b4, v5.16b
-#    v4: 0x00000000000000000000000000000070
+#             v4: 0x00000000000000000000000000000070
 0x~~~~~~~~~~~~~~~~  0e30a817		smaxv b23, v0.8b
-#   v23: 0x00000000000000000000000000000078
+#            v23: 0x00000000000000000000000000000078
 0x~~~~~~~~~~~~~~~~  0e70a806		smaxv h6, v0.4h
-#    v6: 0x00000000000000000000000000003b70
+#             v6: 0x00000000000000000000000000003b70
 0x~~~~~~~~~~~~~~~~  4e70a918		smaxv h24, v8.8h
-#   v24: 0x000000000000000000000000000011e3
+#            v24: 0x000000000000000000000000000011e3
 0x~~~~~~~~~~~~~~~~  4eb0aa03		smaxv s3, v16.4s
-#    v3: 0x0000000000000000000000000000000c
+#             v3: 0x0000000000000000000000000000000c
 0x~~~~~~~~~~~~~~~~  4e326d18		smin v24.16b, v8.16b, v18.16b
-#   v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
+#            v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
 0x~~~~~~~~~~~~~~~~  0eb76d1d		smin v29.2s, v8.2s, v23.2s
-#   v29: 0x0000000000000000c7e811e389f8f7c4
+#            v29: 0x0000000000000000c7e811e389f8f7c4
 0x~~~~~~~~~~~~~~~~  0e756d66		smin v6.4h, v11.4h, v21.4h
-#    v6: 0x00000000000000005891000062d00000
+#             v6: 0x00000000000000005891000062d00000
 0x~~~~~~~~~~~~~~~~  4eaf6ef8		smin v24.4s, v23.4s, v15.4s
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e246e08		smin v8.8b, v16.8b, v4.8b
-#    v8: 0x0000000000000000000000000000000c
+#             v8: 0x0000000000000000000000000000000c
 0x~~~~~~~~~~~~~~~~  4e6a6c2c		smin v12.8h, v1.8h, v10.8h
-#   v12: 0x0000000000000000ffd9c5ff00000090
+#            v12: 0x0000000000000000ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  4e3cae4d		sminp v13.16b, v18.16b, v28.16b
-#   v13: 0x00000000ffffffff0000e6c3ff00d000
+#            v13: 0x00000000ffffffff0000e6c3ff00d000
 0x~~~~~~~~~~~~~~~~  0eb0af96		sminp v22.2s, v28.2s, v16.2s
-#   v22: 0x000000000000000000000000ffffffff
+#            v22: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  0e65ad8f		sminp v15.4h, v12.4h, v5.4h
-#   v15: 0x0000000000000000292608e4c5ff0000
+#            v15: 0x0000000000000000292608e4c5ff0000
 0x~~~~~~~~~~~~~~~~  4ea8ae2f		sminp v15.4s, v17.4s, v8.4s
-#   v15: 0x0000000000000000000000009d2fa76e
+#            v15: 0x0000000000000000000000009d2fa76e
 0x~~~~~~~~~~~~~~~~  0e26ac55		sminp v21.8b, v2.8b, v6.8b
-#   v21: 0x00000000000000009100d000e080c000
+#            v21: 0x00000000000000009100d000e080c000
 0x~~~~~~~~~~~~~~~~  4e66ad95		sminp v21.8h, v12.8h, v6.8h
-#   v21: 0x000000000000000000000000c5ff0000
+#            v21: 0x000000000000000000000000c5ff0000
 0x~~~~~~~~~~~~~~~~  4e31a8c8		sminv b8, v6.16b
-#    v8: 0x00000000000000000000000000000091
+#             v8: 0x00000000000000000000000000000091
 0x~~~~~~~~~~~~~~~~  0e31aa46		sminv b6, v18.8b
-#    v6: 0x000000000000000000000000000000d0
+#             v6: 0x000000000000000000000000000000d0
 0x~~~~~~~~~~~~~~~~  0e71a834		sminv h20, v1.4h
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e71aa27		sminv h7, v17.8h
-#    v7: 0x00000000000000000000000000009d2f
+#             v7: 0x00000000000000000000000000009d2f
 0x~~~~~~~~~~~~~~~~  4eb1a895		sminv s21, v4.4s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eb581d8		smlal v24.2d, v14.2s, v21.2s
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f8e287f		smlal v31.2d, v3.2s, v14.s[2]
-#   v31: 0x00000000000000000000ee1cd8a575fe
+#            v31: 0x00000000000000000000ee1cd8a575fe
 0x~~~~~~~~~~~~~~~~  0e758287		smlal v7.4s, v20.4h, v21.4h
-#    v7: 0x00000000000000000000000000009d2f
+#             v7: 0x00000000000000000000000000009d2f
 0x~~~~~~~~~~~~~~~~  0f792213		smlal v19.4s, v16.4h, v9.h[3]
-#   v19: 0x0000000000000000000000000906ca9b
+#            v19: 0x0000000000000000000000000906ca9b
 0x~~~~~~~~~~~~~~~~  0e2181dd		smlal v29.8h, v14.8b, v1.8b
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
 0x~~~~~~~~~~~~~~~~  4eb0835e		smlal2 v30.2d, v26.4s, v16.4s
-#   v30: 0x00000000000000004700008e700008e4
+#            v30: 0x00000000000000004700008e700008e4
 0x~~~~~~~~~~~~~~~~  4f8123df		smlal2 v31.2d, v30.4s, v1.s[0]
-#   v31: 0x00000000000000000000ee1cd8a575fe
+#            v31: 0x00000000000000000000ee1cd8a575fe
 0x~~~~~~~~~~~~~~~~  4e6380d1		smlal2 v17.4s, v6.8h, v3.8h
-#   v17: 0x00000000000000009d2fa76ed8a575fe
+#            v17: 0x00000000000000009d2fa76ed8a575fe
 0x~~~~~~~~~~~~~~~~  4f752beb		smlal2 v11.4s, v31.8h, v5.h[7]
-#   v11: 0x75ff0000275a00005891000062d00000
+#            v11: 0x75ff0000275a00005891000062d00000
 0x~~~~~~~~~~~~~~~~  4e3d821e		smlal2 v30.8h, v16.16b, v29.16b
-#   v30: 0x00000000000000004700008e700008e4
+#            v30: 0x00000000000000004700008e700008e4
 0x~~~~~~~~~~~~~~~~  0eb1a281		smlsl v1.2d, v20.2s, v17.2s
-#    v1: 0x317157c12580003d000023c700005094
+#             v1: 0x317157c12580003d000023c700005094
 0x~~~~~~~~~~~~~~~~  0fa5699d		smlsl v29.2d, v12.2s, v5.s[3]
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
 0x~~~~~~~~~~~~~~~~  0e61a340		smlsl v0.4s, v26.4h, v1.4h
-#    v0: 0x0000000000000000e9783b70c7c032a0
+#             v0: 0x0000000000000000e9783b70c7c032a0
 0x~~~~~~~~~~~~~~~~  0f5668a3		smlsl v3.4s, v5.4h, v6.h[5]
-#    v3: 0x0000000000000000000000000000000c
+#             v3: 0x0000000000000000000000000000000c
 0x~~~~~~~~~~~~~~~~  0e3aa004		smlsl v4.8h, v0.8b, v26.8b
-#    v4: 0x000000000000000003c9f8c001c2e9f0
+#             v4: 0x000000000000000003c9f8c001c2e9f0
 0x~~~~~~~~~~~~~~~~  4ea5a1ce		smlsl2 v14.2d, v14.4s, v5.4s
-#   v14: 0x0000000000000000b5dae012cc3fc326
+#            v14: 0x0000000000000000b5dae012cc3fc326
 0x~~~~~~~~~~~~~~~~  4fa060af		smlsl2 v15.2d, v5.4s, v0.s[1]
-#   v15: 0x0000000000000000f9797b018bdbc6de
+#            v15: 0x0000000000000000f9797b018bdbc6de
 0x~~~~~~~~~~~~~~~~  4e7fa23d		smlsl2 v29.4s, v17.8h, v31.8h
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
 0x~~~~~~~~~~~~~~~~  4f6969e6		smlsl2 v6.4s, v15.8h, v9.h[6]
-#    v6: 0x000000000000000000000000000000d0
+#             v6: 0x000000000000000000000000000000d0
 0x~~~~~~~~~~~~~~~~  4e2fa1fe		smlsl2 v30.8h, v15.16b, v15.16b
-#   v30: 0x00000000000000004700008e700008e4
+#            v30: 0x00000000000000004700008e700008e4
 0x~~~~~~~~~~~~~~~~  0e072cd5		smov w21, v6.b[3]
-#   x21: 0x0000000000000000
+#            w21:         0x00000000
 0x~~~~~~~~~~~~~~~~  0e1e2f4d		smov w13, v26.h[7]
-#   x13: 0x0000000000000000
+#            w13:         0x00000000
 0x~~~~~~~~~~~~~~~~  4e0f2e18		smov x24, v16.b[7]
-#   x24: 0x0000000000000000
+#            x24: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  4e0e2c87		smov x7, v4.h[3]
-#    x7: 0x00000000000003c9
+#             x7: 0x00000000000003c9
 0x~~~~~~~~~~~~~~~~  4e0c2cfd		smov x29, v7.s[1]
-#   x29: 0x0000000000000000
+#            x29: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  0eb1c3a4		smull v4.2d, v29.2s, v17.2s
-#    v4: 0x15a6d000c90fc48aedb876b6692ad888
+#             v4: 0x15a6d000c90fc48aedb876b6692ad888
 0x~~~~~~~~~~~~~~~~  0f86aabe		smull v30.2d, v21.2s, v6.s[2]
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e77c0b7		smull v23.4s, v5.4h, v23.4h
-#   v23: 0x00000000000000000000000000042ae0
+#            v23: 0x00000000000000000000000000042ae0
 0x~~~~~~~~~~~~~~~~  0f52a128		smull v8.4s, v9.4h, v2.h[1]
-#    v8: 0x185dc92015d7004009b45060e2e7be40
+#             v8: 0x185dc92015d7004009b45060e2e7be40
 0x~~~~~~~~~~~~~~~~  0e21c23f		smull v31.8h, v17.8b, v1.8b
-#   v31: 0x00000000f3d5e78200000000249000d8
+#            v31: 0x00000000f3d5e78200000000249000d8
 0x~~~~~~~~~~~~~~~~  4eb7c063		smull2 v3.2d, v3.4s, v23.4s
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4fa6a3af		smull2 v15.2d, v29.4s, v6.s[1]
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7ec293		smull2 v19.4s, v20.8h, v30.8h
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f47a946		smull2 v6.4s, v10.8h, v7.h[4]
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e3bc119		smull2 v25.8h, v8.16b, v27.16b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e2079e3		sqabs b3, b15
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee0792e		sqabs d14, d9
-#   v14: 0x000000000000000062d05891275a8a02
+#            v14: 0x000000000000000062d05891275a8a02
 0x~~~~~~~~~~~~~~~~  5e607b9f		sqabs h31, h28
-#   v31: 0x00000000000000000000000000000001
+#            v31: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  5ea07808		sqabs s8, s0
-#    v8: 0x000000000000000000000000383fcd60
+#             v8: 0x000000000000000000000000383fcd60
 0x~~~~~~~~~~~~~~~~  4e2078ee		sqabs v14.16b, v7.16b
-#   v14: 0x0000000000000000000000000000632f
+#            v14: 0x0000000000000000000000000000632f
 0x~~~~~~~~~~~~~~~~  4ee07a77		sqabs v23.2d, v19.2d
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea07b0a		sqabs v10.2s, v24.2s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e607a7f		sqabs v31.4h, v19.4h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea07817		sqabs v23.4s, v0.4s
-#   v23: 0x00000000000000001687c490383fcd60
+#            v23: 0x00000000000000001687c490383fcd60
 0x~~~~~~~~~~~~~~~~  0e207afd		sqabs v29.8b, v23.8b
-#   v29: 0x000000000000000016793c70383f3360
+#            v29: 0x000000000000000016793c70383f3360
 0x~~~~~~~~~~~~~~~~  4e607ab1		sqabs v17.8h, v21.8h
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e2d0ee9		sqadd b9, b23, b13
-#    v9: 0x00000000000000000000000000000060
+#             v9: 0x00000000000000000000000000000060
 0x~~~~~~~~~~~~~~~~  5efa0f22		sqadd d2, d25, d26
-#    v2: 0x00000000000000000000000011e3f7c4
+#             v2: 0x00000000000000000000000011e3f7c4
 0x~~~~~~~~~~~~~~~~  5e790fa7		sqadd h7, h29, h25
-#    v7: 0x00000000000000000000000000003360
+#             v7: 0x00000000000000000000000000003360
 0x~~~~~~~~~~~~~~~~  5eb80ceb		sqadd s11, s7, s24
-#   v11: 0x00000000000000000000000000003360
+#            v11: 0x00000000000000000000000000003360
 0x~~~~~~~~~~~~~~~~  4e3d0e14		sqadd v20.16b, v16.16b, v29.16b
-#   v20: 0x000000000000000016793c70383f336c
+#            v20: 0x000000000000000016793c70383f336c
 0x~~~~~~~~~~~~~~~~  4efc0fd7		sqadd v23.2d, v30.2d, v28.2d
-#   v23: 0x0000000000000000ffffffffffffffff
+#            v23: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0ea20e68		sqadd v8.2s, v19.2s, v2.2s
-#    v8: 0x00000000000000000000000011e3f7c4
+#             v8: 0x00000000000000000000000011e3f7c4
 0x~~~~~~~~~~~~~~~~  0e7f0d94		sqadd v20.4h, v12.4h, v31.4h
-#   v20: 0x0000000000000000ffd9c5ff00000090
+#            v20: 0x0000000000000000ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  4eb10dee		sqadd v14.4s, v15.4s, v17.4s
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e2d0fa2		sqadd v2.8b, v29.8b, v13.8b
-#    v2: 0x000000000000000016792233373f0360
+#             v2: 0x000000000000000016792233373f0360
 0x~~~~~~~~~~~~~~~~  4e6e0e67		sqadd v7.8h, v19.8h, v14.8h
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ebe90af		sqdmlal d15, s5, s30
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5fa23958		sqdmlal d24, s10, v2.s[3]
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e689269		sqdmlal s9, h19, h8
-#    v9: 0x00000000000000000000000000000060
+#             v9: 0x00000000000000000000000000000060
 0x~~~~~~~~~~~~~~~~  5f7c302e		sqdmlal s14, h1, v12.h[3]
-#   v14: 0x000000000000000000000000ffe772e8
+#            v14: 0x000000000000000000000000ffe772e8
 0x~~~~~~~~~~~~~~~~  0ebf90be		sqdmlal v30.2d, v5.2s, v31.2s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0faa31d9		sqdmlal v25.2d, v14.2s, v10.s[1]
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e709233		sqdmlal v19.4s, v17.4h, v16.4h
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f5830a8		sqdmlal v8.4s, v5.4h, v8.h[1]
-#    v8: 0x0672308605c005640fa6a0001322041c
+#             v8: 0x0672308605c005640fa6a0001322041c
 0x~~~~~~~~~~~~~~~~  4ea392e1		sqdmlal2 v1.2d, v23.4s, v3.4s
-#    v1: 0x317157c12580003d000023c700005094
+#             v1: 0x317157c12580003d000023c700005094
 0x~~~~~~~~~~~~~~~~  4f893013		sqdmlal2 v19.2d, v0.4s, v9.s[0]
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6b92da		sqdmlal2 v26.4s, v22.8h, v11.8h
-#   v26: 0x00000000000000000000000011e3f7c4
+#            v26: 0x00000000000000000000000011e3f7c4
 0x~~~~~~~~~~~~~~~~  4f4d3b86		sqdmlal2 v6.4s, v28.8h, v13.h[4]
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5eb4b3aa		sqdmlsl d10, s29, s20
-#   v10: 0x0000000000000000ffffffc0b8e63400
+#            v10: 0x0000000000000000ffffffc0b8e63400
 0x~~~~~~~~~~~~~~~~  5faa712a		sqdmlsl d10, s9, v10.s[1]
-#   v10: 0x0000000000000000ffffffc0b8e66400
+#            v10: 0x0000000000000000ffffffc0b8e66400
 0x~~~~~~~~~~~~~~~~  5e78b13e		sqdmlsl s30, h9, h24
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f56730d		sqdmlsl s13, h24, v6.h[1]
-#   v13: 0x000000000000000000000000ff00d000
+#            v13: 0x000000000000000000000000ff00d000
 0x~~~~~~~~~~~~~~~~  0eb4b15b		sqdmlsl v27.2d, v10.2s, v20.2s
-#   v27: 0xffffffffece2ff800000004ffccf8000
+#            v27: 0xffffffffece2ff800000004ffccf8000
 0x~~~~~~~~~~~~~~~~  0fa37af7		sqdmlsl v23.2d, v23.2s, v3.s[3]
-#   v23: 0x0000000000000000ffffffffffffffff
+#            v23: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  0e7db227		sqdmlsl v7.4s, v17.4h, v29.4h
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f437ab6		sqdmlsl v22.4s, v21.4h, v3.h[4]
-#   v22: 0x000000000000000000000000ffffffff
+#            v22: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  4eb6b0ec		sqdmlsl2 v12.2d, v7.4s, v22.4s
-#   v12: 0x0000000000000000ffd9c5ff00000090
+#            v12: 0x0000000000000000ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  4f887334		sqdmlsl2 v20.2d, v25.4s, v8.s[0]
-#   v20: 0x0000000000000000ffd9c5ff00000090
+#            v20: 0x0000000000000000ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  4e72b359		sqdmlsl2 v25.4s, v26.8h, v18.8h
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f457279		sqdmlsl2 v25.4s, v19.8h, v5.h[0]
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e6cb771		sqdmulh h17, h27, h12
-#   v17: 0x0000000000000000000000000000ff70
+#            v17: 0x0000000000000000000000000000ff70
 0x~~~~~~~~~~~~~~~~  5f4bc0b0		sqdmulh h16, h5, v11.h[0]
-#   v16: 0x00000000000000000000000000000391
+#            v16: 0x00000000000000000000000000000391
 0x~~~~~~~~~~~~~~~~  5eb0b661		sqdmulh s1, s19, s16
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f82c201		sqdmulh s1, s16, v2.s[0]
-#    v1: 0x0000000000000000000000000000018a
+#             v1: 0x0000000000000000000000000000018a
 0x~~~~~~~~~~~~~~~~  0ea8b43c		sqdmulh v28.2s, v1.2s, v8.2s
-#   v28: 0x0000000000000000000000000000003a
+#            v28: 0x0000000000000000000000000000003a
 0x~~~~~~~~~~~~~~~~  0f83c11c		sqdmulh v28.2s, v8.2s, v3.s[0]
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e65b72b		sqdmulh v11.4h, v25.4h, v5.4h
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f58c9de		sqdmulh v30.4h, v14.4h, v8.h[5]
-#   v30: 0x000000000000000000000000fffe0529
+#            v30: 0x000000000000000000000000fffe0529
 0x~~~~~~~~~~~~~~~~  4eadb6b9		sqdmulh v25.4s, v21.4s, v13.4s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4faac857		sqdmulh v23.4s, v2.4s, v10.s[3]
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e77b4ba		sqdmulh v26.8h, v5.8h, v23.8h
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f74c2c4		sqdmulh v4.8h, v22.8h, v4.h[3]
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ebad059		sqdmull d25, s2, s26
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5fa5b1de		sqdmull d30, s14, v5.s[1]
-#   v30: 0x0000000000000000fff726ef1b546ce0
+#            v30: 0x0000000000000000fff726ef1b546ce0
 0x~~~~~~~~~~~~~~~~  5e6bd25d		sqdmull s29, h18, h11
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f67b9ab		sqdmull s11, h13, v7.h[6]
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea8d137		sqdmull v23.2d, v9.2s, v8.2s
-#   v23: 0x00000000000000000000000e59831500
+#            v23: 0x00000000000000000000000e59831500
 0x~~~~~~~~~~~~~~~~  0fa4b3b2		sqdmull v18.2d, v29.2s, v4.s[1]
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e67d311		sqdmull v17.4s, v24.4h, v7.4h
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f55b1e8		sqdmull v8.4s, v15.4h, v5.h[1]
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea2d1dc		sqdmull2 v28.2d, v14.4s, v2.4s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f8dbb01		sqdmull2 v1.2d, v24.4s, v13.s[2]
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7fd22b		sqdmull2 v11.4s, v17.8h, v31.8h
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f7bb281		sqdmull2 v1.4s, v20.8h, v11.h[3]
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e207802		sqneg b2, b0
-#    v2: 0x00000000000000000000000000000060
+#             v2: 0x00000000000000000000000000000060
 0x~~~~~~~~~~~~~~~~  7ee07858		sqneg d24, d2
-#   v24: 0x0000000000000000ffffffffffffffa0
+#            v24: 0x0000000000000000ffffffffffffffa0
 0x~~~~~~~~~~~~~~~~  7e60787d		sqneg h29, h3
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea07924		sqneg s4, s9
-#    v4: 0x000000000000000000000000ffffffa0
+#             v4: 0x000000000000000000000000ffffffa0
 0x~~~~~~~~~~~~~~~~  6e207bae		sqneg v14.16b, v29.16b
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee0799e		sqneg v30.2d, v12.2d
-#   v30: 0x000000000000000000263a00ffffff70
+#            v30: 0x000000000000000000263a00ffffff70
 0x~~~~~~~~~~~~~~~~  2ea07b5c		sqneg v28.2s, v26.2s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e607884		sqneg v4.4h, v4.4h
-#    v4: 0x00000000000000000000000000010060
+#             v4: 0x00000000000000000000000000010060
 0x~~~~~~~~~~~~~~~~  6ea07909		sqneg v9.4s, v8.4s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e207a94		sqneg v20.8b, v20.8b
-#   v20: 0x000000000000000001273b0100000070
+#            v20: 0x000000000000000001273b0100000070
 0x~~~~~~~~~~~~~~~~  6e60795b		sqneg v27.8h, v10.8h
-#   v27: 0x000000000000000000010040471a9c00
+#            v27: 0x000000000000000000010040471a9c00
 0x~~~~~~~~~~~~~~~~  7e60b707		sqrdmulh h7, h24, h0
-#    v7: 0x0000000000000000000000000000ffda
+#             v7: 0x0000000000000000000000000000ffda
 0x~~~~~~~~~~~~~~~~  5f64d86e		sqrdmulh h14, h3, v4.h[6]
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eb8b67b		sqrdmulh s27, s19, s24
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f84d2bf		sqrdmulh s31, s21, v4.s[0]
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea1b732		sqrdmulh v18.2s, v25.2s, v1.2s
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f8dd0b6		sqrdmulh v22.2s, v5.2s, v13.s[0]
-#   v22: 0x0000000000000000ffa408a4ff20b5ee
+#            v22: 0x0000000000000000ffa408a4ff20b5ee
 0x~~~~~~~~~~~~~~~~  2e69b716		sqrdmulh v22.4h, v24.4h, v9.4h
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f6cd84d		sqrdmulh v13.4h, v2.4h, v12.h[6]
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea2b769		sqrdmulh v9.4s, v27.4s, v2.4s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4fa7d2e3		sqrdmulh v3.4s, v23.4s, v7.s[1]
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e67b402		sqrdmulh v2.8h, v0.8h, v7.8h
-#    v2: 0x0000000000000000000000000000fff1
+#             v2: 0x0000000000000000000000000000fff1
 0x~~~~~~~~~~~~~~~~  4f68d130		sqrdmulh v16.8h, v9.8h, v8.h[2]
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e2d5ea8		sqrshl b8, b21, b13
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ef45cfd		sqrshl d29, d7, d20
-#   v29: 0x00000000000000007fffffffffffffff
+#            v29: 0x00000000000000007fffffffffffffff
 0x~~~~~~~~~~~~~~~~  5e6a5ddc		sqrshl h28, h14, h10
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea25e5a		sqrshl s26, s18, s2
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e3a5ff2		sqrshl v18.16b, v31.16b, v26.16b
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee05c9c		sqrshl v28.2d, v4.2d, v0.2d
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea05cc3		sqrshl v3.2s, v6.2s, v0.2s
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e765e41		sqrshl v1.4h, v18.4h, v22.4h
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea75f30		sqrshl v16.4s, v25.4s, v7.4s
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e255ea0		sqrshl v0.8b, v21.8b, v5.8b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e685e7e		sqrshl v30.8h, v19.8h, v8.8h
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f0c9ea6		sqrshrn b6, h21, #4
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f159e2e		sqrshrn h14, s17, #11
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f369f79		sqrshrn s25, d27, #10
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f2e9da6		sqrshrn v6.2s, v13.2d, #18
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f119d25		sqrshrn v5.4h, v9.4s, #15
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0f9d93		sqrshrn v19.8b, v12.8h, #1
-#   v19: 0x000000000000000000000000ed800048
+#            v19: 0x000000000000000000000000ed800048
 0x~~~~~~~~~~~~~~~~  4f099eb3		sqrshrn2 v19.16b, v21.8h, #7
-#   v19: 0x000000000000000000000000ed800048
+#            v19: 0x000000000000000000000000ed800048
 0x~~~~~~~~~~~~~~~~  4f339f1d		sqrshrn2 v29.4s, v24.2d, #13
-#   v29: 0x00000000000000007fffffffffffffff
+#            v29: 0x00000000000000007fffffffffffffff
 0x~~~~~~~~~~~~~~~~  4f169c4c		sqrshrn2 v12.8h, v2.4s, #10
-#   v12: 0x0000000000000040ffd9c5ff00000090
+#            v12: 0x0000000000000040ffd9c5ff00000090
 0x~~~~~~~~~~~~~~~~  7f0b8d30		sqrshrun b16, h9, #5
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f118f03		sqrshrun h3, s24, #15
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f388e50		sqrshrun s16, d18, #8
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f388efc		sqrshrun v28.2s, v23.2d, #8
-#   v28: 0x0000000000000000000000000e598315
+#            v28: 0x0000000000000000000000000e598315
 0x~~~~~~~~~~~~~~~~  2f168f3f		sqrshrun v31.4h, v25.4s, #10
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0e8ef3		sqrshrun v19.8b, v23.8h, #2
-#   v19: 0x0000000000000000000000000004ffff
+#            v19: 0x0000000000000000000000000004ffff
 0x~~~~~~~~~~~~~~~~  6f088c18		sqrshrun2 v24.16b, v0.8h, #8
-#   v24: 0x0000000000000000ffffffffffffffa0
+#            v24: 0x0000000000000000ffffffffffffffa0
 0x~~~~~~~~~~~~~~~~  6f298c36		sqrshrun2 v22.4s, v1.2d, #23
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f138ebc		sqrshrun2 v28.8h, v21.4s, #13
-#   v28: 0x0000000000000000000000000e598315
+#            v28: 0x0000000000000000000000000e598315
 0x~~~~~~~~~~~~~~~~  5e284ea6		sqshl b6, b21, b8
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f0a774b		sqshl b11, b26, #2
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee44c1d		sqshl d29, d0, d4
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f6374f5		sqshl d21, d7, #35
-#   v21: 0x00000000000000000007fed000000000
+#            v21: 0x00000000000000000007fed000000000
 0x~~~~~~~~~~~~~~~~  5e714f34		sqshl h20, h25, h17
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f187414		sqshl h20, h0, #8
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea44dbd		sqshl s29, s13, s4
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f34756a		sqshl s10, s11, #20
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e3c4e48		sqshl v8.16b, v18.16b, v28.16b
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0a77bd		sqshl v29.16b, v29.16b, #2
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ef04fe8		sqshl v8.2d, v31.2d, v16.2d
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f6575c7		sqshl v7.2d, v14.2d, #37
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea74f40		sqshl v0.2s, v26.2s, v7.2s
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f337565		sqshl v5.2s, v11.2s, #19
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e604fcb		sqshl v11.4h, v30.4h, v0.4h
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f177641		sqshl v1.4h, v18.4h, #7
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ebe4c76		sqshl v22.4s, v3.4s, v30.4s
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f3c75f0		sqshl v16.4s, v15.4s, #28
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e394f86		sqshl v6.8b, v28.8b, v25.8b
-#    v6: 0x0000000000000000000000000e598315
+#             v6: 0x0000000000000000000000000e598315
 0x~~~~~~~~~~~~~~~~  0f0875e0		sqshl v0.8b, v15.8b, #0
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7e4e06		sqshl v6.8h, v16.8h, v30.8h
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f1e7683		sqshl v3.8h, v20.8h, #14
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f0e65cd		sqshlu b13, b14, #6
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f6c6600		sqshlu d0, d16, #44
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f1f67a5		sqshlu h5, h29, #15
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f2d651d		sqshlu s29, s8, #13
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0a669b		sqshlu v27.16b, v20.16b, #2
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f4b6598		sqshlu v24.2d, v12.2d, #11
-#   v24: 0x00000000000200000000000000000000
+#            v24: 0x00000000000200000000000000000000
 0x~~~~~~~~~~~~~~~~  2f36666c		sqshlu v12.2s, v19.2s, #22
-#   v12: 0x000000000000000000000000ffffffff
+#            v12: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  2f1b6588		sqshlu v8.4h, v12.4h, #11
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f286472		sqshlu v18.4s, v3.4s, #8
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f096543		sqshlu v3.8b, v10.8b, #1
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f14671e		sqshlu v30.8h, v24.8h, #4
-#   v30: 0x00000000002000000000000000000000
+#            v30: 0x00000000002000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f0f9781		sqshrn b1, h28, #1
-#    v1: 0x00000000000000000000000000000080
+#             v1: 0x00000000000000000000000000000080
 0x~~~~~~~~~~~~~~~~  5f1694ff		sqshrn h31, s7, #10
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f289544		sqshrn s4, d10, #24
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f23942a		sqshrn v10.2s, v1.2d, #29
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f1295a3		sqshrn v3.4h, v13.4s, #14
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0994db		sqshrn v27.8b, v6.8h, #7
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0f96ee		sqshrn2 v14.16b, v23.8h, #1
-#   v14: 0x0000000000077f7f0000000000000000
+#            v14: 0x0000000000077f7f0000000000000000
 0x~~~~~~~~~~~~~~~~  4f2596d9		sqshrn2 v25.4s, v22.2d, #27
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f16959f		sqshrn2 v31.8h, v12.4s, #10
-#   v31: 0x000000000000ffff0000000000000000
+#            v31: 0x000000000000ffff0000000000000000
 0x~~~~~~~~~~~~~~~~  7f0f8409		sqshrun b9, h0, #1
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f1984cb		sqshrun h11, s6, #7
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f33858d		sqshrun s13, d12, #13
-#   v13: 0x0000000000000000000000000007ffff
+#            v13: 0x0000000000000000000000000007ffff
 0x~~~~~~~~~~~~~~~~  2f3f87ca		sqshrun v10.2s, v30.2d, #1
-#   v10: 0x00000000000000000010000000000000
+#            v10: 0x00000000000000000010000000000000
 0x~~~~~~~~~~~~~~~~  2f15847f		sqshrun v31.4h, v3.4s, #11
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0887dc		sqshrun v28.8b, v30.8h, #8
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0d8770		sqshrun2 v16.16b, v27.8h, #3
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f2e85db		sqshrun2 v27.4s, v14.2d, #18
-#   v27: 0x00000001000000000000000000000000
+#            v27: 0x00000001000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1f85d7		sqshrun2 v23.8h, v14.4s, #1
-#   v23: 0x0000ffff000000000000000e59831500
+#            v23: 0x0000ffff000000000000000e59831500
 0x~~~~~~~~~~~~~~~~  5e2b2fb3		sqsub b19, b29, b11
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee62ff5		sqsub d21, d31, d6
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e732d52		sqsub h18, h10, h19
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea02ca6		sqsub s6, s5, s0
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e202ed5		sqsub v21.16b, v22.16b, v0.16b
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ef12d56		sqsub v22.2d, v10.2d, v17.2d
-#   v22: 0x00000000000000000010000000000000
+#            v22: 0x00000000000000000010000000000000
 0x~~~~~~~~~~~~~~~~  0ea22ea8		sqsub v8.2s, v21.2s, v2.2s
-#    v8: 0x000000000000000000000000ffff000f
+#             v8: 0x000000000000000000000000ffff000f
 0x~~~~~~~~~~~~~~~~  0e7b2f32		sqsub v18.4h, v25.4h, v27.4h
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea62c6d		sqsub v13.4s, v3.4s, v6.4s
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e302fbc		sqsub v28.8b, v29.8b, v16.8b
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6a2cd1		sqsub v17.8h, v6.8h, v10.8h
-#   v17: 0x0000000000000000fff0000000000000
+#            v17: 0x0000000000000000fff0000000000000
 0x~~~~~~~~~~~~~~~~  5e214b5b		sqxtn b27, h26
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5e614971		sqxtn h17, s11
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ea14bf6		sqxtn s22, d31
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea148ba		sqxtn v26.2s, v5.2d
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e6148ed		sqxtn v13.4h, v7.4s
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e214a73		sqxtn v19.8b, v19.8h
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e214873		sqxtn2 v19.16b, v3.8h
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea14837		sqxtn2 v23.4s, v1.2d
-#   v23: 0x00000000000000800000000e59831500
+#            v23: 0x00000000000000800000000e59831500
 0x~~~~~~~~~~~~~~~~  4e61486d		sqxtn2 v13.8h, v3.4s
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e21293a		sqxtun b26, h9
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e612993		sqxtun h19, s12
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea128c3		sqxtun s3, d6
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea12b5d		sqxtun v29.2s, v26.2d
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e61295a		sqxtun v26.4h, v10.4s
-#   v26: 0x000000000000000000000000ffff0000
+#            v26: 0x000000000000000000000000ffff0000
 0x~~~~~~~~~~~~~~~~  2e212ba7		sqxtun v7.8b, v29.8h
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e2129d5		sqxtun2 v21.16b, v14.8h
-#   v21: 0x000007ff000000000000000000000000
+#            v21: 0x000007ff000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea129f8		sqxtun2 v24.4s, v15.2d
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e61283e		sqxtun2 v30.8h, v1.4s
-#   v30: 0x00000000000000800000000000000000
+#            v30: 0x00000000000000800000000000000000
 0x~~~~~~~~~~~~~~~~  4e2f1635		srhadd v21.16b, v17.16b, v15.16b
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ebd16bc		srhadd v28.2s, v21.2s, v29.2s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e7e1429		srhadd v9.4h, v1.4h, v30.4h
-#    v9: 0x00000000000000000000000000000040
+#             v9: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  4ea21418		srhadd v24.4s, v0.4s, v2.4s
-#   v24: 0x00000000000000000000000000007ff9
+#            v24: 0x00000000000000000000000000007ff9
 0x~~~~~~~~~~~~~~~~  0e2f1626		srhadd v6.8b, v17.8b, v15.8b
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7514e5		srhadd v5.8h, v7.8h, v21.8h
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f4f45ce		sri d14, d14, #49
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0c4517		sri v23.16b, v8.16b, #4
-#   v23: 0x0000000000000080000000005f8f1000
+#            v23: 0x0000000000000080000000005f8f1000
 0x~~~~~~~~~~~~~~~~  6f6c45b4		sri v20.2d, v13.2d, #20
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f284450		sri v16.2s, v2.2s, #24
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f1546e5		sri v5.4h, v23.4h, #11
-#    v5: 0x000000000000000000000000000b0002
+#             v5: 0x000000000000000000000000000b0002
 0x~~~~~~~~~~~~~~~~  6f2945fb		sri v27.4s, v15.4s, #23
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0c47b3		sri v19.8b, v29.8b, #4
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1d47a7		sri v7.8h, v29.8h, #3
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5efa5522		srshl d2, d9, d26
-#    v2: 0x00000000000000000000000000000040
+#             v2: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  4e2b563d		srshl v29.16b, v17.16b, v11.16b
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee455e8		srshl v8.2d, v15.2d, v4.2d
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea85639		srshl v25.2s, v17.2s, v8.2s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e6754f3		srshl v19.4h, v7.4h, v7.4h
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eb1544d		srshl v13.4s, v2.4s, v17.4s
-#   v13: 0x00000000000000000000000000000040
+#            v13: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  0e3554d6		srshl v22.8b, v6.8b, v21.8b
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e64562a		srshl v10.8h, v17.8h, v4.8h
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f532655		srshr d21, d18, #45
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f092563		srshr v3.16b, v11.16b, #7
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f4b2755		srshr v21.2d, v26.2d, #53
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f2424ab		srshr v11.2s, v5.2s, #28
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f142647		srshr v7.4h, v18.4h, #12
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f222467		srshr v7.4s, v3.4s, #30
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0a244e		srshr v14.8b, v2.8b, #6
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  4f1d2695		srshr v21.8h, v20.8h, #3
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f4137d5		srsra d21, d30, #63
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0a37db		srsra v27.16b, v30.16b, #6
-#   v27: 0x00000000000000fe0000000000000000
+#            v27: 0x00000000000000fe0000000000000000
 0x~~~~~~~~~~~~~~~~  4f653594		srsra v20.2d, v12.2d, #27
-#   v20: 0x00000000000000000000000000000020
+#            v20: 0x00000000000000000000000000000020
 0x~~~~~~~~~~~~~~~~  0f3b3620		srsra v0.2s, v17.2s, #5
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f11360e		srsra v14.4h, v16.4h, #15
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  4f2c3472		srsra v18.4s, v3.4s, #20
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0f3435		srsra v21.8b, v1.8b, #1
-#   v21: 0x000000000000000000000000000000c0
+#            v21: 0x000000000000000000000000000000c0
 0x~~~~~~~~~~~~~~~~  4f1e373f		srsra v31.8h, v25.8h, #2
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee945a1		sshl d1, d13, d9
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e2f47f1		sshl v17.16b, v31.16b, v15.16b
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee0460d		sshl v13.2d, v16.2d, v0.2d
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eb644e0		sshl v0.2s, v7.2s, v22.2s
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e644677		sshl v23.4h, v19.4h, v4.4h
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eab44a5		sshl v5.4s, v5.4s, v11.4s
-#    v5: 0x000000000000000000000000000b0002
+#             v5: 0x000000000000000000000000000b0002
 0x~~~~~~~~~~~~~~~~  0e274777		sshl v23.8b, v27.8b, v7.8b
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e65455d		sshl v29.8h, v10.8h, v5.8h
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f37a440		sshll v0.2d, v2.2s, #23
-#    v0: 0x00000000000000000000000020000000
+#             v0: 0x00000000000000000000000020000000
 0x~~~~~~~~~~~~~~~~  0f18a50b		sshll v11.4s, v8.4h, #8
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f09a7a4		sshll v4.8h, v29.8b, #1
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f2ea48a		sshll2 v10.2d, v4.4s, #14
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f16a7fa		sshll2 v26.4s, v31.8h, #6
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0ca743		sshll2 v3.8h, v26.16b, #4
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f6c06b3		sshr d19, d21, #20
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f0b06ef		sshr v15.16b, v23.16b, #5
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f5a05d1		sshr v17.2d, v14.2d, #38
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f2907a3		sshr v3.2s, v29.2s, #23
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f1c0777		sshr v23.4h, v27.4h, #4
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f3c047c		sshr v28.4s, v3.4s, #4
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0a044e		sshr v14.8b, v2.8b, #6
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  4f1a0503		sshr v3.8h, v8.8h, #6
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f54178c		ssra d12, d28, #44
-#   v12: 0x000000000000000000000000ffffffff
+#            v12: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  4f0c17fd		ssra v29.16b, v31.16b, #4
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f681403		ssra v3.2d, v0.2d, #24
-#    v3: 0x00000000000000000000000000000020
+#             v3: 0x00000000000000000000000000000020
 0x~~~~~~~~~~~~~~~~  0f3a178e		ssra v14.2s, v28.2s, #6
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  0f191512		ssra v18.4h, v8.4h, #7
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f2815df		ssra v31.4s, v14.4s, #24
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f0b175c		ssra v28.8b, v26.8b, #5
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f121529		ssra v9.8h, v9.8h, #14
-#    v9: 0x00000000000000000000000000000040
+#             v9: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  0ea321cd		ssubl v13.2d, v14.2s, v3.2s
-#   v13: 0x0000000000000000ffffffffffffffe1
+#            v13: 0x0000000000000000ffffffffffffffe1
 0x~~~~~~~~~~~~~~~~  0e682205		ssubl v5.4s, v16.4h, v8.4h
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e262380		ssubl v0.8h, v28.8b, v6.8b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eb921a5		ssubl2 v5.2d, v13.4s, v25.4s
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e7121e3		ssubl2 v3.4s, v15.8h, v17.8h
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e2e21ef		ssubl2 v15.8h, v15.16b, v14.16b
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eba32f9		ssubw v25.2d, v23.2d, v26.2s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e783255		ssubw v21.4s, v18.4s, v24.4h
-#   v21: 0x000000000000000000000000ffff8007
+#            v21: 0x000000000000000000000000ffff8007
 0x~~~~~~~~~~~~~~~~  0e2332de		ssubw v30.8h, v22.8h, v3.8b
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ebc3310		ssubw2 v16.2d, v24.2d, v28.4s
-#   v16: 0x00000000000000000000000000007ff9
+#            v16: 0x00000000000000000000000000007ff9
 0x~~~~~~~~~~~~~~~~  4e6f317f		ssubw2 v31.4s, v11.4s, v15.8h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e303104		ssubw2 v4.8h, v8.8h, v16.16b
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4c002012		st1 {v18.16b, v19.16b, v20.16b, v21.16b}, [x0]
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82202a		st1 {v10.16b, v11.16b, v12.16b, v13.16b}, [x1], x2
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f203b		st1 {v27.16b, v28.16b, v29.16b, v30.16b}, [x1], #64
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c006010		st1 {v16.16b, v17.16b, v18.16b}, [x0]
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c826035		st1 {v21.16b, v22.16b, v23.16b}, [x1], x2
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f6029		st1 {v9.16b, v10.16b, v11.16b}, [x1], #48
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00a007		st1 {v7.16b, v8.16b}, [x0]
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82a03a		st1 {v26.16b, v27.16b}, [x1], x2
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9fa036		st1 {v22.16b, v23.16b}, [x1], #32
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c007017		st1 {v23.16b}, [x0]
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82703c		st1 {v28.16b}, [x1], x2
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f7022		st1 {v2.16b}, [x1], #16
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c002c1d		st1 {v29.1d, v30.1d, v31.1d, v0.1d}, [x0]
-#   v29:                 0x0000000000000000 (d29: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c822c2c		st1 {v12.1d, v13.1d, v14.1d, v15.1d}, [x1], x2
-#   v12:                 0x00000000ffffffff (d12: 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (2.122e-314)
+#                                                  ╙─ 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f2c3e		st1 {v30.1d, v31.1d, v0.1d, v1.1d}, [x1], #32
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c006c10		st1 {v16.1d, v17.1d, v18.1d}, [x0]
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (d17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c826c23		st1 {v3.1d, v4.1d, v5.1d}, [x1], x2
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f6c2e		st1 {v14.1d, v15.1d, v16.1d}, [x1], #24
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00ac12		st1 {v18.1d, v19.1d}, [x0]
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 (d19: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82ac25		st1 {v5.1d, v6.1d}, [x1], x2
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9fac22		st1 {v2.1d, v3.1d}, [x1], #16
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (3.162e-322)
+#                                                  ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c007c04		st1 {v4.1d}, [x0]
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c827c3b		st1 {v27.1d}, [x1], x2
-#   v27:                 0x0000000000000000 (d27: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f7c37		st1 {v23.1d}, [x1], #8
-#   v23:                 0x0000000000000000 (d23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c002c02		st1 {v2.2d, v3.2d, v4.2d, v5.2d}, [x0]
-#    v2: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#                                  ║               ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c822c36		st1 {v22.2d, v23.2d, v24.2d, v25.2d}, [x1], x2
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f2c3c		st1 {v28.2d, v29.2d, v30.2d, v31.2d}, [x1], #64
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c006c11		st1 {v17.2d, v18.2d, v19.2d}, [x0]
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c826c30		st1 {v16.2d, v17.2d, v18.2d}, [x1], x2
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f6c36		st1 {v22.2d, v23.2d, v24.2d}, [x1], #48
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00ac15		st1 {v21.2d, v22.2d}, [x0]
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82ac26		st1 {v6.2d, v7.2d}, [x1], x2
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9fac3b		st1 {v27.2d, v28.2d}, [x1], #32
-#   v27: 0x00000000000000fe0000000000000000 (1.25493e-321, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (1.255e-321, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000000000fe -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c007c15		st1 {v21.2d}, [x0]
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c827c3d		st1 {v29.2d}, [x1], x2
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f7c34		st1 {v20.2d}, [x1], #16
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c002816		st1 {v22.2s, v23.2s, v24.2s, v25.2s}, [x0]
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c822828		st1 {v8.2s, v9.2s, v10.2s, v11.2s}, [x1], x2
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f282f		st1 {v15.2s, v16.2s, v17.2s, v18.2s}, [x1], #32
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c006802		st1 {v2.2s, v3.2s, v4.2s}, [x0]
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c826837		st1 {v23.2s, v24.2s, v25.2s}, [x1], x2
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f6827		st1 {v7.2s, v8.2s, v9.2s}, [x1], #24
-#    v7:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00a81c		st1 {v28.2s, v29.2s}, [x0]
-#   v28:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82a83d		st1 {v29.2s, v30.2s}, [x1], x2
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9fa837		st1 {v23.2s, v24.2s}, [x1], #16
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c007806		st1 {v6.2s}, [x0]
-#    v6:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82782b		st1 {v11.2s}, [x1], x2
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f7831		st1 {v17.2s}, [x1], #8
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c002406		st1 {v6.4h, v7.4h, v8.4h, v9.4h}, [x0]
-#    v6:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c822429		st1 {v9.4h, v10.4h, v11.4h, v12.4h}, [x1], x2
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f2439		st1 {v25.4h, v26.4h, v27.4h, v28.4h}, [x1], #32
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00640b		st1 {v11.4h, v12.4h, v13.4h}, [x0]
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82642a		st1 {v10.4h, v11.4h, v12.4h}, [x1], x2
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f642c		st1 {v12.4h, v13.4h, v14.4h}, [x1], #24
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00a40d		st1 {v13.4h, v14.4h}, [x0]
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82a42f		st1 {v15.4h, v16.4h}, [x1], x2
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9fa435		st1 {v21.4h, v22.4h}, [x1], #16
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c007410		st1 {v16.4h}, [x0]
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c827428		st1 {v8.4h}, [x1], x2
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f743e		st1 {v30.4h}, [x1], #8
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c002803		st1 {v3.4s, v4.4s, v5.4s, v6.4s}, [x0]
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c822839		st1 {v25.4s, v26.4s, v27.4s, v28.4s}, [x1], x2
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f2825		st1 {v5.4s, v6.4s, v7.4s, v8.4s}, [x1], #64
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00681f		st1 {v31.4s, v0.4s, v1.4s}, [x0]
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82683e		st1 {v30.4s, v31.4s, v0.4s}, [x1], x2
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f6826		st1 {v6.4s, v7.4s, v8.4s}, [x1], #48
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00a811		st1 {v17.4s, v18.4s}, [x0]
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82a83f		st1 {v31.4s, v0.4s}, [x1], x2
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9fa821		st1 {v1.4s, v2.4s}, [x1], #32
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00781a		st1 {v26.4s}, [x0]
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82782f		st1 {v15.4s}, [x1], x2
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f782d		st1 {v13.4s}, [x1], #16
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#                          ║       ║       ║       ╙─ 0xffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00201a		st1 {v26.8b, v27.8b, v28.8b, v29.8b}, [x0]
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82202a		st1 {v10.8b, v11.8b, v12.8b, v13.8b}, [x1], x2
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f202f		st1 {v15.8b, v16.8b, v17.8b, v18.8b}, [x1], #32
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c006013		st1 {v19.8b, v20.8b, v21.8b}, [x0]
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v20<63:0>:                 0x0000000000000020
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82603f		st1 {v31.8b, v0.8b, v1.8b}, [x1], x2
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f6029		st1 {v9.8b, v10.8b, v11.8b}, [x1], #24
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00a00c		st1 {v12.8b, v13.8b}, [x0]
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82a022		st1 {v2.8b, v3.8b}, [x1], x2
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9fa020		st1 {v0.8b, v1.8b}, [x1], #16
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c007010		st1 {v16.8b}, [x0]
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c827039		st1 {v25.8b}, [x1], x2
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f703f		st1 {v31.8b}, [x1], #8
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c002404		st1 {v4.8h, v5.8h, v6.8h, v7.8h}, [x0]
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c822423		st1 {v3.8h, v4.8h, v5.8h, v6.8h}, [x1], x2
-#    v3: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f243a		st1 {v26.8h, v27.8h, v28.8h, v29.8h}, [x1], #64
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00640a		st1 {v10.8h, v11.8h, v12.8h}, [x0]
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c826435		st1 {v21.8h, v22.8h, v23.8h}, [x1], x2
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f6432		st1 {v18.8h, v19.8h, v20.8h}, [x1], #48
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00a41a		st1 {v26.8h, v27.8h}, [x0]
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82a438		st1 {v24.8h, v25.8h}, [x1], x2
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9fa431		st1 {v17.8h, v18.8h}, [x1], #32
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00741d		st1 {v29.8h}, [x0]
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c827433		st1 {v19.8h}, [x1], x2
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f7437		st1 {v23.8h}, [x1], #16
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d001c13		st1 {v19.b}[15], [x0]
-#   v19: 0x00                               -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d820439		st1 {v25.b}[9], [x1], x2
-#   v25:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                                ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d9f0024		st1 {v4.b}[8], [x1], #1
-#    v4:               0x00                 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d00840d		st1 {v13.d}[0], [x0]
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d82843e		st1 {v30.d}[0], [x1], x2
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d9f8423		st1 {v3.d}[0], [x1], #8
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d004016		st1 {v22.h}[0], [x0]
-#   v22:                             0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d82583f		st1 {v31.h}[7], [x1], x2
-#   v31: 0x0000                             -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d9f5837		st1 {v23.h}[3], [x1], #2
-#   v23:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d008000		st1 {v0.s}[0], [x0]
-#    v0:                         0x00000000 (s0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d82902b		st1 {v11.s}[3], [x1], x2
-#   v11: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d9f9038		st1 {v24.s}[3], [x1], #4
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c008007		st2 {v7.16b, v8.16b}, [x0]
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c828025		st2 {v5.16b, v6.16b}, [x1], x2
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f8032		st2 {v18.16b, v19.16b}, [x1], #32
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c008c0e		st2 {v14.2d, v15.2d}, [x0]
-#   v14: 0x00000000000000000000000000000001 (0.00000, 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 4.941e-324)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c828c27		st2 {v7.2d, v8.2d}, [x1], x2
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f8c38		st2 {v24.2d, v25.2d}, [x1], #32
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c008816		st2 {v22.2s, v23.2s}, [x0]
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c828824		st2 {v4.2s, v5.2s}, [x1], x2
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#       v5<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f8822		st2 {v2.2s, v3.2s}, [x1], #16
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c008417		st2 {v23.4h, v24.4h}, [x0]
-#   v23:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c828428		st2 {v8.4h, v9.4h}, [x1], x2
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f8427		st2 {v7.4h, v8.4h}, [x1], #16
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c008811		st2 {v17.4s, v18.4s}, [x0]
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c828826		st2 {v6.4s, v7.4s}, [x1], x2
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f883a		st2 {v26.4s, v27.4s}, [x1], #32
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00801f		st2 {v31.8b, v0.8b}, [x0]
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c828020		st2 {v0.8b, v1.8b}, [x1], x2
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f8035		st2 {v21.8b, v22.8b}, [x1], #16
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c008407		st2 {v7.8h, v8.8h}, [x0]
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c828436		st2 {v22.8h, v23.8h}, [x1], x2
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f8424		st2 {v4.8h, v5.8h}, [x1], #32
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d201c08		st2 {v8.b, v9.b}[15], [x0]
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da21c28		st2 {v8.b, v9.b}[15], [x1], x2
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dbf1027		st2 {v7.b, v8.b}[4], [x1], #2
-#    v7:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#    v8:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                                          ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d208419		st2 {v25.d, v26.d}[0], [x0]
-#   v25:                 0x0000000000000000 (d25: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (d26: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da28431		st2 {v17.d, v18.d}[1], [x1], x2
-#   v17: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dbf8423		st2 {v3.d, v4.d}[1], [x1], #16
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d205804		st2 {v4.h, v5.h}[3], [x0]
-#    v4:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da24820		st2 {v0.h, v1.h}[5], [x1], x2
-#    v0:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dbf5036		st2 {v22.h, v23.h}[2], [x1], #4
-#   v22:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v23:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d20900e		st2 {v14.s, v15.s}[3], [x0]
-#   v14: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da29037		st2 {v23.s, v24.s}[3], [x1], x2
-#   v23: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dbf8020		st2 {v0.s, v1.s}[2], [x1], #8
-#    v0:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00401a		st3 {v26.16b, v27.16b, v28.16b}, [x0]
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'fe'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c824035		st3 {v21.16b, v22.16b, v23.16b}, [x1], x2
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f4038		st3 {v24.16b, v25.16b, v26.16b}, [x1], #48
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c004c11		st3 {v17.2d, v18.2d, v19.2d}, [x0]
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c824c37		st3 {v23.2d, v24.2d, v25.2d}, [x1], x2
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f4c2a		st3 {v10.2d, v11.2d, v12.2d}, [x1], #48
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c004809		st3 {v9.2s, v10.2s, v11.2s}, [x0]
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82482d		st3 {v13.2s, v14.2s, v15.2s}, [x1], x2
-#   v13:                 0xffffffffffffffe1 (..., nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (..., 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan)
+#      v14<63:0>:                 0x0000000000000001 (0.000, 1.401e-45)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f4836		st3 {v22.2s, v23.2s, v24.2s}, [x1], #24
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00441f		st3 {v31.4h, v0.4h, v1.4h}, [x0]
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v0<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c824428		st3 {v8.4h, v9.4h, v10.4h}, [x1], x2
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f4433		st3 {v19.4h, v20.4h, v21.4h}, [x1], #24
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c004812		st3 {v18.4s, v19.4s, v20.4s}, [x0]
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 0.00000, 0.00000, 4.48416e-44) -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 4.484e-44)
+#                          ║       ║       ║       ╙─ 0x00000020'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c824839		st3 {v25.4s, v26.4s, v27.4s}, [x1], x2
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f4830		st3 {v16.4s, v17.4s, v18.4s}, [x1], #48
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00401b		st3 {v27.8b, v28.8b, v29.8b}, [x0]
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82403d		st3 {v29.8b, v30.8b, v31.8b}, [x1], x2
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f403e		st3 {v30.8b, v31.8b, v0.8b}, [x1], #24
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c004408		st3 {v8.8h, v9.8h, v10.8h}, [x0]
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c824432		st3 {v18.8h, v19.8h, v20.8h}, [x1], x2
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f4432		st3 {v18.8h, v19.8h, v20.8h}, [x1], #48
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d00281f		st3 {v31.b, v0.b, v1.b}[10], [x0]
-#   v31:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v0:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:           0x00                     -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d823424		st3 {v4.b, v5.b, v6.b}[5], [x1], x2
-#    v4:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v5:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v6:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                                        ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d9f2425		st3 {v5.b, v6.b, v7.b}[1], [x1], #3
-#    v5:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v6:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v7:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                                                ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d00a405		st3 {v5.d, v6.d, v7.d}[0], [x0]
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d82a426		st3 {v6.d, v7.d, v8.d}[0], [x1], x2
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d9fa420		st3 {v0.d, v1.d, v2.d}[0], [x1], #24
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#                                                  ╙─ 0x0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d00701f		st3 {v31.h, v0.h, v1.h}[2], [x0]
-#   v31:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v0:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v1:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d82682e		st3 {v14.h, v15.h, v16.h}[5], [x1], x2
-#   v14:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v15:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v16:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (..., 0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d9f7035		st3 {v21.h, v22.h, v23.h}[6], [x1], #6
-#   v21:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v22:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v23:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                          ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d00a015		st3 {v21.s, v22.s, v23.s}[0], [x0]
-#   v21:                         0xffff8007 (s21: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                         0x00000000 (s22: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                         0x00000000 (s23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., nan)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00000000'ffff8007 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d82b02b		st3 {v11.s, v12.s, v13.s}[1], [x1], x2
-#   v11:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffff         (..., nan, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (..., 0.000, ...)
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan, ...)
+#                                          ╙───────── 0xffffffff'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d9fa02f		st3 {v15.s, v16.s, v17.s}[0], [x1], #12
-#   v15:                         0x00000000 (s15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                         0x00007ff9 (s16: 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                         0x00000000 (s17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c000016		st4 {v22.16b, v23.16b, v24.16b, v25.16b}, [x0]
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'f9'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'7f'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c820038		st4 {v24.16b, v25.16b, v26.16b, v27.16b}, [x1], x2
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f002f		st4 {v15.16b, v16.16b, v17.16b, v18.16b}, [x1], #64
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#     v17<127:0>: 0x00000000000000000000000000000000
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c000c10		st4 {v16.2d, v17.2d, v18.2d, v19.2d}, [x0]
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c820c31		st4 {v17.2d, v18.2d, v19.2d, v20.2d}, [x1], x2
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f0c29		st4 {v9.2d, v10.2d, v11.2d, v12.2d}, [x1], #64
-#    v9: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000'0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c000817		st4 {v23.2s, v24.2s, v25.2s, v26.2s}, [x0]
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c82082f		st4 {v15.2s, v16.2s, v17.2s, v18.2s}, [x1], x2
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f0838		st4 {v24.2s, v25.2s, v26.2s, v27.2s}, [x1], #32
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00040e		st4 {v14.4h, v15.4h, v16.4h, v17.4h}, [x0]
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'7ff9'0000'0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c820432		st4 {v18.4h, v19.4h, v20.4h, v21.4h}, [x1], x2
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f0421		st4 {v1.4h, v2.4h, v3.4h, v4.4h}, [x1], #32
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v2<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c00080d		st4 {v13.4s, v14.4s, v15.4s, v16.4s}, [x0]
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000000000000000000001 (0.00000, 0.00000, 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 0.000, 0.000, 1.401e-45)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#                          ║       ║       ║       ╙─ 0x00007ff9'00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c820826		st4 {v6.4s, v7.4s, v8.4s, v9.4s}, [x1], x2
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f082f		st4 {v15.4s, v16.4s, v17.4s, v18.4s}, [x1], #64
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c00001a		st4 {v26.8b, v27.8b, v28.8b, v29.8b}, [x0]
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c820039		st4 {v25.8b, v26.8b, v27.8b, v28.8b}, [x1], x2
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0c9f0033		st4 {v19.8b, v20.8b, v21.8b, v22.8b}, [x1], #32
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#      v20<63:0>:                 0x0000000000000020
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07'20'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c000413		st4 {v19.8h, v20.8h, v21.8h, v22.8h}, [x0]
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'ffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c82042f		st4 {v15.8h, v16.8h, v17.8h, v18.8h}, [x1], x2
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4c9f043f		st4 {v31.8h, v0.8h, v1.8h, v2.8h}, [x1], #64
-#   v31: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0040'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d203400		st4 {v0.b, v1.b, v2.b, v3.b}[13], [x0]
-#    v0:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v1:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v2:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v3:     0x00                           -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#      v2<127:0>: 0x00000000000000000000000000000040
+#      v3<127:0>: 0x00000000000000000000000000000000
+#                        ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da22824		st4 {v4.b, v5.b, v6.b, v7.b}[10], [x1], x2
-#    v4:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v5:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v6:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v7:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dbf2429		st4 {v9.b, v10.b, v11.b, v12.b}[9], [x1], #4
-#    v9:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v10:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v11:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v12:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#     v10<127:0>: 0x00000000000000000000000000000000
+#     v11<127:0>: 0x00000000000000000000000000000000
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                                ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d20a402		st4 {v2.d, v3.d, v4.d, v5.d}[1], [x0]
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0da2a427		st4 {v7.d, v8.d, v9.d, v10.d}[0], [x1], x2
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (d9: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (d10: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dbfa43f		st4 {v31.d, v0.d, v1.d, v2.d}[1], [x1], #32
-#   v31: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0d206802		st4 {v2.h, v3.h, v4.h, v5.h}[1], [x0]
-#    v2:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v3:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v4:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v5:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                              ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0da2783b		st4 {v27.h, v28.h, v29.h, v30.h}[3], [x1], x2
-#   v27:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v29<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4dbf6038		st4 {v24.h, v25.h, v26.h, v27.h}[4], [x1], #8
-#   v24:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v25:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v26:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v27:             0x00fe                 -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 1.514e-05, ...)
+#                                  ╙───────────────── 0x00fe'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4d20a012		st4 {v18.s, v19.s, v20.s, v21.s}[2], [x0]
-#   v18:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v19:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v20:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v21:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v19<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v20<127:0>: 0x00000000000000000000000000000020 (..., 0.000, ...)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  4da2a026		st4 {v6.s, v7.s, v8.s, v9.s}[2], [x1], x2
-#    v6:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v8:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v9:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  0dbfb039		st4 {v25.s, v26.s, v27.s, v28.s}[1], [x1], #16
-#   v25:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  7ee2862c		sub d12, d17, d2
-#   v12: 0x0000000000000000ffffffffffffffc0
+#            v12: 0x0000000000000000ffffffffffffffc0
 0x~~~~~~~~~~~~~~~~  6e288714		sub v20.16b, v24.16b, v8.16b
-#   v20: 0x00000000000000000000000000007ff9
+#            v20: 0x00000000000000000000000000007ff9
 0x~~~~~~~~~~~~~~~~  6ee587a8		sub v8.2d, v29.2d, v5.2d
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb88782		sub v2.2s, v28.2s, v24.2s
-#    v2: 0x000000000000000000000000ffff8007
+#             v2: 0x000000000000000000000000ffff8007
 0x~~~~~~~~~~~~~~~~  2e648558		sub v24.4h, v10.4h, v4.4h
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb1849c		sub v28.4s, v4.4s, v17.4s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e228770		sub v16.8b, v27.8b, v2.8b
-#   v16: 0x000000000000000000000000010180f9
+#            v16: 0x000000000000000000000000010180f9
 0x~~~~~~~~~~~~~~~~  6e6d8554		sub v20.8h, v10.8h, v13.8h
-#   v20: 0x0000000000000000000100010001001f
+#            v20: 0x0000000000000000000100010001001f
 0x~~~~~~~~~~~~~~~~  0ead61c5		subhn v5.2s, v14.2d, v13.2d
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e6860aa		subhn v10.4h, v5.4s, v8.4s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e366146		subhn v6.8b, v10.8h, v22.8h
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e2960cb		subhn2 v11.16b, v6.8h, v9.8h
-#   v11: 0x00000000000000ff0000000000000000
+#            v11: 0x00000000000000ff0000000000000000
 0x~~~~~~~~~~~~~~~~  4eb86259		subhn2 v25.4s, v18.2d, v24.2d
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6162b4		subhn2 v20.8h, v21.4s, v1.4s
-#   v20: 0x000000000000ffff000100010001001f
+#            v20: 0x000000000000ffff000100010001001f
 0x~~~~~~~~~~~~~~~~  5e203979		suqadd b25, b11
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5ee0382d		suqadd d13, d1
-#   v13: 0x0000000000000000ffffffffffffffe1
+#            v13: 0x0000000000000000ffffffffffffffe1
 0x~~~~~~~~~~~~~~~~  5e603920		suqadd h0, h9
-#    v0: 0x00000000000000000000000000000040
+#             v0: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  5ea03916		suqadd s22, s8
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e203b78		suqadd v24.16b, v27.16b
-#   v24: 0x000000000000007f0000000000000000
+#            v24: 0x000000000000007f0000000000000000
 0x~~~~~~~~~~~~~~~~  4ee039da		suqadd v26.2d, v14.2d
-#   v26: 0x00000000000000000000000000000001
+#            v26: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  0ea03947		suqadd v7.2s, v10.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e603999		suqadd v25.4h, v12.4h
-#   v25: 0x00000000000000007fff7fff7fff7fff
+#            v25: 0x00000000000000007fff7fff7fff7fff
 0x~~~~~~~~~~~~~~~~  4ea03864		suqadd v4.4s, v3.4s
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e203a4e		suqadd v14.8b, v18.8b
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  4e60391f		suqadd v31.8h, v8.8h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f20a690		sxtl v16.2d, v20.2s
-#   v16: 0x0000000000010001000000000001001f
+#            v16: 0x0000000000010001000000000001001f
 0x~~~~~~~~~~~~~~~~  0f10a79b		sxtl v27.4s, v28.4h
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f08a6c0		sxtl v0.8h, v22.8b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f20a4e6		sxtl2 v6.2d, v7.4s
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f10a769		sxtl2 v9.4s, v27.8h
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f08a610		sxtl2 v16.8h, v16.16b
-#   v16: 0x00000000000000000000000100000001
+#            v16: 0x00000000000000000000000100000001
 0x~~~~~~~~~~~~~~~~  4e166239		tbl v25.16b, {v17.16b, v18.16b, v19.16b, v20.16b}, v22.16b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e0441bc		tbl v28.16b, {v13.16b, v14.16b, v15.16b}, v4.16b
-#   v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
+#            v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
 0x~~~~~~~~~~~~~~~~  4e022003		tbl v3.16b, {v0.16b, v1.16b}, v2.16b
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e0401f4		tbl v20.16b, {v15.16b}, v4.16b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1462e7		tbl v7.8b, {v23.16b, v24.16b, v25.16b, v26.16b}, v20.8b
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1f4028		tbl v8.8b, {v1.16b, v2.16b, v3.16b}, v31.8b
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e102328		tbl v8.8b, {v25.16b, v26.16b}, v16.8b
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1e026b		tbl v11.8b, {v19.16b}, v30.8b
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e057339		tbx v25.16b, {v25.16b, v26.16b, v27.16b, v28.16b}, v5.16b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e1853b5		tbx v21.16b, {v29.16b, v30.16b, v31.16b}, v24.16b
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e013206		tbx v6.16b, {v16.16b, v17.16b}, v1.16b
-#    v6: 0x01010101010101010101010101010101
+#             v6: 0x01010101010101010101010101010101
 0x~~~~~~~~~~~~~~~~  4e14106d		tbx v13.16b, {v3.16b}, v20.16b
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e0973b8		tbx v24.8b, {v29.16b, v30.16b, v31.16b, v0.16b}, v9.8b
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1a5131		tbx v17.8b, {v9.16b, v10.16b, v11.16b}, v26.8b
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e153065		tbx v5.8b, {v3.16b, v4.16b}, v21.8b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1d1170		tbx v16.8b, {v11.16b}, v29.8b
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e0c2b13		trn1 v19.16b, v24.16b, v12.16b
-#   v19: 0x0000000000000000ff00ff00ff00c000
+#            v19: 0x0000000000000000ff00ff00ff00c000
 0x~~~~~~~~~~~~~~~~  4eca28e2		trn1 v2.2d, v7.2d, v10.2d
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e952816		trn1 v22.2s, v0.2s, v21.2s
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e5429ec		trn1 v12.4h, v15.4h, v20.4h
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e892a3e		trn1 v30.4s, v17.4s, v9.4s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e1d2a6c		trn1 v12.8b, v19.8b, v29.8b
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e492917		trn1 v23.8h, v8.8h, v9.8h
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e196bdc		trn2 v28.16b, v30.16b, v25.16b
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ec76b67		trn2 v7.2d, v27.2d, v7.2d
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e936a1e		trn2 v30.2s, v16.2s, v19.2s
-#   v30: 0x0000000000000000ff00ff0000000000
+#            v30: 0x0000000000000000ff00ff0000000000
 0x~~~~~~~~~~~~~~~~  0e5968d8		trn2 v24.4h, v6.4h, v25.4h
-#   v24: 0x00000000000000000000010100000101
+#            v24: 0x00000000000000000000010100000101
 0x~~~~~~~~~~~~~~~~  4e8b6a62		trn2 v2.4s, v19.4s, v11.4s
-#    v2: 0x000000000000000000000000ff00ff00
+#             v2: 0x000000000000000000000000ff00ff00
 0x~~~~~~~~~~~~~~~~  0e126b79		trn2 v25.8b, v27.8b, v18.8b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e4f688c		trn2 v12.8h, v4.8h, v15.8h
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e3c7d9f		uaba v31.16b, v12.16b, v28.16b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eae7cb2		uaba v18.2s, v5.2s, v14.2s
-#   v18: 0x00000000000000000000000000000001
+#            v18: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  2e757e89		uaba v9.4h, v20.4h, v21.4h
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea27e86		uaba v6.4s, v20.4s, v2.4s
-#    v6: 0x01010101010101010101010100020001
+#             v6: 0x01010101010101010101010100020001
 0x~~~~~~~~~~~~~~~~  2e257d90		uaba v16.8b, v12.8b, v5.8b
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7e7f4f		uaba v15.8h, v26.8h, v30.8h
-#   v15: 0x0000000000000000ff00ff0000000001
+#            v15: 0x0000000000000000ff00ff0000000001
 0x~~~~~~~~~~~~~~~~  2eaf524a		uabal v10.2d, v18.2s, v15.2s
-#   v10: 0x00000000ff00ff000000000000000000
+#            v10: 0x00000000ff00ff000000000000000000
 0x~~~~~~~~~~~~~~~~  2e67527e		uabal v30.4s, v19.4h, v7.4h
-#   v30: 0x0000ff000000ff00ff01fe000000c000
+#            v30: 0x0000ff000000ff00ff01fe000000c000
 0x~~~~~~~~~~~~~~~~  2e205364		uabal v4.8h, v27.8b, v0.8b
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea25193		uabal2 v19.2d, v12.4s, v2.4s
-#   v19: 0x0000000000000000ff00ff00ff00c000
+#            v19: 0x0000000000000000ff00ff00ff00c000
 0x~~~~~~~~~~~~~~~~  6e6c50ba		uabal2 v26.4s, v5.8h, v12.8h
-#   v26: 0x00000000000000000000000000000001
+#            v26: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  6e3c5293		uabal2 v19.8h, v20.16b, v28.16b
-#   v19: 0x0000000000000000ff00ff00ff00c000
+#            v19: 0x0000000000000000ff00ff00ff00c000
 0x~~~~~~~~~~~~~~~~  6e357492		uabd v18.16b, v4.16b, v21.16b
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb076be		uabd v30.2s, v21.2s, v16.2s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e797788		uabd v8.4h, v28.4h, v25.4h
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb5759c		uabd v28.4s, v12.4s, v21.4s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e3c7613		uabd v19.8b, v16.8b, v28.8b
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7d7589		uabd v9.8h, v12.8h, v29.8h
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea8701a		uabdl v26.2d, v0.2s, v8.2s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e7973fd		uabdl v29.4s, v31.4h, v25.4h
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2e73bb		uabdl v27.8h, v29.8b, v14.8b
-#   v27: 0x00000000000000000000000000000001
+#            v27: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  6ea87294		uabdl2 v20.2d, v20.4s, v8.4s
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7271f6		uabdl2 v22.4s, v15.8h, v18.8h
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e377249		uabdl2 v9.8h, v18.16b, v23.16b
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea069e9		uadalp v9.1d, v15.2s
-#    v9: 0x000000000000000000000000ff00ff01
+#             v9: 0x000000000000000000000000ff00ff01
 0x~~~~~~~~~~~~~~~~  6ea0698e		uadalp v14.2d, v12.4s
-#   v14: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  2e60699c		uadalp v28.2s, v12.4h
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e206a20		uadalp v0.4h, v17.8b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e606ba1		uadalp v1.4s, v29.8h
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e206acf		uadalp v15.8h, v22.16b
-#   v15: 0x0000000000000000ff00ff0000000001
+#            v15: 0x0000000000000000ff00ff0000000001
 0x~~~~~~~~~~~~~~~~  2ebb0281		uaddl v1.2d, v20.2s, v27.2s
-#    v1: 0x00000000000000000000000000000001
+#             v1: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  2e65033f		uaddl v31.4s, v25.4h, v5.4h
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e23006c		uaddl v12.8h, v3.8b, v3.8b
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea602e5		uaddl2 v5.2d, v23.4s, v6.4s
-#    v5: 0x00000000010101010000000001010101
+#             v5: 0x00000000010101010000000001010101
 0x~~~~~~~~~~~~~~~~  6e7900a1		uaddl2 v1.4s, v5.8h, v25.8h
-#    v1: 0x00000000000000000000010100000101
+#             v1: 0x00000000000000000000010100000101
 0x~~~~~~~~~~~~~~~~  6e3c03d6		uaddl2 v22.8h, v30.16b, v28.16b
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea02927		uaddlp v7.1d, v9.2s
-#    v7: 0x000000000000000000000000ff00ff01
+#             v7: 0x000000000000000000000000ff00ff01
 0x~~~~~~~~~~~~~~~~  6ea0289a		uaddlp v26.2d, v4.4s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e60283c		uaddlp v28.2s, v1.4h
-#   v28: 0x00000000000000000000010100000101
+#            v28: 0x00000000000000000000010100000101
 0x~~~~~~~~~~~~~~~~  2e202bf4		uaddlp v20.4h, v31.8b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e602a30		uaddlp v16.4s, v17.8h
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e202846		uaddlp v6.8h, v2.16b
-#    v6: 0x00000000000000000000000000ff00ff
+#             v6: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  6eb03adc		uaddlv d28, v22.4s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e303a60		uaddlv h0, v19.16b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e303bde		uaddlv h30, v30.8b
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e703a58		uaddlv s24, v18.4h
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e70380a		uaddlv s10, v0.8h
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eae1229		uaddw v9.2d, v17.2d, v14.2s
-#    v9: 0x00000000000000000000000000000001
+#             v9: 0x00000000000000000000000000000001
 0x~~~~~~~~~~~~~~~~  2e631329		uaddw v9.4s, v25.4s, v3.4h
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e201032		uaddw v18.8h, v1.8h, v0.8b
-#   v18: 0x00000000000000000000010100000101
+#            v18: 0x00000000000000000000010100000101
 0x~~~~~~~~~~~~~~~~  6ea610b2		uaddw2 v18.2d, v5.2d, v6.4s
-#   v18: 0x00000000010101010000000001010101
+#            v18: 0x00000000010101010000000001010101
 0x~~~~~~~~~~~~~~~~  6e6b11f1		uaddw2 v17.4s, v15.4s, v11.8h
-#   v17: 0x0000000000000000ff00ff0000000001
+#            v17: 0x0000000000000000ff00ff0000000001
 0x~~~~~~~~~~~~~~~~  6e27117d		uaddw2 v29.8h, v11.8h, v7.16b
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e23052d		uhadd v13.16b, v9.16b, v3.16b
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb80731		uhadd v17.2s, v25.2s, v24.2s
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e6d06f9		uhadd v25.4h, v23.4h, v13.4h
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb00680		uhadd v0.4s, v20.4s, v16.4s
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e3904a5		uhadd v5.8b, v5.8b, v25.8b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7207a3		uhadd v3.8h, v29.8h, v18.8h
-#    v3: 0x00000000008000800000000000800080
+#             v3: 0x00000000008000800000000000800080
 0x~~~~~~~~~~~~~~~~  6e2d26c1		uhsub v1.16b, v22.16b, v13.16b
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebe27ce		uhsub v14.2s, v30.2s, v30.2s
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e7125dd		uhsub v29.4h, v14.4h, v17.4h
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb224ba		uhsub v26.4s, v5.4s, v18.4s
-#   v26: 0x00000000ff7f7f7f00000000ff7f7f7f
+#            v26: 0x00000000ff7f7f7f00000000ff7f7f7f
 0x~~~~~~~~~~~~~~~~  2e2c24e3		uhsub v3.8b, v7.8b, v12.8b
-#    v3: 0x0000000000000000000000007f007f00
+#             v3: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  6e6526b9		uhsub v25.8h, v21.8h, v5.8h
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e26659c		umax v28.16b, v12.16b, v6.16b
-#   v28: 0x00000000000000000000000000ff00ff
+#            v28: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  2eba6674		umax v20.2s, v19.2s, v26.2s
-#   v20: 0x000000000000000000000000ff7f7f7f
+#            v20: 0x000000000000000000000000ff7f7f7f
 0x~~~~~~~~~~~~~~~~  2e7267e0		umax v0.4h, v31.4h, v18.4h
-#    v0: 0x00000000000000000000000001010101
+#             v0: 0x00000000000000000000000001010101
 0x~~~~~~~~~~~~~~~~  6ebc66a6		umax v6.4s, v21.4s, v28.4s
-#    v6: 0x00000000000000000000000000ff00ff
+#             v6: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  2e346440		umax v0.8b, v2.8b, v20.8b
-#    v0: 0x000000000000000000000000ff7fff7f
+#             v0: 0x000000000000000000000000ff7fff7f
 0x~~~~~~~~~~~~~~~~  6e766564		umax v4.8h, v11.8h, v22.8h
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e3da4c1		umaxp v1.16b, v6.16b, v29.16b
-#    v1: 0x0000000000000000000000000000ffff
+#             v1: 0x0000000000000000000000000000ffff
 0x~~~~~~~~~~~~~~~~  2ebba633		umaxp v19.2s, v17.2s, v27.2s
-#   v19: 0x00000000000000000000000100000000
+#            v19: 0x00000000000000000000000100000000
 0x~~~~~~~~~~~~~~~~  2e67a615		umaxp v21.4h, v16.4h, v7.4h
-#   v21: 0x00000000000000000000ff0100000000
+#            v21: 0x00000000000000000000ff0100000000
 0x~~~~~~~~~~~~~~~~  6ebda689		umaxp v9.4s, v20.4s, v29.4s
-#    v9: 0x000000000000000000000000ff7f7f7f
+#             v9: 0x000000000000000000000000ff7f7f7f
 0x~~~~~~~~~~~~~~~~  2e30a42d		umaxp v13.8b, v1.8b, v16.8b
-#   v13: 0x000000000000000000000000000000ff
+#            v13: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  6e7aa6f3		umaxp v19.8h, v23.8h, v26.8h
-#   v19: 0x0000ff7f0000ff7f0000000000000000
+#            v19: 0x0000ff7f0000ff7f0000000000000000
 0x~~~~~~~~~~~~~~~~  6e30abd1		umaxv b17, v30.16b
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e30a997		umaxv b23, v12.8b
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e70a9ff		umaxv h31, v15.4h
-#   v31: 0x0000000000000000000000000000ff00
+#            v31: 0x0000000000000000000000000000ff00
 0x~~~~~~~~~~~~~~~~  6e70ab2f		umaxv h15, v25.8h
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb0aab2		umaxv s18, v21.4s
-#   v18: 0x0000000000000000000000000000ff01
+#            v18: 0x0000000000000000000000000000ff01
 0x~~~~~~~~~~~~~~~~  6e326c16		umin v22.16b, v0.16b, v18.16b
-#   v22: 0x0000000000000000000000000000ff01
+#            v22: 0x0000000000000000000000000000ff01
 0x~~~~~~~~~~~~~~~~  2eb06ea1		umin v1.2s, v21.2s, v16.2s
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e796c91		umin v17.4h, v4.4h, v25.4h
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ead6f58		umin v24.4s, v26.4s, v13.4s
-#   v24: 0x000000000000000000000000000000ff
+#            v24: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  2e256c34		umin v20.8b, v1.8b, v5.8b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e776f3a		umin v26.8h, v25.8h, v23.8h
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e37ac25		uminp v5.16b, v1.16b, v23.16b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebeaf47		uminp v7.2s, v26.2s, v30.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e79aca9		uminp v9.4h, v5.4h, v25.4h
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea1ad57		uminp v23.4s, v10.4s, v1.4s
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2eafa4		uminp v4.8b, v29.8b, v14.8b
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e6eac15		uminp v21.8h, v0.8h, v14.8h
-#   v21: 0x0000000000000000000000000000ff7f
+#            v21: 0x0000000000000000000000000000ff7f
 0x~~~~~~~~~~~~~~~~  6e31aa20		uminv b0, v17.16b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e31abe0		uminv b0, v31.8b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e71a818		uminv h24, v0.4h
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e71a9dd		uminv h29, v14.8h
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb1a87e		uminv s30, v3.4s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb8816b		umlal v11.2d, v11.2s, v24.2s
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2fab2a1e		umlal v30.2d, v16.2s, v11.s[3]
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e7a8120		umlal v0.4s, v9.4h, v26.4h
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f4c2b14		umlal v20.4s, v24.4h, v12.h[4]
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2682b0		umlal v16.8h, v21.8b, v6.8b
-#   v16: 0x00000000000000000000000000007e81
+#            v16: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  6eb78271		umlal2 v17.2d, v19.4s, v23.4s
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f8823c5		umlal2 v5.2d, v30.4s, v8.s[0]
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e6f8110		umlal2 v16.4s, v8.8h, v15.8h
-#   v16: 0x00000000000000000000000000007e81
+#            v16: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  6f512b4f		umlal2 v15.4s, v26.8h, v1.h[5]
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e31803e		umlal2 v30.8h, v1.16b, v17.16b
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebca272		umlsl v18.2d, v19.2s, v28.2s
-#   v18: 0x0000000000000000000000000000ff01
+#            v18: 0x0000000000000000000000000000ff01
 0x~~~~~~~~~~~~~~~~  2f8860e7		umlsl v7.2d, v7.2s, v8.s[0]
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e64a118		umlsl v24.4s, v8.4h, v4.4h
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f4c6ad2		umlsl v18.4s, v22.4h, v12.h[4]
-#   v18: 0x0000000000000000000000000000ff01
+#            v18: 0x0000000000000000000000000000ff01
 0x~~~~~~~~~~~~~~~~  2e34a1dc		umlsl v28.8h, v14.8b, v20.8b
-#   v28: 0x00000000000000000000000000ff00ff
+#            v28: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  6ea9a00b		umlsl2 v11.2d, v0.4s, v9.4s
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f896a1a		umlsl2 v26.2d, v16.4s, v9.s[2]
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e69a163		umlsl2 v3.4s, v11.8h, v9.8h
-#    v3: 0x0000000000000000000000007f007f00
+#             v3: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  6f496b2a		umlsl2 v10.4s, v25.8h, v9.h[4]
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e3ca218		umlsl2 v24.8h, v16.16b, v28.16b
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e183f3e		mov x30, v25.d[1]
-#    lr: 0x0000000000000000
+#             lr: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  2ebdc14c		umull v12.2d, v10.2s, v29.2s
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2fa5abd6		umull v22.2d, v30.2s, v5.s[3]
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e79c007		umull v7.4s, v0.4h, v25.4h
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f63a1ab		umull v11.4s, v13.4h, v3.h[2]
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2ac219		umull v25.8h, v16.8b, v10.8b
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ebac071		umull2 v17.2d, v3.4s, v26.4s
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6fa2a97a		umull2 v26.2d, v11.4s, v2.s[3]
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e77c22c		umull2 v12.4s, v17.8h, v23.8h
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f61a3e4		umull2 v4.4s, v31.8h, v1.h[2]
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e31c185		umull2 v5.8h, v12.16b, v17.16b
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e3c0c9e		uqadd b30, b4, b28
-#   v30: 0x000000000000000000000000000000ff
+#            v30: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  7ef00e9b		uqadd d27, d20, d16
-#   v27: 0x00000000000000000000000000007e81
+#            v27: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  7e7c0dc7		uqadd h7, h14, h28
-#    v7: 0x000000000000000000000000000000ff
+#             v7: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  7ea40e3c		uqadd s28, s17, s4
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e350ed3		uqadd v19.16b, v22.16b, v21.16b
-#   v19: 0x0000000000000000000000000000ff7f
+#            v19: 0x0000000000000000000000000000ff7f
 0x~~~~~~~~~~~~~~~~  6eeb0c90		uqadd v16.2d, v4.2d, v11.2d
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea40dd4		uqadd v20.2s, v14.2s, v4.2s
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e700c05		uqadd v5.4h, v0.4h, v16.4h
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea90ff5		uqadd v21.4s, v31.4s, v9.4s
-#   v21: 0x0000000000000000000000000000ff00
+#            v21: 0x0000000000000000000000000000ff00
 0x~~~~~~~~~~~~~~~~  2e230f17		uqadd v23.8b, v24.8b, v3.8b
-#   v23: 0x0000000000000000000000007f007f00
+#            v23: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  6e6b0f71		uqadd v17.8h, v27.8h, v11.8h
-#   v17: 0x00000000000000000000000000007e81
+#            v17: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  7e2a5eca		uqrshl b10, b22, b10
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eeb5cbd		uqrshl d29, d5, d11
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e7e5f1b		uqrshl h27, h24, h30
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea85daa		uqrshl s10, s13, s8
-#   v10: 0x000000000000000000000000000000ff
+#            v10: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  6e2e5e49		uqrshl v9.16b, v18.16b, v14.16b
-#    v9: 0x0000000000000000000000000000ff01
+#             v9: 0x0000000000000000000000000000ff01
 0x~~~~~~~~~~~~~~~~  6ef15df8		uqrshl v24.2d, v15.2d, v17.2d
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebb5dc4		uqrshl v4.2s, v14.2s, v27.2s
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e685caf		uqrshl v15.4h, v5.4h, v8.4h
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea05fb5		uqrshl v21.4s, v29.4s, v0.4s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e295f10		uqrshl v16.8b, v24.8b, v9.8b
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e6f5c02		uqrshl v2.8h, v0.8h, v15.8h
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f0c9f4b		uqrshrn b11, h26, #4
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f1b9fc7		uqrshrn h7, s30, #5
-#    v7: 0x00000000000000000000000000000008
+#             v7: 0x00000000000000000000000000000008
 0x~~~~~~~~~~~~~~~~  7f2b9d0a		uqrshrn s10, d8, #21
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f359ccf		uqrshrn v15.2s, v6.2d, #11
-#   v15: 0x00000000000000000000000000001fe0
+#            v15: 0x00000000000000000000000000001fe0
 0x~~~~~~~~~~~~~~~~  2f149f45		uqrshrn v5.4h, v26.4s, #12
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0b9f3c		uqrshrn v28.8b, v25.8h, #5
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0e9fd9		uqrshrn2 v25.16b, v30.8h, #2
-#   v25: 0x00000000000000400000000000000000
+#            v25: 0x00000000000000400000000000000000
 0x~~~~~~~~~~~~~~~~  6f209dd5		uqrshrn2 v21.4s, v14.2d, #32
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1e9ced		uqrshrn2 v13.8h, v7.4s, #2
-#   v13: 0x000000000000000200000000000000ff
+#            v13: 0x000000000000000200000000000000ff
 0x~~~~~~~~~~~~~~~~  7e374c0d		uqshl b13, b0, b23
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f0c7629		uqshl b9, b17, #4
-#    v9: 0x000000000000000000000000000000ff
+#             v9: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  7ee44cd7		uqshl d23, d6, d4
-#   v23: 0x00000000000000000000000000ff00ff
+#            v23: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  7f6c7568		uqshl d8, d11, #44
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e6f4db3		uqshl h19, h13, h15
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f167759		uqshl h25, h26, #6
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eaa4f04		uqshl s4, s24, s10
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f2175d3		uqshl s19, s14, #1
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e394fce		uqshl v14.16b, v30.16b, v25.16b
-#   v14: 0x000000000000000000000000000000ff
+#            v14: 0x000000000000000000000000000000ff
 0x~~~~~~~~~~~~~~~~  6f0d7546		uqshl v6.16b, v10.16b, #5
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee74d12		uqshl v18.2d, v8.2d, v7.2d
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f5275d9		uqshl v25.2d, v14.2d, #18
-#   v25: 0x00000000000000000000000003fc0000
+#            v25: 0x00000000000000000000000003fc0000
 0x~~~~~~~~~~~~~~~~  2eb74e19		uqshl v25.2s, v16.2s, v23.2s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f3f75ed		uqshl v13.2s, v15.2s, #31
-#   v13: 0x000000000000000000000000ffffffff
+#            v13: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  2e6f4f1c		uqshl v28.4h, v24.4h, v15.4h
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f117624		uqshl v4.4h, v17.4h, #1
-#    v4: 0x0000000000000000000000000000fd02
+#             v4: 0x0000000000000000000000000000fd02
 0x~~~~~~~~~~~~~~~~  6eb74fe9		uqshl v9.4s, v31.4s, v23.4s
-#    v9: 0x00000000000000000000000000007f80
+#             v9: 0x00000000000000000000000000007f80
 0x~~~~~~~~~~~~~~~~  6f3f7792		uqshl v18.4s, v28.4s, #31
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2f4ebf		uqshl v31.8b, v21.8b, v15.8b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0976a6		uqshl v6.8b, v21.8b, #1
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e714c5c		uqshl v28.8h, v2.8h, v17.8h
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1e7518		uqshl v24.8h, v8.8h, #14
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f099775		uqshrn b21, h27, #7
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f15975c		uqshrn h28, s26, #11
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f2f97ed		uqshrn s13, d31, #17
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f389615		uqshrn v21.2s, v16.2d, #8
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f1e9718		uqshrn v24.4h, v24.4s, #2
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f089425		uqshrn v5.8b, v1.8h, #8
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0a97b0		uqshrn2 v16.16b, v29.8h, #6
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f3f94c2		uqshrn2 v2.4s, v6.2d, #1
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f129550		uqshrn2 v16.8h, v10.4s, #14
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e3a2e9c		uqsub b28, b20, b26
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eea2ce0		uqsub d0, d7, d10
-#    v0: 0x00000000000000000000000000000008
+#             v0: 0x00000000000000000000000000000008
 0x~~~~~~~~~~~~~~~~  7e672f1a		uqsub h26, h24, h7
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eb02ef7		uqsub s23, s23, s16
-#   v23: 0x00000000000000000000000000ff00ff
+#            v23: 0x00000000000000000000000000ff00ff
 0x~~~~~~~~~~~~~~~~  6e382e0e		uqsub v14.16b, v16.16b, v24.16b
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee62e2b		uqsub v11.2d, v17.2d, v6.2d
-#   v11: 0x00000000000000000000000000007e81
+#            v11: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  2ea82d4a		uqsub v10.2s, v10.2s, v8.2s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e6c2de9		uqsub v9.4h, v15.4h, v12.4h
-#    v9: 0x00000000000000000000000000001fe0
+#             v9: 0x00000000000000000000000000001fe0
 0x~~~~~~~~~~~~~~~~  6ea72e57		uqsub v23.4s, v18.4s, v7.4s
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e312e69		uqsub v9.8b, v19.8b, v17.8b
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e662c54		uqsub v20.8h, v2.8h, v6.8h
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e214a7d		uqxtn b29, h19
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e6149a0		uqxtn h0, s13
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea14ada		uqxtn s26, d22
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea14be5		uqxtn v5.2s, v31.2d
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e614a7e		uqxtn v30.4h, v19.4s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e21484f		uqxtn v15.8b, v2.8h
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e21487d		uqxtn2 v29.16b, v3.8h
-#   v29: 0x000000000000ffff0000000000000000
+#            v29: 0x000000000000ffff0000000000000000
 0x~~~~~~~~~~~~~~~~  6ea14a2d		uqxtn2 v13.4s, v17.2d
-#   v13: 0x0000000000007e810000000000000000
+#            v13: 0x0000000000007e810000000000000000
 0x~~~~~~~~~~~~~~~~  6e61497c		uqxtn2 v28.8h, v11.4s
-#   v28: 0x0000000000007e810000000000000000
+#            v28: 0x0000000000007e810000000000000000
 0x~~~~~~~~~~~~~~~~  0ea1c9f7		urecpe v23.2s, v15.2s
-#   v23: 0x0000000000000000ffffffffffffffff
+#            v23: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4ea1c8fb		urecpe v27.4s, v7.4s
-#   v27: 0xffffffffffffffffffffffffffffffff
+#            v27: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e3b15e2		urhadd v2.16b, v15.16b, v27.16b
-#    v2: 0x80808080808080808080808080808080
+#             v2: 0x80808080808080808080808080808080
 0x~~~~~~~~~~~~~~~~  2eb2142f		urhadd v15.2s, v1.2s, v18.2s
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e7a1491		urhadd v17.4h, v4.4h, v26.4h
-#   v17: 0x00000000000000000000000000007e81
+#            v17: 0x00000000000000000000000000007e81
 0x~~~~~~~~~~~~~~~~  6eae1762		urhadd v2.4s, v27.4s, v14.4s
-#    v2: 0x80000000800000008000000080000000
+#             v2: 0x80000000800000008000000080000000
 0x~~~~~~~~~~~~~~~~  2e2e1625		urhadd v5.8b, v17.8b, v14.8b
-#    v5: 0x00000000000000000000000000003f41
+#             v5: 0x00000000000000000000000000003f41
 0x~~~~~~~~~~~~~~~~  6e79145e		urhadd v30.8h, v2.8h, v25.8h
-#   v30: 0x40000000400000004000000040000000
+#            v30: 0x40000000400000004000000040000000
 0x~~~~~~~~~~~~~~~~  7efe5784		urshl d4, d28, d30
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e3357ed		urshl v13.16b, v31.16b, v19.16b
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ef556ee		urshl v14.2d, v23.2d, v21.2d
-#   v14: 0x0000000000000000ffffffffffffffff
+#            v14: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2ea854ea		urshl v10.2s, v7.2s, v8.2s
-#   v10: 0x00000000000000000000000000000008
+#            v10: 0x00000000000000000000000000000008
 0x~~~~~~~~~~~~~~~~  2e7c56af		urshl v15.4h, v21.4h, v28.4h
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb7551e		urshl v30.4s, v8.4s, v23.4s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e25569f		urshl v31.8b, v20.8b, v5.8b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7e577e		urshl v30.8h, v27.8h, v30.8h
-#   v30: 0xffffffffffffffffffffffffffffffff
+#            v30: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7f4f25a4		urshr d4, d13, #49
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0f2682		urshr v2.16b, v20.16b, #1
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f4d256d		urshr v13.2d, v11.2d, #51
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f3627f5		urshr v21.2s, v31.2s, #10
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f152635		urshr v21.4h, v17.4h, #11
-#   v21: 0x00000000000000000000000000000010
+#            v21: 0x00000000000000000000000000000010
 0x~~~~~~~~~~~~~~~~  6f3f26c4		urshr v4.4s, v22.4s, #1
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f092420		urshr v0.8b, v1.8b, #7
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1f268d		urshr v13.8h, v20.8h, #1
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea1ca14		ursqrte v20.2s, v16.2s
-#   v20: 0x0000000000000000ffffffffffffffff
+#            v20: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ea1c91c		ursqrte v28.4s, v8.4s
-#   v28: 0xffffffffffffffffffffffffffffffff
+#            v28: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7f53361b		ursra d27, d16, #45
-#   v27: 0x0000000000000000ffffffffffffffff
+#            v27: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6f0d3632		ursra v18.16b, v17.16b, #3
-#   v18: 0x00000000000000000000000000001010
+#            v18: 0x00000000000000000000000000001010
 0x~~~~~~~~~~~~~~~~  6f46379a		ursra v26.2d, v28.2d, #58
-#   v26: 0x00000000000000400000000000000040
+#            v26: 0x00000000000000400000000000000040
 0x~~~~~~~~~~~~~~~~  2f2136c8		ursra v8.2s, v22.2s, #31
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f19349f		ursra v31.4h, v4.4h, #7
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f3e35ff		ursra v31.4s, v15.4s, #2
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0b3423		ursra v3.8b, v1.8b, #5
-#    v3: 0x0000000000000000000000007f007f00
+#             v3: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  6f1335d2		ursra v18.8h, v14.8h, #13
-#   v18: 0x00000000000000000008000800081018
+#            v18: 0x00000000000000000008000800081018
 0x~~~~~~~~~~~~~~~~  7ef0441f		ushl d31, d0, d16
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e2244c0		ushl v0.16b, v6.16b, v2.16b
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ef24432		ushl v18.2d, v1.2d, v18.2d
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebd44fb		ushl v27.2s, v7.2s, v29.2s
-#   v27: 0x00000000000000000000000000000008
+#            v27: 0x00000000000000000000000000000008
 0x~~~~~~~~~~~~~~~~  2e6d45ce		ushl v14.4h, v14.4h, v13.4h
-#   v14: 0x0000000000000000ffffffffffffffff
+#            v14: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ea94496		ushl v22.4s, v4.4s, v9.4s
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e3b46d7		ushl v23.8b, v22.8b, v27.8b
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e684735		ushl v21.8h, v25.8h, v8.8h
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f35a40b		ushll v11.2d, v0.2s, #21
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f18a622		ushll v2.4s, v17.4h, #8
-#    v2: 0x000000000000000000000000007e8100
+#             v2: 0x000000000000000000000000007e8100
 0x~~~~~~~~~~~~~~~~  2f09a5cb		ushll v11.8h, v14.8b, #1
-#   v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
+#            v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
 0x~~~~~~~~~~~~~~~~  6f27a7a8		ushll2 v8.2d, v29.4s, #7
-#    v8: 0x000000000000000000000000007fff80
+#             v8: 0x000000000000000000000000007fff80
 0x~~~~~~~~~~~~~~~~  6f12a53d		ushll2 v29.4s, v9.8h, #2
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0ea705		ushll2 v5.8h, v24.16b, #6
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7f4b077c		ushr d28, d27, #53
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f090521		ushr v1.16b, v9.16b, #7
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f550702		ushr v2.2d, v24.2d, #43
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f35073e		ushr v30.2s, v25.2s, #11
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f14074a		ushr v10.4h, v26.4h, #12
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f2204a4		ushr v4.4s, v5.4s, #30
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f0f045e		ushr v30.8b, v2.8b, #1
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f1e0586		ushr v6.8h, v12.8h, #2
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e2038b3		usqadd b19, b5
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ee03849		usqadd d9, d2
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e603a02		usqadd h2, h16
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ea03870		usqadd s16, s3
-#   v16: 0x0000000000000000000000007f007f00
+#            v16: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  6e203bbf		usqadd v31.16b, v29.16b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee03948		usqadd v8.2d, v10.2d
-#    v8: 0x000000000000000000000000007fff80
+#             v8: 0x000000000000000000000000007fff80
 0x~~~~~~~~~~~~~~~~  2ea03932		usqadd v18.2s, v9.2s
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e6039d8		usqadd v24.4h, v14.4h
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea03bca		usqadd v10.4s, v30.4s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e203a90		usqadd v16.8b, v20.8b
-#   v16: 0x0000000000000000000000007e007e00
+#            v16: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  6e603a0c		usqadd v12.8h, v16.8h
-#   v12: 0x0000000000000000000000007e007e00
+#            v12: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  7f5b177c		usra d28, d27, #37
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f0b16c5		usra v5.16b, v22.16b, #5
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f5f1662		usra v2.2d, v19.2d, #33
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f2b1400		usra v0.2s, v0.2s, #21
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f1414c7		usra v7.4h, v6.4h, #12
-#    v7: 0x00000000000000000000000000000008
+#             v7: 0x00000000000000000000000000000008
 0x~~~~~~~~~~~~~~~~  6f371624		usra v4.4s, v17.4s, #9
-#    v4: 0x0000000000000000000000000000003f
+#             v4: 0x0000000000000000000000000000003f
 0x~~~~~~~~~~~~~~~~  2f091589		usra v9.8b, v12.8b, #7
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f121763		usra v3.8h, v27.8h, #14
-#    v3: 0x0000000000000000000000007f007f00
+#             v3: 0x0000000000000000000000007f007f00
 0x~~~~~~~~~~~~~~~~  2ebe219d		usubl v29.2d, v12.2s, v30.2s
-#   v29: 0x0000000000000000000000007e007e00
+#            v29: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  2e66239d		usubl v29.4s, v28.4h, v6.4h
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e2e208c		usubl v12.8h, v4.8b, v14.8b
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
 0x~~~~~~~~~~~~~~~~  6eb12301		usubl2 v1.2d, v24.4s, v17.4s
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e632024		usubl2 v4.4s, v1.8h, v3.8h
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e272097		usubl2 v23.8h, v4.16b, v7.16b
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ebe3289		usubw v9.2d, v20.2d, v30.2s
-#    v9: 0x0000000000000000ffffffffffffffff
+#             v9: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2e773214		usubw v20.4s, v16.4s, v23.4h
-#   v20: 0x0000000000000000000000007e007e00
+#            v20: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  2e3d3119		usubw v25.8h, v8.8h, v29.8b
-#   v25: 0x000000000000000000000000007fff80
+#            v25: 0x000000000000000000000000007fff80
 0x~~~~~~~~~~~~~~~~  6ea633b2		usubw2 v18.2d, v29.2d, v6.4s
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7430c6		usubw2 v6.4s, v6.4s, v20.8h
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e303092		usubw2 v18.8h, v4.8h, v16.16b
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f20a6bb		uxtl v27.2d, v21.2s
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f10a7e0		uxtl v0.4s, v31.4h
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f08a55b		uxtl v27.8h, v10.8b
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f20a606		uxtl2 v6.2d, v16.4s
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f10a696		uxtl2 v22.4s, v20.8h
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f08a6b4		uxtl2 v20.8h, v21.16b
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e11193e		uzp1 v30.16b, v9.16b, v17.16b
-#   v30: 0x000000000000008100000000ffffffff
+#            v30: 0x000000000000008100000000ffffffff
 0x~~~~~~~~~~~~~~~~  4edc1b47		uzp1 v7.2d, v26.2d, v28.2d
-#    v7: 0x00000000000000000000000000000040
+#             v7: 0x00000000000000000000000000000040
 0x~~~~~~~~~~~~~~~~  0e961a1a		uzp1 v26.2s, v16.2s, v22.2s
-#   v26: 0x0000000000000000000000007e007e00
+#            v26: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  0e461a6e		uzp1 v14.4h, v19.4h, v6.4h
-#   v14: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e9e1af1		uzp1 v17.4s, v23.4s, v30.4s
-#   v17: 0x00000081ffffffff0000000000000000
+#            v17: 0x00000081ffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  0e0d1b7c		uzp1 v28.8b, v27.8b, v13.8b
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e4c1831		uzp1 v17.8h, v1.8h, v12.8h
-#   v17: 0xff01ff01ff01ff400000000000000000
+#            v17: 0xff01ff01ff01ff400000000000000000
 0x~~~~~~~~~~~~~~~~  4e1a5a48		uzp2 v8.16b, v18.16b, v26.16b
-#    v8: 0x0000000000007e7e0000000000000000
+#             v8: 0x0000000000007e7e0000000000000000
 0x~~~~~~~~~~~~~~~~  4ed85ad5		uzp2 v21.2d, v22.2d, v24.2d
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e825ab4		uzp2 v20.2s, v21.2s, v2.2s
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e465bf0		uzp2 v16.4h, v31.4h, v6.4h
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e885979		uzp2 v25.4s, v11.4s, v8.4s
-#   v25: 0x000000000000000001fe01fe01fe01fe
+#            v25: 0x000000000000000001fe01fe01fe01fe
 0x~~~~~~~~~~~~~~~~  0e0d5bff		uzp2 v31.8b, v31.8b, v13.8b
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e415a28		uzp2 v8.8h, v17.8h, v1.8h
-#    v8: 0x0000000000000000ff01ff0100000000
+#             v8: 0x0000000000000000ff01ff0100000000
 0x~~~~~~~~~~~~~~~~  0ea12b51		xtn v17.2s, v26.2d
-#   v17: 0x0000000000000000000000007e007e00
+#            v17: 0x0000000000000000000000007e007e00
 0x~~~~~~~~~~~~~~~~  0e612803		xtn v3.4h, v0.4s
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e212912		xtn v18.8b, v8.8h
-#   v18: 0x00000000000000000000000001010000
+#            v18: 0x00000000000000000000000001010000
 0x~~~~~~~~~~~~~~~~  4e212800		xtn2 v0.16b, v0.8h
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea1288f		xtn2 v15.4s, v4.2d
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e612a5f		xtn2 v31.8h, v18.4s
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e063936		zip1 v22.16b, v9.16b, v6.16b
-#   v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
+#            v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
 0x~~~~~~~~~~~~~~~~  4ec23977		zip1 v23.2d, v11.2d, v2.2d
-#   v23: 0x000000000000000001fe01fe01fe01fe
+#            v23: 0x000000000000000001fe01fe01fe01fe
 0x~~~~~~~~~~~~~~~~  0e893a1a		zip1 v26.2s, v16.2s, v9.2s
-#   v26: 0x0000000000000000ffffffff00000000
+#            v26: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  0e473921		zip1 v1.4h, v9.4h, v7.4h
-#    v1: 0x00000000000000000000ffff0040ffff
+#             v1: 0x00000000000000000000ffff0040ffff
 0x~~~~~~~~~~~~~~~~  4e943bc0		zip1 v0.4s, v30.4s, v20.4s
-#    v0: 0x000000000000000000000000ffffffff
+#             v0: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  0e0f3a3e		zip1 v30.8b, v17.8b, v15.8b
-#   v30: 0x0000000000000000007e0000007e0000
+#            v30: 0x0000000000000000007e0000007e0000
 0x~~~~~~~~~~~~~~~~  4e423911		zip1 v17.8h, v8.8h, v2.8h
-#   v17: 0x0000ff010000ff010000000000000000
+#            v17: 0x0000ff010000ff010000000000000000
 0x~~~~~~~~~~~~~~~~  4e0b7957		zip2 v23.16b, v10.16b, v11.16b
-#   v23: 0x0100fe000100fe000100fe000100fe00
+#            v23: 0x0100fe000100fe000100fe000100fe00
 0x~~~~~~~~~~~~~~~~  4ece78de		zip2 v30.2d, v6.2d, v14.2d
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e957949		zip2 v9.2s, v10.2s, v21.2s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e5d7b08		zip2 v8.4h, v24.4h, v29.4h
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e977aa0		zip2 v0.4s, v21.4s, v23.4s
-#    v0: 0x0100fe00000000000100fe0000000000
+#             v0: 0x0100fe00000000000100fe0000000000
 0x~~~~~~~~~~~~~~~~  0e1e7af9		zip2 v25.8b, v23.8b, v30.8b
-#   v25: 0x00000000000000000001000000fe0000
+#            v25: 0x00000000000000000001000000fe0000
 0x~~~~~~~~~~~~~~~~  4e5e7947		zip2 v7.8h, v10.8h, v30.8h
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee8d723		fabd v3.2d, v25.2d, v8.2d
-#    v3: 0x00000000000000000001000000fe0000
+#             v3: 0x00000000000000000001000000fe0000
 0x~~~~~~~~~~~~~~~~  2eabd76e		fabd v14.2s, v27.2s, v11.2s
-#   v14: 0x000000000000000001fe01fe01fe01fe
+#            v14: 0x000000000000000001fe01fe01fe01fe
 0x~~~~~~~~~~~~~~~~  6eb2d6c9		fabd v9.4s, v22.4s, v18.4s
-#    v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
+#             v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
 0x~~~~~~~~~~~~~~~~  4ee0fba1		fabs v1.2d, v29.2d
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea0faa6		fabs v6.2s, v21.2s
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea0fb2c		fabs v12.4s, v25.4s
-#   v12: 0x00000000000000000001000000fe0000
+#            v12: 0x00000000000000000001000000fe0000
 0x~~~~~~~~~~~~~~~~  6e60ecb2		facge v18.2d, v5.2d, v0.2d
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e26ed6f		facge v15.2s, v11.2s, v6.2s
-#   v15: 0x0000000000000000ffffffffffffffff
+#            v15: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e39ed5e		facge v30.4s, v10.4s, v25.4s
-#   v30: 0xffffffffffffffff0000000000000000
+#            v30: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  6effee1c		facgt v28.2d, v16.2d, v31.2d
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea4ec2f		facgt v15.2s, v1.2s, v4.2s
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eaaec76		facgt v22.4s, v3.4s, v10.4s
-#   v22: 0x0000000000000000ffffffffffffffff
+#            v22: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e78d547		fadd v7.2d, v10.2d, v24.2d
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e27d6ea		fadd v10.2s, v23.2s, v7.2s
-#   v10: 0x00000000000000000100fe000100fe00
+#            v10: 0x00000000000000000100fe000100fe00
 0x~~~~~~~~~~~~~~~~  4e2bd6d0		fadd v16.4s, v22.4s, v11.4s
-#   v16: 0x01fe01fe01fe01feffffffffffffffff
+#            v16: 0x01fe01fe01fe01feffffffffffffffff
 0x~~~~~~~~~~~~~~~~  7e70db9b		faddp d27, v28.2d
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7e30daf4		faddp s20, v23.2s
-#   v20: 0x0000000000000000000000000180fe00
+#            v20: 0x0000000000000000000000000180fe00
 0x~~~~~~~~~~~~~~~~  6e6bd495		faddp v21.2d, v4.2d, v11.2d
-#   v21: 0x020e01fe01fe01fe0000000000000000
+#            v21: 0x020e01fe01fe01fe0000000000000000
 0x~~~~~~~~~~~~~~~~  2e21d75f		faddp v31.2s, v26.2s, v1.2s
-#   v31: 0x000000000000000000000000ffffffff
+#            v31: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  6e3cd76d		faddp v13.4s, v27.4s, v28.4s
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e74e5b1		fcmeq v17.2d, v13.2d, v20.2d
-#   v17: 0xffffffffffffffff0000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  4ee0da18		fcmeq v24.2d, v16.2d, #0.0
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e2ae63a		fcmeq v26.2s, v17.2s, v10.2s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea0d898		fcmeq v24.2s, v4.2s, #0.0
-#   v24: 0x0000000000000000ffffffffffffffff
+#            v24: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e2ee488		fcmeq v8.4s, v4.4s, v14.4s
-#    v8: 0xffffffffffffffff0000000000000000
+#             v8: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  4ea0db3a		fcmeq v26.4s, v25.4s, #0.0
-#   v26: 0xffffffffffffffff0000000000000000
+#            v26: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  6e60e41b		fcmge v27.2d, v0.2d, v0.2d
-#   v27: 0xffffffffffffffffffffffffffffffff
+#            v27: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6ee0cbd6		fcmge v22.2d, v30.2d, #0.0
-#   v22: 0x0000000000000000ffffffffffffffff
+#            v22: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2e39e6a7		fcmge v7.2s, v21.2s, v25.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea0c9ef		fcmge v15.2s, v15.2s, #0.0
-#   v15: 0x0000000000000000ffffffffffffffff
+#            v15: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e3be49d		fcmge v29.4s, v4.4s, v27.4s
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea0cab6		fcmge v22.4s, v21.4s, #0.0
-#   v22: 0xffffffffffffffffffffffffffffffff
+#            v22: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6eefe741		fcmgt v1.2d, v26.2d, v15.2d
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee0caef		fcmgt v15.2d, v23.2d, #0.0
-#   v15: 0xffffffffffffffffffffffffffffffff
+#            v15: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2ea6e615		fcmgt v21.2s, v16.2s, v6.2s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea0c9a1		fcmgt v1.2s, v13.2s, #0.0
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb9e40e		fcmgt v14.4s, v0.4s, v25.4s
-#   v14: 0xffffffff00000000ffffffff00000000
+#            v14: 0xffffffff00000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  4ea0c90d		fcmgt v13.4s, v8.4s, #0.0
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee0d8c4		fcmle v4.2d, v6.2d, #0.0
-#    v4: 0xffffffffffffffffffffffffffffffff
+#             v4: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  2ea0dbf8		fcmle v24.2s, v31.2s, #0.0
-#   v24: 0x0000000000000000ffffffff00000000
+#            v24: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  6ea0dae8		fcmle v8.4s, v23.4s, #0.0
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee0e867		fcmlt v7.2d, v3.2d, #0.0
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea0eaaf		fcmlt v15.2s, v21.2s, #0.0
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea0e841		fcmlt v1.4s, v2.4s, #0.0
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e61c906		fcvtas v6.2d, v8.2d
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e21c921		fcvtas v1.2s, v9.2s
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e21ca68		fcvtas v8.4s, v19.4s
-#    v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e61cbe5		fcvtau v5.2d, v31.2d
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e21cbbc		fcvtau v28.2s, v29.2s
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e21cb4b		fcvtau v11.4s, v26.4s
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e617b28		fcvtl v8.2d, v25.2s
-#    v8: 0x37a0000000000000381fc00000000000
+#             v8: 0x37a0000000000000381fc00000000000
 0x~~~~~~~~~~~~~~~~  0e2179db		fcvtl v27.4s, v14.4h
-#   v27: 0xffffe000ffffe0000000000000000000
+#            v27: 0xffffe000ffffe0000000000000000000
 0x~~~~~~~~~~~~~~~~  4e6178c1		fcvtl2 v1.2d, v6.4s
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e217938		fcvtl2 v24.4s, v9.8h
-#   v24: 0x377f0000377f0000377f0000377f0000
+#            v24: 0x377f0000377f0000377f0000377f0000
 0x~~~~~~~~~~~~~~~~  4e61bb09		fcvtms v9.2d, v24.2d
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e21b967		fcvtms v7.2s, v11.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e21bab7		fcvtms v23.4s, v21.4s
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e61b82d		fcvtmu v13.2d, v1.2d
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e21b99a		fcvtmu v26.2s, v12.2s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e21bab5		fcvtmu v21.4s, v21.4s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e61682b		fcvtn v11.2s, v1.2d
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e216848		fcvtn v8.4h, v2.4s
-#    v8: 0x37a00000000000000000000000000000
+#             v8: 0x37a00000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e616bb8		fcvtn2 v24.4s, v29.2d
-#   v24: 0x0000000000000000377f0000377f0000
+#            v24: 0x0000000000000000377f0000377f0000
 0x~~~~~~~~~~~~~~~~  4e216944		fcvtn2 v4.8h, v10.4s
-#    v4: 0x0000000000000000ffffffffffffffff
+#             v4: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e61a959		fcvtns v25.2d, v10.2d
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e21a904		fcvtns v4.2s, v8.2s
-#    v4: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e21ab7d		fcvtns v29.4s, v27.4s
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e61ab72		fcvtnu v18.2d, v27.2d
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e21a9cb		fcvtnu v11.2s, v14.2s
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e21aabb		fcvtnu v27.4s, v21.4s
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee1a8b7		fcvtps v23.2d, v5.2d
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea1a9f8		fcvtps v24.2s, v15.2s
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea1aa65		fcvtps v5.4s, v19.4s
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee1aaa3		fcvtpu v3.2d, v21.2d
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea1aaa3		fcvtpu v3.2s, v21.2s
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea1a8e0		fcvtpu v0.4s, v7.4s
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e61697d		fcvtxn v29.2s, v11.2d
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e616b3f		fcvtxn2 v31.4s, v25.2d
-#   v31: 0x000000000000000000000000ffffffff
+#            v31: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  4ee1ba33		fcvtzs v19.2d, v17.2d
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f40ff0c		fcvtzs v12.2d, v24.2d, #64
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea1b849		fcvtzs v9.2s, v2.2s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f23fe85		fcvtzs v5.2s, v20.2s, #29
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea1bb35		fcvtzs v21.4s, v25.4s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f3afc3a		fcvtzs v26.4s, v1.4s, #6
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee1bb2d		fcvtzu v13.2d, v25.2d
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f60fdbc		fcvtzu v28.2d, v13.2d, #32
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea1b8da		fcvtzu v26.2s, v6.2s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f31fd49		fcvtzu v9.2s, v10.2s, #15
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea1b8de		fcvtzu v30.4s, v6.4s
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f2efed3		fcvtzu v19.4s, v22.4s, #18
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e6ffd0f		fdiv v15.2d, v8.2d, v15.2d
-#   v15: 0x7ff00000000000007ff8000000000000
+#            v15: 0x7ff00000000000007ff8000000000000
 0x~~~~~~~~~~~~~~~~  2e3afd2c		fdiv v12.2s, v9.2s, v26.2s
-#   v12: 0x00000000000000007fc000007fc00000
+#            v12: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  6e33fed3		fdiv v19.4s, v22.4s, v19.4s
-#   v19: 0xffffffffffffffffffffffffffffffff
+#            v19: 0xffffffffffffffffffffffffffffffff
 0x~~~~~~~~~~~~~~~~  4e68f4f3		fmax v19.2d, v7.2d, v8.2d
-#   v19: 0x37a00000000000000000000000000000
+#            v19: 0x37a00000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e3df599		fmax v25.2s, v12.2s, v29.2s
-#   v25: 0x00000000000000007fc000007fc00000
+#            v25: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  4e25f5e6		fmax v6.4s, v15.4s, v5.4s
-#    v6: 0x7ff00000000000007ff8000000000000
+#             v6: 0x7ff00000000000007ff8000000000000
 0x~~~~~~~~~~~~~~~~  4e74c510		fmaxnm v16.2d, v8.2d, v20.2d
-#   v16: 0x37a0000000000000000000000180fe00
+#            v16: 0x37a0000000000000000000000180fe00
 0x~~~~~~~~~~~~~~~~  0e39c74f		fmaxnm v15.2s, v26.2s, v25.2s
-#   v15: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e30c5d7		fmaxnm v23.4s, v14.4s, v16.4s
-#   v23: 0x37a0000000000000000000000180fe00
+#            v23: 0x37a0000000000000000000000180fe00
 0x~~~~~~~~~~~~~~~~  7e70ca66		fmaxnmp d6, v19.2d
-#    v6: 0x000000000000000037a0000000000000
+#             v6: 0x000000000000000037a0000000000000
 0x~~~~~~~~~~~~~~~~  7e30cb5b		fmaxnmp s27, v26.2s
-#   v27: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e77c588		fmaxnmp v8.2d, v12.2d, v23.2d
-#    v8: 0x37a00000000000007fc000007fc00000
+#             v8: 0x37a00000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  2e36c72d		fmaxnmp v13.2s, v25.2s, v22.2s
-#   v13: 0x0000000000000000ffffffff7fc00000
+#            v13: 0x0000000000000000ffffffff7fc00000
 0x~~~~~~~~~~~~~~~~  6e31c56f		fmaxnmp v15.4s, v11.4s, v17.4s
-#   v15: 0xffffffff000000000000000000000000
+#            v15: 0xffffffff000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e30ca7b		fmaxnmv s27, v19.4s
-#   v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
 0x~~~~~~~~~~~~~~~~  7e70f9d4		fmaxp d20, v14.2d
-#   v20: 0x0000000000000000ffffffff00000000
+#            v20: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  7e30f852		fmaxp s18, v2.2s
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e7ff6e9		fmaxp v9.2d, v23.2d, v31.2d
-#    v9: 0x00000000ffffffff37a0000000000000
+#             v9: 0x00000000ffffffff37a0000000000000
 0x~~~~~~~~~~~~~~~~  2e3ff6c7		fmaxp v7.2s, v22.2s, v31.2s
-#    v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
 0x~~~~~~~~~~~~~~~~  6e3df4f2		fmaxp v18.4s, v7.4s, v29.4s
-#   v18: 0x000000000000000000000000ffffffff
+#            v18: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  6e30fbbf		fmaxv s31, v29.4s
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee2f4a2		fmin v2.2d, v5.2d, v2.2d
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eaaf63f		fmin v31.2s, v17.2s, v10.2s
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eb0f48a		fmin v10.4s, v4.4s, v16.4s
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee5c4d5		fminnm v21.2d, v6.2d, v5.2d
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0eaec656		fminnm v22.2s, v18.2s, v14.2s
-#   v22: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ea3c7f9		fminnm v25.4s, v31.4s, v3.4s
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ef0c829		fminnmp d9, v1.2d
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eb0ca95		fminnmp s21, v20.2s
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ef3c6b0		fminnmp v16.2d, v21.2d, v19.2d
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2eb9c7f0		fminnmp v16.2s, v31.2s, v25.2s
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eafc61a		fminnmp v26.4s, v16.4s, v15.4s
-#   v26: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb0c883		fminnmv s3, v4.4s
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7ef0fb58		fminp d24, v26.2d
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7eb0fa27		fminp s7, v17.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee3f677		fminp v23.2d, v19.2d, v3.2d
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea9f6bd		fminp v29.2s, v21.2s, v9.2s
-#   v29: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb5f700		fminp v0.4s, v24.4s, v21.4s
-#    v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6eb0f919		fminv s25, v8.4s
-#   v25: 0x0000000000000000000000007fc00000
+#            v25: 0x0000000000000000000000007fc00000
 0x~~~~~~~~~~~~~~~~  5fc91817		fmla d23, d0, v9.d[2]
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5f8711f7		fmla s23, s15, v7.s[0]
-#   v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e66cd71		fmla v17.2d, v11.2d, v6.2d
-#   v17: 0xffffffffffffffff0000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
 0x~~~~~~~~~~~~~~~~  4fcb13de		fmla v30.2d, v30.2d, v11.d[0]
-#   v30: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e26cd93		fmla v19.2s, v12.2s, v6.2s
-#   v19: 0x00000000000000007fc000007fc00000
+#            v19: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  0f891238		fmla v24.2s, v17.2s, v9.s[0]
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e2bcd70		fmla v16.4s, v11.4s, v11.4s
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f891afb		fmla v27.4s, v23.4s, v9.s[2]
-#   v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
 0x~~~~~~~~~~~~~~~~  5fc653db		fmls d27, d30, v6.d[0]
-#   v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
 0x~~~~~~~~~~~~~~~~  5f825215		fmls s21, s16, v2.s[0]
-#   v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ef5ce65		fmls v5.2d, v19.2d, v21.2d
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4fcc53d2		fmls v18.2d, v30.2d, v12.d[0]
-#   v18: 0x000000000000000000000000ffffffff
+#            v18: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  0ea7ce05		fmls v5.2s, v16.2s, v7.2s
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0fab5243		fmls v3.2s, v18.2s, v11.s[1]
-#    v3: 0x0000000000000000000000007fffffff
+#             v3: 0x0000000000000000000000007fffffff
 0x~~~~~~~~~~~~~~~~  4ebeccbb		fmls v27.4s, v5.4s, v30.4s
-#   v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
 0x~~~~~~~~~~~~~~~~  4fa45a9a		fmls v26.4s, v20.4s, v4.s[3]
-#   v26: 0x00000000000000007fffffff00000000
+#            v26: 0x00000000000000007fffffff00000000
 0x~~~~~~~~~~~~~~~~  6f06f6ce		fmov v14.2d, #0xd6 (-0.3438)
-#   v14: 0xbfd6000000000000bfd6000000000000
+#            v14: 0xbfd6000000000000bfd6000000000000
 0x~~~~~~~~~~~~~~~~  0f03f5ba		fmov v26.2s, #0x6d (0.9062)
-#   v26: 0x00000000000000003f6800003f680000
+#            v26: 0x00000000000000003f6800003f680000
 0x~~~~~~~~~~~~~~~~  4f04f69f		fmov v31.4s, #0x94 (-5.0000)
-#   v31: 0xc0a00000c0a00000c0a00000c0a00000
+#            v31: 0xc0a00000c0a00000c0a00000c0a00000
 0x~~~~~~~~~~~~~~~~  9eaf033c		fmov v28.D[1], x25
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  9eae0052		fmov x18, v2.D[1]
-#   x18: 0x0000000000000000
+#            x18: 0x0000000000000000
 0x~~~~~~~~~~~~~~~~  5fc1988c		fmul d12, d4, v1.d[2]
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  5faf983e		fmul s30, s1, v15.s[3]
-#   v30: 0x000000000000000000000000ffffffff
+#            v30: 0x000000000000000000000000ffffffff
 0x~~~~~~~~~~~~~~~~  6e75dc19		fmul v25.2d, v0.2d, v21.2d
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4fca9b0a		fmul v10.2d, v24.2d, v10.d[2]
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e30df07		fmul v7.2s, v24.2s, v16.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0f849a01		fmul v1.2s, v16.2s, v4.s[2]
-#    v1: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e39df85		fmul v5.4s, v28.4s, v25.4s
-#    v5: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4f88906b		fmul v11.4s, v3.4s, v8.s[0]
-#   v11: 0x7fc000007fc000007fc000007fffffff
+#            v11: 0x7fc000007fc000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  7fc3993c		fmulx d28, d9, v3.d[2]
-#   v28: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  7faf92b9		fmulx s25, s21, v15.s[1]
-#   v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e68df9f		fmulx v31.2d, v28.2d, v8.2d
-#   v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6fc692a3		fmulx v3.2d, v21.2d, v6.d[0]
-#    v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e20dc29		fmulx v9.2s, v1.2s, v0.2s
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f869370		fmulx v16.2s, v27.2s, v6.s[0]
-#   v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e25dc82		fmulx v2.4s, v4.4s, v5.4s
-#    v2: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6f8490f2		fmulx v18.4s, v7.4s, v4.s[0]
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee0fb21		fneg v1.2d, v25.2d
-#    v1: 0x80000000000000008000000000000000
+#             v1: 0x80000000000000008000000000000000
 0x~~~~~~~~~~~~~~~~  2ea0fbee		fneg v14.2s, v31.2s
-#   v14: 0x00000000000000008000000080000000
+#            v14: 0x00000000000000008000000080000000
 0x~~~~~~~~~~~~~~~~  6ea0f885		fneg v5.4s, v4.4s
-#    v5: 0x80000000800000008000000080000000
+#             v5: 0x80000000800000008000000080000000
 0x~~~~~~~~~~~~~~~~  4ee1d992		frecpe v18.2d, v12.2d
-#   v18: 0x7ff00000000000007ff0000000000000
+#            v18: 0x7ff00000000000007ff0000000000000
 0x~~~~~~~~~~~~~~~~  0ea1daca		frecpe v10.2s, v22.2s
-#   v10: 0x00000000000000007f8000007f800000
+#            v10: 0x00000000000000007f8000007f800000
 0x~~~~~~~~~~~~~~~~  4ea1d8c5		frecpe v5.4s, v6.4s
-#    v5: 0x7f8000007f800000474c80007f800000
+#             v5: 0x7f8000007f800000474c80007f800000
 0x~~~~~~~~~~~~~~~~  4e7afcf6		frecps v22.2d, v7.2d, v26.2d
-#   v22: 0x40000000000000004000000000000000
+#            v22: 0x40000000000000004000000000000000
 0x~~~~~~~~~~~~~~~~  0e22ff7f		frecps v31.2s, v27.2s, v2.2s
-#   v31: 0x00000000000000004000000040000000
+#            v31: 0x00000000000000004000000040000000
 0x~~~~~~~~~~~~~~~~  4e3bfcd2		frecps v18.4s, v6.4s, v27.4s
-#   v18: 0x40000000400000004000000040000000
+#            v18: 0x40000000400000004000000040000000
 0x~~~~~~~~~~~~~~~~  6e6189ba		frinta v26.2d, v13.2d
-#   v26: 0x0000000000000000ffffffff7fc00000
+#            v26: 0x0000000000000000ffffffff7fc00000
 0x~~~~~~~~~~~~~~~~  2e218b4f		frinta v15.2s, v26.2s
-#   v15: 0x0000000000000000ffffffff7fc00000
+#            v15: 0x0000000000000000ffffffff7fc00000
 0x~~~~~~~~~~~~~~~~  6e218a0d		frinta v13.4s, v16.4s
-#   v13: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee19989		frinti v9.2d, v12.2d
-#    v9: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea19a65		frinti v5.2s, v19.2s
-#    v5: 0x00000000000000007fc000007fc00000
+#             v5: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  6ea1996f		frinti v15.4s, v11.4s
-#   v15: 0x7fc000007fc000007fc000007fffffff
+#            v15: 0x7fc000007fc000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  4e619bb1		frintm v17.2d, v29.2d
-#   v17: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e21997e		frintm v30.2s, v11.2s
-#   v30: 0x00000000000000007fc000007fffffff
+#            v30: 0x00000000000000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  4e219a81		frintm v1.4s, v20.4s
-#    v1: 0x0000000000000000ffffffff00000000
+#             v1: 0x0000000000000000ffffffff00000000
 0x~~~~~~~~~~~~~~~~  4e6188d8		frintn v24.2d, v6.2d
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e218a2c		frintn v12.2s, v17.2s
-#   v12: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e21897d		frintn v29.4s, v11.4s
-#   v29: 0x7fc000007fc000007fc000007fffffff
+#            v29: 0x7fc000007fc000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  4ee188ea		frintp v10.2d, v7.2d
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea18a4c		frintp v12.2s, v18.2s
-#   v12: 0x00000000000000004000000040000000
+#            v12: 0x00000000000000004000000040000000
 0x~~~~~~~~~~~~~~~~  4ea18bfa		frintp v26.4s, v31.4s
-#   v26: 0x00000000000000004000000040000000
+#            v26: 0x00000000000000004000000040000000
 0x~~~~~~~~~~~~~~~~  6e6199b8		frintx v24.2d, v13.2d
-#   v24: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2e219927		frintx v7.2s, v9.2s
-#    v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e219ab2		frintx v18.4s, v21.4s
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4ee19b33		frintz v19.2d, v25.2d
-#   v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0ea1990f		frintz v15.2s, v8.2s
-#   v15: 0x00000000000000007fc000007fc00000
+#            v15: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  4ea19874		frintz v20.4s, v3.4s
-#   v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ee1d8b7		frsqrte v23.2d, v5.2d
-#   v23: 0x7ff00000000000002006900000000000
+#            v23: 0x7ff00000000000002006900000000000
 0x~~~~~~~~~~~~~~~~  2ea1d8e9		frsqrte v9.2s, v7.2s
-#    v9: 0x00000000000000007f8000007f800000
+#             v9: 0x00000000000000007f8000007f800000
 0x~~~~~~~~~~~~~~~~  6ea1d923		frsqrte v3.4s, v9.4s
-#    v3: 0x7f8000007f8000000000000000000000
+#             v3: 0x7f8000007f8000000000000000000000
 0x~~~~~~~~~~~~~~~~  4eefff99		frsqrts v25.2d, v28.2d, v15.2d
-#   v25: 0x3ff80000000000003ff8000000000000
+#            v25: 0x3ff80000000000003ff8000000000000
 0x~~~~~~~~~~~~~~~~  0eaaff49		frsqrts v9.2s, v26.2s, v10.2s
-#    v9: 0x00000000000000003fc000003fc00000
+#             v9: 0x00000000000000003fc000003fc00000
 0x~~~~~~~~~~~~~~~~  4eaafc25		frsqrts v5.4s, v1.4s, v10.4s
-#    v5: 0x3fc000003fc000007fffffff3fc00000
+#             v5: 0x3fc000003fc000007fffffff3fc00000
 0x~~~~~~~~~~~~~~~~  6ee1fa46		fsqrt v6.2d, v18.2d
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2ea1fa46		fsqrt v6.2s, v18.2s
-#    v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  6ea1fbe0		fsqrt v0.4s, v31.4s
-#    v0: 0x00000000000000003fb504f33fb504f3
+#             v0: 0x00000000000000003fb504f33fb504f3
 0x~~~~~~~~~~~~~~~~  4effd7df		fsub v31.2d, v30.2d, v31.2d
-#   v31: 0x00000000000000007fc000007fffffff
+#            v31: 0x00000000000000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  0ea6d50b		fsub v11.2s, v8.2s, v6.2s
-#   v11: 0x00000000000000007fc000007fc00000
+#            v11: 0x00000000000000007fc000007fc00000
 0x~~~~~~~~~~~~~~~~  4ebfd410		fsub v16.4s, v0.4s, v31.4s
-#   v16: 0x00000000000000007fc000007fffffff
+#            v16: 0x00000000000000007fc000007fffffff
 0x~~~~~~~~~~~~~~~~  4e61dbf9		scvtf v25.2d, v31.2d
-#   v25: 0x000000000000000043dff00000200000
+#            v25: 0x000000000000000043dff00000200000
 0x~~~~~~~~~~~~~~~~  4f53e5aa		scvtf v10.2d, v13.2d, #45
-#   v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  0e21d9ea		scvtf v10.2s, v15.2s
-#   v10: 0x00000000000000004eff80004eff8000
+#            v10: 0x00000000000000004eff80004eff8000
 0x~~~~~~~~~~~~~~~~  0f25e492		scvtf v18.2s, v4.2s, #27
-#   v18: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  4e21d8b1		scvtf v17.4s, v5.4s
-#   v17: 0x4e7f00004e7f00004f0000004e7f0000
+#            v17: 0x4e7f00004e7f00004f0000004e7f0000
 0x~~~~~~~~~~~~~~~~  4f28e72b		scvtf v11.4s, v25.4s, #24
-#   v11: 0x00000000000000004287bfe03e000000
+#            v11: 0x00000000000000004287bfe03e000000
 0x~~~~~~~~~~~~~~~~  6e61d869		ucvtf v9.2d, v3.2d
-#    v9: 0x43dfe000001fe0000000000000000000
+#             v9: 0x43dfe000001fe0000000000000000000
 0x~~~~~~~~~~~~~~~~  6f52e7da		ucvtf v26.2d, v30.2d, #46
-#   v26: 0x000000000000000040fff00000200000
+#            v26: 0x000000000000000040fff00000200000
 0x~~~~~~~~~~~~~~~~  2e21d88b		ucvtf v11.2s, v4.2s
-#   v11: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
 0x~~~~~~~~~~~~~~~~  2f27e47d		ucvtf v29.2s, v3.2s, #25
-#   v29: 0x7fc000007fc000000000000000000000
+#            v29: 0x7fc000007fc000000000000000000000
 0x~~~~~~~~~~~~~~~~  6e21daf6		ucvtf v22.4s, v23.4s
-#   v22: 0x4effe000000000004e001a4000000000
+#            v22: 0x4effe000000000004e001a4000000000
 0x~~~~~~~~~~~~~~~~  6f27e532		ucvtf v18.4s, v9.4s, #25
-#   v18: 0x4207bfc03d7f00000000000000000000
+#            v18: 0x4207bfc03d7f00000000000000000000
+0x~~~~~~~~~~~~~~~~  e5810c0c		str p12, [x0, #11, mul vl]
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5810c0d		str p13, [x0, #11, mul vl]
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5810c0e		str p14, [x0, #11, mul vl]
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5810c0f		str p15, [x0, #11, mul vl]
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 -> 0x~~~~~~~~~~~~~~~~
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85810c08		ldr p8, [x0, #11, mul vl]
+#       p8<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85810c09		ldr p9, [x0, #11, mul vl]
+#       p9<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p9<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85810c0a		ldr p10, [x0, #11, mul vl]
+#      p10<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p10<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85810c0b		ldr p11, [x0, #11, mul vl]
+#      p11<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5814c00		str z0, [x0, #11, mul vl]
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5814c01		str z1, [x0, #11, mul vl]
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5814c02		str z2, [x0, #11, mul vl]
+#      z2<127:0>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5814c03		str z3, [x0, #11, mul vl]
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85814c14		ldr z20, [x0, #11, mul vl]
+#     z20<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85814c15		ldr z21, [x0, #11, mul vl]
+#     z21<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85814c16		ldr z22, [x0, #11, mul vl]
+#     z22<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  85814c17		ldr z23, [x0, #11, mul vl]
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e403e800		st1b {z0.b}, p2, [x0, #3, mul vl]
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4a3e401		st1h {z1.h}, p1, [x0, #3, mul vl]
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (..., 0.000, 0.000, ..., nan, nan, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, ..., 0.000, 0.000, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5434402		st1w {z2.s}, p1, [x0, x3, lsl #2]
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5e3e803		st1d {z3.d}, p2, [x0, #3, mul vl]
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a403a414		ld1b {z20.b}, p1/z, [x0, #3, mul vl]
+#     z20<127:0>: 0x7f000000008000000000000000000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x80 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x7f <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x2f000000000029000000000023000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4a24815		ld1h {z21.h}, p2/z, [x0, x2, lsl #1]
+#     z21<127:0>: 0x0d0c0b0a09080706050403020100fffe (0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (...)
+#
+#   z21<639:512>: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a543a416		ld1w {z22.s}, p1/z, [x0, #3, mul vl]
+#     z22<127:0>: 0x7f800000000000000000000000000000 (inf, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z22<511:384>: 0x2f2e0000000000000000000023220000 (1.583e-10, ..., 0.000, 8.782e-18)
+#                          ║               ║       ╙─ 0x23220000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e0000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5e3a417		ld1d {z23.d}, p1/z, [x0, #3, mul vl]
+#     z23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z23<511:384>: 0x00000000000000000000000023220000 (..., 2.912e-315)
+#                                                  ╙─ 0x0000000023220000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e423e402		st1b {z2.h}, p1, [x0, #3, mul vl]
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e443e803		st1b {z3.s}, p2, [x0, #3, mul vl]
+#      z3<127:0>: 0x7f8000007f8000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e463e804		st1b {z4.d}, p2, [x0, #3, mul vl]
+#      z4<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4c3e400		st1h {z0.s}, p1, [x0, #3, mul vl]
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                          ║               ║       ╙─ 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4e24401		st1h {z1.d}, p1, [x0, x2, lsl #1]
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e563e402		st1w {z2.d}, p1, [x0, #3, mul vl]
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4224414		ld1b {z20.h}, p1/z, [x0, x2]
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#                          ║   ║       ║   ║       ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000230022000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a443a415		ld1b {z21.s}, p1/z, [x0, #3, mul vl]
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a463a416		ld1b {z22.d}, p1/z, [x0, #3, mul vl]
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4c3a817		ld1h {z23.s}, p2/z, [x0, #3, mul vl]
+#     z23<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4e3a818		ld1h {z24.d}, p2/z, [x0, #3, mul vl]
+#     z24<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a563a414		ld1w {z20.d}, p1/z, [x0, #3, mul vl]
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5c3a415		ld1sb {z21.h}, p1/z, [x0, #3, mul vl]
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5a3a416		ld1sb {z22.s}, p1/z, [x0, #3, mul vl]
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5824817		ld1sb {z23.d}, p2/z, [x0, x2]
+#     z23<127:0>: 0x0000000000000000000000000000007f
+#                                  ║               ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a523a818		ld1sh {z24.s}, p2/z, [x0, #3, mul vl]
+#     z24<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a503a414		ld1sh {z20.d}, p1/z, [x0, #3, mul vl]
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a483a415		ld1sw {z21.d}, p1/z, [x0, #3, mul vl]
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e432f000		st2b {z0.b, z1.b}, p4, [x0, #4, mul vl]
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'04 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0xff'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0xff'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0xff'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4b2f001		st2h {z1.h, z2.h}, p4, [x0, #4, mul vl]
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5226c02		st2w {z2.s, z3.s}, p3, [x0, x2, lsl #2]
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5b2f003		st2d {z3.d, z4.d}, p4, [x0, #4, mul vl]
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a422d414		ld2b {z20.b, z21.b}, p5/z, [x0, x2]
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x000000000000002f0000290000230000
+#   z21<255:128>: 0x00000000000000002e00000000002200
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x22'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x2e'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x0000007f007f00000000000000000000
+#   z21<383:256>: 0x00000000800000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x80'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4a2f815		ld2h {z21.h, z22.h}, p6/z, [x0, #4, mul vl]
+#     z21<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     z22<127:0>: 0x000000007f807f800000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a522f816		ld2w {z22.s, z23.s}, p6/z, [x0, #4, mul vl]
+#     z22<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#     z23<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'7f800000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5a2f417		ld2d {z23.d, z24.d}, p5/z, [x0, #4, mul vl]
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#     z24<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z24<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e451f004		st3b {z4.b, z5.b, z6.b}, p4, [x0, #3, mul vl]
+#      z4<127:0>: 0x00000000000000000000000000000000
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000
+#      z6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#    z5<255:128>: 0x00000000000000000000000000000000
+#    z6<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#    z5<383:256>: 0x00000000000000000000000000000000
+#    z6<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<511:384>: 0x00000000000000000000000000000000
+#    z5<511:384>: 0x00000000000000000000000000000000
+#    z6<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#    z5<639:512>: 0x00000000000000000000000000000000
+#    z6<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4d1f005		st3h {z5.h, z6.h, z7.h}, p4, [x0, #3, mul vl]
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z6<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'7fff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e551ec06		st3w {z6.s, z7.s, z8.s}, p3, [x0, #3, mul vl]
+#      z6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x7fc00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5c27007		st3d {z7.d, z8.d, z9.d}, p4, [x0, x2, lsl #3]
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000)
+#      z9<127:0>: 0x43dfe000001fe0000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'7fc000007fc00000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x43dfe000001fe000'37a0000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a441f418		ld3b {z24.b, z25.b, z26.b}, p5/z, [x0, #3, mul vl]
+#     z24<127:0>: 0x0000000000000000000000ff00000000
+#     z25<127:0>: 0xa000000000000000000000ffc0000000
+#     z26<127:0>: 0x3700000000000000000000007f000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x7f'c0'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'ff'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x37'a0'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<639:512>: 0x00000000000000000000000000000000
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4c2d819		ld3h {z25.h, z26.h, z27.h}, p6/z, [x0, x2, lsl #1]
+#     z25<127:0>: 0x292823221d1c17160000000000000000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z26<127:0>: 0x2b2a25241f1e191813120d0c07060100 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z27<127:0>: 0x2d2c272621201b1a1514000009080000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0100'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0908'0706'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0d0c'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514'1312'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1b1a'1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2120'1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x595853524d4c474641403b3a35342f2e (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z26<255:128>: 0x5b5a55544f4e494843423d3c37363130 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z27<255:128>: 0x5d5c575651504b4a45443f3e39383332 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3332'3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3938'3736'3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544'4342'4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4b4a'4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5150'4f4e'4d4c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c'5b5a'5958 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x898883827d7c777671706b6a65645f5e (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z26<383:256>: 0x8b8a85847f7e797873726d6c67666160 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z27<383:256>: 0x8d8c878681807b7a75746f6e69686362 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x6362'6160'5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6968'6766'6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6f6e'6d6c'6b6a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x7574'7372'7170 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7b7a'7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x8180'7f7e'7d7c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x8786'8584'8382 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8d8c'8b8a'8988 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0xb9b8b3b2adaca7a6a1a09b9a95948f8e (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z26<511:384>: 0xbbbab5b4afaea9a8a3a29d9c97969190 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z27<511:384>: 0xbdbcb7b6b1b0abaaa5a49f9e99989392 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x9392'9190'8f8e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x9998'9796'9594 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x9f9e'9d9c'9b9a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xa5a4'a3a2'a1a0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xabaa'a9a8'a7a6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xb1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xb7b6'b5b4'b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xbdbc'bbba'b9b8 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0xe9e8e3e2dddcd7d6d1d0cbcac5c4bfbe (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z26<639:512>: 0xebeae5e4dfded9d8d3d2cdccc7c6c1c0 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z27<639:512>: 0xedece7e6e1e0dbdad5d4cfcec9c8c3c2 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xc3c2'c1c0'bfbe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xc9c8'c7c6'c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xcfce'cdcc'cbca <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd5d4'd3d2'd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xdbda'd9d8'd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xe1e0'dfde'dddc <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xe7e6'e5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a541f81a		ld3w {z26.s, z27.s, z28.s}, p6/z, [x0, #3, mul vl]
+#     z26<127:0>: 0x00000000000000000000ffff00000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z27<127:0>: 0x00000000000000007fff000000000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z28<127:0>: 0x37a0000000000000000000007fc00000 (0.000, 0.000, 9.183e-41, 0.000)
+#                          ║       ║       ║       ╙─ 0x7fc00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'7fff0000'0000ffff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5c1f41b		ld3d {z27.d, z28.d, z29.d}, p5/z, [x0, #3, mul vl]
+#     z27<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000ffff7fc00000 (0.000, 0.000)
+#     z29<127:0>: 0x37a0000000000000000000007fff0000 (0.000, 0.000)
+#                                  ║               ╙─ 0x000000007fff0000'0000ffff7fc00000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x37a0000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e471f01f		st4b {z31.b, z0.b, z1.b, z2.b}, p4, [x0, #4, mul vl]
+#     z31<127:0>: 0x00000000000000007fc000007fffffff
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'f3'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'04'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'b5'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'f3'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'b5'c0 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'ff'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<255:128>: 0x00000000000000000000000000000000
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<383:256>: 0x00000000000000000000000000000000
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#    z2<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<511:384>: 0x00000000000000000000000000000000
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<639:512>: 0x00000000000000000000000000000000
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e4f1f000		st4h {z0.h, z1.h, z2.h, z3.h}, p4, [x0, #4, mul vl]
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e571ec01		st4w {z1.s, z2.s, z3.s, z4.s}, p3, [x0, #4, mul vl]
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, ..., 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  e5e27002		st4d {z2.d, z3.d, z4.d, z5.d}, p4, [x0, x2, lsl #3]
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (0.000, 0.000)
+#                                  ║               ╙─ 0x7fffffff3fc00000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3fc000003fc00000'0000000000000000'7f8000007f800000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a461f419		ld4b {z25.b, z26.b, z27.b, z28.b}, p5/z, [x0, #4, mul vl]
+#     z25<127:0>: 0x0000000000000000000000f300000000
+#     z26<127:0>: 0x00000000000000000000000400000000
+#     z27<127:0>: 0x0080000000800000000000ff00000000
+#     z28<127:0>: 0x007f0000007f0000000000ff00000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0xff'ff'04'f3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#   z27<255:128>: 0x00000000000000000000000000000000
+#   z28<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#   z27<383:256>: 0x00000000000000000000000000000000
+#   z28<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#   z27<511:384>: 0x00000000000000000000000000000000
+#   z28<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#   z27<639:512>: 0x00000000000000000000000000000000
+#   z28<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a4e1f81a		ld4h {z26.h, z27.h, z28.h, z29.h}, p6/z, [x0, #4, mul vl]
+#     z26<127:0>: 0x00000000000000003fb504f300000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z27<127:0>: 0x7f8000007f800000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a562d81b		ld4w {z27.s, z28.s, z29.s, z30.s}, p6/z, [x0, x2, lsl #2]
+#     z27<127:0>: 0x2f2e2d2c000000000000000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z28<127:0>: 0x33323130000000007f80000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000007060504 (1.584e-10, 0.000, 0.000, 0.000)
+#     z30<127:0>: 0x00000000000000007f8000000b0a0908 (1.584e-10, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7f800000'00000000'7f800000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000005756555400000000 (0.000, 0.000, 0.000, 0.000)
+#   z30<255:128>: 0x00000000000000005b5a595800000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5b5a5958'57565554'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0xafaeadac9f9e9d9c8f8e8d8c7f7e7d7c (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z28<383:256>: 0xb3b2b1b0a3a2a1a09392919083828180 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z29<383:256>: 0xb7b6b5b4a7a6a5a49796959487868584 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z30<383:256>: 0xbbbab9b8abaaa9a89b9a99988b8a8988 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#                          ║       ║       ║       ╙─ 0x8b8a8988'87868584'83828180'7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x9b9a9998'97969594'93929190'8f8e8d8c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xabaaa9a8'a7a6a5a4'a3a2a1a0'9f9e9d9c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xbbbab9b8'b7b6b5b4'b3b2b1b0'afaeadac <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z28<511:384>: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z29<511:384>: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z30<511:384>: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x2f2e2d2c1f1e1d1c0f0e0d0cfffefdfc (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z28<639:512>: 0x33323130232221201312111003020100 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z29<639:512>: 0x37363534272625241716151407060504 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z30<639:512>: 0x3b3a39382b2a29281b1a19180b0a0908 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'03020100'fffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1b1a1918'17161514'13121110'0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928'27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3b3a3938'37363534'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+0x~~~~~~~~~~~~~~~~  a5e1f41c		ld4d {z28.d, z29.d, z30.d, z31.d}, p5/z, [x0, #4, mul vl]
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z29<127:0>: 0x000000007f8000000000000000000000 (0.000, 0.000)
+#     z30<127:0>: 0x000000000000000000000000ffff04f3 (0.000, 0.000)
+#     z31<127:0>: 0x000000007f80000000000000ffff3fb5 (0.000, 0.000)
+#                                  ║               ╙─ 0x00000000ffff3fb5'00000000ffff04f3'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x000000007f800000'0000000000000000'000000007f800000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z30<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z31<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
 0x~~~~~~~~~~~~~~~~  d65f03c0		ret
 # Branch to 0x~~~~~~~~~~~~~~~~.
diff --git a/test/test-trace-reference/log-branch b/test/test-trace-reference/log-branch
index 88a4e99..fff3143 100644
--- a/test/test-trace-reference/log-branch
+++ b/test/test-trace-reference/log-branch
@@ -1,595 +1,3190 @@
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
-#   w20<7:0>:          0x04 -> 0x~~~~~~~~~~~~~~~~
-#   w21<7:0>:          0x03 -> 0x~~~~~~~~~~~~~~~~
-#   w22<15:0>:       0x0004 -> 0x~~~~~~~~~~~~~~~~
-#   w23<15:0>:       0x0100 -> 0x~~~~~~~~~~~~~~~~
-#   w14:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
-#   w15:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
-#   x16: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
-#   x17: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w28:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    w2<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#    w3<7:0>:          0xff -> 0x~~~~~~~~~~~~~~~~
-#    w4<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#    w5<15:0>:       0x8500 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (d29: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff (d12: 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (d17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 (d19: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 (d27: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (d23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (1.25493e-321, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#   v25:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    v4:               0x00                 -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                             0x0000 -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000                             -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v0:                         0x00000000 (s0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000000000000000000001 (0.00000, 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v7:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#    v8:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (d25: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (d26: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v0:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v22:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v23:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v0:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (..., nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (..., 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 0.00000, 0.00000, 4.48416e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v31:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v0:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v4:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v5:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v6:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v5:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v6:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v7:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v0:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v1:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v14:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v15:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v16:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v21:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v22:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v23:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v21:                         0xffff8007 (s21: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                         0x00000000 (s22: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                         0x00000000 (s23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffff         (..., nan, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                         0x00000000 (s15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                         0x00007ff9 (s16: 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                         0x00000000 (s17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000000000000000000001 (0.00000, 0.00000, 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v0:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v1:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v2:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v3:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v4:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v5:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v6:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v7:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v9:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v10:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v11:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v12:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (d9: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (d10: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v3:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v4:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v5:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v24:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v25:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v26:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v27:             0x00fe                 -> 0x~~~~~~~~~~~~~~~~
-#   v18:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v19:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v20:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v21:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v6:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v8:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v9:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<63:0>: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
+#       x20<7:0>:               0x04 -> 0x~~~~~~~~~~~~~~~~
+#       x21<7:0>:               0x03 -> 0x~~~~~~~~~~~~~~~~
+#      x22<15:0>:             0x0004 -> 0x~~~~~~~~~~~~~~~~
+#      x23<15:0>:             0x0100 -> 0x~~~~~~~~~~~~~~~~
+#      x14<31:0>:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      x15<31:0>:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
+#      x16<63:0>: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
+#      x17<63:0>: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x28<31:0>:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
+#      x29<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#        x2<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#        x3<7:0>:               0xff -> 0x~~~~~~~~~~~~~~~~
+#       x4<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#       x5<15:0>:             0x8500 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (2.122e-314)
+#                                                  ╙─ 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (3.162e-322)
+#                                                  ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#                                  ║               ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (1.255e-321, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000000000fe -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#                          ║       ║       ║       ╙─ 0xffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v20<63:0>:                 0x0000000000000020
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                                ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 4.941e-324)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#       v5<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                                          ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'fe'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan)
+#      v14<63:0>:                 0x0000000000000001 (0.000, 1.401e-45)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v0<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 4.484e-44)
+#                          ║       ║       ║       ╙─ 0x00000020'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                                        ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                                                ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#                                                  ╙─ 0x0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (..., 0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                          ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., nan)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00000000'ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (..., 0.000, ...)
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan, ...)
+#                                          ╙───────── 0xffffffff'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'f9'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'7f'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#     v17<127:0>: 0x00000000000000000000000000000000
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000'0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'7ff9'0000'0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v2<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 0.000, 0.000, 1.401e-45)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#                          ║       ║       ║       ╙─ 0x00007ff9'00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#      v20<63:0>:                 0x0000000000000020
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07'20'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'ffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0040'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#      v2<127:0>: 0x00000000000000000000000000000040
+#      v3<127:0>: 0x00000000000000000000000000000000
+#                        ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#     v10<127:0>: 0x00000000000000000000000000000000
+#     v11<127:0>: 0x00000000000000000000000000000000
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                                ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                              ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v29<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 1.514e-05, ...)
+#                                  ╙───────────────── 0x00fe'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v19<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v20<127:0>: 0x00000000000000000000000000000020 (..., 0.000, ...)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 -> 0x~~~~~~~~~~~~~~~~
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (..., 0.000, 0.000, ..., nan, nan, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, ..., 0.000, 0.000, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z4<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                          ║               ║       ╙─ 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'04 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0xff'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0xff'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0xff'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z4<127:0>: 0x00000000000000000000000000000000
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000
+#      z6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#    z5<255:128>: 0x00000000000000000000000000000000
+#    z6<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#    z5<383:256>: 0x00000000000000000000000000000000
+#    z6<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<511:384>: 0x00000000000000000000000000000000
+#    z5<511:384>: 0x00000000000000000000000000000000
+#    z6<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#    z5<639:512>: 0x00000000000000000000000000000000
+#    z6<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z6<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'7fff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x7fc00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000)
+#      z9<127:0>: 0x43dfe000001fe0000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'7fc000007fc00000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x43dfe000001fe000'37a0000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     z31<127:0>: 0x00000000000000007fc000007fffffff
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'f3'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'04'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'b5'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'f3'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'b5'c0 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'ff'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<255:128>: 0x00000000000000000000000000000000
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<383:256>: 0x00000000000000000000000000000000
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#    z2<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<511:384>: 0x00000000000000000000000000000000
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<639:512>: 0x00000000000000000000000000000000
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, ..., 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (0.000, 0.000)
+#                                  ║               ╙─ 0x7fffffff3fc00000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3fc000003fc00000'0000000000000000'7f8000007f800000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
diff --git a/test/test-trace-reference/log-branch-colour b/test/test-trace-reference/log-branch-colour
index 8020757..92faa1f 100644
--- a/test/test-trace-reference/log-branch-colour
+++ b/test/test-trace-reference/log-branch-colour
@@ -1,595 +1,3190 @@
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
-#   w20<7:0>:          0x04 -> 0x~~~~~~~~~~~~~~~~
-#   w21<7:0>:          0x03 -> 0x~~~~~~~~~~~~~~~~
-#   w22<15:0>:       0x0004 -> 0x~~~~~~~~~~~~~~~~
-#   w23<15:0>:       0x0100 -> 0x~~~~~~~~~~~~~~~~
-#   w14:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
-#   w15:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
-#   x16: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
-#   x17: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w28:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    w2<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#    w3<7:0>:          0xff -> 0x~~~~~~~~~~~~~~~~
-#    w4<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#    w5<15:0>:       0x8500 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (d29: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff (d12: 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (d17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 (d19: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 (d27: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (d23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (1.25493e-321, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#   v25:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    v4:               0x00                 -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                             0x0000 -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000                             -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v0:                         0x00000000 (s0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000000000000000000001 (0.00000, 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v7:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#    v8:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (d25: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (d26: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v0:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v22:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v23:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v0:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (..., nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (..., 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 0.00000, 0.00000, 4.48416e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v31:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v0:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v4:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v5:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v6:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v5:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v6:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v7:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v0:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v1:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v14:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v15:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v16:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v21:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v22:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v23:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v21:                         0xffff8007 (s21: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                         0x00000000 (s22: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                         0x00000000 (s23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffff         (..., nan, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                         0x00000000 (s15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                         0x00007ff9 (s16: 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                         0x00000000 (s17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000000000000000000001 (0.00000, 0.00000, 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v0:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v1:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v2:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v3:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v4:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v5:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v6:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v7:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v9:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v10:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v11:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v12:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (d9: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (d10: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v3:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v4:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v5:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v24:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v25:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v26:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v27:             0x00fe                 -> 0x~~~~~~~~~~~~~~~~
-#   v18:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v19:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v20:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v21:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v6:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v8:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v9:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<63:0>: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
+#       x20<7:0>:               0x04 -> 0x~~~~~~~~~~~~~~~~
+#       x21<7:0>:               0x03 -> 0x~~~~~~~~~~~~~~~~
+#      x22<15:0>:             0x0004 -> 0x~~~~~~~~~~~~~~~~
+#      x23<15:0>:             0x0100 -> 0x~~~~~~~~~~~~~~~~
+#      x14<31:0>:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      x15<31:0>:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
+#      x16<63:0>: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
+#      x17<63:0>: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x28<31:0>:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
+#      x29<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#        x2<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#        x3<7:0>:               0xff -> 0x~~~~~~~~~~~~~~~~
+#       x4<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#       x5<15:0>:             0x8500 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (2.122e-314)
+#                                                  ╙─ 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (3.162e-322)
+#                                                  ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#                                  ║               ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (1.255e-321, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000000000fe -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#                          ║       ║       ║       ╙─ 0xffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v20<63:0>:                 0x0000000000000020
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                                ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 4.941e-324)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#       v5<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                                          ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'fe'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan)
+#      v14<63:0>:                 0x0000000000000001 (0.000, 1.401e-45)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v0<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 4.484e-44)
+#                          ║       ║       ║       ╙─ 0x00000020'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                                        ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                                                ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#                                                  ╙─ 0x0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (..., 0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                          ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., nan)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00000000'ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (..., 0.000, ...)
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan, ...)
+#                                          ╙───────── 0xffffffff'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'f9'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'7f'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#     v17<127:0>: 0x00000000000000000000000000000000
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000'0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'7ff9'0000'0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v2<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 0.000, 0.000, 1.401e-45)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#                          ║       ║       ║       ╙─ 0x00007ff9'00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#      v20<63:0>:                 0x0000000000000020
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07'20'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'ffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0040'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#      v2<127:0>: 0x00000000000000000000000000000040
+#      v3<127:0>: 0x00000000000000000000000000000000
+#                        ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#     v10<127:0>: 0x00000000000000000000000000000000
+#     v11<127:0>: 0x00000000000000000000000000000000
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                                ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                              ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v29<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 1.514e-05, ...)
+#                                  ╙───────────────── 0x00fe'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v19<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v20<127:0>: 0x00000000000000000000000000000020 (..., 0.000, ...)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 -> 0x~~~~~~~~~~~~~~~~
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (..., 0.000, 0.000, ..., nan, nan, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, ..., 0.000, 0.000, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z4<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                          ║               ║       ╙─ 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'04 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0xff'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0xff'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0xff'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z4<127:0>: 0x00000000000000000000000000000000
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000
+#      z6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#    z5<255:128>: 0x00000000000000000000000000000000
+#    z6<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#    z5<383:256>: 0x00000000000000000000000000000000
+#    z6<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<511:384>: 0x00000000000000000000000000000000
+#    z5<511:384>: 0x00000000000000000000000000000000
+#    z6<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#    z5<639:512>: 0x00000000000000000000000000000000
+#    z6<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z6<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'7fff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x7fc00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000)
+#      z9<127:0>: 0x43dfe000001fe0000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'7fc000007fc00000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x43dfe000001fe000'37a0000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     z31<127:0>: 0x00000000000000007fc000007fffffff
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'f3'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'04'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'b5'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'f3'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'b5'c0 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'ff'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<255:128>: 0x00000000000000000000000000000000
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<383:256>: 0x00000000000000000000000000000000
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#    z2<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<511:384>: 0x00000000000000000000000000000000
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<639:512>: 0x00000000000000000000000000000000
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, ..., 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (0.000, 0.000)
+#                                  ║               ╙─ 0x7fffffff3fc00000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3fc000003fc00000'0000000000000000'7f8000007f800000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
diff --git a/test/test-trace-reference/log-cpufeatures b/test/test-trace-reference/log-cpufeatures
index d02ec06..804c06f 100644
--- a/test/test-trace-reference/log-cpufeatures
+++ b/test/test-trace-reference/log-cpufeatures
@@ -2383,3 +2383,69 @@
 0x~~~~~~~~~~~~~~~~  2f27e47d		ucvtf v29.2s, v3.2s, #25                // Needs: FP, NEON
 0x~~~~~~~~~~~~~~~~  6e21daf6		ucvtf v22.4s, v23.4s                    // Needs: FP, NEON
 0x~~~~~~~~~~~~~~~~  6f27e532		ucvtf v18.4s, v9.4s, #25                // Needs: FP, NEON
+0x~~~~~~~~~~~~~~~~  e5810c0c		str p12, [x0, #11, mul vl]              // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5810c0d		str p13, [x0, #11, mul vl]              // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5810c0e		str p14, [x0, #11, mul vl]              // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5810c0f		str p15, [x0, #11, mul vl]              // Needs: SVE
+0x~~~~~~~~~~~~~~~~  85810c08		ldr p8, [x0, #11, mul vl]               // Needs: SVE
+0x~~~~~~~~~~~~~~~~  85810c09		ldr p9, [x0, #11, mul vl]               // Needs: SVE
+0x~~~~~~~~~~~~~~~~  85810c0a		ldr p10, [x0, #11, mul vl]              // Needs: SVE
+0x~~~~~~~~~~~~~~~~  85810c0b		ldr p11, [x0, #11, mul vl]              // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5814c00		str z0, [x0, #11, mul vl]               // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5814c01		str z1, [x0, #11, mul vl]               // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5814c02		str z2, [x0, #11, mul vl]               // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5814c03		str z3, [x0, #11, mul vl]               // Needs: SVE
+0x~~~~~~~~~~~~~~~~  85814c14		ldr z20, [x0, #11, mul vl]              // Needs: SVE
+0x~~~~~~~~~~~~~~~~  85814c15		ldr z21, [x0, #11, mul vl]              // Needs: SVE
+0x~~~~~~~~~~~~~~~~  85814c16		ldr z22, [x0, #11, mul vl]              // Needs: SVE
+0x~~~~~~~~~~~~~~~~  85814c17		ldr z23, [x0, #11, mul vl]              // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e403e800		st1b {z0.b}, p2, [x0, #3, mul vl]       // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e4a3e401		st1h {z1.h}, p1, [x0, #3, mul vl]       // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5434402		st1w {z2.s}, p1, [x0, x3, lsl #2]       // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5e3e803		st1d {z3.d}, p2, [x0, #3, mul vl]       // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a403a414		ld1b {z20.b}, p1/z, [x0, #3, mul vl]    // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a4a24815		ld1h {z21.h}, p2/z, [x0, x2, lsl #1]    // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a543a416		ld1w {z22.s}, p1/z, [x0, #3, mul vl]    // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a5e3a417		ld1d {z23.d}, p1/z, [x0, #3, mul vl]    // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e423e402		st1b {z2.h}, p1, [x0, #3, mul vl]       // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e443e803		st1b {z3.s}, p2, [x0, #3, mul vl]       // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e463e804		st1b {z4.d}, p2, [x0, #3, mul vl]       // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e4c3e400		st1h {z0.s}, p1, [x0, #3, mul vl]       // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e4e24401		st1h {z1.d}, p1, [x0, x2, lsl #1]       // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e563e402		st1w {z2.d}, p1, [x0, #3, mul vl]       // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a4224414		ld1b {z20.h}, p1/z, [x0, x2]            // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a443a415		ld1b {z21.s}, p1/z, [x0, #3, mul vl]    // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a463a416		ld1b {z22.d}, p1/z, [x0, #3, mul vl]    // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a4c3a817		ld1h {z23.s}, p2/z, [x0, #3, mul vl]    // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a4e3a818		ld1h {z24.d}, p2/z, [x0, #3, mul vl]    // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a563a414		ld1w {z20.d}, p1/z, [x0, #3, mul vl]    // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a5c3a415		ld1sb {z21.h}, p1/z, [x0, #3, mul vl]   // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a5a3a416		ld1sb {z22.s}, p1/z, [x0, #3, mul vl]   // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a5824817		ld1sb {z23.d}, p2/z, [x0, x2]           // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a523a818		ld1sh {z24.s}, p2/z, [x0, #3, mul vl]   // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a503a414		ld1sh {z20.d}, p1/z, [x0, #3, mul vl]   // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a483a415		ld1sw {z21.d}, p1/z, [x0, #3, mul vl]   // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e432f000		st2b {z0.b, z1.b}, p4, [x0, #4, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e4b2f001		st2h {z1.h, z2.h}, p4, [x0, #4, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5226c02		st2w {z2.s, z3.s}, p3, [x0, x2, lsl #2]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5b2f003		st2d {z3.d, z4.d}, p4, [x0, #4, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a422d414		ld2b {z20.b, z21.b}, p5/z, [x0, x2]     // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a4a2f815		ld2h {z21.h, z22.h}, p6/z, [x0, #4, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a522f816		ld2w {z22.s, z23.s}, p6/z, [x0, #4, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a5a2f417		ld2d {z23.d, z24.d}, p5/z, [x0, #4, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e451f004		st3b {z4.b, z5.b, z6.b}, p4, [x0, #3, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e4d1f005		st3h {z5.h, z6.h, z7.h}, p4, [x0, #3, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e551ec06		st3w {z6.s, z7.s, z8.s}, p3, [x0, #3, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5c27007		st3d {z7.d, z8.d, z9.d}, p4, [x0, x2, lsl #3]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a441f418		ld3b {z24.b, z25.b, z26.b}, p5/z, [x0, #3, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a4c2d819		ld3h {z25.h, z26.h, z27.h}, p6/z, [x0, x2, lsl #1]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a541f81a		ld3w {z26.s, z27.s, z28.s}, p6/z, [x0, #3, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a5c1f41b		ld3d {z27.d, z28.d, z29.d}, p5/z, [x0, #3, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e471f01f		st4b {z31.b, z0.b, z1.b, z2.b}, p4, [x0, #4, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e4f1f000		st4h {z0.h, z1.h, z2.h, z3.h}, p4, [x0, #4, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e571ec01		st4w {z1.s, z2.s, z3.s, z4.s}, p3, [x0, #4, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  e5e27002		st4d {z2.d, z3.d, z4.d, z5.d}, p4, [x0, x2, lsl #3]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a461f419		ld4b {z25.b, z26.b, z27.b, z28.b}, p5/z, [x0, #4, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a4e1f81a		ld4h {z26.h, z27.h, z28.h, z29.h}, p6/z, [x0, #4, mul vl]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a562d81b		ld4w {z27.s, z28.s, z29.s, z30.s}, p6/z, [x0, x2, lsl #2]  // Needs: SVE
+0x~~~~~~~~~~~~~~~~  a5e1f41c		ld4d {z28.d, z29.d, z30.d, z31.d}, p5/z, [x0, #4, mul vl]  // Needs: SVE
diff --git a/test/test-trace-reference/log-cpufeatures-colour b/test/test-trace-reference/log-cpufeatures-colour
index c98361a..58f0479 100644
--- a/test/test-trace-reference/log-cpufeatures-colour
+++ b/test/test-trace-reference/log-cpufeatures-colour
@@ -2383,3 +2383,69 @@
 0x~~~~~~~~~~~~~~~~  2f27e47d		ucvtf v29.2s, v3.2s, #25                FP, NEON
 0x~~~~~~~~~~~~~~~~  6e21daf6		ucvtf v22.4s, v23.4s                    FP, NEON
 0x~~~~~~~~~~~~~~~~  6f27e532		ucvtf v18.4s, v9.4s, #25                FP, NEON
+0x~~~~~~~~~~~~~~~~  e5810c0c		str p12, [x0, #11, mul vl]              SVE
+0x~~~~~~~~~~~~~~~~  e5810c0d		str p13, [x0, #11, mul vl]              SVE
+0x~~~~~~~~~~~~~~~~  e5810c0e		str p14, [x0, #11, mul vl]              SVE
+0x~~~~~~~~~~~~~~~~  e5810c0f		str p15, [x0, #11, mul vl]              SVE
+0x~~~~~~~~~~~~~~~~  85810c08		ldr p8, [x0, #11, mul vl]               SVE
+0x~~~~~~~~~~~~~~~~  85810c09		ldr p9, [x0, #11, mul vl]               SVE
+0x~~~~~~~~~~~~~~~~  85810c0a		ldr p10, [x0, #11, mul vl]              SVE
+0x~~~~~~~~~~~~~~~~  85810c0b		ldr p11, [x0, #11, mul vl]              SVE
+0x~~~~~~~~~~~~~~~~  e5814c00		str z0, [x0, #11, mul vl]               SVE
+0x~~~~~~~~~~~~~~~~  e5814c01		str z1, [x0, #11, mul vl]               SVE
+0x~~~~~~~~~~~~~~~~  e5814c02		str z2, [x0, #11, mul vl]               SVE
+0x~~~~~~~~~~~~~~~~  e5814c03		str z3, [x0, #11, mul vl]               SVE
+0x~~~~~~~~~~~~~~~~  85814c14		ldr z20, [x0, #11, mul vl]              SVE
+0x~~~~~~~~~~~~~~~~  85814c15		ldr z21, [x0, #11, mul vl]              SVE
+0x~~~~~~~~~~~~~~~~  85814c16		ldr z22, [x0, #11, mul vl]              SVE
+0x~~~~~~~~~~~~~~~~  85814c17		ldr z23, [x0, #11, mul vl]              SVE
+0x~~~~~~~~~~~~~~~~  e403e800		st1b {z0.b}, p2, [x0, #3, mul vl]       SVE
+0x~~~~~~~~~~~~~~~~  e4a3e401		st1h {z1.h}, p1, [x0, #3, mul vl]       SVE
+0x~~~~~~~~~~~~~~~~  e5434402		st1w {z2.s}, p1, [x0, x3, lsl #2]       SVE
+0x~~~~~~~~~~~~~~~~  e5e3e803		st1d {z3.d}, p2, [x0, #3, mul vl]       SVE
+0x~~~~~~~~~~~~~~~~  a403a414		ld1b {z20.b}, p1/z, [x0, #3, mul vl]    SVE
+0x~~~~~~~~~~~~~~~~  a4a24815		ld1h {z21.h}, p2/z, [x0, x2, lsl #1]    SVE
+0x~~~~~~~~~~~~~~~~  a543a416		ld1w {z22.s}, p1/z, [x0, #3, mul vl]    SVE
+0x~~~~~~~~~~~~~~~~  a5e3a417		ld1d {z23.d}, p1/z, [x0, #3, mul vl]    SVE
+0x~~~~~~~~~~~~~~~~  e423e402		st1b {z2.h}, p1, [x0, #3, mul vl]       SVE
+0x~~~~~~~~~~~~~~~~  e443e803		st1b {z3.s}, p2, [x0, #3, mul vl]       SVE
+0x~~~~~~~~~~~~~~~~  e463e804		st1b {z4.d}, p2, [x0, #3, mul vl]       SVE
+0x~~~~~~~~~~~~~~~~  e4c3e400		st1h {z0.s}, p1, [x0, #3, mul vl]       SVE
+0x~~~~~~~~~~~~~~~~  e4e24401		st1h {z1.d}, p1, [x0, x2, lsl #1]       SVE
+0x~~~~~~~~~~~~~~~~  e563e402		st1w {z2.d}, p1, [x0, #3, mul vl]       SVE
+0x~~~~~~~~~~~~~~~~  a4224414		ld1b {z20.h}, p1/z, [x0, x2]            SVE
+0x~~~~~~~~~~~~~~~~  a443a415		ld1b {z21.s}, p1/z, [x0, #3, mul vl]    SVE
+0x~~~~~~~~~~~~~~~~  a463a416		ld1b {z22.d}, p1/z, [x0, #3, mul vl]    SVE
+0x~~~~~~~~~~~~~~~~  a4c3a817		ld1h {z23.s}, p2/z, [x0, #3, mul vl]    SVE
+0x~~~~~~~~~~~~~~~~  a4e3a818		ld1h {z24.d}, p2/z, [x0, #3, mul vl]    SVE
+0x~~~~~~~~~~~~~~~~  a563a414		ld1w {z20.d}, p1/z, [x0, #3, mul vl]    SVE
+0x~~~~~~~~~~~~~~~~  a5c3a415		ld1sb {z21.h}, p1/z, [x0, #3, mul vl]   SVE
+0x~~~~~~~~~~~~~~~~  a5a3a416		ld1sb {z22.s}, p1/z, [x0, #3, mul vl]   SVE
+0x~~~~~~~~~~~~~~~~  a5824817		ld1sb {z23.d}, p2/z, [x0, x2]           SVE
+0x~~~~~~~~~~~~~~~~  a523a818		ld1sh {z24.s}, p2/z, [x0, #3, mul vl]   SVE
+0x~~~~~~~~~~~~~~~~  a503a414		ld1sh {z20.d}, p1/z, [x0, #3, mul vl]   SVE
+0x~~~~~~~~~~~~~~~~  a483a415		ld1sw {z21.d}, p1/z, [x0, #3, mul vl]   SVE
+0x~~~~~~~~~~~~~~~~  e432f000		st2b {z0.b, z1.b}, p4, [x0, #4, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  e4b2f001		st2h {z1.h, z2.h}, p4, [x0, #4, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  e5226c02		st2w {z2.s, z3.s}, p3, [x0, x2, lsl #2]  SVE
+0x~~~~~~~~~~~~~~~~  e5b2f003		st2d {z3.d, z4.d}, p4, [x0, #4, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  a422d414		ld2b {z20.b, z21.b}, p5/z, [x0, x2]     SVE
+0x~~~~~~~~~~~~~~~~  a4a2f815		ld2h {z21.h, z22.h}, p6/z, [x0, #4, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  a522f816		ld2w {z22.s, z23.s}, p6/z, [x0, #4, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  a5a2f417		ld2d {z23.d, z24.d}, p5/z, [x0, #4, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  e451f004		st3b {z4.b, z5.b, z6.b}, p4, [x0, #3, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  e4d1f005		st3h {z5.h, z6.h, z7.h}, p4, [x0, #3, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  e551ec06		st3w {z6.s, z7.s, z8.s}, p3, [x0, #3, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  e5c27007		st3d {z7.d, z8.d, z9.d}, p4, [x0, x2, lsl #3]  SVE
+0x~~~~~~~~~~~~~~~~  a441f418		ld3b {z24.b, z25.b, z26.b}, p5/z, [x0, #3, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  a4c2d819		ld3h {z25.h, z26.h, z27.h}, p6/z, [x0, x2, lsl #1]  SVE
+0x~~~~~~~~~~~~~~~~  a541f81a		ld3w {z26.s, z27.s, z28.s}, p6/z, [x0, #3, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  a5c1f41b		ld3d {z27.d, z28.d, z29.d}, p5/z, [x0, #3, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  e471f01f		st4b {z31.b, z0.b, z1.b, z2.b}, p4, [x0, #4, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  e4f1f000		st4h {z0.h, z1.h, z2.h, z3.h}, p4, [x0, #4, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  e571ec01		st4w {z1.s, z2.s, z3.s, z4.s}, p3, [x0, #4, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  e5e27002		st4d {z2.d, z3.d, z4.d, z5.d}, p4, [x0, x2, lsl #3]  SVE
+0x~~~~~~~~~~~~~~~~  a461f419		ld4b {z25.b, z26.b, z27.b, z28.b}, p5/z, [x0, #4, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  a4e1f81a		ld4h {z26.h, z27.h, z28.h, z29.h}, p6/z, [x0, #4, mul vl]  SVE
+0x~~~~~~~~~~~~~~~~  a562d81b		ld4w {z27.s, z28.s, z29.s, z30.s}, p6/z, [x0, x2, lsl #2]  SVE
+0x~~~~~~~~~~~~~~~~  a5e1f41c		ld4d {z28.d, z29.d, z30.d, z31.d}, p5/z, [x0, #4, mul vl]  SVE
diff --git a/test/test-trace-reference/log-cpufeatures-custom b/test/test-trace-reference/log-cpufeatures-custom
index fa43cba..1e572f2 100644
--- a/test/test-trace-reference/log-cpufeatures-custom
+++ b/test/test-trace-reference/log-cpufeatures-custom
@@ -2383,3 +2383,69 @@
 0x~~~~~~~~~~~~~~~~  2f27e47d		ucvtf v29.2s, v3.2s, #25                ### {FP, NEON} ###
 0x~~~~~~~~~~~~~~~~  6e21daf6		ucvtf v22.4s, v23.4s                    ### {FP, NEON} ###
 0x~~~~~~~~~~~~~~~~  6f27e532		ucvtf v18.4s, v9.4s, #25                ### {FP, NEON} ###
+0x~~~~~~~~~~~~~~~~  e5810c0c		str p12, [x0, #11, mul vl]              ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5810c0d		str p13, [x0, #11, mul vl]              ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5810c0e		str p14, [x0, #11, mul vl]              ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5810c0f		str p15, [x0, #11, mul vl]              ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  85810c08		ldr p8, [x0, #11, mul vl]               ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  85810c09		ldr p9, [x0, #11, mul vl]               ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  85810c0a		ldr p10, [x0, #11, mul vl]              ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  85810c0b		ldr p11, [x0, #11, mul vl]              ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5814c00		str z0, [x0, #11, mul vl]               ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5814c01		str z1, [x0, #11, mul vl]               ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5814c02		str z2, [x0, #11, mul vl]               ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5814c03		str z3, [x0, #11, mul vl]               ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  85814c14		ldr z20, [x0, #11, mul vl]              ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  85814c15		ldr z21, [x0, #11, mul vl]              ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  85814c16		ldr z22, [x0, #11, mul vl]              ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  85814c17		ldr z23, [x0, #11, mul vl]              ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e403e800		st1b {z0.b}, p2, [x0, #3, mul vl]       ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e4a3e401		st1h {z1.h}, p1, [x0, #3, mul vl]       ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5434402		st1w {z2.s}, p1, [x0, x3, lsl #2]       ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5e3e803		st1d {z3.d}, p2, [x0, #3, mul vl]       ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a403a414		ld1b {z20.b}, p1/z, [x0, #3, mul vl]    ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a4a24815		ld1h {z21.h}, p2/z, [x0, x2, lsl #1]    ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a543a416		ld1w {z22.s}, p1/z, [x0, #3, mul vl]    ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a5e3a417		ld1d {z23.d}, p1/z, [x0, #3, mul vl]    ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e423e402		st1b {z2.h}, p1, [x0, #3, mul vl]       ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e443e803		st1b {z3.s}, p2, [x0, #3, mul vl]       ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e463e804		st1b {z4.d}, p2, [x0, #3, mul vl]       ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e4c3e400		st1h {z0.s}, p1, [x0, #3, mul vl]       ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e4e24401		st1h {z1.d}, p1, [x0, x2, lsl #1]       ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e563e402		st1w {z2.d}, p1, [x0, #3, mul vl]       ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a4224414		ld1b {z20.h}, p1/z, [x0, x2]            ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a443a415		ld1b {z21.s}, p1/z, [x0, #3, mul vl]    ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a463a416		ld1b {z22.d}, p1/z, [x0, #3, mul vl]    ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a4c3a817		ld1h {z23.s}, p2/z, [x0, #3, mul vl]    ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a4e3a818		ld1h {z24.d}, p2/z, [x0, #3, mul vl]    ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a563a414		ld1w {z20.d}, p1/z, [x0, #3, mul vl]    ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a5c3a415		ld1sb {z21.h}, p1/z, [x0, #3, mul vl]   ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a5a3a416		ld1sb {z22.s}, p1/z, [x0, #3, mul vl]   ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a5824817		ld1sb {z23.d}, p2/z, [x0, x2]           ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a523a818		ld1sh {z24.s}, p2/z, [x0, #3, mul vl]   ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a503a414		ld1sh {z20.d}, p1/z, [x0, #3, mul vl]   ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a483a415		ld1sw {z21.d}, p1/z, [x0, #3, mul vl]   ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e432f000		st2b {z0.b, z1.b}, p4, [x0, #4, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e4b2f001		st2h {z1.h, z2.h}, p4, [x0, #4, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5226c02		st2w {z2.s, z3.s}, p3, [x0, x2, lsl #2]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5b2f003		st2d {z3.d, z4.d}, p4, [x0, #4, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a422d414		ld2b {z20.b, z21.b}, p5/z, [x0, x2]     ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a4a2f815		ld2h {z21.h, z22.h}, p6/z, [x0, #4, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a522f816		ld2w {z22.s, z23.s}, p6/z, [x0, #4, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a5a2f417		ld2d {z23.d, z24.d}, p5/z, [x0, #4, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e451f004		st3b {z4.b, z5.b, z6.b}, p4, [x0, #3, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e4d1f005		st3h {z5.h, z6.h, z7.h}, p4, [x0, #3, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e551ec06		st3w {z6.s, z7.s, z8.s}, p3, [x0, #3, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5c27007		st3d {z7.d, z8.d, z9.d}, p4, [x0, x2, lsl #3]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a441f418		ld3b {z24.b, z25.b, z26.b}, p5/z, [x0, #3, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a4c2d819		ld3h {z25.h, z26.h, z27.h}, p6/z, [x0, x2, lsl #1]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a541f81a		ld3w {z26.s, z27.s, z28.s}, p6/z, [x0, #3, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a5c1f41b		ld3d {z27.d, z28.d, z29.d}, p5/z, [x0, #3, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e471f01f		st4b {z31.b, z0.b, z1.b, z2.b}, p4, [x0, #4, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e4f1f000		st4h {z0.h, z1.h, z2.h, z3.h}, p4, [x0, #4, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e571ec01		st4w {z1.s, z2.s, z3.s, z4.s}, p3, [x0, #4, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  e5e27002		st4d {z2.d, z3.d, z4.d, z5.d}, p4, [x0, x2, lsl #3]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a461f419		ld4b {z25.b, z26.b, z27.b, z28.b}, p5/z, [x0, #4, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a4e1f81a		ld4h {z26.h, z27.h, z28.h, z29.h}, p6/z, [x0, #4, mul vl]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a562d81b		ld4w {z27.s, z28.s, z29.s, z30.s}, p6/z, [x0, x2, lsl #2]  ### {SVE} ###
+0x~~~~~~~~~~~~~~~~  a5e1f41c		ld4d {z28.d, z29.d, z30.d, z31.d}, p5/z, [x0, #4, mul vl]  ### {SVE} ###
diff --git a/test/test-trace-reference/log-disasm b/test/test-trace-reference/log-disasm
index 9486236..583328a 100644
--- a/test/test-trace-reference/log-disasm
+++ b/test/test-trace-reference/log-disasm
@@ -2384,4 +2384,70 @@
 0x~~~~~~~~~~~~~~~~  2f27e47d		ucvtf v29.2s, v3.2s, #25
 0x~~~~~~~~~~~~~~~~  6e21daf6		ucvtf v22.4s, v23.4s
 0x~~~~~~~~~~~~~~~~  6f27e532		ucvtf v18.4s, v9.4s, #25
+0x~~~~~~~~~~~~~~~~  e5810c0c		str p12, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5810c0d		str p13, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5810c0e		str p14, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5810c0f		str p15, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85810c08		ldr p8, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85810c09		ldr p9, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85810c0a		ldr p10, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85810c0b		ldr p11, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5814c00		str z0, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5814c01		str z1, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5814c02		str z2, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5814c03		str z3, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85814c14		ldr z20, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85814c15		ldr z21, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85814c16		ldr z22, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85814c17		ldr z23, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e403e800		st1b {z0.b}, p2, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e4a3e401		st1h {z1.h}, p1, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e5434402		st1w {z2.s}, p1, [x0, x3, lsl #2]
+0x~~~~~~~~~~~~~~~~  e5e3e803		st1d {z3.d}, p2, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a403a414		ld1b {z20.b}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a4a24815		ld1h {z21.h}, p2/z, [x0, x2, lsl #1]
+0x~~~~~~~~~~~~~~~~  a543a416		ld1w {z22.s}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a5e3a417		ld1d {z23.d}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e423e402		st1b {z2.h}, p1, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e443e803		st1b {z3.s}, p2, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e463e804		st1b {z4.d}, p2, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e4c3e400		st1h {z0.s}, p1, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e4e24401		st1h {z1.d}, p1, [x0, x2, lsl #1]
+0x~~~~~~~~~~~~~~~~  e563e402		st1w {z2.d}, p1, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a4224414		ld1b {z20.h}, p1/z, [x0, x2]
+0x~~~~~~~~~~~~~~~~  a443a415		ld1b {z21.s}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a463a416		ld1b {z22.d}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a4c3a817		ld1h {z23.s}, p2/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a4e3a818		ld1h {z24.d}, p2/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a563a414		ld1w {z20.d}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a5c3a415		ld1sb {z21.h}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a5a3a416		ld1sb {z22.s}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a5824817		ld1sb {z23.d}, p2/z, [x0, x2]
+0x~~~~~~~~~~~~~~~~  a523a818		ld1sh {z24.s}, p2/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a503a414		ld1sh {z20.d}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a483a415		ld1sw {z21.d}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e432f000		st2b {z0.b, z1.b}, p4, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e4b2f001		st2h {z1.h, z2.h}, p4, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e5226c02		st2w {z2.s, z3.s}, p3, [x0, x2, lsl #2]
+0x~~~~~~~~~~~~~~~~  e5b2f003		st2d {z3.d, z4.d}, p4, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  a422d414		ld2b {z20.b, z21.b}, p5/z, [x0, x2]
+0x~~~~~~~~~~~~~~~~  a4a2f815		ld2h {z21.h, z22.h}, p6/z, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  a522f816		ld2w {z22.s, z23.s}, p6/z, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  a5a2f417		ld2d {z23.d, z24.d}, p5/z, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e451f004		st3b {z4.b, z5.b, z6.b}, p4, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e4d1f005		st3h {z5.h, z6.h, z7.h}, p4, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e551ec06		st3w {z6.s, z7.s, z8.s}, p3, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e5c27007		st3d {z7.d, z8.d, z9.d}, p4, [x0, x2, lsl #3]
+0x~~~~~~~~~~~~~~~~  a441f418		ld3b {z24.b, z25.b, z26.b}, p5/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a4c2d819		ld3h {z25.h, z26.h, z27.h}, p6/z, [x0, x2, lsl #1]
+0x~~~~~~~~~~~~~~~~  a541f81a		ld3w {z26.s, z27.s, z28.s}, p6/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a5c1f41b		ld3d {z27.d, z28.d, z29.d}, p5/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e471f01f		st4b {z31.b, z0.b, z1.b, z2.b}, p4, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e4f1f000		st4h {z0.h, z1.h, z2.h, z3.h}, p4, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e571ec01		st4w {z1.s, z2.s, z3.s, z4.s}, p3, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e5e27002		st4d {z2.d, z3.d, z4.d, z5.d}, p4, [x0, x2, lsl #3]
+0x~~~~~~~~~~~~~~~~  a461f419		ld4b {z25.b, z26.b, z27.b, z28.b}, p5/z, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  a4e1f81a		ld4h {z26.h, z27.h, z28.h, z29.h}, p6/z, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  a562d81b		ld4w {z27.s, z28.s, z29.s, z30.s}, p6/z, [x0, x2, lsl #2]
+0x~~~~~~~~~~~~~~~~  a5e1f41c		ld4d {z28.d, z29.d, z30.d, z31.d}, p5/z, [x0, #4, mul vl]
 0x~~~~~~~~~~~~~~~~  d65f03c0		ret
diff --git a/test/test-trace-reference/log-disasm-colour b/test/test-trace-reference/log-disasm-colour
index 9486236..583328a 100644
--- a/test/test-trace-reference/log-disasm-colour
+++ b/test/test-trace-reference/log-disasm-colour
@@ -2384,4 +2384,70 @@
 0x~~~~~~~~~~~~~~~~  2f27e47d		ucvtf v29.2s, v3.2s, #25
 0x~~~~~~~~~~~~~~~~  6e21daf6		ucvtf v22.4s, v23.4s
 0x~~~~~~~~~~~~~~~~  6f27e532		ucvtf v18.4s, v9.4s, #25
+0x~~~~~~~~~~~~~~~~  e5810c0c		str p12, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5810c0d		str p13, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5810c0e		str p14, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5810c0f		str p15, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85810c08		ldr p8, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85810c09		ldr p9, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85810c0a		ldr p10, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85810c0b		ldr p11, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5814c00		str z0, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5814c01		str z1, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5814c02		str z2, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e5814c03		str z3, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85814c14		ldr z20, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85814c15		ldr z21, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85814c16		ldr z22, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  85814c17		ldr z23, [x0, #11, mul vl]
+0x~~~~~~~~~~~~~~~~  e403e800		st1b {z0.b}, p2, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e4a3e401		st1h {z1.h}, p1, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e5434402		st1w {z2.s}, p1, [x0, x3, lsl #2]
+0x~~~~~~~~~~~~~~~~  e5e3e803		st1d {z3.d}, p2, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a403a414		ld1b {z20.b}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a4a24815		ld1h {z21.h}, p2/z, [x0, x2, lsl #1]
+0x~~~~~~~~~~~~~~~~  a543a416		ld1w {z22.s}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a5e3a417		ld1d {z23.d}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e423e402		st1b {z2.h}, p1, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e443e803		st1b {z3.s}, p2, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e463e804		st1b {z4.d}, p2, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e4c3e400		st1h {z0.s}, p1, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e4e24401		st1h {z1.d}, p1, [x0, x2, lsl #1]
+0x~~~~~~~~~~~~~~~~  e563e402		st1w {z2.d}, p1, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a4224414		ld1b {z20.h}, p1/z, [x0, x2]
+0x~~~~~~~~~~~~~~~~  a443a415		ld1b {z21.s}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a463a416		ld1b {z22.d}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a4c3a817		ld1h {z23.s}, p2/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a4e3a818		ld1h {z24.d}, p2/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a563a414		ld1w {z20.d}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a5c3a415		ld1sb {z21.h}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a5a3a416		ld1sb {z22.s}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a5824817		ld1sb {z23.d}, p2/z, [x0, x2]
+0x~~~~~~~~~~~~~~~~  a523a818		ld1sh {z24.s}, p2/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a503a414		ld1sh {z20.d}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a483a415		ld1sw {z21.d}, p1/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e432f000		st2b {z0.b, z1.b}, p4, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e4b2f001		st2h {z1.h, z2.h}, p4, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e5226c02		st2w {z2.s, z3.s}, p3, [x0, x2, lsl #2]
+0x~~~~~~~~~~~~~~~~  e5b2f003		st2d {z3.d, z4.d}, p4, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  a422d414		ld2b {z20.b, z21.b}, p5/z, [x0, x2]
+0x~~~~~~~~~~~~~~~~  a4a2f815		ld2h {z21.h, z22.h}, p6/z, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  a522f816		ld2w {z22.s, z23.s}, p6/z, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  a5a2f417		ld2d {z23.d, z24.d}, p5/z, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e451f004		st3b {z4.b, z5.b, z6.b}, p4, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e4d1f005		st3h {z5.h, z6.h, z7.h}, p4, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e551ec06		st3w {z6.s, z7.s, z8.s}, p3, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e5c27007		st3d {z7.d, z8.d, z9.d}, p4, [x0, x2, lsl #3]
+0x~~~~~~~~~~~~~~~~  a441f418		ld3b {z24.b, z25.b, z26.b}, p5/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a4c2d819		ld3h {z25.h, z26.h, z27.h}, p6/z, [x0, x2, lsl #1]
+0x~~~~~~~~~~~~~~~~  a541f81a		ld3w {z26.s, z27.s, z28.s}, p6/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  a5c1f41b		ld3d {z27.d, z28.d, z29.d}, p5/z, [x0, #3, mul vl]
+0x~~~~~~~~~~~~~~~~  e471f01f		st4b {z31.b, z0.b, z1.b, z2.b}, p4, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e4f1f000		st4h {z0.h, z1.h, z2.h, z3.h}, p4, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e571ec01		st4w {z1.s, z2.s, z3.s, z4.s}, p3, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  e5e27002		st4d {z2.d, z3.d, z4.d, z5.d}, p4, [x0, x2, lsl #3]
+0x~~~~~~~~~~~~~~~~  a461f419		ld4b {z25.b, z26.b, z27.b, z28.b}, p5/z, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  a4e1f81a		ld4h {z26.h, z27.h, z28.h, z29.h}, p6/z, [x0, #4, mul vl]
+0x~~~~~~~~~~~~~~~~  a562d81b		ld4w {z27.s, z28.s, z29.s, z30.s}, p6/z, [x0, x2, lsl #2]
+0x~~~~~~~~~~~~~~~~  a5e1f41c		ld4d {z28.d, z29.d, z30.d, z31.d}, p5/z, [x0, #4, mul vl]
 0x~~~~~~~~~~~~~~~~  d65f03c0		ret
diff --git a/test/test-trace-reference/log-regs b/test/test-trace-reference/log-regs
index ed0d0c4..0894e3d 100644
--- a/test/test-trace-reference/log-regs
+++ b/test/test-trace-reference/log-regs
@@ -1,740 +1,794 @@
-#    x0: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0300003000300303
-#    x4: 0x0400004000400404
-#    x5: 0x0500005000500505
-#    x6: 0x0600006000600606
-#    x7: 0x0700007000700707
-#    x8: 0x0800008000800808
-#    x9: 0x0900009000900909
-#   x10: 0x0a0000a000a00a0a
-#   x11: 0x0b0000b000b00b0b
-#   x12: 0x0c0000c000c00c0c
-#   x13: 0x0d0000d000d00d0d
-#   x14: 0x0e0000e000e00e0e
-#   x15: 0x0f0000f000f00f0f
-#   x16: 0x1000010001001010
-#   x17: 0x1100011001101111
-#   x18: 0x1200012001201212
-#   x19: 0x1300013001301313
-#   x20: 0x1400014001401414
-#   x21: 0x1500015001501515
-#   x22: 0x1600016001601616
-#   x23: 0x1700017001701717
-#   x24: 0x1800018001801818
-#   x25: 0x1900019001901919
-#   x26: 0x1a0001a001a01a1a
-#   x27: 0x1b0001b001b01b1b
-#   x28: 0x1c0001c001c01c1c
-#   x29: 0x1d0001d001d01d1d
-#    lr: 0x0000000000000000
-#    sp: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000900909
-#    x6: 0x0f0000f000f00f0f
-#    x9: 0x0000000001501515
-#   x12: 0x1b0001b001b01b1b
-#   x15: 0x0000000002102121
-#   x18: 0x2700027002702727
-#   x21: 0x0000000002d02d2d
-#   x24: 0x3300033003303333
-#   x27: 0x0000000001c01c1c
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000700707
-#    x8: 0x0000000000000000
-#   x11: 0x0000000001b01b1b
-#   x13: 0x0700007000700707
-#   x15: 0x0000000000000080
-#   x18: 0x0000013000130013
-#   x21: 0x0000000002d02d2c
-#   x23: 0x1700017001701716
-#   x25: 0x0000000000200202
-#   x28: 0x1d0001d001d01d1d
-#    x3: 0x0000000000000000
-#    x6: 0x0700007000700707
-#   x17: 0x0000000000130014
-#   x17: 0x0000000000130013
-#   x19: 0x1400014001401414
-#   x19: 0x1400014001401415
-#   x21: 0x0000000001601616
-#   x21: 0x00000000fe9fe9e9
-#   x23: 0xccfffccffccfcccc
-#   x23: 0x3300033003303333
-#   x25: 0x0000000000000006
-#   x27: 0x0000000000000002
-#   x29: 0x0000000000000020
-#    x3: 0x0000000000000005
-#   x13: 0x0000000000e00e0e
-#   x13: 0x00000000ff1ff1f2
-#   x15: 0x1000010001001010
-#   x15: 0xeffffefffeffeff0
-#   x17: 0x00000000e963b635
-#   x20: 0x00000000ad83ccb8
-#   x23: 0x000000003ed5525d
-#   x26: 0x00000000bc365145
-#    x4: 0x0000000000000070
-#    x7: 0x00000000b096abf4
-#   x13: 0x0000000000e00e0e
-#   x13: 0x00000000feffeff0
-#   x16: 0x0000013000130013
-#   x16: 0x00000000e963b635
-#   x19: 0x0000000000000000
-#   x19: 0x0000000000000001
-#   x20: 0x0000000000000001
-#   x20: 0x0000000000000000
-#   x21: 0x0000000000000000
-#   x21: 0x00000000ffffffff
-#   x22: 0x0000000000000000
-#   x22: 0xffffffffffffffff
-#   x23: 0x0000000003303333
-#   x23: 0x0000000000000007
-#   x26: 0x1d0001d001d01d1e
-#   x26: 0x0000000000000002
-#   x29: 0x00000000fffffffa
-#   x29: 0x0000000000000000
-#    x4: 0x0000000000700707
-#    x4: 0xf8ffff8fff8ff8f8
-#    x7: 0x00000000feafeaeb
-#    x7: 0x0000000000000000
-#   x10: 0xe4fffe4ffe4fe4e5
-#   x10: 0x0000000001b01b1b
-#   x13: 0x0000000001e01e01
-#   x16: 0xfffffecf168f49d9
-#   x19: 0x00000000ffffffff
-#   x22: 0x3300033003303334
-#   x25: 0x0000000001000000
-#   x28: 0x0000000000000000
-#    x3: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x13: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x15: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   x16: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   x17: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x18: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000013121110 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000017161514 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000033323130 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000037363534 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000047464544 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x29: 0x000000004b4a4948 <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000058 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x000000000000005c <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000005d5c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000006564 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000064 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000068 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000006968 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000007170 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0000000073727170 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x11: 0x000000007b7a7978 <- 0x~~~~~~~~~~~~~~~~
-#   x12: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
-#   x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
-#   x14: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x15: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x16: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x17: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x18: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x22: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000019590
-#    x7: 0x0000000000000340
-#    x9: 0x0000000070000000
-#   x12: 0x2c2a28262422201e
-#   x15: 0x0000000000000040
-#   x17: 0x0000000000000000
-#   x19: 0x0000000000000080
-#   x22: 0x0000000000302010
-#   x25: 0x00000000371b0900
-#   x29: 0x0000000000000100
-#    x5: 0x00000000feb67b00
-#    x8: 0xffffce5f00000000
-#   x11: 0x000000002422201e
-#   x13: 0x0000000000000001
-#   x15: 0x0000000000000082
-#   x16: 0x0000000000000083
-#   x17: 0x00000000ffffff7b
-#   x18: 0xffffffffffffff7a
-#   x19: 0x0000000000000086
-#   x20: 0x0000000000000087
-#   x22: 0x000000001b0e0500
-#   x26: 0xe3e9eff5fbff0100
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000001498500
-#    x8: 0x000000008fffffff
-#   x10: 0xffffffffdbdddfe1
-#   x12: 0x00000000ffffffff
-#   x14: 0xffffffffffffff7e
-#   x16: 0x0000000000000085
-#   x18: 0xffffffffffffff7a
-#   x20: 0x00000000fffffbfc
-#   x22: 0xfffffffffcfdfeff
-#   x24: 0x00000000c8e4f6ff
-#   x26: 0xfffffffffcfdfeff
-#   x28: 0x00000000fffeffff
-#    x3: 0xfffffffffeb67bff
-#    x6: 0x000000008fffffff
-#    x9: 0xffffffffffffffff
-#   x12: 0x0000000080000000
-#   x14: 0x4100000000000000
-#   x16: 0x000000007bffffff
-#   x18: 0x8600000000000000
-#   x20: 0x0000000000000304
-#   x22: 0x0000000002030001
-#   x24: 0x0000000000091b37
-#   x26: 0x0000000006040200
-#   x29: 0x0000000000020000
-#    x4: 0x0000000071498500
-#    x7: 0x000000008fffffff
-#   x10: 0x00000000a422201d
-#   x13: 0x40ffffffffffff7d
-#   x16: 0x000000000000000c
-#   x18: 0x0000000000000060
-#   x22: 0x0000000000000004
-#   x24: 0xffffffffffffff09
-#   x26: 0x00000000fffffcff
-#   x29: 0x0000000000000000
-#   x12: 0x1080ffffffffffde
-#   x24: 0x0000000000000001
-#   x27: 0x0000000000000001
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000001
-#    x6: 0x0000000000000001
-#    x8: 0x0000000000000001
-#   x10: 0x0000000000000001
-#   x12: 0x0000000000000001
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000001
-#    x9: 0x0000000000000001
-#   x12: 0x0000000000000001
-#   x14: 0x0000000000000001
-#   x16: 0x0000000000000001
-#   x18: 0x0000000000000001
-#   x20: 0x0000000000000001
-#   x22: 0x0000000000000001
-#   x24: 0x00000000371b0c01
-#   x27: 0x00000000fffeffff
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x5: 0xffffffff70000002
-#    x8: 0x0000000000000001
-#   x10: 0x000000000000001e
-#   x12: 0x00000000ffffff7d
-#   x14: 0x0000000000000082
-#   x16: 0x00000000ffffff7b
-#   x18: 0x0000000000000086
-#   x24: 0x0000000000040000
-#   x26: 0x0000000001fff000
-#   x28: 0x0000000000000000
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000000
-#    x6: 0x000000000000003f
-#    x8: 0x0000000000000000
-#   x11: 0x0000000000000000
-#   x22: 0x0000000000000000
-#   x28: 0x0000000000000000
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000002
-#    x6: 0x000000000000ffff
-#    x8: 0x0000000000000001
-#   x10: 0x0000000000000000
-#    x3: 0x0000000000000000
-#   x18: 0x0000000000000000
-#   x29: 0x0000000000000000
-#    x9: 0x0000000000000000
-#    lr: 0x0000000000000000
-#   x16: 0x0000000000000000
-#   x18: 0x0000000000000000
-#   x26: 0x0000000000000009
-#   x25: 0x0000000000000000
-#    x9: 0x0000000000000009
-#   x19: 0x0000000000000007
-#    x6: 0x0000000000000008
-#   x22: 0x0000000000000008
-#   x29: 0x0000000000000000
-#   x26: 0x0000000000000000
-#   x13: 0x0000000000000000
-#    x5: 0x0000000000000000
-#   x21: 0x0000000000000014
-#   x18: 0x0000000000000000
-#    x8: 0x0000000000000000
-#   x17: 0x0000000000000000
-#   x29: 0x0000000000000000
-#   x25: 0x0000000000000000
-#    lr: 0x0000000000000000
-#   x27: 0x0000000000000000
-#   x15: 0x0000000000000001
-#   x16: 0x0000000000000009
-#   x13: 0x000000000000001b
-#    x3: 0x000000000000001d
-#   x26: 0x0000000000000001
-#   x27: 0x0000000000000001
-#   x29: 0x0000000000000001
-#    x6: 0x000000000000000c
-#   x25: 0x0000000000000000
-#    x9: 0x0000000000000000
-#   x17: 0x0000000000000000
-#   x19: 0x0000000000000000
-#   x22: 0x0000000000000000
-#   x14: 0x0000000000000018
-#    x3: 0x0000000000000000
-#   x11: 0x0000000000000000
-#    x7: 0x0000000000000000
-#   x18: 0x0000000000000000
-#   x14: 0x0000000000000000
-#   x22: 0x0000000000000000
-#    x8: 0x0000000000000000
-#    x7: 0x0000000000000018
-#   x22: 0x00008a4396000000
-#   x18: 0x0000000000000001
-#   x18: 0x0000000000000000
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x18: 0x0000000000000000
-#   x28: 0xe3e2e3e2e3e2e3e2
-#   x21: 0x0000000000000000
-#   x13: 0x0000000000000000
-#   x24: 0x0000000000000000
-#    x7: 0x00000000000003c9
-#   x29: 0x0000000000000000
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    lr: 0x0000000000000000
-#   x18: 0x0000000000000000
+#             x0: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             x3: 0x0300003000300303
+#             x4: 0x0400004000400404
+#             x5: 0x0500005000500505
+#             x6: 0x0600006000600606
+#             x7: 0x0700007000700707
+#             x8: 0x0800008000800808
+#             x9: 0x0900009000900909
+#            x10: 0x0a0000a000a00a0a
+#            x11: 0x0b0000b000b00b0b
+#            x12: 0x0c0000c000c00c0c
+#            x13: 0x0d0000d000d00d0d
+#            x14: 0x0e0000e000e00e0e
+#            x15: 0x0f0000f000f00f0f
+#            x16: 0x1000010001001010
+#            x17: 0x1100011001101111
+#            x18: 0x1200012001201212
+#            x19: 0x1300013001301313
+#            x20: 0x1400014001401414
+#            x21: 0x1500015001501515
+#            x22: 0x1600016001601616
+#            x23: 0x1700017001701717
+#            x24: 0x1800018001801818
+#            x25: 0x1900019001901919
+#            x26: 0x1a0001a001a01a1a
+#            x27: 0x1b0001b001b01b1b
+#            x28: 0x1c0001c001c01c1c
+#            x29: 0x1d0001d001d01d1d
+#             lr: 0x0000000000000000
+#             sp: 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00900909
+#             x6: 0x0f0000f000f00f0f
+#             w9:         0x01501515
+#            x12: 0x1b0001b001b01b1b
+#            w15:         0x02102121
+#            x18: 0x2700027002702727
+#            w21:         0x02d02d2d
+#            x24: 0x3300033003303333
+#            w27:         0x01c01c1c
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00700707
+#             x8: 0x0000000000000000
+#            w11:         0x01b01b1b
+#            x13: 0x0700007000700707
+#            w15:         0x00000080
+#            x18: 0x0000013000130013
+#            w21:         0x02d02d2c
+#            x23: 0x1700017001701716
+#            w25:         0x00200202
+#            x28: 0x1d0001d001d01d1d
+#             w3:         0x00000000
+#             x6: 0x0700007000700707
+#            w17:         0x00130014
+#            w17:         0x00130013
+#            x19: 0x1400014001401414
+#            x19: 0x1400014001401415
+#            w21:         0x01601616
+#            w21:         0xfe9fe9e9
+#            x23: 0xccfffccffccfcccc
+#            x23: 0x3300033003303333
+#            w25:         0x00000006
+#            x27: 0x0000000000000002
+#            w29:         0x00000020
+#             x3: 0x0000000000000005
+#            w13:         0x00e00e0e
+#            w13:         0xff1ff1f2
+#            x15: 0x1000010001001010
+#            x15: 0xeffffefffeffeff0
+#            w17:         0xe963b635
+#            w20:         0xad83ccb8
+#            w23:         0x3ed5525d
+#            w26:         0xbc365145
+#             w4:         0x00000070
+#             w7:         0xb096abf4
+#            w13:         0x00e00e0e
+#            w13:         0xfeffeff0
+#            x16: 0x0000013000130013
+#            x16: 0x00000000e963b635
+#            w19:         0x00000000
+#            w19:         0x00000001
+#            x20: 0x0000000000000001
+#            x20: 0x0000000000000000
+#            w21:         0x00000000
+#            w21:         0xffffffff
+#            x22: 0x0000000000000000
+#            x22: 0xffffffffffffffff
+#            w23:         0x03303333
+#            w23:         0x00000007
+#            x26: 0x1d0001d001d01d1e
+#            x26: 0x0000000000000002
+#            w29:         0xfffffffa
+#            w29:         0x00000000
+#             x4: 0x0000000000700707
+#             x4: 0xf8ffff8fff8ff8f8
+#             w7:         0xfeafeaeb
+#             w7:         0x00000000
+#            x10: 0xe4fffe4ffe4fe4e5
+#            x10: 0x0000000001b01b1b
+#            w13:         0x01e01e01
+#            x16: 0xfffffecf168f49d9
+#            w19:         0xffffffff
+#            x22: 0x3300033003303334
+#            w25:         0x01000000
+#            x28: 0x0000000000000000
+#             w3:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#             x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w8:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w10:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w13:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            w19:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w23:         0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x17161514 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000007060504
+#                                  ╙─ 0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000033323130
+#                                  ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000037363534
+#                                  ╙─ 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000043424140
+#                                  ╙─ 0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000047464544
+#                                  ╙─ 0x47464544 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w29:         0x4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000058
+#                                  ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w3:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005c
+#                                  ╙─ 0x5c <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00005d5c
+#                                  ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006564
+#                                  ╙─ 0x6564 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000064
+#                                  ╙─ 0x64 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000068
+#                                  ╙─ 0x68 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006968
+#                                  ╙─ 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000007170
+#                                  ╙─ 0x7170 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000073727170
+#                                  ╙─ 0x73727170 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x11: 0x000000007b7a7978
+#                                  ╙─ 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            w12:         0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#            x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
+#            w14:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            x19: 0x0000000000000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0000000000000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x000000000a090807
+#                                  ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w27:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w2:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00019590
+#             x7: 0x0000000000000340
+#             w9:         0x70000000
+#            x12: 0x2c2a28262422201e
+#            w15:         0x00000040
+#            x17: 0x0000000000000000
+#            w19:         0x00000080
+#            x22: 0x0000000000302010
+#            w25:         0x371b0900
+#            x29: 0x0000000000000100
+#             w5:         0xfeb67b00
+#             x8: 0xffffce5f00000000
+#            w11:         0x2422201e
+#            x13: 0x0000000000000001
+#            x15: 0x0000000000000082
+#            x16: 0x0000000000000083
+#            x17: 0x00000000ffffff7b
+#            x18: 0xffffffffffffff7a
+#            x19: 0x0000000000000086
+#            x20: 0x0000000000000087
+#            w22:         0x1b0e0500
+#            x26: 0xe3e9eff5fbff0100
+#             w2:         0x00010000
+#             x5: 0x0000000001498500
+#             w8:         0x8fffffff
+#            x10: 0xffffffffdbdddfe1
+#            w12:         0xffffffff
+#            x14: 0xffffffffffffff7e
+#            w16:         0x00000085
+#            x18: 0xffffffffffffff7a
+#            w20:         0xfffffbfc
+#            x22: 0xfffffffffcfdfeff
+#            w24:         0xc8e4f6ff
+#            x26: 0xfffffffffcfdfeff
+#            w28:         0xfffeffff
+#             x3: 0xfffffffffeb67bff
+#             w6:         0x8fffffff
+#             x9: 0xffffffffffffffff
+#            w12:         0x80000000
+#            x14: 0x4100000000000000
+#            w16:         0x7bffffff
+#            x18: 0x8600000000000000
+#            w20:         0x00000304
+#            x22: 0x0000000002030001
+#            x24: 0x0000000000091b37
+#            w26:         0x06040200
+#            x29: 0x0000000000020000
+#             w4:         0x71498500
+#             x7: 0x000000008fffffff
+#            w10:         0xa422201d
+#            x13: 0x40ffffffffffff7d
+#            w16:         0x0000000c
+#            x18: 0x0000000000000060
+#            w22:         0x00000004
+#            x24: 0xffffffffffffff09
+#            w26:         0xfffffcff
+#            x29: 0x0000000000000000
+#            x12: 0x1080ffffffffffde
+#            w24:         0x00000001
+#            w27:         0x00000001
+#             w2:         0x00000001
+#             w4:         0x00000001
+#             w6:         0x00000001
+#             w8:         0x00000001
+#            w10:         0x00000001
+#            w12:         0x00000001
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000001
+#             w9:         0x00000001
+#            w12:         0x00000001
+#            w14:         0x00000001
+#            w16:         0x00000001
+#            w18:         0x00000001
+#            w20:         0x00000001
+#            w22:         0x00000001
+#            w24:         0x371b0c01
+#            x27: 0x00000000fffeffff
+#             w2:         0xfeb67bfe
+#             x5: 0xffffffff70000002
+#             w8:         0x00000001
+#            x10: 0x000000000000001e
+#            w12:         0xffffff7d
+#            x14: 0x0000000000000082
+#            w16:         0xffffff7b
+#            x18: 0x0000000000000086
+#            w24:         0x00040000
+#            x26: 0x0000000001fff000
+#            w28:         0x00000000
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000000
+#             x6: 0x000000000000003f
+#             w8:         0x00000000
+#            x11: 0x0000000000000000
+#            x22: 0x0000000000000000
+#            w28:         0x00000000
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000002
+#             x6: 0x000000000000ffff
+#             w8:         0x00000001
+#            x10: 0x0000000000000000
+#             x3: 0x0000000000000000
+#            w18:         0x00000000
+#            w29:         0x00000000
+#             x9: 0x0000000000000000
+#             lr: 0x0000000000000000
+#            w16:         0x00000000
+#            w18:         0x00000000
+#            x26: 0xffffffffffffffff
+#            x25: 0x0000000000000000
+#             w9:         0x7fffffff
+#            w19:         0xffffffff
+#             x6: 0x7fffffffffffffff
+#            x22: 0xffffffffffffffff
+#            w29:         0x00000000
+#            w26:         0x00000000
+#            x13: 0x0000000000000000
+#             x5: 0x0000000000000000
+#            w21:         0x7fffffff
+#            w18:         0x00000000
+#             x8: 0x0000000000000000
+#            x17: 0x0000000000000000
+#            w29:         0x00000000
+#            w25:         0x00000000
+#             lr: 0x0000000000000000
+#            x27: 0x0000000000000000
+#            w15:         0x00000001
+#            w16:         0x00000000
+#            x13: 0x7fffffffffffffff
+#             x3: 0x0000000000000000
+#            w26:         0x00000000
+#            x27: 0x0000000000000000
+#            x29: 0x0000000000000001
+#             w6:         0x7fffffff
+#            w25:         0x00000000
+#             w9:         0x00000000
+#            w17:         0x00000000
+#            x19: 0x0000000000000000
+#            x22: 0x0000000000000000
+#            x14: 0x0000000000000000
+#             x3: 0x0000000000000000
+#            w11:         0x00000000
+#             w7:         0x00000000
+#            w18:         0x00000000
+#            w14:         0x00000000
+#            x22: 0x0000000000000000
+#             x8: 0x0000000000000000
+#             x7: 0x0000000000000000
+#            x22: 0x0000000000000000
+#            w18:         0x00000001
+#            x18: 0x0000000000000000
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x18: 0x0000000000000000
+#            x28: 0xe3e2e3e2e3e2e3e2
+#            w21:         0x00000000
+#            w13:         0x00000000
+#            x24: 0x0000000000000000
+#             x7: 0x00000000000003c9
+#            x29: 0x0000000000000000
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             lr: 0x0000000000000000
+#            x18: 0x0000000000000000
diff --git a/test/test-trace-reference/log-regs-colour b/test/test-trace-reference/log-regs-colour
index d989326..0df9f2e 100644
--- a/test/test-trace-reference/log-regs-colour
+++ b/test/test-trace-reference/log-regs-colour
@@ -1,740 +1,794 @@
-#    x0: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0300003000300303
-#    x4: 0x0400004000400404
-#    x5: 0x0500005000500505
-#    x6: 0x0600006000600606
-#    x7: 0x0700007000700707
-#    x8: 0x0800008000800808
-#    x9: 0x0900009000900909
-#   x10: 0x0a0000a000a00a0a
-#   x11: 0x0b0000b000b00b0b
-#   x12: 0x0c0000c000c00c0c
-#   x13: 0x0d0000d000d00d0d
-#   x14: 0x0e0000e000e00e0e
-#   x15: 0x0f0000f000f00f0f
-#   x16: 0x1000010001001010
-#   x17: 0x1100011001101111
-#   x18: 0x1200012001201212
-#   x19: 0x1300013001301313
-#   x20: 0x1400014001401414
-#   x21: 0x1500015001501515
-#   x22: 0x1600016001601616
-#   x23: 0x1700017001701717
-#   x24: 0x1800018001801818
-#   x25: 0x1900019001901919
-#   x26: 0x1a0001a001a01a1a
-#   x27: 0x1b0001b001b01b1b
-#   x28: 0x1c0001c001c01c1c
-#   x29: 0x1d0001d001d01d1d
-#    lr: 0x0000000000000000
-#    sp: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000900909
-#    x6: 0x0f0000f000f00f0f
-#    x9: 0x0000000001501515
-#   x12: 0x1b0001b001b01b1b
-#   x15: 0x0000000002102121
-#   x18: 0x2700027002702727
-#   x21: 0x0000000002d02d2d
-#   x24: 0x3300033003303333
-#   x27: 0x0000000001c01c1c
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000700707
-#    x8: 0x0000000000000000
-#   x11: 0x0000000001b01b1b
-#   x13: 0x0700007000700707
-#   x15: 0x0000000000000080
-#   x18: 0x0000013000130013
-#   x21: 0x0000000002d02d2c
-#   x23: 0x1700017001701716
-#   x25: 0x0000000000200202
-#   x28: 0x1d0001d001d01d1d
-#    x3: 0x0000000000000000
-#    x6: 0x0700007000700707
-#   x17: 0x0000000000130014
-#   x17: 0x0000000000130013
-#   x19: 0x1400014001401414
-#   x19: 0x1400014001401415
-#   x21: 0x0000000001601616
-#   x21: 0x00000000fe9fe9e9
-#   x23: 0xccfffccffccfcccc
-#   x23: 0x3300033003303333
-#   x25: 0x0000000000000006
-#   x27: 0x0000000000000002
-#   x29: 0x0000000000000020
-#    x3: 0x0000000000000005
-#   x13: 0x0000000000e00e0e
-#   x13: 0x00000000ff1ff1f2
-#   x15: 0x1000010001001010
-#   x15: 0xeffffefffeffeff0
-#   x17: 0x00000000e963b635
-#   x20: 0x00000000ad83ccb8
-#   x23: 0x000000003ed5525d
-#   x26: 0x00000000bc365145
-#    x4: 0x0000000000000070
-#    x7: 0x00000000b096abf4
-#   x13: 0x0000000000e00e0e
-#   x13: 0x00000000feffeff0
-#   x16: 0x0000013000130013
-#   x16: 0x00000000e963b635
-#   x19: 0x0000000000000000
-#   x19: 0x0000000000000001
-#   x20: 0x0000000000000001
-#   x20: 0x0000000000000000
-#   x21: 0x0000000000000000
-#   x21: 0x00000000ffffffff
-#   x22: 0x0000000000000000
-#   x22: 0xffffffffffffffff
-#   x23: 0x0000000003303333
-#   x23: 0x0000000000000007
-#   x26: 0x1d0001d001d01d1e
-#   x26: 0x0000000000000002
-#   x29: 0x00000000fffffffa
-#   x29: 0x0000000000000000
-#    x4: 0x0000000000700707
-#    x4: 0xf8ffff8fff8ff8f8
-#    x7: 0x00000000feafeaeb
-#    x7: 0x0000000000000000
-#   x10: 0xe4fffe4ffe4fe4e5
-#   x10: 0x0000000001b01b1b
-#   x13: 0x0000000001e01e01
-#   x16: 0xfffffecf168f49d9
-#   x19: 0x00000000ffffffff
-#   x22: 0x3300033003303334
-#   x25: 0x0000000001000000
-#   x28: 0x0000000000000000
-#    x3: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x13: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x15: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   x16: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   x17: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x18: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000013121110 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000017161514 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000033323130 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000037363534 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000047464544 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x29: 0x000000004b4a4948 <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000058 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x000000000000005c <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000005d5c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000006564 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000064 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000068 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000006968 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000007170 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0000000073727170 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x11: 0x000000007b7a7978 <- 0x~~~~~~~~~~~~~~~~
-#   x12: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
-#   x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
-#   x14: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x15: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x16: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x17: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x18: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x22: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000019590
-#    x7: 0x0000000000000340
-#    x9: 0x0000000070000000
-#   x12: 0x2c2a28262422201e
-#   x15: 0x0000000000000040
-#   x17: 0x0000000000000000
-#   x19: 0x0000000000000080
-#   x22: 0x0000000000302010
-#   x25: 0x00000000371b0900
-#   x29: 0x0000000000000100
-#    x5: 0x00000000feb67b00
-#    x8: 0xffffce5f00000000
-#   x11: 0x000000002422201e
-#   x13: 0x0000000000000001
-#   x15: 0x0000000000000082
-#   x16: 0x0000000000000083
-#   x17: 0x00000000ffffff7b
-#   x18: 0xffffffffffffff7a
-#   x19: 0x0000000000000086
-#   x20: 0x0000000000000087
-#   x22: 0x000000001b0e0500
-#   x26: 0xe3e9eff5fbff0100
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000001498500
-#    x8: 0x000000008fffffff
-#   x10: 0xffffffffdbdddfe1
-#   x12: 0x00000000ffffffff
-#   x14: 0xffffffffffffff7e
-#   x16: 0x0000000000000085
-#   x18: 0xffffffffffffff7a
-#   x20: 0x00000000fffffbfc
-#   x22: 0xfffffffffcfdfeff
-#   x24: 0x00000000c8e4f6ff
-#   x26: 0xfffffffffcfdfeff
-#   x28: 0x00000000fffeffff
-#    x3: 0xfffffffffeb67bff
-#    x6: 0x000000008fffffff
-#    x9: 0xffffffffffffffff
-#   x12: 0x0000000080000000
-#   x14: 0x4100000000000000
-#   x16: 0x000000007bffffff
-#   x18: 0x8600000000000000
-#   x20: 0x0000000000000304
-#   x22: 0x0000000002030001
-#   x24: 0x0000000000091b37
-#   x26: 0x0000000006040200
-#   x29: 0x0000000000020000
-#    x4: 0x0000000071498500
-#    x7: 0x000000008fffffff
-#   x10: 0x00000000a422201d
-#   x13: 0x40ffffffffffff7d
-#   x16: 0x000000000000000c
-#   x18: 0x0000000000000060
-#   x22: 0x0000000000000004
-#   x24: 0xffffffffffffff09
-#   x26: 0x00000000fffffcff
-#   x29: 0x0000000000000000
-#   x12: 0x1080ffffffffffde
-#   x24: 0x0000000000000001
-#   x27: 0x0000000000000001
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000001
-#    x6: 0x0000000000000001
-#    x8: 0x0000000000000001
-#   x10: 0x0000000000000001
-#   x12: 0x0000000000000001
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000001
-#    x9: 0x0000000000000001
-#   x12: 0x0000000000000001
-#   x14: 0x0000000000000001
-#   x16: 0x0000000000000001
-#   x18: 0x0000000000000001
-#   x20: 0x0000000000000001
-#   x22: 0x0000000000000001
-#   x24: 0x00000000371b0c01
-#   x27: 0x00000000fffeffff
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x5: 0xffffffff70000002
-#    x8: 0x0000000000000001
-#   x10: 0x000000000000001e
-#   x12: 0x00000000ffffff7d
-#   x14: 0x0000000000000082
-#   x16: 0x00000000ffffff7b
-#   x18: 0x0000000000000086
-#   x24: 0x0000000000040000
-#   x26: 0x0000000001fff000
-#   x28: 0x0000000000000000
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000000
-#    x6: 0x000000000000003f
-#    x8: 0x0000000000000000
-#   x11: 0x0000000000000000
-#   x22: 0x0000000000000000
-#   x28: 0x0000000000000000
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000002
-#    x6: 0x000000000000ffff
-#    x8: 0x0000000000000001
-#   x10: 0x0000000000000000
-#    x3: 0x0000000000000000
-#   x18: 0x0000000000000000
-#   x29: 0x0000000000000000
-#    x9: 0x0000000000000000
-#    lr: 0x0000000000000000
-#   x16: 0x0000000000000000
-#   x18: 0x0000000000000000
-#   x26: 0x0000000000000009
-#   x25: 0x0000000000000000
-#    x9: 0x0000000000000009
-#   x19: 0x0000000000000007
-#    x6: 0x0000000000000008
-#   x22: 0x0000000000000008
-#   x29: 0x0000000000000000
-#   x26: 0x0000000000000000
-#   x13: 0x0000000000000000
-#    x5: 0x0000000000000000
-#   x21: 0x0000000000000014
-#   x18: 0x0000000000000000
-#    x8: 0x0000000000000000
-#   x17: 0x0000000000000000
-#   x29: 0x0000000000000000
-#   x25: 0x0000000000000000
-#    lr: 0x0000000000000000
-#   x27: 0x0000000000000000
-#   x15: 0x0000000000000001
-#   x16: 0x0000000000000009
-#   x13: 0x000000000000001b
-#    x3: 0x000000000000001d
-#   x26: 0x0000000000000001
-#   x27: 0x0000000000000001
-#   x29: 0x0000000000000001
-#    x6: 0x000000000000000c
-#   x25: 0x0000000000000000
-#    x9: 0x0000000000000000
-#   x17: 0x0000000000000000
-#   x19: 0x0000000000000000
-#   x22: 0x0000000000000000
-#   x14: 0x0000000000000018
-#    x3: 0x0000000000000000
-#   x11: 0x0000000000000000
-#    x7: 0x0000000000000000
-#   x18: 0x0000000000000000
-#   x14: 0x0000000000000000
-#   x22: 0x0000000000000000
-#    x8: 0x0000000000000000
-#    x7: 0x0000000000000018
-#   x22: 0x00008a4396000000
-#   x18: 0x0000000000000001
-#   x18: 0x0000000000000000
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x18: 0x0000000000000000
-#   x28: 0xe3e2e3e2e3e2e3e2
-#   x21: 0x0000000000000000
-#   x13: 0x0000000000000000
-#   x24: 0x0000000000000000
-#    x7: 0x00000000000003c9
-#   x29: 0x0000000000000000
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    lr: 0x0000000000000000
-#   x18: 0x0000000000000000
+#             x0: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             x3: 0x0300003000300303
+#             x4: 0x0400004000400404
+#             x5: 0x0500005000500505
+#             x6: 0x0600006000600606
+#             x7: 0x0700007000700707
+#             x8: 0x0800008000800808
+#             x9: 0x0900009000900909
+#            x10: 0x0a0000a000a00a0a
+#            x11: 0x0b0000b000b00b0b
+#            x12: 0x0c0000c000c00c0c
+#            x13: 0x0d0000d000d00d0d
+#            x14: 0x0e0000e000e00e0e
+#            x15: 0x0f0000f000f00f0f
+#            x16: 0x1000010001001010
+#            x17: 0x1100011001101111
+#            x18: 0x1200012001201212
+#            x19: 0x1300013001301313
+#            x20: 0x1400014001401414
+#            x21: 0x1500015001501515
+#            x22: 0x1600016001601616
+#            x23: 0x1700017001701717
+#            x24: 0x1800018001801818
+#            x25: 0x1900019001901919
+#            x26: 0x1a0001a001a01a1a
+#            x27: 0x1b0001b001b01b1b
+#            x28: 0x1c0001c001c01c1c
+#            x29: 0x1d0001d001d01d1d
+#             lr: 0x0000000000000000
+#             sp: 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00900909
+#             x6: 0x0f0000f000f00f0f
+#             w9:         0x01501515
+#            x12: 0x1b0001b001b01b1b
+#            w15:         0x02102121
+#            x18: 0x2700027002702727
+#            w21:         0x02d02d2d
+#            x24: 0x3300033003303333
+#            w27:         0x01c01c1c
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00700707
+#             x8: 0x0000000000000000
+#            w11:         0x01b01b1b
+#            x13: 0x0700007000700707
+#            w15:         0x00000080
+#            x18: 0x0000013000130013
+#            w21:         0x02d02d2c
+#            x23: 0x1700017001701716
+#            w25:         0x00200202
+#            x28: 0x1d0001d001d01d1d
+#             w3:         0x00000000
+#             x6: 0x0700007000700707
+#            w17:         0x00130014
+#            w17:         0x00130013
+#            x19: 0x1400014001401414
+#            x19: 0x1400014001401415
+#            w21:         0x01601616
+#            w21:         0xfe9fe9e9
+#            x23: 0xccfffccffccfcccc
+#            x23: 0x3300033003303333
+#            w25:         0x00000006
+#            x27: 0x0000000000000002
+#            w29:         0x00000020
+#             x3: 0x0000000000000005
+#            w13:         0x00e00e0e
+#            w13:         0xff1ff1f2
+#            x15: 0x1000010001001010
+#            x15: 0xeffffefffeffeff0
+#            w17:         0xe963b635
+#            w20:         0xad83ccb8
+#            w23:         0x3ed5525d
+#            w26:         0xbc365145
+#             w4:         0x00000070
+#             w7:         0xb096abf4
+#            w13:         0x00e00e0e
+#            w13:         0xfeffeff0
+#            x16: 0x0000013000130013
+#            x16: 0x00000000e963b635
+#            w19:         0x00000000
+#            w19:         0x00000001
+#            x20: 0x0000000000000001
+#            x20: 0x0000000000000000
+#            w21:         0x00000000
+#            w21:         0xffffffff
+#            x22: 0x0000000000000000
+#            x22: 0xffffffffffffffff
+#            w23:         0x03303333
+#            w23:         0x00000007
+#            x26: 0x1d0001d001d01d1e
+#            x26: 0x0000000000000002
+#            w29:         0xfffffffa
+#            w29:         0x00000000
+#             x4: 0x0000000000700707
+#             x4: 0xf8ffff8fff8ff8f8
+#             w7:         0xfeafeaeb
+#             w7:         0x00000000
+#            x10: 0xe4fffe4ffe4fe4e5
+#            x10: 0x0000000001b01b1b
+#            w13:         0x01e01e01
+#            x16: 0xfffffecf168f49d9
+#            w19:         0xffffffff
+#            x22: 0x3300033003303334
+#            w25:         0x01000000
+#            x28: 0x0000000000000000
+#             w3:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#             x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w8:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w10:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w13:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            w19:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w23:         0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x17161514 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000007060504
+#                                  ╙─ 0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000033323130
+#                                  ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000037363534
+#                                  ╙─ 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000043424140
+#                                  ╙─ 0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000047464544
+#                                  ╙─ 0x47464544 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w29:         0x4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000058
+#                                  ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w3:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005c
+#                                  ╙─ 0x5c <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00005d5c
+#                                  ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006564
+#                                  ╙─ 0x6564 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000064
+#                                  ╙─ 0x64 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000068
+#                                  ╙─ 0x68 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006968
+#                                  ╙─ 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000007170
+#                                  ╙─ 0x7170 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000073727170
+#                                  ╙─ 0x73727170 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x11: 0x000000007b7a7978
+#                                  ╙─ 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            w12:         0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#            x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
+#            w14:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            x19: 0x0000000000000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0000000000000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x000000000a090807
+#                                  ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w27:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w2:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00019590
+#             x7: 0x0000000000000340
+#             w9:         0x70000000
+#            x12: 0x2c2a28262422201e
+#            w15:         0x00000040
+#            x17: 0x0000000000000000
+#            w19:         0x00000080
+#            x22: 0x0000000000302010
+#            w25:         0x371b0900
+#            x29: 0x0000000000000100
+#             w5:         0xfeb67b00
+#             x8: 0xffffce5f00000000
+#            w11:         0x2422201e
+#            x13: 0x0000000000000001
+#            x15: 0x0000000000000082
+#            x16: 0x0000000000000083
+#            x17: 0x00000000ffffff7b
+#            x18: 0xffffffffffffff7a
+#            x19: 0x0000000000000086
+#            x20: 0x0000000000000087
+#            w22:         0x1b0e0500
+#            x26: 0xe3e9eff5fbff0100
+#             w2:         0x00010000
+#             x5: 0x0000000001498500
+#             w8:         0x8fffffff
+#            x10: 0xffffffffdbdddfe1
+#            w12:         0xffffffff
+#            x14: 0xffffffffffffff7e
+#            w16:         0x00000085
+#            x18: 0xffffffffffffff7a
+#            w20:         0xfffffbfc
+#            x22: 0xfffffffffcfdfeff
+#            w24:         0xc8e4f6ff
+#            x26: 0xfffffffffcfdfeff
+#            w28:         0xfffeffff
+#             x3: 0xfffffffffeb67bff
+#             w6:         0x8fffffff
+#             x9: 0xffffffffffffffff
+#            w12:         0x80000000
+#            x14: 0x4100000000000000
+#            w16:         0x7bffffff
+#            x18: 0x8600000000000000
+#            w20:         0x00000304
+#            x22: 0x0000000002030001
+#            x24: 0x0000000000091b37
+#            w26:         0x06040200
+#            x29: 0x0000000000020000
+#             w4:         0x71498500
+#             x7: 0x000000008fffffff
+#            w10:         0xa422201d
+#            x13: 0x40ffffffffffff7d
+#            w16:         0x0000000c
+#            x18: 0x0000000000000060
+#            w22:         0x00000004
+#            x24: 0xffffffffffffff09
+#            w26:         0xfffffcff
+#            x29: 0x0000000000000000
+#            x12: 0x1080ffffffffffde
+#            w24:         0x00000001
+#            w27:         0x00000001
+#             w2:         0x00000001
+#             w4:         0x00000001
+#             w6:         0x00000001
+#             w8:         0x00000001
+#            w10:         0x00000001
+#            w12:         0x00000001
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000001
+#             w9:         0x00000001
+#            w12:         0x00000001
+#            w14:         0x00000001
+#            w16:         0x00000001
+#            w18:         0x00000001
+#            w20:         0x00000001
+#            w22:         0x00000001
+#            w24:         0x371b0c01
+#            x27: 0x00000000fffeffff
+#             w2:         0xfeb67bfe
+#             x5: 0xffffffff70000002
+#             w8:         0x00000001
+#            x10: 0x000000000000001e
+#            w12:         0xffffff7d
+#            x14: 0x0000000000000082
+#            w16:         0xffffff7b
+#            x18: 0x0000000000000086
+#            w24:         0x00040000
+#            x26: 0x0000000001fff000
+#            w28:         0x00000000
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000000
+#             x6: 0x000000000000003f
+#             w8:         0x00000000
+#            x11: 0x0000000000000000
+#            x22: 0x0000000000000000
+#            w28:         0x00000000
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000002
+#             x6: 0x000000000000ffff
+#             w8:         0x00000001
+#            x10: 0x0000000000000000
+#             x3: 0x0000000000000000
+#            w18:         0x00000000
+#            w29:         0x00000000
+#             x9: 0x0000000000000000
+#             lr: 0x0000000000000000
+#            w16:         0x00000000
+#            w18:         0x00000000
+#            x26: 0xffffffffffffffff
+#            x25: 0x0000000000000000
+#             w9:         0x7fffffff
+#            w19:         0xffffffff
+#             x6: 0x7fffffffffffffff
+#            x22: 0xffffffffffffffff
+#            w29:         0x00000000
+#            w26:         0x00000000
+#            x13: 0x0000000000000000
+#             x5: 0x0000000000000000
+#            w21:         0x7fffffff
+#            w18:         0x00000000
+#             x8: 0x0000000000000000
+#            x17: 0x0000000000000000
+#            w29:         0x00000000
+#            w25:         0x00000000
+#             lr: 0x0000000000000000
+#            x27: 0x0000000000000000
+#            w15:         0x00000001
+#            w16:         0x00000000
+#            x13: 0x7fffffffffffffff
+#             x3: 0x0000000000000000
+#            w26:         0x00000000
+#            x27: 0x0000000000000000
+#            x29: 0x0000000000000001
+#             w6:         0x7fffffff
+#            w25:         0x00000000
+#             w9:         0x00000000
+#            w17:         0x00000000
+#            x19: 0x0000000000000000
+#            x22: 0x0000000000000000
+#            x14: 0x0000000000000000
+#             x3: 0x0000000000000000
+#            w11:         0x00000000
+#             w7:         0x00000000
+#            w18:         0x00000000
+#            w14:         0x00000000
+#            x22: 0x0000000000000000
+#             x8: 0x0000000000000000
+#             x7: 0x0000000000000000
+#            x22: 0x0000000000000000
+#            w18:         0x00000001
+#            x18: 0x0000000000000000
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x18: 0x0000000000000000
+#            x28: 0xe3e2e3e2e3e2e3e2
+#            w21:         0x00000000
+#            w13:         0x00000000
+#            x24: 0x0000000000000000
+#             x7: 0x00000000000003c9
+#            x29: 0x0000000000000000
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             lr: 0x0000000000000000
+#            x18: 0x0000000000000000
diff --git a/test/test-trace-reference/log-state b/test/test-trace-reference/log-state
index fe9bca9..8113a01 100644
--- a/test/test-trace-reference/log-state
+++ b/test/test-trace-reference/log-state
@@ -1,97 +1,310 @@
-#    x0: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0300003000300303
-#    x4: 0x0400004000400404
-#    x5: 0x0500005000500505
-#    x6: 0x0600006000600606
-#    x7: 0x0700007000700707
-#    x8: 0x0800008000800808
-#    x9: 0x0900009000900909
-#   x10: 0x0a0000a000a00a0a
-#   x11: 0x0b0000b000b00b0b
-#   x12: 0x0c0000c000c00c0c
-#   x13: 0x0d0000d000d00d0d
-#   x14: 0x0e0000e000e00e0e
-#   x15: 0x0f0000f000f00f0f
-#   x16: 0x1000010001001010
-#   x17: 0x1100011001101111
-#   x18: 0x1200012001201212
-#   x19: 0x1300013001301313
-#   x20: 0x1400014001401414
-#   x21: 0x1500015001501515
-#   x22: 0x1600016001601616
-#   x23: 0x1700017001701717
-#   x24: 0x1800018001801818
-#   x25: 0x1900019001901919
-#   x26: 0x1a0001a001a01a1a
-#   x27: 0x1b0001b001b01b1b
-#   x28: 0x1c0001c001c01c1c
-#   x29: 0x1d0001d001d01d1d
-#    lr: 0x0000000000000000
-#    sp: 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00055555005555550000000000000000
-#    v1: 0x3ff0d2c63fcb514c3ff587933f9e0419
-#    v2: 0x4000d2c6404b514c40058793401e0419
-#    v3: 0x401570fb40385373401025ae406d0626
-#    v4: 0x4010d2c640cb514c40158793409e0419
-#    v5: 0x401fbc2d4090d04a401ae97840c5851f
-#    v6: 0x402570fb40b85373402025ae40ed0626
-#    v7: 0x402783f4415f16c34022d6a1410a4396
-#    v8: 0x4020d2c6414b514c40258793411e0419
-#    v9: 0x402d6dd3416491c9402838864131c49c
-#   v10: 0x402fbc2d4110d04a402ae9784145851f
-#   v11: 0x4028cf3e410c10f7402d9a6b415945a2
-#   v12: 0x403570fb41385373403025ae416d0626
-#   v13: 0x40342b7d41d5360140317e2841806354
-#   v14: 0x403783f441df16c34032d6a1418a4396
-#   v15: 0x40317a4f41c1768240342f1a419423d7
-#   v16: 0x4030d2c641cb514c40358793419e0419
-#   v17: 0x4033b55841f2b10e4036e00d41a7e45b
-#   v18: 0x403d6dd341e491c94038388641b1c49c
-#   v19: 0x403cc5aa41eef18b403990ff41bba4de
-#   v20: 0x403fbc2d4190d04a403ae97841c5851f
-#   v21: 0x403914a7419a3034403c41f241cf6561
-#   v22: 0x4038cf3e418c10f7403d9a6b41d945a2
-#   v23: 0x403ba7b141b670b1403ef2e441e325e4
-#   v24: 0x404570fb41b85373404025ae41ed0626
-#   v25: 0x404584be41a3b3324040d1eb41f6e667
-#   v26: 0x40442b7d4255360140417e2842006354
-#   v27: 0x40477f314250062040422a6442055375
-#   v28: 0x404783f4425f16c34042d6a1420a4396
-#   v29: 0x4046d78b425a66e2404382de420f33b7
-#   v30: 0x40417a4f4241768240442f1a421423d7
-#   v31: 0x40418e02424c46ad4044db57421913f8
-#    x3: 0x0000000000900909
-#    x6: 0x0f0000f000f00f0f
+#             x0: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             x3: 0x0300003000300303
+#             x4: 0x0400004000400404
+#             x5: 0x0500005000500505
+#             x6: 0x0600006000600606
+#             x7: 0x0700007000700707
+#             x8: 0x0800008000800808
+#             x9: 0x0900009000900909
+#            x10: 0x0a0000a000a00a0a
+#            x11: 0x0b0000b000b00b0b
+#            x12: 0x0c0000c000c00c0c
+#            x13: 0x0d0000d000d00d0d
+#            x14: 0x0e0000e000e00e0e
+#            x15: 0x0f0000f000f00f0f
+#            x16: 0x1000010001001010
+#            x17: 0x1100011001101111
+#            x18: 0x1200012001201212
+#            x19: 0x1300013001301313
+#            x20: 0x1400014001401414
+#            x21: 0x1500015001501515
+#            x22: 0x1600016001601616
+#            x23: 0x1700017001701717
+#            x24: 0x1800018001801818
+#            x25: 0x1900019001901919
+#            x26: 0x1a0001a001a01a1a
+#            x27: 0x1b0001b001b01b1b
+#            x28: 0x1c0001c001c01c1c
+#            x29: 0x1d0001d001d01d1d
+#             lr: 0x0000000000000000
+#             sp: 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x47e000017f03380147e000007f023800
+#    z0<255:128>: 0x47e000037f03380347e000027f023802
+#    z0<383:256>: 0x47e000057f07380547e000047f063804
+#    z0<511:384>: 0x47e000077f07380747e000067f063806
+#    z0<639:512>: 0x47e000097f0b380947e000087f0a3808
+#      z1<127:0>: 0x47f000017f833c0147f000007f823c00
+#    z1<255:128>: 0x47f000037f833c0347f000027f823c02
+#    z1<383:256>: 0x47f000057f873c0547f000047f863c04
+#    z1<511:384>: 0x47f000077f873c0747f000067f863c06
+#    z1<639:512>: 0x47f000097f8b3c0947f000087f8a3c08
+#      z2<127:0>: 0x48000001800340014800000080024000
+#    z2<255:128>: 0x48000003800340034800000280024002
+#    z2<383:256>: 0x48000005800740054800000480064004
+#    z2<511:384>: 0x48000007800740074800000680064006
+#    z2<639:512>: 0x48000009800b400948000008800a4008
+#      z3<127:0>: 0x48100001808344014810000080824400
+#    z3<255:128>: 0x48100003808344034810000280824402
+#    z3<383:256>: 0x48100005808744054810000480864404
+#    z3<511:384>: 0x48100007808744074810000680864406
+#    z3<639:512>: 0x48100009808b440948100008808a4408
+#      z4<127:0>: 0x48200001810348014820000081024800
+#    z4<255:128>: 0x48200003810348034820000281024802
+#    z4<383:256>: 0x48200005810748054820000481064804
+#    z4<511:384>: 0x48200007810748074820000681064806
+#    z4<639:512>: 0x48200009810b480948200008810a4808
+#      z5<127:0>: 0x4830000181834c014830000081824c00
+#    z5<255:128>: 0x4830000381834c034830000281824c02
+#    z5<383:256>: 0x4830000581874c054830000481864c04
+#    z5<511:384>: 0x4830000781874c074830000681864c06
+#    z5<639:512>: 0x48300009818b4c0948300008818a4c08
+#      z6<127:0>: 0x48400001820350014840000082025000
+#    z6<255:128>: 0x48400003820350034840000282025002
+#    z6<383:256>: 0x48400005820750054840000482065004
+#    z6<511:384>: 0x48400007820750074840000682065006
+#    z6<639:512>: 0x48400009820b500948400008820a5008
+#      z7<127:0>: 0x48500001828354014850000082825400
+#    z7<255:128>: 0x48500003828354034850000282825402
+#    z7<383:256>: 0x48500005828754054850000482865404
+#    z7<511:384>: 0x48500007828754074850000682865406
+#    z7<639:512>: 0x48500009828b540948500008828a5408
+#      z8<127:0>: 0x48600001830358014860000083025800
+#    z8<255:128>: 0x48600003830358034860000283025802
+#    z8<383:256>: 0x48600005830758054860000483065804
+#    z8<511:384>: 0x48600007830758074860000683065806
+#    z8<639:512>: 0x48600009830b580948600008830a5808
+#      z9<127:0>: 0x4870000183835c014870000083825c00
+#    z9<255:128>: 0x4870000383835c034870000283825c02
+#    z9<383:256>: 0x4870000583875c054870000483865c04
+#    z9<511:384>: 0x4870000783875c074870000683865c06
+#    z9<639:512>: 0x48700009838b5c0948700008838a5c08
+#     z10<127:0>: 0x48800001840360014880000084026000
+#   z10<255:128>: 0x48800003840360034880000284026002
+#   z10<383:256>: 0x48800005840760054880000484066004
+#   z10<511:384>: 0x48800007840760074880000684066006
+#   z10<639:512>: 0x48800009840b600948800008840a6008
+#     z11<127:0>: 0x48900001848364014890000084826400
+#   z11<255:128>: 0x48900003848364034890000284826402
+#   z11<383:256>: 0x48900005848764054890000484866404
+#   z11<511:384>: 0x48900007848764074890000684866406
+#   z11<639:512>: 0x48900009848b640948900008848a6408
+#     z12<127:0>: 0x48a000018503680148a0000085026800
+#   z12<255:128>: 0x48a000038503680348a0000285026802
+#   z12<383:256>: 0x48a000058507680548a0000485066804
+#   z12<511:384>: 0x48a000078507680748a0000685066806
+#   z12<639:512>: 0x48a00009850b680948a00008850a6808
+#     z13<127:0>: 0x48b0000185836c0148b0000085826c00
+#   z13<255:128>: 0x48b0000385836c0348b0000285826c02
+#   z13<383:256>: 0x48b0000585876c0548b0000485866c04
+#   z13<511:384>: 0x48b0000785876c0748b0000685866c06
+#   z13<639:512>: 0x48b00009858b6c0948b00008858a6c08
+#     z14<127:0>: 0x48c000018603700148c0000086027000
+#   z14<255:128>: 0x48c000038603700348c0000286027002
+#   z14<383:256>: 0x48c000058607700548c0000486067004
+#   z14<511:384>: 0x48c000078607700748c0000686067006
+#   z14<639:512>: 0x48c00009860b700948c00008860a7008
+#     z15<127:0>: 0x48d000018683740148d0000086827400
+#   z15<255:128>: 0x48d000038683740348d0000286827402
+#   z15<383:256>: 0x48d000058687740548d0000486867404
+#   z15<511:384>: 0x48d000078687740748d0000686867406
+#   z15<639:512>: 0x48d00009868b740948d00008868a7408
+#     z16<127:0>: 0x48e000018703780148e0000087027800
+#   z16<255:128>: 0x48e000038703780348e0000287027802
+#   z16<383:256>: 0x48e000058707780548e0000487067804
+#   z16<511:384>: 0x48e000078707780748e0000687067806
+#   z16<639:512>: 0x48e00009870b780948e00008870a7808
+#     z17<127:0>: 0x48f0000187837c0148f0000087827c00
+#   z17<255:128>: 0x48f0000387837c0348f0000287827c02
+#   z17<383:256>: 0x48f0000587877c0548f0000487867c04
+#   z17<511:384>: 0x48f0000787877c0748f0000687867c06
+#   z17<639:512>: 0x48f00009878b7c0948f00008878a7c08
+#     z18<127:0>: 0x49000001880380014900000088028000
+#   z18<255:128>: 0x49000003880380034900000288028002
+#   z18<383:256>: 0x49000005880780054900000488068004
+#   z18<511:384>: 0x49000007880780074900000688068006
+#   z18<639:512>: 0x49000009880b800949000008880a8008
+#     z19<127:0>: 0x49100001888384014910000088828400
+#   z19<255:128>: 0x49100003888384034910000288828402
+#   z19<383:256>: 0x49100005888784054910000488868404
+#   z19<511:384>: 0x49100007888784074910000688868406
+#   z19<639:512>: 0x49100009888b840949100008888a8408
+#     z20<127:0>: 0x49200001890388014920000089028800
+#   z20<255:128>: 0x49200003890388034920000289028802
+#   z20<383:256>: 0x49200005890788054920000489068804
+#   z20<511:384>: 0x49200007890788074920000689068806
+#   z20<639:512>: 0x49200009890b880949200008890a8808
+#     z21<127:0>: 0x4930000189838c014930000089828c00
+#   z21<255:128>: 0x4930000389838c034930000289828c02
+#   z21<383:256>: 0x4930000589878c054930000489868c04
+#   z21<511:384>: 0x4930000789878c074930000689868c06
+#   z21<639:512>: 0x49300009898b8c0949300008898a8c08
+#     z22<127:0>: 0x494000018a039001494000008a029000
+#   z22<255:128>: 0x494000038a039003494000028a029002
+#   z22<383:256>: 0x494000058a079005494000048a069004
+#   z22<511:384>: 0x494000078a079007494000068a069006
+#   z22<639:512>: 0x494000098a0b9009494000088a0a9008
+#     z23<127:0>: 0x495000018a839401495000008a829400
+#   z23<255:128>: 0x495000038a839403495000028a829402
+#   z23<383:256>: 0x495000058a879405495000048a869404
+#   z23<511:384>: 0x495000078a879407495000068a869406
+#   z23<639:512>: 0x495000098a8b9409495000088a8a9408
+#     z24<127:0>: 0x496000018b039801496000008b029800
+#   z24<255:128>: 0x496000038b039803496000028b029802
+#   z24<383:256>: 0x496000058b079805496000048b069804
+#   z24<511:384>: 0x496000078b079807496000068b069806
+#   z24<639:512>: 0x496000098b0b9809496000088b0a9808
+#     z25<127:0>: 0x497000018b839c01497000008b829c00
+#   z25<255:128>: 0x497000038b839c03497000028b829c02
+#   z25<383:256>: 0x497000058b879c05497000048b869c04
+#   z25<511:384>: 0x497000078b879c07497000068b869c06
+#   z25<639:512>: 0x497000098b8b9c09497000088b8a9c08
+#     z26<127:0>: 0x498000018c03a001498000008c02a000
+#   z26<255:128>: 0x498000038c03a003498000028c02a002
+#   z26<383:256>: 0x498000058c07a005498000048c06a004
+#   z26<511:384>: 0x498000078c07a007498000068c06a006
+#   z26<639:512>: 0x498000098c0ba009498000088c0aa008
+#     z27<127:0>: 0x499000018c83a401499000008c82a400
+#   z27<255:128>: 0x499000038c83a403499000028c82a402
+#   z27<383:256>: 0x499000058c87a405499000048c86a404
+#   z27<511:384>: 0x499000078c87a407499000068c86a406
+#   z27<639:512>: 0x499000098c8ba409499000088c8aa408
+#     z28<127:0>: 0x49a000018d03a80149a000008d02a800
+#   z28<255:128>: 0x49a000038d03a80349a000028d02a802
+#   z28<383:256>: 0x49a000058d07a80549a000048d06a804
+#   z28<511:384>: 0x49a000078d07a80749a000068d06a806
+#   z28<639:512>: 0x49a000098d0ba80949a000088d0aa808
+#     z29<127:0>: 0x49b000018d83ac0149b000008d82ac00
+#   z29<255:128>: 0x49b000038d83ac0349b000028d82ac02
+#   z29<383:256>: 0x49b000058d87ac0549b000048d86ac04
+#   z29<511:384>: 0x49b000078d87ac0749b000068d86ac06
+#   z29<639:512>: 0x49b000098d8bac0949b000088d8aac08
+#     z30<127:0>: 0x49c000018e03b00149c000008e02b000
+#   z30<255:128>: 0x49c000038e03b00349c000028e02b002
+#   z30<383:256>: 0x49c000058e07b00549c000048e06b004
+#   z30<511:384>: 0x49c000078e07b00749c000068e06b006
+#   z30<639:512>: 0x49c000098e0bb00949c000088e0ab008
+#     z31<127:0>: 0x49d000018e83b40149d000008e82b400
+#   z31<255:128>: 0x49d000038e83b40349d000028e82b402
+#   z31<383:256>: 0x49d000058e87b40549d000048e86b404
+#   z31<511:384>: 0x49d000078e87b40749d000068e86b406
+#   z31<639:512>: 0x49d000098e8bb40949d000088e8ab408
+#       p0<15:0>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<47:32>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<79:64>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#       p1<15:0>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<31:16>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#      p1<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p1<63:48>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<79:64>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#       p2<15:0>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<31:16>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<47:32>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p2<79:64>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#       p3<15:0>: 0b 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1
+#      p3<31:16>: 0b 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1
+#      p3<47:32>: 0b 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1
+#      p3<63:48>: 0b 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1
+#      p3<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#       p4<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<31:16>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#      p4<47:32>: 0b 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1
+#      p4<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<79:64>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#       p5<15:0>: 0b 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p5<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1
+#      p5<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1
+#      p5<63:48>: 0b 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0
+#      p5<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1
+#       p6<15:0>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<31:16>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<47:32>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<63:48>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<79:64>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p7<15:0>: 0b 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
+#      p7<31:16>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1
+#      p7<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1
+#      p7<63:48>: 0b 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p7<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p8<15:0>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#      p8<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p8<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1
+#      p8<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#       p9<15:0>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p9<47:32>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p9<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1
+#      p10<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p10<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p10<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p11<15:0>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p11<31:16>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p11<79:64>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      FFR<15:0>: 0b 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
+#     FFR<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#             w3:         0x00900909
+#             x6: 0x0f0000f000f00f0f
 # NZCV: N:0 Z:0 C:0 V:0
-#    x9: 0x0000000001501515
+#             w9:         0x01501515
 # NZCV: N:0 Z:0 C:0 V:0
-#   x12: 0x1b0001b001b01b1b
-#   x15: 0x0000000002102121
-#   x18: 0x2700027002702727
+#            x12: 0x1b0001b001b01b1b
+#            w15:         0x02102121
+#            x18: 0x2700027002702727
 # NZCV: N:0 Z:0 C:0 V:0
-#   x21: 0x0000000002d02d2d
+#            w21:         0x02d02d2d
 # NZCV: N:0 Z:0 C:0 V:0
-#   x24: 0x3300033003303333
-#   x27: 0x0000000001c01c1c
-#    x2: 0x~~~~~~~~~~~~~~~~
+#            x24: 0x3300033003303333
+#            w27:         0x01c01c1c
+#             x2: 0x~~~~~~~~~~~~~~~~
 # NZCV: N:0 Z:0 C:0 V:0
-#    x5: 0x0000000000700707
+#             w5:         0x00700707
 # NZCV: N:0 Z:1 C:0 V:0
-#    x8: 0x0000000000000000
-#   x11: 0x0000000001b01b1b
-#   x13: 0x0700007000700707
-#   x15: 0x0000000000000080
-#   x18: 0x0000013000130013
-#   x21: 0x0000000002d02d2c
-#   x23: 0x1700017001701716
-#   x25: 0x0000000000200202
-#   x28: 0x1d0001d001d01d1d
+#             x8: 0x0000000000000000
+#            w11:         0x01b01b1b
+#            x13: 0x0700007000700707
+#            w15:         0x00000080
+#            x18: 0x0000013000130013
+#            w21:         0x02d02d2c
+#            x23: 0x1700017001701716
+#            w25:         0x00200202
+#            x28: 0x1d0001d001d01d1d
 # NZCV: N:0 Z:1 C:0 V:0
-#    x3: 0x0000000000000000
+#             w3:         0x00000000
 # NZCV: N:0 Z:0 C:0 V:0
-#    x6: 0x0700007000700707
+#             x6: 0x0700007000700707
 # NZCV: N:0 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:0 V:0
@@ -104,2989 +317,5897 @@
 # NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:1 V:1
 # NZCV: N:1 Z:0 C:0 V:0
-#   x17: 0x0000000000130014
-#   x17: 0x0000000000130013
-#   x19: 0x1400014001401414
-#   x19: 0x1400014001401415
-#   x21: 0x0000000001601616
-#   x21: 0x00000000fe9fe9e9
-#   x23: 0xccfffccffccfcccc
-#   x23: 0x3300033003303333
-#   x25: 0x0000000000000006
-#   x27: 0x0000000000000002
-#   x29: 0x0000000000000020
-#    x3: 0x0000000000000005
+#            w17:         0x00130014
+#            w17:         0x00130013
+#            x19: 0x1400014001401414
+#            x19: 0x1400014001401415
+#            w21:         0x01601616
+#            w21:         0xfe9fe9e9
+#            x23: 0xccfffccffccfcccc
+#            x23: 0x3300033003303333
+#            w25:         0x00000006
+#            x27: 0x0000000000000002
+#            w29:         0x00000020
+#             x3: 0x0000000000000005
 # NZCV: N:0 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:1 V:0
 # NZCV: N:1 Z:0 C:0 V:0
-#   x13: 0x0000000000e00e0e
-#   x13: 0x00000000ff1ff1f2
-#   x15: 0x1000010001001010
-#   x15: 0xeffffefffeffeff0
-#   x17: 0x00000000e963b635
-#   x20: 0x00000000ad83ccb8
-#   x23: 0x000000003ed5525d
-#   x26: 0x00000000bc365145
-#    x4: 0x0000000000000070
-#    x7: 0x00000000b096abf4
-#   x13: 0x0000000000e00e0e
-#   x13: 0x00000000feffeff0
-#   x16: 0x0000013000130013
-#   x16: 0x00000000e963b635
-#   x19: 0x0000000000000000
-#   x19: 0x0000000000000001
-#   x20: 0x0000000000000001
-#   x20: 0x0000000000000000
-#   x21: 0x0000000000000000
-#   x21: 0x00000000ffffffff
-#   x22: 0x0000000000000000
-#   x22: 0xffffffffffffffff
-#   x23: 0x0000000003303333
-#   x23: 0x0000000000000007
-#   x26: 0x1d0001d001d01d1e
-#   x26: 0x0000000000000002
-#   x29: 0x00000000fffffffa
-#   x29: 0x0000000000000000
-#    x4: 0x0000000000700707
-#    x4: 0xf8ffff8fff8ff8f8
-#    x7: 0x00000000feafeaeb
-#    x7: 0x0000000000000000
-#   x10: 0xe4fffe4ffe4fe4e5
-#   x10: 0x0000000001b01b1b
-#   x13: 0x0000000001e01e01
-#   x16: 0xfffffecf168f49d9
-#   x19: 0x00000000ffffffff
-#   x22: 0x3300033003303334
-#   x25: 0x0000000001000000
-#   x28: 0x0000000000000000
-#    x3: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x13: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x15: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   x16: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   x17: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x18: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000013121110 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000017161514 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000033323130 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000037363534 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000047464544 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x29: 0x000000004b4a4948 <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000058 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x000000000000005c <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000005d5c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000006564 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000064 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000068 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000006968 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000007170 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0000000073727170 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x11: 0x000000007b7a7978 <- 0x~~~~~~~~~~~~~~~~
-#   x12: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
-#   x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
-#   x14: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x15: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x16: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x17: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x18: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x22: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000019590
-#    x7: 0x0000000000000340
-#    x9: 0x0000000070000000
-#   x12: 0x2c2a28262422201e
-#   x15: 0x0000000000000040
-#   x17: 0x0000000000000000
-#   x19: 0x0000000000000080
-#   x22: 0x0000000000302010
-#   x25: 0x00000000371b0900
-#   x29: 0x0000000000000100
-#    x5: 0x00000000feb67b00
-#    x8: 0xffffce5f00000000
-#   x11: 0x000000002422201e
-#   x13: 0x0000000000000001
-#   x15: 0x0000000000000082
-#   x16: 0x0000000000000083
-#   x17: 0x00000000ffffff7b
-#   x18: 0xffffffffffffff7a
-#   x19: 0x0000000000000086
-#   x20: 0x0000000000000087
-#   x22: 0x000000001b0e0500
-#   x26: 0xe3e9eff5fbff0100
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000001498500
-#    x8: 0x000000008fffffff
-#   x10: 0xffffffffdbdddfe1
-#   x12: 0x00000000ffffffff
-#   x14: 0xffffffffffffff7e
+#            w13:         0x00e00e0e
+#            w13:         0xff1ff1f2
+#            x15: 0x1000010001001010
+#            x15: 0xeffffefffeffeff0
+#            w17:         0xe963b635
+#            w20:         0xad83ccb8
+#            w23:         0x3ed5525d
+#            w26:         0xbc365145
+#             w4:         0x00000070
+#             w7:         0xb096abf4
+#            w13:         0x00e00e0e
+#            w13:         0xfeffeff0
+#            x16: 0x0000013000130013
+#            x16: 0x00000000e963b635
+#            w19:         0x00000000
+#            w19:         0x00000001
+#            x20: 0x0000000000000001
+#            x20: 0x0000000000000000
+#            w21:         0x00000000
+#            w21:         0xffffffff
+#            x22: 0x0000000000000000
+#            x22: 0xffffffffffffffff
+#            w23:         0x03303333
+#            w23:         0x00000007
+#            x26: 0x1d0001d001d01d1e
+#            x26: 0x0000000000000002
+#            w29:         0xfffffffa
+#            w29:         0x00000000
+#             x4: 0x0000000000700707
+#             x4: 0xf8ffff8fff8ff8f8
+#             w7:         0xfeafeaeb
+#             w7:         0x00000000
+#            x10: 0xe4fffe4ffe4fe4e5
+#            x10: 0x0000000001b01b1b
+#            w13:         0x01e01e01
+#            x16: 0xfffffecf168f49d9
+#            w19:         0xffffffff
+#            x22: 0x3300033003303334
+#            w25:         0x01000000
+#            x28: 0x0000000000000000
+#             w3:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#             x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w8:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w10:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w13:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            w19:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w23:         0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x17161514 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000007060504
+#                                  ╙─ 0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000033323130
+#                                  ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000037363534
+#                                  ╙─ 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000043424140
+#                                  ╙─ 0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000047464544
+#                                  ╙─ 0x47464544 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w29:         0x4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000058
+#                                  ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w3:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005c
+#                                  ╙─ 0x5c <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00005d5c
+#                                  ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006564
+#                                  ╙─ 0x6564 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000064
+#                                  ╙─ 0x64 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000068
+#                                  ╙─ 0x68 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006968
+#                                  ╙─ 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000007170
+#                                  ╙─ 0x7170 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000073727170
+#                                  ╙─ 0x73727170 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x11: 0x000000007b7a7978
+#                                  ╙─ 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            w12:         0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#            x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
+#            w14:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            x19: 0x0000000000000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0000000000000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x000000000a090807
+#                                  ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w27:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w2:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00019590
+#             x7: 0x0000000000000340
+#             w9:         0x70000000
+#            x12: 0x2c2a28262422201e
+#            w15:         0x00000040
+#            x17: 0x0000000000000000
+#            w19:         0x00000080
+#            x22: 0x0000000000302010
+#            w25:         0x371b0900
+#            x29: 0x0000000000000100
+#             w5:         0xfeb67b00
+#             x8: 0xffffce5f00000000
+#            w11:         0x2422201e
+#            x13: 0x0000000000000001
+#            x15: 0x0000000000000082
+#            x16: 0x0000000000000083
+#            x17: 0x00000000ffffff7b
+#            x18: 0xffffffffffffff7a
+#            x19: 0x0000000000000086
+#            x20: 0x0000000000000087
+#            w22:         0x1b0e0500
+#            x26: 0xe3e9eff5fbff0100
+#             w2:         0x00010000
+#             x5: 0x0000000001498500
+#             w8:         0x8fffffff
+#            x10: 0xffffffffdbdddfe1
+#            w12:         0xffffffff
+#            x14: 0xffffffffffffff7e
 # NZCV: N:0 Z:0 C:0 V:0
-#   x16: 0x0000000000000085
+#            w16:         0x00000085
 # NZCV: N:1 Z:0 C:0 V:0
-#   x18: 0xffffffffffffff7a
-#   x20: 0x00000000fffffbfc
-#   x22: 0xfffffffffcfdfeff
+#            x18: 0xffffffffffffff7a
+#            w20:         0xfffffbfc
+#            x22: 0xfffffffffcfdfeff
 # NZCV: N:1 Z:0 C:0 V:0
-#   x24: 0x00000000c8e4f6ff
+#            w24:         0xc8e4f6ff
 # NZCV: N:1 Z:0 C:0 V:0
-#   x26: 0xfffffffffcfdfeff
-#   x28: 0x00000000fffeffff
-#    x3: 0xfffffffffeb67bff
-#    x6: 0x000000008fffffff
-#    x9: 0xffffffffffffffff
-#   x12: 0x0000000080000000
-#   x14: 0x4100000000000000
-#   x16: 0x000000007bffffff
-#   x18: 0x8600000000000000
-#   x20: 0x0000000000000304
-#   x22: 0x0000000002030001
-#   x24: 0x0000000000091b37
-#   x26: 0x0000000006040200
-#   x29: 0x0000000000020000
-#    x4: 0x0000000071498500
-#    x7: 0x000000008fffffff
+#            x26: 0xfffffffffcfdfeff
+#            w28:         0xfffeffff
+#             x3: 0xfffffffffeb67bff
+#             w6:         0x8fffffff
+#             x9: 0xffffffffffffffff
+#            w12:         0x80000000
+#            x14: 0x4100000000000000
+#            w16:         0x7bffffff
+#            x18: 0x8600000000000000
+#            w20:         0x00000304
+#            x22: 0x0000000002030001
+#            x24: 0x0000000000091b37
+#            w26:         0x06040200
+#            x29: 0x0000000000020000
+#             w4:         0x71498500
+#             x7: 0x000000008fffffff
 # NZCV: N:1 Z:0 C:0 V:1
-#   x10: 0x00000000a422201d
+#            w10:         0xa422201d
 # NZCV: N:0 Z:0 C:1 V:0
-#   x13: 0x40ffffffffffff7d
-#   x16: 0x000000000000000c
-#   x18: 0x0000000000000060
-#   x22: 0x0000000000000004
-#   x24: 0xffffffffffffff09
-#   x26: 0x00000000fffffcff
-#   x29: 0x0000000000000000
-#   x12: 0x1080ffffffffffde
-#   x24: 0x0000000000000001
-#   x27: 0x0000000000000001
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000001
-#    x6: 0x0000000000000001
-#    x8: 0x0000000000000001
-#   x10: 0x0000000000000001
-#   x12: 0x0000000000000001
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000001
-#    x9: 0x0000000000000001
-#   x12: 0x0000000000000001
-#   x14: 0x0000000000000001
-#   x16: 0x0000000000000001
-#   x18: 0x0000000000000001
-#   x20: 0x0000000000000001
-#   x22: 0x0000000000000001
-#   x24: 0x00000000371b0c01
-#   x27: 0x00000000fffeffff
+#            x13: 0x40ffffffffffff7d
+#            w16:         0x0000000c
+#            x18: 0x0000000000000060
+#            w22:         0x00000004
+#            x24: 0xffffffffffffff09
+#            w26:         0xfffffcff
+#            x29: 0x0000000000000000
+#            x12: 0x1080ffffffffffde
+#            w24:         0x00000001
+#            w27:         0x00000001
+#             w2:         0x00000001
+#             w4:         0x00000001
+#             w6:         0x00000001
+#             w8:         0x00000001
+#            w10:         0x00000001
+#            w12:         0x00000001
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000001
+#             w9:         0x00000001
+#            w12:         0x00000001
+#            w14:         0x00000001
+#            w16:         0x00000001
+#            w18:         0x00000001
+#            w20:         0x00000001
+#            w22:         0x00000001
+#            w24:         0x371b0c01
+#            x27: 0x00000000fffeffff
 # NZCV: N:1 Z:0 C:1 V:0
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             w2:         0xfeb67bfe
 # NZCV: N:1 Z:0 C:0 V:0
-#    x5: 0xffffffff70000002
-#    x8: 0x0000000000000001
-#   x10: 0x000000000000001e
-#   x12: 0x00000000ffffff7d
-#   x14: 0x0000000000000082
-#   x16: 0x00000000ffffff7b
-#   x18: 0x0000000000000086
+#             x5: 0xffffffff70000002
+#             w8:         0x00000001
+#            x10: 0x000000000000001e
+#            w12:         0xffffff7d
+#            x14: 0x0000000000000082
+#            w16:         0xffffff7b
+#            x18: 0x0000000000000086
 # NZCV: N:0 Z:0 C:0 V:0
 # NZCV: N:0 Z:1 C:0 V:0
-#   x24: 0x0000000000040000
-#   x26: 0x0000000001fff000
-#   x28: 0x0000000000000000
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000000
-#    x6: 0x000000000000003f
-#    x8: 0x0000000000000000
-#   x11: 0x0000000000000000
-#   x22: 0x0000000000000000
-#   x28: 0x0000000000000000
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000002
-#    x6: 0x000000000000ffff
-#    x8: 0x0000000000000001
-#   x10: 0x0000000000000000
+#            w24:         0x00040000
+#            x26: 0x0000000001fff000
+#            w28:         0x00000000
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000000
+#             x6: 0x000000000000003f
+#             w8:         0x00000000
+#            x11: 0x0000000000000000
+#            x22: 0x0000000000000000
+#            w28:         0x00000000
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000002
+#             x6: 0x000000000000ffff
+#             w8:         0x00000001
+#            x10: 0x0000000000000000
 # NZCV: N:0 Z:1 C:1 V:0
-#    x3: 0x0000000000000000
+#             x3: 0x0000000000000000
 # NZCV: N:1 Z:0 C:0 V:0
-#   v13: 0x00000000000000004036e00cd9b7e45b
-#    v8: 0x00000000000000000000000041c5851e
-#    v1: 0x00000000000000003ff587933f9e0419 (d1: 1.34560)
-#   v25: 0x000000000000000000000000410a4396 (s25: 8.64150)
-#    v1: 0x0000000000000000ffffffffffffffff
-#    v4: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#   v13: 0x0000000000000000404633d07142f43a (d13: 44.4048)
-#   v27: 0x000000000000000000000000424094fe (s27: 48.1455)
+#            v13: 0x0000000000000000490ffff1110487fe
+#             v8: 0x0000000000000000000000000e02aff8
+#             d1:                 0x47f000007f823c00 (3.403e+38)
+#            s25:                         0x02825400 (1.915e-37)
+#             v1: 0x0000000000000000ffffffffffffffff
+#             v4: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#            d13:                 0x494002008a13204c (7.140e+44)
+#            s27:                         0x0e029fa8 (1.610e-30)
 # NZCV: N:0 Z:0 C:0 V:0
-# NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:1 C:1 V:0
-#   v19: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v27: 0x0000000000000000ffffffffffffffff
-#   v31: 0x0000000000000000ffffffffffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v1: 0x000000000000000000000000ffffffff
-#   v18: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v11: 0x000000000000000000000000ffffffff
-#   v17: 0x000000000000000000000000ffffffff
-#   v24: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-# NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:0
 # NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:0 Z:1 C:1 V:0
+#            v19: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v27: 0x0000000000000000ffffffffffffffff
+#            v31: 0x0000000000000000ffffffffffffffff
+#            v31: 0x000000000000000000000000ffffffff
+#             v1: 0x000000000000000000000000ffffffff
+#            v18: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ffffffffffffffff
+#            v11: 0x000000000000000000000000ffffffff
+#            v17: 0x00000000000000000000000000000000
+#            v24: 0x0000000000000000ffffffffffffffff
+#            v11: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+# NZCV: N:0 Z:0 C:1 V:1
 # NZCV: N:0 Z:0 C:1 V:0
 # NZCV: N:0 Z:0 C:1 V:1
+# NZCV: N:1 Z:0 C:0 V:0
+# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:1 C:1 V:0
-#   v10: 0x00000000000000000000000000000000 (d10: 0.00000)
-#   v22: 0x00000000000000000000000000000000 (s22: 0.00000)
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
-#   v11: 0x00000000000000000000000000000000 (d11: 0.00000)
-#    v8: 0x00000000000000000000000000004a0e
-#   v12: 0x0000000000000000000000000000ffff
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
-#   v27: 0x0000000000000000000000004072c000 (s27: 3.79297)
-#   v28: 0x00000000000000000000000000000016
-#    v3: 0x00000000000000000000000000000000
-#   x18: 0x0000000000000000
-#   x29: 0x0000000000000000
-#    x9: 0x0000000000000000
-#    lr: 0x0000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   x16: 0x0000000000000000
-#   x18: 0x0000000000000000
-#   x26: 0x0000000000000009
-#   x25: 0x0000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000012
-#    x9: 0x0000000000000009
-#   x19: 0x0000000000000007
-#    x6: 0x0000000000000008
-#   x22: 0x0000000000000008
-#   v27: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   x29: 0x0000000000000000
-#   x26: 0x0000000000000000
-#   x13: 0x0000000000000000
-#    x5: 0x0000000000000000
-#   v30: 0x00000000000000000000000000000014
-#   v10: 0x00000000000000000000000000000000
-#   x21: 0x0000000000000014
-#   x18: 0x0000000000000000
-#    x8: 0x0000000000000000
-#   x17: 0x0000000000000000
-#    v0: 0x0000000000000000000000000000001c
-#    v6: 0x00000000000000000000000000000009
-#   x29: 0x0000000000000000
-#   x25: 0x0000000000000000
-#    lr: 0x0000000000000000
-#   x27: 0x0000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000019
-#   x15: 0x0000000000000001
-#   x16: 0x0000000000000009
-#   x13: 0x000000000000001b
-#    x3: 0x000000000000001d
-#   v24: 0x00000000000000000000000000000001
-#   v14: 0x00000000000000000000000000000001
-#   x26: 0x0000000000000001
-#   x27: 0x0000000000000001
-#   x29: 0x0000000000000001
-#   v12: 0x00000000000000000000000000000001
-#   v15: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    x6: 0x000000000000000c
-#   x25: 0x0000000000000000
-#    x9: 0x0000000000000000
-#   x17: 0x0000000000000000
-#   x19: 0x0000000000000000
-#   x22: 0x0000000000000000
-#   x14: 0x0000000000000018
-#    x3: 0x0000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   x11: 0x0000000000000000
-#    x7: 0x0000000000000000
-#   x18: 0x0000000000000000
-#   x14: 0x0000000000000000
-#   x22: 0x0000000000000000
-#    x8: 0x0000000000000000
-#    x7: 0x0000000000000018
-#   x22: 0x00008a4396000000
-#    v6: 0x00000000000000007ff0000000000000 (d6: inf)
-#   v26: 0x00000000000000000000000000000000 (s26: 0.00000)
-#   v18: 0x00000000000000000000000000000014 (d18: 9.88131e-323)
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
-#   v12: 0x00000000000000000000000000000000 (d12: 0.00000)
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
-#   v28: 0x00000000000000000000000000000000 (d28: 0.00000)
-#    v6: 0x00000000000000000000000000000000 (s6: 0.00000)
-#   v20: 0x00000000000000000000000000000014 (d20: 9.88131e-323)
-#    v7: 0x00000000000000000000000000000000 (s7: 0.00000)
-#   v19: 0x00000000000000000000000000000001 (d19: 4.94066e-324)
-#    v0: 0x000000000000000000000000ffffffff (s0: nan)
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
-#    v2: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000c004000000000000 (d8: -2.50000)
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
-#   v25: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000040380000 (s21: 2.87500)
-#   x18: 0x0000000000000001
-#   x18: 0x0000000000000000
-#   v20: 0x00000000000000000000000000000001 (d20: 4.94066e-324)
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
-#   v25: 0x000000000000000000000000ffffffff (s25: nan)
-#    v4: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000000000000ffffffff
-#   v15: 0x000000000000000080000000ffffffff (d15: -2.12200e-314)
-#   v14: 0x0000000000000000000000007fffffff (s14: nan)
-#    v0: 0x00000000000000008000000000000000 (d0: -0.00000)
-#    v0: 0x00000000000000000000000080000014 (s0: -2.80260e-44)
-#   v19: 0x00000000000000008000000040380000 (d19: -5.32312e-315)
-#   v29: 0x00000000000000000000000080000000 (s29: -0.00000)
-#   v31: 0x00000000000000000000000000000000 (d31: 0.00000)
-#   v18: 0x0000000000000000000000007fffffff (s18: nan)
-#    v7: 0x00000000000000007ff0000000000000
-#   v29: 0x000000000000000000000000ffffffff
-#   v11: 0x00000000000000004000000000000000
-#   v18: 0x000000000000000000000000ffffffff
-#   v15: 0x00000000000000007fe0000000000000
-#    v5: 0x0000000000000000000000007f000000
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
-#   v19: 0x00000000000000000000000000000000 (d19: 0.00000)
-#   v14: 0x00000000000000000000000040400000 (s14: 3.00000)
-#   v20: 0x00000000000000000000000000000000 (d20: 0.00000)
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
-#   v24: 0x00000000000000000000000000000000 (s24: 0.00000)
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
-#   v17: 0x00000000000000000000000000000000 (s17: 0.00000)
-#    v0: 0x0000000000000000c000000000000000 (d0: -2.00000)
-#   v15: 0x000000000000000000000000ffffffff (s15: nan)
-#   v21: 0x00000000000000007ff0000000000000
-#   v17: 0x000000000000000000000000ffffffff
-#    v4: 0x00000000000000003ff8000000000000
-#   v14: 0x0000000000000000000000003fc00000
-#   v14: 0x00000000000000001f5ffffffff00000 (d14: 1.45671e-157)
-#    v4: 0x000000000000000000000000fff00000 (s4: nan)
-#   v13: 0x0000000000000000fff0000000000000 (d13: -inf)
-#    v3: 0x00000000000000000000000000000000 (s3: 0.00000)
-#   v31: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000004022000000000000 (d6: 9.00000)
-#    v5: 0x00000000000000003f90000000000000 (d5: 0.0156250)
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
-#   v15: 0x00000000000000000000000000000000 (d15: 0.00000)
-#    v7: 0x00000000000000007ff00000c9800000
-#    v8: 0x0000000000000000c004000000000000
-#   v29: 0x00000000000000000000000000000000 (s29: 0.00000)
-#   v15: 0x0000000000000000000000003c200000 (s15: 0.00976562)
-#   v27: 0x0000000000000000000000003f800000 (s27: 1.00000)
-#   v26: 0x0000000000000000000000003c7fffff (s26: 0.0156250)
-#    v0: 0x000000000000000043d00a0e21904c71
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000003ff0000000000000 (d30: 1.00000)
-#    v3: 0x00000000000000000000000000000000 (d3: 0.00000)
-#   v28: 0x00000000000000004034000000000000 (d28: 20.0000)
-#   v27: 0x00000000000000000000000000000000 (d27: 0.00000)
-#   v11: 0x00000000000000004000000000000000
-#    v0: 0x000000000000000043d00a0e4783c64c
-#   v20: 0x00000000000000000000000000000000 (s20: 0.00000)
-#   v21: 0x00000000000000000000000046160000 (s21: 9600.00)
-#    v6: 0x00000000000000000000000041d80000 (s6: 27.0000)
-#    v7: 0x00000000000000000000000038ff0000 (s7: 0.000121593)
-#   v19: 0x000000000000000043d00a0e4783c64c
-#   v16: 0x00000000000000004000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000000000001
-#   v16: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000010000000000000
-#   v10: 0x000000000000000000000000ffffffff
-#   v31: 0x403ba7b141b670b1403ef2e47d0325e4
-#   v10: 0x403ba7b141b670b15f9ef2e47cf325e4
-#   v15: 0x000000000000000063300a0d4773c64c
-#   v27: 0x0000000000000000403ef2e441e225e3
-#   v25: 0x00000000000000004044000000000000
-#   v13: 0x00000000000000000000000037feffff
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000082900a0d
-#   v10: 0x0000000000000000000000003ff03c7f
-#   v31: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v31: 0x00000000000038fe0000000000000000
-#   v14: 0x000000000000000043d00a0e4783c64c
-#    v3: 0x000000007400000000000000c4000000
-#    v8: 0x00000000ffffffff0000000000000000
-#   v22: 0x00000000000000003c7fffff3ff00000
-#   v29: 0x00000000000000004dde0dcf00000000
-#   v30: 0x0000000000000000000000003c7fffff
-#   v12: 0x0000000000000000000037000000bbfe
-#   v17: 0x000000003700bbfe0000fffe00000000
-#   v27: 0x0000000000000000000000000000006c
-#   v12: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000003c7e
-#   v19: 0x00000000000000000000000000005bad
-#   v14: 0x00000000000000000000000000003c7e
-#   v10: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v26: 0x000000007400000000000000c4000000
-#    v7: 0x000000000000000000000000381b0000
-#   v28: 0x00000000000000004034000000000000
-#   v29: 0x00000000000000004dde0d4300000000
-#   v12: 0x00000000000000000000000000000000
-#   v18: 0x000000000000000000000000ff67ff67
-#   v12: 0x000000000000000000000000c4000000
-#    v2: 0x0000000000000000403ef2e441e30180
-#    v8: 0x00000000ffffffff0000000004000000
-#    v5: 0x00000000000000000000000000000000
-#    v9: 0x00128220009270f80016c26000c22160
-#   v14: 0x000000000000000000000000c4000000
-#   v29: 0x07070707070707070707070707070707
-#   v21: 0x00000000000000000000001f0000001f
-#    v1: 0x0000000000000000000f000f0001000f
-#   v27: 0x0000001f0000001f0000001f0000001f
-#   v19: 0x00000000000000000707070707070707
-#   v15: 0x000f000f000f000f000f000f0001000f
-#    v1: 0x08080808080808080808080808080808
-#   v27: 0x00000000000000000000001000000020
-#    v9: 0x0000000000000000000b000000080002
-#   v31: 0x0000000c0000000c0000000c0000000f
-#   v14: 0x00000000000000000505050505050505
-#    v6: 0x00100010001000100001001000100010
-#   v18: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v19: 0xffffffff00ffffff000000000000ffff
-#   v15: 0xffffffffffffffffff00ffffff00ff00
-#   v12: 0xffffffffffffffffffffffffffffffff
-#    v8: 0xffffffffffffffff0000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000ffffffff
-#    v6: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000ffffffff00000000
-#   v21: 0xffffffff0000000000000000ffffffff
-#    v6: 0xffffffffffffffff00000000ffffffff
-#   v16: 0x0000000000000000ffffffff00000000
-#   v21: 0x000000000000000000000000ffffffff
-#   v20: 0xffffffffffffffff0000ffff0000ffff
-#   v26: 0x0000000000000000ffffffffffffffff
-#   v16: 0x00000000000000000000000000000000
-#   v25: 0x0000000000000000ffffffffffffffff
-#   v17: 0x000000000000ffffffffffffffff0000
-#   v22: 0xffffffffffffffffffffffffffff0000
-#   v28: 0x0000000000000000ffffffffffffffff
-#    v6: 0xffffffffffffffffffffffffffffffff
-#   v25: 0x000000000000000000000000ffffffff
-#   v21: 0x0000000000000000ffffffffffffffff
-#   v16: 0x0000000000000000ffffffff0000ffff
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v7: 0xffffffffffffffff00000000ffffffff
-#    v0: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000ff00ffffffff0000
-#   v21: 0x0000000000000000ffffffffffffffff
-#    v2: 0x0000000000000000ffffffffffffffff
-#   v19: 0xffffffffffffffff000000000000ffff
-#    v6: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v5: 0x0000000000000000ffffffffffffffff
-#   v12: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v5: 0x0000000000000000ffffffff00000000
-#   v13: 0x00000000000000000000000000000000
-#   v27: 0x0000000000000000000000ffffffffff
-#    v5: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x000000000000000000000000ffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v11: 0x0000000000000000ffffffff00000000
-#    v1: 0x00000000000000000000000000000000
-#   v21: 0xffffffffffffffffffffffffffffffff
-#    v8: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000ffffffffffffffff
-#   v19: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000ffffffffffffffff
-#    v0: 0xffffffff00ffffffffffffffffffffff
-#    v2: 0xffffffffffffffffffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#    v9: 0x0000000000000000ffffffffffffffff
-#    v9: 0xffffffffffffffffffffffffffffffff
-#   v21: 0x0000000000000000ffffffffffffffff
-#   v29: 0xffffffffffffffffffffffffffffffff
-#   v25: 0x0000000000000000ffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#   v25: 0x00000000000000000000000000000000
-#    v0: 0x0000000000000000ffffffff00000000
-#   v24: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000ffffffff00000000
-#    v1: 0x0000000000000000ffffffffffffffff
-#   v28: 0x0000000000000000ffffffffffffffff
-#   v26: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v11: 0x0000000000000000ff00ffffffff0000
-#    v0: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000008080808
-#   v28: 0x00000000000000000000000000000000
-#    v6: 0xffffffffffffffffffffffffffffffff
-#    v9: 0x01010101010101010101010101010101
-#   v12: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000ffffff7dffffff7d
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v10: 0x00000018000000180000001800000018
-#   v30: 0x0000000000000000ffffffffffffffff
-#   v31: 0x00000000000000000101010101010101
-#   v28: 0xffffffffffffffffffffffffffffffff
-#    v2: 0x00000000000000000000000000000000
-#   v29: 0x0000000000000000ffffff7df7f7f775
-#    v3: 0x0000000000000000ffffffffffffffff
-#    v1: 0xff000000000000000000000000000000
-#    v2: 0x000000000000000000ffffffffffffff
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0b0a09080706050403020100fffefdfc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0a09080706050403020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x1a191817161514131211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x2a292827262524232221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x3a393837363534333231302f2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x191817161514131211100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x292827262524232221201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x393837363534333231302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x494847464544434241403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x595857565554535251504f4e4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x4847464544434241403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x5857565554535251504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x6867666564636261605f5e5d5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x67666564636261605f5e5d5c5b5a5958 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001f1e1d1c1b1a1918 (d7: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000006f6e6d6c6b6a6968 (d17: 5.76650e+228) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000007776757473727170 (d18: 2.89670e+267) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000007f7e7d7c7b7a7978 (d19: 1.33818e+306) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000008786858483828180 (d20: -2.08158e-272) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000006e6d6c6b6a696867 (d28: 8.50866e+223) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000767574737271706f (d29: 4.22243e+262) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000007e7d7c7b7a797877 (d30: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000868584838281807f (d31: -3.03465e-277) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000ff0000850002ff01 (d20: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000000000000fffeff (d21: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000001700000000000000 (d22: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000008e8d8c8b8a898887 (d19: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000969594939291908f (d20: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000009e9d9c9b9a999897 (d21: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000008d8c8b8a89888786 (d12: -2.09028e-243) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000009594939291908f8e (d13: -1.02545e-204) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009d9c9b9a99989796 (d14: -4.85140e-166) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000ff0000850002ff01 (d29: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000fffeff (d30: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000a5a4a3a2a1a09f9e (d31: -2.38202e-127) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000adacabaaa9a8a7a6 (d0: -1.12597e-88) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000a4a3a2a1a09f9e9d (d3: -3.45787e-132) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000acabaaa9a8a7a6a5 (d4: -1.65794e-93) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000ff0000850002ff01 (d28: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000b4b3b2b1b0afaead (d11: -8.03348e-55) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000b3b2b1b0afaeadac (d29: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x3f3e3d3c3b3a39383736353433323130 (0.000461414, 9.95833e-43) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.70315e+18, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.28100e+95, -1.31369e+57) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.45943e+173, -3.04943e+134) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.39104e+250, -7.07849e+211) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.90391e+13, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.07279e+90, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.10851e+168, -4.47908e+129) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.90012e+245, -1.03980e+207) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.07812e-299, -2.41385e+284) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1211100f0e0d0c0b0a09080706050403 (1.18008e-221, 2.54377e-260) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2221201f1e1d1c1b1a19181716151413 (2.74293e-144, 5.90574e-183) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.74681e-304, -3.54087e+279) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x11100f0e0d0c0b0a0908070605040302 (1.69471e-226, 3.72581e-265) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x21201f1e1d1c1b1a1918171615141312 (3.94003e-149, 8.65093e-188) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x31302f2e2d2c2b2a2928272625242322 (9.15999e-72, 2.00864e-110) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x41403f3e3d3c3b3a3938373635343332 (2.12953e+06, 4.66377e-33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x302f2e2d2c2b2a292827262524232221 (1.34639e-76, 2.93754e-115) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x403f3e3d3c3b3a393837363534333231 (31.2431, 6.82132e-38) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x504f4e4d4c4b4a494847464544434241 (7.24994e+78, 1.58398e+40) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x4f4e4d4c4b4a49484746454443424140 (1.07078e+74, 2.31271e+35) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000001f1e1d1c1b1a1918 (..., 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000005756555453525150 (..., 2.35662e+14, 9.03307e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000005f5e5d5c5b5a5958 (..., 1.60231e+19, 6.14598e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000006766656463626160 (..., 1.08801e+24, 4.17598e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000006f6e6d6c6b6a6968 (..., 7.37897e+28, 2.83386e+26) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000565554535251504f (..., 5.86395e+13, 2.24749e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000005e5d5c5b5a595857 (..., 3.98768e+18, 1.52943e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000666564636261605f (..., 2.70818e+23, 1.03937e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000006e6d6c6b6a696867 (..., 1.83698e+28, 7.05432e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000767574737271706f (..., 1.24460e+33, 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007e7d7c7b7a797877 (..., 8.42353e+37, 3.23831e+35) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000868584838281807f (..., -5.02237e-35, -1.90286e-37) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000007574737271706f6e (..., 3.09878e+32, 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000007d7c7b7a79787776 (..., 2.09754e+37, 8.06320e+34) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000008584838281807f7e (..., -1.24615e-35, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000008d8c8b8a89888786 (..., -8.66176e-31, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009594939291908f8e (..., -6.00095e-26, -2.28077e-28) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000008c8b8a8988878685 (..., -2.14997e-31, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x000000000000000094939291908f8e8d (..., -1.49010e-26, -5.66232e-29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000009c9b9a9998979695 (..., -1.02970e-21, -3.91846e-24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000009b9a999897969594 (..., -2.55764e-22, -9.73128e-25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000abaaa9a8a7a6a5a4 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000bbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000cac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000d1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000d9d8d7d6d5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000e1e0dfdedddcdbda <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000d8d7d6d5d4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e0dfdedddcdbdad9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e8e7e6e5e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x3f3e3d3c3b3a39383736353433323130 (0.743122, 0.00284155, 1.08604e-05, 4.14886e-08) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.00179e+34, -3.84962e+31, -1.47890e+29, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.00825e-34, 3.82047e-37, nan, -2.60629e+36) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17161514131211100f0e0d0c0b0a0908 (4.84942e-25, 1.84362e-27, 7.00365e-30, 2.65846e-32) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x27262524232221201f1e1d1c1b1a1918 (2.30573e-15, 8.78905e-18, 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.49430e+33, -9.58428e+30, -3.68172e+28, -1.41390e+26) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.50175e-35, 9.47771e-38, -1.68804e+38, -6.48966e+35) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x161514131211100f0e0d0c0b0a090807 (1.20425e-25, 4.57737e-28, 1.73854e-30, 6.59782e-33) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x262524232221201f1e1d1c1b1a191817 (5.72948e-16, 2.18366e-18, 8.31732e-21, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x363534333231302f2e2d2c2b2a292827 (2.70015e-06, 1.03137e-08, 3.93749e-11, 1.50241e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x464544434241403f3e3d3c3b3a393837 (12625.1, 48.3127, 0.184800, 0.000706557) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x565554535251504f4e4d4c4b4a494847 (5.86395e+13, 2.24749e+11, 8.61082e+08, 3.29781e+06) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x3534333231302f2e2d2c2b2a29282726 (6.71297e-07, 2.56382e-09, 9.78665e-12, 3.73374e-14) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x4544434241403f3e3d3c3b3a39383736 (3140.20, 12.0154, 0.0459549, 0.000175682) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x5554535251504f4e4d4c4b4a49484746 (1.45909e+13, 5.59177e+10, 2.14218e+08, 820340.) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6564636261605f5e5d5c5b5a59585756 (6.74083e+22, 2.58684e+20, 9.92399e+17, 3.80591e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e6d6c6b6a69686766 (3.09878e+32, 1.19058e+30, 4.57302e+27, 1.75599e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x64636261605f5e5d5c5b5a5958575655 (1.67780e+22, 6.43816e+19, 2.46969e+17, 9.47063e+14) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x74737271706f6e6d6c6b6a6968676665 (7.71514e+31, 2.96402e+29, 1.13840e+27, 4.37102e+24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.09178e-36, -1.17085e-38, 5.22300e+36, 2.00766e+34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v0: 0x838281807f7e7d7c7b7a797877767574 (-7.67045e-37, 3.38275e+38, 1.30054e+36, 4.99878e+33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000008b8a898887868584 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000939291908f8e8d8c <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000008a89888786858483 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000009291908f8e8d8c8b <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000009a99989796959493 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a9a8a7a6a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000b1b0afaeadacabaa <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000c0bfbebdbcbbbab9 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000c8c7c6c5c4c3c2c1 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000d0cfcecdcccbcac9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000cfcecdcccbcac9c8 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0f0e0d0c0b0a09080706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0e0d0c0b0a09080706050403020100ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x1e1d1c1b1a191817161514131211100f <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2e2d2c2b2a292827262524232221201f <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3d3c3b3a393837363534333231302f <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x1d1c1b1a191817161514131211100f0e <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x2d2c2b2a292827262524232221201f1e <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3a393837363534333231302f2e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x4d4c4b4a494847464544434241403f3e <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x5d5c5b5a595857565554535251504f4e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x4c4b4a494847464544434241403f3e3d <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5c5b5a595857565554535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x6c6b6a696867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x6b6a696867666564636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3a39383736353433323130012e <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x6c6b6a6b6867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x737271706f6e6d6c636261605f5e5d5c (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x7271706f6e6d6c6b2726252423222120 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3aff013736353433323130012e <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xff0000850002ff01d6d5d4d37473d0cf <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5c5b5a595857737254535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.99878e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.24460e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x77777777777777777777777777777777 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0x76767676767676767676767676767676 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000ff0000850002ff01 (d25: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007e7d7c7b7a797877 (d9: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000007d7c7b7a79787776 (d23: 2.91053e+296) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x8584838281807f7e8584838281807f7e (-4.41447e-282, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84838281807f7e7d84838281807f7e7d (-6.40629e-287, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000002ff010002ff01 (s24: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000008887868588878685 (s26: -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000008786858487868584 (s28: -2.02406e-34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000008988898889888988 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000008887888788878887 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (..., -2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x8b8a89888b8a89888b8a89888b8a8988 (..., -5.33626e-32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000008c8c8c8c8c8c8c8c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1e1c1a18000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1d1b1917000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xacaaa8a6a4a2a09e9c9a98969492908e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0x1700000000000000ff0000850002ff01 (6.68887e-198, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.56775e-159, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.70315e+18, -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.31369e+57, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.90391e+13, -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.92941e+52, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000000fffeff0002ff01 (..., 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000d6d5d4d3cecdcccb (..., -1.17555e+14, -1.72638e+09) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000dad9d8d7d2d1d0cf (..., -3.06592e+16, -4.50576e+11) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000d5d4d3d2cdcccbca (..., -2.92508e+13, -4.29488e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000d9d8d7d6d1d0cfce (..., -7.62949e+15, -1.12105e+11) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e7e6e3e2dfdedbda <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e9e8e5e4e1e0dddc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e6e5e2e1dedddad9 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e8e7e4e3e0dfdcdb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x1b1a19180000000000fffeff0002ff01 (1.27467e-22, 0.00000, 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1700000000000000ff000085 (3.34819e-20, 4.13590e-25, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.53999e-36, -1.04669e+37, -1.54621e+32, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.06322e-34, 2.35095e-38, -4.02346e+34, -5.94046e+29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.82047e-37, -2.60629e+36, -3.84962e+31, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.00825e-34, nan, -1.00179e+34, -1.47890e+29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000171513110f0d0b09 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001513110f0d0b0907 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c1918000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a17000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3433302f2c2b28272423201f1c1b1817 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x363532312e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v13: 0x33322f2e2b2a272623221f1e1b1a1716 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x353431302d2c2928252421201d1c1918 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x363532012e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1dff1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x4544434241403f3e363c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0706050403020100fffefdfcfb35f9f8 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c1918000000000000feff0036ff01 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000003e3d3c3b3a393837 (d26: 6.80687e-09) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000464544434241403f (d27: 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v25: 0x07060504fffefdfc3d3c3b3a39383736 (d25: 1.00298e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000004544434241403f3e (d26: 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v18: 0xff01000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00020000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000474600003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xff01000049480000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c191800000000000046450036ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a1700000000004847ff000002 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xff00008500000000000046450036ff01 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000000000004c4b4a49 (s28: 5.32913e+07) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002ff0103020100fffefdfc504f4e4d (s29: 1.39121e+10) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.32570e+07, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.46117e+09, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x51515151515151515151515151515151 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 (d26: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000000000000000fffeff (d27: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000005857565554535251 (d14: 3.67814e+117) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0000000000000000605f5e5d5c5b5a59 (d15: 1.68234e+156) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000005756555453525150 (d23: 5.37096e+112) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000005f5e5d5c5b5a5958 (d24: 2.48489e+151) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x67666564636261606766656463626160 (1.24732e+190, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.76650e+228, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x666564636261605f666564636261605f (1.81795e+185, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.50866e+223, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000002ff010002ff01 (s26: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ff000085ff000085 (s27: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000007271706f7271706f (s22: 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000007675747376757473 (s23: 1.24460e+33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x000000000000000071706f6e71706f6e (s2: 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000007574737275747372 (s3: 3.09878e+32) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007776777677767776 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000007978797879787978 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000007675767576757675 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000007877787778777877 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (..., 5.22300e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (..., -1.17085e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x7b7a79787b7a79787b7a79787b7a7978 (..., 1.30054e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (..., 3.38275e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000008181818181818181 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000007f7f7f7f7f7f7f7f <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x82818281828182818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x84838483848384838483848384838483 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v25: 0x81808180818081808180818081808180 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x83828382838283828382838283828382 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2d2a2724211e1b1800000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x2e2b2825221f1c1900000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2f2c292623201d1a1700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0xb0adaaa7a4a19e9b9895928f8c898683 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.56775e-159, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x27262524232221200000000000fffeff (4.28794e-120, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2f2e2d2c2b2a29281700000000000000 (1.98829e-81, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.07279e+90, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.47908e+129, -3.90391e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.10851e+168, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.30639e+86, -1.21867e-30) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.56908e+124, -5.62003e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.03668e+163, -2.82942e+47) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000001700000000fffeff (..., 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000f1f0efeee5e4e3e2 (..., -2.38613e+30, -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000f5f4f3f2e9e8e7e6 (..., -6.21029e+32, -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000f9f8f7f6edecebea (..., -1.61590e+35, -9.16546e+27) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000f0efeeede4e3e2e1 (..., -5.94046e+29, -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000f4f3f2f1e8e7e6e5 (..., -1.54621e+32, -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f7f6f5ecebeae9 (..., -4.02346e+34, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000000000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000c0b060500fffaf9 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000e0d08070201fcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000100f0a090403fefd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000d0c07060100fbfa <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000f0e09080302fdfc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x272625241b1a1918000000000002ff01 (2.30573e-15, 1.27467e-22, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.04532e-13, 3.34819e-20, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c232221201700000000fffeff (1.58413e-10, 8.78905e-18, 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x373635342b2a29281f1e1d1c13121110 (1.08604e-05, 6.04532e-13, 3.34819e-20, 1.84362e-27) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161514 (0.00284155, 1.58413e-10, 8.78905e-18, 4.84942e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3f3e3d3c33323130272625241b1a1918 (0.743122, 4.14886e-08, 2.30573e-15, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x363534332a2928271e1d1c1b1211100f (2.70015e-06, 1.50241e-13, 8.31732e-21, 4.57737e-28) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x3a3938372e2d2c2b2221201f16151413 (0.000706557, 3.93749e-11, 2.18366e-18, 1.20425e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x3e3d3c3b3231302f262524231a191817 (0.184800, 1.03137e-08, 5.72948e-16, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x000000000000000000000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x000000000000000000000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000001700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000005653504d4a474441 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000053504d4a4744413e <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2b2a25241f1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272621201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6e696863625d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a65645f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c676661605b5a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x807f7a7974736e6d686762615c5b5655 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x82817c7b7675706f6a6964635e5d5857 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84837e7d787772716c6b6665605f5a59 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000001000000f5f4f3f2e9e8e7e6 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2b2a2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272602201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x82818281828186818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000087000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161586 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a696867ff0000850002ff01 (d16: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000474600000000000000fffeff (d17: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd2d1d0cfcecdcccb1700000000000000 (d18: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84837e7d787772718e8d8c8b8a898887 (d30: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000969594939291908f (d31: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (d0: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.09028e-243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x9594939291908f8e6a6964635e5d5857 (-1.02545e-204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.85140e-166, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6e6968ff015d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c008561605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x9f9e2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xa1a0272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xa3a2292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671709e9d00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e79787372a09f008561605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a696867a2a100850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0002ff01ff1e191800000000ff00ff01 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xff00008502201b1a00000000feff0084 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00fffeff23221d1c1700000000ff0085 (2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.14938e-15, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000aaa9a8a7969594939291908f (..., -3.01375e-13, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.89780e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a5a4a3a24744413e (..., -2.85603e-16, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.48978e-14, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.96304e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v24: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0xadadadadadadadadadadadadadadadad <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000b7b6b5b4b3b2b1b0 (d7: -2.60696e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000bfbebdbcbbbab9b8 (d8: -0.120083) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000c7c6c5c4c3c2c1c0 (d9: -6.05398e+37) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000b6b5b4b3b2b1b0af (d17: -3.80205e-45) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000bebdbcbbbab9b8b7 (d18: -1.77248e-06) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000c6c5c4c3c2c1c0bf (d19: -8.83040e+32) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.11344e+71, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.05087e+110, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.54613e+148, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.06516e+66, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.98548e+105, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.40766e+144, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000002ff010002ff01 (s10: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000ff000085ff000085 (s11: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000fffeff00fffeff (s12: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000e1e0dfdee1e0dfde (s0: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e5e4e3e2e5e4e3e2 (s1: -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e9e8e7e6e9e8e7e6 (s2: -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e0dfdedde0dfdedd (s23: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e4e3e2e1e4e3e2e1 (s24: -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e6e5e8e7e6e5 (s25: -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000eae9eae9eae9eae9 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000ecebecebecebeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000eeedeeedeeedeeed <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000e9e8e9e8e9e8e9e8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000ebeaebeaebeaebea <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000edecedecedecedec <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (..., -2.38613e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (..., -6.21029e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (..., -1.61590e+35, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (..., -5.94046e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (..., -1.54621e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (..., -4.02346e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000fbfbfbfbfbfbfbfb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0x3c3834302c2824201c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3d3935312d2925211d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3a36322e2a26221e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3f3b37332f2b27231f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3f3b37332f2b27231f1b17130f0b0703 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3b37332f2b27231f1b17130f0b0703ff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v18: 0x2726252423222120ff0000850002ff01 (4.28794e-120, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.98829e-81, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x37363534333231301700000000000000 (9.95833e-43, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.000461414, 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x666564636261605f464544434241403f (1.81795e+185, 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.50866e+223, 1.57975e+69) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x767574737271706f565554535251504f (4.22243e+262, 7.82703e+107) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.97467e+301, 3.66628e+146) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x6564636261605f5e4544434241403f3e (2.64379e+180, 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.25402e+219, 2.32790e+64) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e5554535251504f4e (6.14144e+257, 1.13810e+103) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.91053e+296, 5.40301e+141) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000017000000ff000085 (..., 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001b1a191800fffeff (..., 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001f1e1d1c00000000 (..., 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x000000000000000091908f8e81807f7e (..., -2.28077e-28, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000009594939285848382 (..., -6.00095e-26, -1.24615e-35) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000009998979689888786 (..., -1.57777e-23, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000009d9c9b9a8d8c8b8a (..., -4.14537e-21, -8.66176e-31) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000908f8e8d807f7e7d (..., -5.66232e-29, -1.17085e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000009493929184838281 (..., -1.49010e-26, -3.09178e-36) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000009897969588878685 (..., -3.91846e-24, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009c9b9a998c8b8a89 (..., -1.02970e-21, -2.14997e-31) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0x000000000000000019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000b6b5aeada6a59e9d <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000b8b7b0afa8a7a09f <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000bab9b2b1aaa9a2a1 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000bcbbb4b3acaba4a3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000b5b4adaca5a49d9c <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b7b6afaea7a69f9e <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000b9b8b1b0a9a8a1a0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000bbbab3b2abaaa3a2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x3332313023222120000000000002ff01 (4.14886e-08, 8.78905e-18, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x373635342726252417000000ff000085 (1.08604e-05, 2.30573e-15, 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a39382b2a29281b1a191800fffeff (0.00284155, 6.04532e-13, 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.743122, 1.58413e-10, 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.47890e+29, -3.21185e+19, -6.93919e+09, -1.49017) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.84962e+31, -8.37048e+21, -1.81093e+12, -389.514) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.00179e+34, -2.18077e+24, -4.72428e+14, -101772.) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.60629e+36, -5.67986e+26, -1.23202e+17, -2.65799e+07) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.68172e+28, -7.99345e+18, -1.72638e+09, -0.370581) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.58428e+30, -2.08336e+21, -4.50576e+11, -96.8765) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.49430e+33, -5.42822e+23, -1.17555e+14, -25314.4) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.48966e+35, -1.41390e+26, -3.06592e+16, -6.61207e+06) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000001c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000001d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a16120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x000000000000000016120e0a0602fefa <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v25: 0x393831302928212019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a33322b2a23221b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35342d2c25241d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x53524b4a43423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x55544d4c45443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x57564f4e47463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x59585150494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x52514a4942413a3932312a2922211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2b24231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d26251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f2827201f <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x52514a4942413a3932312a2901211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2bff231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d02251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f0027201f <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000fbfbfbfb59fbfbfb <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65a5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000001c1800005cff8501 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35342d2c25241d58000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f5917000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000195a110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a5b120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff0000850002ff011f5917000000ff00 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000fffeff195a110d090501fd (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17000000000000001a5b120e0a0602fe (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x636261605f5e5d5c1c1800005cff8501 (5.54935e+170, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6b6a6968676665641d19000000fe00ff (2.71346e+209, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7b7a7978777675741f1b17000000ff00 (6.29888e+286, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.00514e+165, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x6a696867666564631e1a000000ff0002 (3.98304e+204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x7a797877767574731f1e17000000ff00 (9.24687e+281, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x5352ff0143423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x5554000245443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x5756008547463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5958ff00494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5958ff00494841407c7b313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000007e7d0f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00007b7a00000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29281b1a191800fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000002ff010703fffb (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00007b7a00000000ff000085080400fc (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c0000000000fffeff090501fd (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x393831308584838219180000feffff01 (..., -1.24615e-35, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.28683e-33, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.66176e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.28077e-28, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v8: 0x848382810000000000fffeff090501fd (-3.09178e-36, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x888786852b2a29280000000000fffeff (-8.15664e-34, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x908f8e8d00000000fafafafafafafafa (-5.66232e-29, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x94949494949494949494949494949494 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v9: 0x90909090909090909090909090909090 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000ff0000850002ff01 (d8: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000fffeff (d9: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000001700000000000000 (d10: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000001f1e1d1c1b1a1918 (d11: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000009b9a999897969594 (d4: -1.05028e-175) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000a3a2a1a09f9e9d9c (d5: -5.00653e-137) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000abaaa9a8a7a6a5a4 (d6: -2.43801e-98) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000b3b2b1b0afaeadac (d7: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000009a99989796959493 (d26: -1.54211e-180) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000a2a1a09f9e9d9c9b (d27: -7.22772e-142) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000aaa9a8a7a6a5a4a3 (d28: -3.58004e-103) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000b2b1b0afaeadacab (d29: -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.31108e-26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.90391e+13, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.92941e+52, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.07279e+90, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.21867e-30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.62003e+08, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.82942e+47, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.30639e+86, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000002ff010002ff01 (s31: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000ff000085ff000085 (s0: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x000000000000000000fffeff00fffeff (s1: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000000 (s2: 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000d5d4d3d2d5d4d3d2 (s28: -2.92508e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000d9d8d7d6d9d8d7d6 (s29: -7.62949e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000dddcdbdadddcdbda (s30: -1.98932e+18) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000e1e0dfdee1e0dfde (s31: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000d4d3d2d1d4d3d2d1 (s11: -7.27820e+12) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000d8d7d6d5d8d7d6d5 (s12: -1.89854e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000dcdbdad9dcdbdad9 (s13: -4.95069e+17) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000e0dfdedde0dfdedd (s14: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000e2e1e2e1e2e1e2e1 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e4e3e4e3e4e3e4e3 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e6e5e6e5e6e5e6e5 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e8e7e8e7e8e7 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000e1e0e1e0e1e0e1e0 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000e3e2e3e2e3e2e3e2 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000e5e4e5e4e5e4e5e4 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e7e6e7e6e7e6e7e6 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (..., -5.67986e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xefeeedecefeeedecefeeedecefeeedec (..., -1.47890e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (..., -3.84962e+31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (..., -1.00179e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (..., -1.41390e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xeeedecebeeedecebeeedecebeeedeceb (..., -3.68172e+28, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (..., -9.58428e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (..., -2.49430e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f6f6f6f6f6f6f6f6 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x01000100010001000100010001000100 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002000200020002e73aed42f34af952
-#    v6: 0x0000000000000000dcbb11e0e6481e68
-#    v9: 0x00000000000000000000000000fffeff
-#    v5: 0x0000000000000000a4a2261ba09e2217
-#   v24: 0x000000000000000082b3330de36793c1
-#   v12: 0x00000000000000006f49f4f5e911f705
-#   v10: 0x00000000000000001700000000000000
-#    v3: 0x000000000000000035342d2c25221f1b
-#   v19: 0xfe070c07fe070c07fe070c07fe070c07
-#    v6: 0x0000000000000000dcbb11e0e6481e68
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
-#   v28: 0x00000000000000000100010001000100
-#    v2: 0x0000000000000000ac03d811ac03d811
-#   v18: 0x000000000000000000fffeff00fffeff
-#    v6: 0x00000000000000006347100f6cd41c97
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
-#   v26: 0x0000000000000000bd4365396d436539
-#   v10: 0x00000000000000008800000000000000
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000000000000000e3e2
-#   v26: 0x000000000000000000000000fe070c07
-#   v26: 0x0000000000000000d4d3d2d1d4d3d2d1
-#   v20: 0x0000000000000000f9f9f9f9f9f9f9f9
-#   v19: 0xfe070f07fe070c07fe070c07fe070c07
-#    v4: 0x00000000000000009b9a999897969594
-#   v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
-#    v3: 0x00000000000000000000000000000000
-#   v29: 0x000200020002ff00e73aed42f34af952
-#    v2: 0x0000000c00000000ac03d811ac03d811
-#   v22: 0x00000000000000000000000000000000
-#   v24: 0x000000000000000082b3330de36793c1
-#   x18: 0x0000000000000000
-#   x28: 0xe3e2e3e2e3e2e3e2
-#   v24: 0x000000000000000000ffff0000ffffff
-#   v29: 0x80808080808080808080808080808080
-#   v12: 0xffff00ff00ffff00ffff00ff00ffff00
-#   v12: 0x0000000000000000ec000000ec000000
-#   v10: 0x0000000000000000004cffff004cffff
-#   v26: 0x000000000000000000c000c000c000c0
-#   v24: 0x00980000009800000098000000980000
-#    v1: 0x00deffff00deffff00deffff00deffff
-#   v21: 0x00000000000000004d4d4d4d4d4d4d4d
-#   v29: 0x00690069006900690069006900690069
-#    v1: 0x4700008e4b00007a4700008e4b00007a
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
-#   v19: 0x00000000000000000000000000000000
-#   v29: 0x0000000000000000427957e1427957e1
-#    v2: 0x00000000000000000000000000000000
-#   v25: 0x000000000000000042ff40c042ff40c0
-#   v26: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x0000000000000000470049004b004d00
-#   v20: 0x48004a004c004e0048004a004c004e00
-#   v29: 0x00000000000000000000000000000000
-#   v13: 0xffffffffffffffffe03d1120e03d1120
-#   v28: 0x0000000000000000ffffffffffffffff
-#   v25: 0x0000000000000000ffff47ffffff47ff
-#   v17: 0x0000000000000000ff930000ff930000
-#   v29: 0x0000000000000000ffb7ffb7ffb7ffb7
-#   v20: 0xff85ffffff85ffffff85ffffff85ffff
-#    v0: 0xffffe100ffffe100ffffe100ffffe100
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
-#   v25: 0x0000000000000000b8ffb6ffb4ffb300
-#    v4: 0x00000000000000000000000000010201
-#   v11: 0x0000000000000000470049004b004d00
-#    v7: 0x0000000000000000ff000101ff000101
-#    v7: 0x00000000000000004648484a4a4c4c4e
-#   v17: 0x0000000000000000ff000101ff000101
-#   v20: 0x00000000000000000100ffff0100ffff
-#    v0: 0x0000000000000000b900b700b500b300
-#   v13: 0x003e003e003e003e473e493e4b3e4d3e
-#   v22: 0x0000000000000000ffffffffffffffff
-#   v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
-#    v8: 0x0000000000000000ff0000e70002ffe3
-#   v11: 0x0000000000000000d700df00df00df00
-#    v7: 0x000000ab000000ab464848eb4a4c4cef
-#    v8: 0x00000000000000000000000000010201
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
-#   v11: 0x000000000000000000a9a8a900a9a8a9
-#    v8: 0x00000000000000000030000000100000
-#   v24: 0x0000555555aa55550000555555aa5555
-#   v13: 0x00000000000000000000000000000000
-#   v22: 0x000000000000000000000000200feede
-#    v5: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000fdfdfdfd9da5d974
-#    v9: 0x00000000000000000000000000fffeff
-#   v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
-#    v0: 0x0000000046004a04b900b700b500b300
-#   v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
-#   v30: 0x00000000000000000000000000000000
-#   v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
-#    v5: 0x00000000000000000000000001020100
-#   v16: 0x0000000000000000a76e9d2f75fed8a5
-#   v20: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000ffffffffffffffff
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000075fed8a5a76e9d2f
-#    v7: 0x0000000000000000fefffefffefffeff
-#   v15: 0x0000000000000000d8a575fe9d2fa76e
-#   v25: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000009d2fa76ed8a575fe
-#   v18: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v3: 0x0000000063106d1d0000000000000000
-#    v0: 0x00000000dbffdc00b900b700b500b300
-#   v27: 0x000000003a5fb14bfffefffefffefffe
-#   v15: 0x00000000000000000000000000000000
-#   v23: 0x000000000000000000009cf000000000
-#    v6: 0x000000000000000000abaaab00abaaab
-#    v4: 0x00555655005556550000000000010201
-#    v1: 0x62e2129262e2af824700008e4b00007a
-#   v19: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000ffffffffffffffff
-#    v9: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000fffbfdfbfffbfdfb
-#   v29: 0x000000003a5fb14b75b7d85e58486286
-#   v20: 0x00000000000000001e3d11201e3d1120
-#   v27: 0x000000003a5fb14b0003020300030203
-#   v20: 0x00000000010001011e3d11201f3d1221
-#    v4: 0x005585f20055c4fc00005a290001058d
-#   v23: 0x001e003d0044003500369d8300430034
-#   v26: 0x00000000000000009d2fa76ed8a575fe
-#   v27: 0x000000003a5fb14b0003020300030203
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
-#    v0: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000100010101000101
-#   v17: 0x00000000000000002fa270ac5a23007a
-#    v7: 0x633798855327f7af62e26cbc52d33840
-#   v23: 0x0000000000000000632f596e285b7502
-#   v20: 0x000000000000000075ff275a589162d0
-#   v27: 0x00000000d8e139ed00000000ab639583
-#   v31: 0x000012d0000032140000303600001232
-#    v0: 0x007500010027005a00ad00d200cd004d
-#   v31: 0x00000000000000000000000063106d1d
-#   v26: 0x00000000000000000000271f000039ed
-#    v6: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000003000000010610c
-#   v12: 0x00000000000000002f9d6ea7a5d95f81
-#   v12: 0x00000000000000002f9d95c6a5d9996e
-#    v4: 0x0000000000000000004759b7004c0607
-#   v15: 0x00000000000000000100a14f01005b9e
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
-#    v5: 0xffffffffd6dfd5daffffffff7687b151
-#   v18: 0x00000100ffffa14f0000010000005b9e
-#   v15: 0x0063002f0059006e0028005b00750002
-#   v16: 0x0000000000000000ffffffffd8e139ed
-#    v6: 0x0000007500005556000055d1000055af
-#    v7: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffd8e139ec
-#   v18: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000004600000026
-#   v10: 0x00007574000012640000478e00004b7a
-#    v0: 0x0000000000000000ffe1ffcdffe1ffcd
-#   v12: 0x00000000000000000000000000000000
-#   v14: 0x0000000000000000000000000000fff8
-#   v30: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000000012cc
-#   v24: 0x00000000000000009d2fa76ed8a575fe
-#   v13: 0x00000000000055d100000000000055af
-#   v19: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000632f596e285b7502
-#   v15: 0x00000000000000000000000000000000
-#    v7: 0x000000000000000000232cdb00260303
-#   v29: 0x0000000000000000ce97d3b7ec52baff
-#   v31: 0x0000000000000000000023c700005094
-#   v21: 0x000000000000000000180000000839ec
-#   v14: 0x0000000000000000b5dae012cc3fc326
-#   v19: 0x00000000000000000997e764189b6c67
-#   v22: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000008000000000800000
-#    v2: 0x000000000000000036e00980c0e00000
-#    v4: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000ff00ff00ff00ff00
-#    v4: 0x0000000000000000c700000094000000
-#   v18: 0x00000000000000000000000000004830
-#    v0: 0x0000000000000000e9783b70c528aff0
-#    v5: 0x9d2fa76e00000000d8a575fe00000000
-#   v26: 0x75ff0000275a00005891000062d00000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x62e200001292000062e20000af820000
-#   v30: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000002e212926700008e4
-#   v29: 0x00000000000000000000000000000090
-#   v17: 0x00000000000000000000000000000024
-#    v5: 0x00000000000000002e212926700008e4
-#   v24: 0x317157c12580003d9d2fa76ed8a575fe
-#    v5: 0x00000000b5dacc3f2e212926700008e4
-#   v30: 0x31f1000009c90000ffd9d3c9c393c5ff
-#   v22: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000dc80ffb9da80ffc3
-#   v10: 0x0000000000000000ce805349ebda7605
-#    v6: 0x00000000000000000000ee1c0000d836
-#    v8: 0x0000000000000000ffe811e3fff8f7c4
-#   v19: 0x000000000000000000000000090b6c67
-#    v9: 0x317157c12580003d9d2fa76ed8a575fe
-#   v22: 0xc55f04960000f400be9dbb6295d7f800
-#   v11: 0x0000000000000000000fa76e000575fe
-#   v16: 0x0000000000000000000000000000000c
-#    v8: 0x0000000000000000c7e811e389f8f7c4
-#   v10: 0x0000000000000000ffd9d3c9c393c5ff
-#    v7: 0x0000000000000000ffe3ffdbffe6ffc3
-#   v18: 0x6200120062000000470011e34b00007a
-#   v30: 0x00000000000000004700008e700008e4
-#   v17: 0x000000000000000000000000090b6c67
-#    v1: 0x317157c12580003d000023c700005094
-#   v17: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x75ff0000275a00005891000062d00000
-#   v12: 0x00000000ffffffff00000000da123f26
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#   v10: 0x0000000000000000ffd9c5ff00000090
-#   v18: 0x00000000ffe6ffc375ff000062d00000
-#   v21: 0x000000000000000075006200787028f0
-#   v26: 0x00000000000000000000000011e3f7c4
-#    v4: 0x00000000000000000000000000000070
-#   v23: 0x00000000000000000000000000000078
-#    v6: 0x00000000000000000000000000003b70
-#   v24: 0x000000000000000000000000000011e3
-#    v3: 0x0000000000000000000000000000000c
-#   v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
-#   v29: 0x0000000000000000c7e811e389f8f7c4
-#    v6: 0x00000000000000005891000062d00000
-#   v24: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000000000000000000c
-#   v12: 0x0000000000000000ffd9c5ff00000090
-#   v13: 0x00000000ffffffff0000e6c3ff00d000
-#   v22: 0x000000000000000000000000ffffffff
-#   v15: 0x0000000000000000292608e4c5ff0000
-#   v15: 0x0000000000000000000000009d2fa76e
-#   v21: 0x00000000000000009100d000e080c000
-#   v21: 0x000000000000000000000000c5ff0000
-#    v8: 0x00000000000000000000000000000091
-#    v6: 0x000000000000000000000000000000d0
-#   v20: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000009d2f
-#   v21: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#    v7: 0x00000000000000000000000000009d2f
-#   v19: 0x0000000000000000000000000906ca9b
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#   v30: 0x00000000000000004700008e700008e4
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#   v17: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x75ff0000275a00005891000062d00000
-#   v30: 0x00000000000000004700008e700008e4
-#    v1: 0x317157c12580003d000023c700005094
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#    v0: 0x0000000000000000e9783b70c7c032a0
-#    v3: 0x0000000000000000000000000000000c
-#    v4: 0x000000000000000003c9f8c001c2e9f0
-#   v14: 0x0000000000000000b5dae012cc3fc326
-#   v15: 0x0000000000000000f9797b018bdbc6de
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#    v6: 0x000000000000000000000000000000d0
-#   v30: 0x00000000000000004700008e700008e4
-#   x21: 0x0000000000000000
-#   x13: 0x0000000000000000
-#   x24: 0x0000000000000000
-#    x7: 0x00000000000003c9
-#   x29: 0x0000000000000000
-#    v4: 0x15a6d000c90fc48aedb876b6692ad888
-#   v30: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000042ae0
-#    v8: 0x185dc92015d7004009b45060e2e7be40
-#   v31: 0x00000000f3d5e78200000000249000d8
-#    v3: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000062d05891275a8a02
-#   v31: 0x00000000000000000000000000000001
-#    v8: 0x000000000000000000000000383fcd60
-#   v14: 0x0000000000000000000000000000632f
-#   v23: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000001687c490383fcd60
-#   v29: 0x000000000000000016793c70383f3360
-#   v17: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000060
-#    v2: 0x00000000000000000000000011e3f7c4
-#    v7: 0x00000000000000000000000000003360
-#   v11: 0x00000000000000000000000000003360
-#   v20: 0x000000000000000016793c70383f336c
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v8: 0x00000000000000000000000011e3f7c4
-#   v20: 0x0000000000000000ffd9c5ff00000090
-#   v14: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000016792233373f0360
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000060
-#   v14: 0x000000000000000000000000ffe772e8
-#   v30: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v8: 0x0672308605c005640fa6a0001322041c
-#    v1: 0x317157c12580003d000023c700005094
-#   v19: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000011e3f7c4
-#    v6: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000ffffffc0b8e63400
-#   v10: 0x0000000000000000ffffffc0b8e66400
-#   v30: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000000000000ff00d000
-#   v27: 0xffffffffece2ff800000004ffccf8000
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v22: 0x000000000000000000000000ffffffff
-#   v12: 0x0000000000000000ffd9c5ff00000090
-#   v20: 0x0000000000000000ffd9c5ff00000090
-#   v25: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000000000000000ff70
-#   v16: 0x00000000000000000000000000000391
-#    v1: 0x00000000000000000000000000000000
-#    v1: 0x0000000000000000000000000000018a
-#   v28: 0x0000000000000000000000000000003a
-#   v28: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000fffe0529
-#   v25: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000fff726ef1b546ce0
-#   v29: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000e59831500
-#   v18: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000060
-#   v24: 0x0000000000000000ffffffffffffffa0
-#   v29: 0x00000000000000000000000000000000
-#    v4: 0x000000000000000000000000ffffffa0
-#   v14: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000263a00ffffff70
-#   v28: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000010060
-#    v9: 0x00000000000000000000000000000000
-#   v20: 0x000000000000000001273b0100000070
-#   v27: 0x000000000000000000010040471a9c00
-#    v7: 0x0000000000000000000000000000ffda
-#   v14: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v22: 0x0000000000000000ffa408a4ff20b5ee
-#   v22: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v2: 0x0000000000000000000000000000fff1
-#   v16: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000007fffffffffffffff
-#   v28: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v19: 0x000000000000000000000000ed800048
-#   v19: 0x000000000000000000000000ed800048
-#   v29: 0x00000000000000007fffffffffffffff
-#   v12: 0x0000000000000040ffd9c5ff00000090
-#   v16: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000000000000e598315
-#   v31: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000000000000004ffff
-#   v24: 0x0000000000000000ffffffffffffffa0
-#   v22: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000000000000e598315
-#    v6: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000007fed000000000
-#   v20: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v6: 0x0000000000000000000000000e598315
-#    v0: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v24: 0x00000000000200000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#    v8: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v30: 0x00000000002000000000000000000000
-#    v1: 0x00000000000000000000000000000080
-#   v31: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v14: 0x0000000000077f7f0000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v31: 0x000000000000ffff0000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000000000000007ffff
-#   v10: 0x00000000000000000010000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v27: 0x00000001000000000000000000000000
-#   v23: 0x0000ffff000000000000000e59831500
-#   v19: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000010000000000000
-#    v8: 0x000000000000000000000000ffff000f
-#   v18: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000fff0000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000800000000e59831500
-#   v13: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v26: 0x000000000000000000000000ffff0000
-#    v7: 0x00000000000000000000000000000000
-#   v21: 0x000007ff000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000800000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000040
-#   v24: 0x00000000000000000000000000007ff9
-#    v6: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v23: 0x0000000000000080000000005f8f1000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000000000000000b0002
-#   v27: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000040
-#   v29: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000040
-#   v22: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000fe0000000000000000
-#   v20: 0x00000000000000000000000000000020
-#    v0: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v18: 0x00000000000000000000000000000000
-#   v21: 0x000000000000000000000000000000c0
-#   v31: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000000000000000b0002
-#   v23: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000020000000
-#   v11: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#    v3: 0x00000000000000000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#   v29: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000020
-#   v14: 0x00000000000000000000000000000001
-#   v18: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000040
-#   v13: 0x0000000000000000ffffffffffffffe1
-#    v5: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v21: 0x000000000000000000000000ffff8007
-#   v30: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007ff9
-#   v31: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000ffffffffffffffc0
-#   v20: 0x00000000000000000000000000007ff9
-#    v8: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000000000000ffff8007
-#   v24: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000010180f9
-#   v20: 0x0000000000000000000100010001001f
-#    v5: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000ff0000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v20: 0x000000000000ffff000100010001001f
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000ffffffffffffffe1
-#    v0: 0x00000000000000000000000000000040
-#   v22: 0x00000000000000000000000000000000
-#   v24: 0x000000000000007f0000000000000000
-#   v26: 0x00000000000000000000000000000001
-#    v7: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000007fff7fff7fff7fff
-#    v4: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v31: 0x00000000000000000000000000000000
-#   v16: 0x0000000000010001000000000001001f
-#   v27: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000100000001
-#   v25: 0x00000000000000000000000000000000
-#   v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
-#    v3: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#    v6: 0x01010101010101010101010101010101
-#   v13: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#    v2: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000ff00ff0000000000
-#   v24: 0x00000000000000000000010100000101
-#    v2: 0x000000000000000000000000ff00ff00
-#   v25: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000001
-#    v9: 0x00000000000000000000000000000000
-#    v6: 0x01010101010101010101010100020001
-#   v16: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ff00ff0000000001
-#   v10: 0x00000000ff00ff000000000000000000
-#   v30: 0x0000ff000000ff00ff01fe000000c000
-#    v4: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#   v26: 0x00000000000000000000000000000001
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#   v18: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000001
-#   v20: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v9: 0x000000000000000000000000ff00ff01
-#   v14: 0x00000000000000000000000000000001
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ff00ff0000000001
-#    v1: 0x00000000000000000000000000000001
-#   v31: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v5: 0x00000000010101010000000001010101
-#    v1: 0x00000000000000000000010100000101
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x000000000000000000000000ff00ff01
-#   v26: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000010100000101
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000ff00ff
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000001
-#    v9: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000010100000101
-#   v18: 0x00000000010101010000000001010101
-#   v17: 0x0000000000000000ff00ff0000000001
-#   v29: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000008000800000000000800080
-#    v1: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v26: 0x00000000ff7f7f7f00000000ff7f7f7f
-#    v3: 0x0000000000000000000000007f007f00
-#   v25: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000ff00ff
-#   v20: 0x000000000000000000000000ff7f7f7f
-#    v0: 0x00000000000000000000000001010101
-#    v6: 0x00000000000000000000000000ff00ff
-#    v0: 0x000000000000000000000000ff7fff7f
-#    v4: 0x00000000000000000000000000000000
-#    v1: 0x0000000000000000000000000000ffff
-#   v19: 0x00000000000000000000000100000000
-#   v21: 0x00000000000000000000ff0100000000
-#    v9: 0x000000000000000000000000ff7f7f7f
-#   v13: 0x000000000000000000000000000000ff
-#   v19: 0x0000ff7f0000ff7f0000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v31: 0x0000000000000000000000000000ff00
-#   v15: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#   v22: 0x0000000000000000000000000000ff01
-#    v1: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v24: 0x000000000000000000000000000000ff
-#   v20: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v21: 0x0000000000000000000000000000ff7f
-#    v0: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007e81
-#   v17: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007e81
-#   v15: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#    v7: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#   v28: 0x00000000000000000000000000ff00ff
-#   v11: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v10: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    lr: 0x0000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000000000ff
-#   v27: 0x00000000000000000000000000007e81
-#    v7: 0x000000000000000000000000000000ff
-#   v28: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000000000000000ff7f
-#   v16: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x0000000000000000000000000000ff00
-#   v23: 0x0000000000000000000000007f007f00
-#   v17: 0x00000000000000000000000000007e81
-#   v10: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v10: 0x000000000000000000000000000000ff
-#    v9: 0x0000000000000000000000000000ff01
-#   v24: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000008
-#   v10: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000001fe0
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000400000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000200000000000000ff
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x000000000000000000000000000000ff
-#   v23: 0x00000000000000000000000000ff00ff
-#    v8: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000000000000000000ff
-#    v6: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000003fc0000
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000000000000ffffffff
-#   v28: 0x00000000000000000000000000000000
-#    v4: 0x0000000000000000000000000000fd02
-#    v9: 0x00000000000000000000000000007f80
-#   v18: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000008
-#   v26: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000ff00ff
-#   v14: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000007e81
-#   v10: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000001fe0
-#   v23: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v29: 0x000000000000ffff0000000000000000
-#   v13: 0x0000000000007e810000000000000000
-#   v28: 0x0000000000007e810000000000000000
-#   v23: 0x0000000000000000ffffffffffffffff
-#   v27: 0xffffffffffffffffffffffffffffffff
-#    v2: 0x80808080808080808080808080808080
-#   v15: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000007e81
-#    v2: 0x80000000800000008000000080000000
-#    v5: 0x00000000000000000000000000003f41
-#   v30: 0x40000000400000004000000040000000
-#    v4: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v14: 0x0000000000000000ffffffffffffffff
-#   v10: 0x00000000000000000000000000000008
-#   v15: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v30: 0xffffffffffffffffffffffffffffffff
-#    v4: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000010
-#    v4: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000ffffffffffffffff
-#   v28: 0xffffffffffffffffffffffffffffffff
-#   v27: 0x0000000000000000ffffffffffffffff
-#   v18: 0x00000000000000000000000000001010
-#   v26: 0x00000000000000400000000000000040
-#    v8: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v18: 0x00000000000000000008000800081018
-#   v31: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000008
-#   v14: 0x0000000000000000ffffffffffffffff
-#   v22: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000000000000007e8100
-#   v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
-#    v8: 0x000000000000000000000000007fff80
-#   v29: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000000000007f007f00
-#   v31: 0x00000000000000000000000000000000
-#    v8: 0x000000000000000000000000007fff80
-#   v18: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000000000007e007e00
-#   v12: 0x0000000000000000000000007e007e00
-#   v28: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000008
-#    v4: 0x0000000000000000000000000000003f
-#    v9: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v29: 0x0000000000000000000000007e007e00
-#   v29: 0x00000000000000000000000000000000
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
-#    v1: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v9: 0x0000000000000000ffffffffffffffff
-#   v20: 0x0000000000000000000000007e007e00
-#   v25: 0x000000000000000000000000007fff80
-#   v18: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v30: 0x000000000000008100000000ffffffff
-#    v7: 0x00000000000000000000000000000040
-#   v26: 0x0000000000000000000000007e007e00
-#   v14: 0x00000000000000000000000000000000
-#   v17: 0x00000081ffffffff0000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v17: 0xff01ff01ff01ff400000000000000000
-#    v8: 0x0000000000007e7e0000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v25: 0x000000000000000001fe01fe01fe01fe
-#   v31: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000ff01ff0100000000
-#   v17: 0x0000000000000000000000007e007e00
-#    v3: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000001010000
-#    v0: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
-#   v23: 0x000000000000000001fe01fe01fe01fe
-#   v26: 0x0000000000000000ffffffff00000000
-#    v1: 0x00000000000000000000ffff0040ffff
-#    v0: 0x000000000000000000000000ffffffff
-#   v30: 0x0000000000000000007e0000007e0000
-#   v17: 0x0000ff010000ff010000000000000000
-#   v23: 0x0100fe000100fe000100fe000100fe00
-#   v30: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v0: 0x0100fe00000000000100fe0000000000
-#   v25: 0x00000000000000000001000000fe0000
-#    v7: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000001000000fe0000
-#   v14: 0x000000000000000001fe01fe01fe01fe
-#    v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
-#    v1: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000001000000fe0000
-#   v18: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffffffffff
-#   v30: 0xffffffffffffffff0000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v22: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000100fe000100fe00
-#   v16: 0x01fe01fe01fe01feffffffffffffffff
-#   v27: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000000000000180fe00
-#   v21: 0x020e01fe01fe01fe0000000000000000
-#   v31: 0x000000000000000000000000ffffffff
-#   v13: 0x00000000000000000000000000000000
-#   v17: 0xffffffffffffffff0000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v24: 0x0000000000000000ffffffffffffffff
-#    v8: 0xffffffffffffffff0000000000000000
-#   v26: 0xffffffffffffffff0000000000000000
-#   v27: 0xffffffffffffffffffffffffffffffff
-#   v22: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffffffffff
-#   v29: 0x00000000000000000000000000000000
-#   v22: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v15: 0xffffffffffffffffffffffffffffffff
-#   v21: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v14: 0xffffffff00000000ffffffff00000000
-#   v13: 0x00000000000000000000000000000000
-#    v4: 0xffffffffffffffffffffffffffffffff
-#   v24: 0x0000000000000000ffffffff00000000
-#    v8: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v8: 0x37a0000000000000381fc00000000000
-#   v27: 0xffffe000ffffe0000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v24: 0x377f0000377f0000377f0000377f0000
-#    v9: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v8: 0x37a00000000000000000000000000000
-#   v24: 0x0000000000000000377f0000377f0000
-#    v4: 0x0000000000000000ffffffffffffffff
-#   v25: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v31: 0x000000000000000000000000ffffffff
-#   v19: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x7ff00000000000007ff8000000000000
-#   v12: 0x00000000000000007fc000007fc00000
-#   v19: 0xffffffffffffffffffffffffffffffff
-#   v19: 0x37a00000000000000000000000000000
-#   v25: 0x00000000000000007fc000007fc00000
-#    v6: 0x7ff00000000000007ff8000000000000
-#   v16: 0x37a0000000000000000000000180fe00
-#   v15: 0x00000000000000000000000000000000
-#   v23: 0x37a0000000000000000000000180fe00
-#    v6: 0x000000000000000037a0000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v8: 0x37a00000000000007fc000007fc00000
-#   v13: 0x0000000000000000ffffffff7fc00000
-#   v15: 0xffffffff000000000000000000000000
-#   v27: 0x00000000000000000000000037a00000
-#   v20: 0x0000000000000000ffffffff00000000
-#   v18: 0x00000000000000000000000000000000
-#    v9: 0x00000000ffffffff37a0000000000000
-#    v7: 0x0000000000000000ffffffffffffffff
-#   v18: 0x000000000000000000000000ffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v25: 0x0000000000000000000000007fc00000
-#   v23: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v17: 0xffffffffffffffff0000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000007fc000007fc00000
-#   v24: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000037a00000
-#   v27: 0x00000000000000000000000037a00000
-#   v21: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v18: 0x000000000000000000000000ffffffff
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007fffffff
-#   v27: 0x00000000000000000000000037a00000
-#   v26: 0x00000000000000007fffffff00000000
-#   v14: 0xbfd6000000000000bfd6000000000000
-#   v26: 0x00000000000000003f6800003f680000
-#   v31: 0xc0a00000c0a00000c0a00000c0a00000
-#   v28: 0x00000000000000000000000000000000
-#   x18: 0x0000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000ffffffff
-#   v25: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v11: 0x7fc000007fc000007fc000007fffffff
-#   v28: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v1: 0x80000000000000008000000000000000
-#   v14: 0x00000000000000008000000080000000
-#    v5: 0x80000000800000008000000080000000
-#   v18: 0x7ff00000000000007ff0000000000000
-#   v10: 0x00000000000000007f8000007f800000
-#    v5: 0x7f8000007f800000474c80007f800000
-#   v22: 0x40000000000000004000000000000000
-#   v31: 0x00000000000000004000000040000000
-#   v18: 0x40000000400000004000000040000000
-#   v26: 0x0000000000000000ffffffff7fc00000
-#   v15: 0x0000000000000000ffffffff7fc00000
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000007fc000007fc00000
-#   v15: 0x7fc000007fc000007fc000007fffffff
-#   v17: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000007fc000007fffffff
-#    v1: 0x0000000000000000ffffffff00000000
-#   v24: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v29: 0x7fc000007fc000007fc000007fffffff
-#   v10: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000004000000040000000
-#   v26: 0x00000000000000004000000040000000
-#   v24: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000007fc000007fc00000
-#   v20: 0x00000000000000000000000000000000
-#   v23: 0x7ff00000000000002006900000000000
-#    v9: 0x00000000000000007f8000007f800000
-#    v3: 0x7f8000007f8000000000000000000000
-#   v25: 0x3ff80000000000003ff8000000000000
-#    v9: 0x00000000000000003fc000003fc00000
-#    v5: 0x3fc000003fc000007fffffff3fc00000
-#    v6: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000003fb504f33fb504f3
-#   v31: 0x00000000000000007fc000007fffffff
-#   v11: 0x00000000000000007fc000007fc00000
-#   v16: 0x00000000000000007fc000007fffffff
-#   v25: 0x000000000000000043dff00000200000
-#   v10: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000004eff80004eff8000
-#   v18: 0x00000000000000000000000000000000
-#   v17: 0x4e7f00004e7f00004f0000004e7f0000
-#   v11: 0x00000000000000004287bfe03e000000
-#    v9: 0x43dfe000001fe0000000000000000000
-#   v26: 0x000000000000000040fff00000200000
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x7fc000007fc000000000000000000000
-#   v22: 0x4effe000000000004e001a4000000000
-#   v18: 0x4207bfc03d7f00000000000000000000
+#            d10:                 0x0000000000000000
+#            s22:                         0xffffffff
+#             d4:                 0xfffffc0000000000
+#            d11:                 0x0000000000000000
+#             h8:                             0x7c00
+#            h12:                             0xffff
+#            s12:                         0x00000000
+#            s27:                         0x42800000
+#            v28: 0x00000000000000007fffffffffffffff
+#             v3: 0x00000000000000000000000000000000
+#            w18:         0x00000000
+#            w29:         0x00000000
+#             x9: 0x0000000000000000
+#             lr: 0x0000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            w16:         0x00000000
+#            w18:         0x00000000
+#            x26: 0xffffffffffffffff
+#            x25: 0x0000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#             w9:         0x7fffffff
+#            w19:         0xffffffff
+#             x6: 0x7fffffffffffffff
+#            x22: 0xffffffffffffffff
+#            v27: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            w29:         0x00000000
+#            w26:         0x00000000
+#            x13: 0x0000000000000000
+#             x5: 0x0000000000000000
+#            v30: 0x00000000000000007fffffffffffffff
+#            v10: 0x00000000000000000000000000000000
+#            w21:         0x7fffffff
+#            w18:         0x00000000
+#             x8: 0x0000000000000000
+#            x17: 0x0000000000000000
+#             v0: 0x0000000000000000ffffffffffffffff
+#             v6: 0x00000000000000000000000000000000
+#            w29:         0x00000000
+#            w25:         0x00000000
+#             lr: 0x0000000000000000
+#            x27: 0x0000000000000000
+#            v11: 0x00000000000000000000000000000001
+#            v29: 0x00000000000000000000000000000000
+#            w15:         0x00000001
+#            w16:         0x00000000
+#            x13: 0x7fffffffffffffff
+#             x3: 0x0000000000000000
+#            v24: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
+#            w26:         0x00000000
+#            x27: 0x0000000000000000
+#            x29: 0x0000000000000001
+#            v12: 0x00000000000000000000000000000001
+#            v15: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             w6:         0x7fffffff
+#            w25:         0x00000000
+#             w9:         0x00000000
+#            w17:         0x00000000
+#            x19: 0x0000000000000000
+#            x22: 0x0000000000000000
+#            x14: 0x0000000000000000
+#             x3: 0x0000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            w11:         0x00000000
+#             w7:         0x00000000
+#            w18:         0x00000000
+#            w14:         0x00000000
+#            x22: 0x0000000000000000
+#             x8: 0x0000000000000000
+#             x7: 0x0000000000000000
+#            x22: 0x0000000000000000
+#             d6:                 0x7ff0000000000000 (inf)
+#            s26:                         0x00000000 (0.000)
+#            d18:                 0x7fffffffffffffff
+#            s13:                         0x00000000
+#            d12:                 0x0000000000000000 (0.000)
+#            s12:                         0x00000000 (0.000)
+#            d28:                 0x0000000000000000 (0.000)
+#             s6:                         0x00000000 (0.000)
+#            d20:                 0x7fffffffffffffff (nan)
+#             s7:                         0x87027800 (-9.815e-35)
+#            d19:                 0x0000000000000001 (4.941e-324)
+#             s0:                         0xffffffff (nan)
+#            d13:                 0x0000000000000000
+#             d2:                 0x0000000000000000
+#             d8:                 0xc004000000000000
+#             s5:                         0x00000000
+#            s25:                         0x00000001
+#            s21:                         0x40380000
+#            w18:         0x00000001
+#            x18: 0x0000000000000000
+#            d20:                 0xffffffffffffffff
+#             s5:                         0x00000000
+#            d30:                 0x0000000000000000 (0.000)
+#            s25:                         0x00000000 (0.000)
+#             v4: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            d15:                 0x80000000ffffffff (-2.122e-314)
+#            s14:                         0x7fffffff (nan)
+#             d0:                 0x87c0000086f277ff
+#             s0:                         0x7fffffff
+#            d19:                 0x8000000040380000
+#            s29:                         0x7fffffff
+#            d31:                 0x0000000000000000 (0.000)
+#            s18:                         0x80000000 (-0.000)
+#             v7: 0x00000000000000007ff0000000000000
+#            v29: 0x0000000000000000000000007f800000
+#            v11: 0x00000000000000004000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+#            v15: 0x00000000000000007fe0000000000000
+#             v5: 0x0000000000000000000000007f000000
+#            d16:                 0x0000000000000000 (0.000)
+#             s1:                         0xffffffff (nan)
+#            d19:                 0x0000000000000000 (0.000)
+#            s14:                         0x40400000 (3.000)
+#            d20:                 0x0000000000000000 (0.000)
+#             s1:                         0x00000000 (0.000)
+#            d30:                 0x0000000000000000 (0.000)
+#            s24:                         0x00000000 (0.000)
+#             d4:                 0x0000000000000000 (0.000)
+#            s13:                         0x00000000 (0.000)
+#            d13:                 0x0000000000000000 (0.000)
+#            s17:                         0x00000000 (0.000)
+#             d0:                 0xc000000000000000 (-2.000)
+#            s15:                         0x7f800000 (inf)
+#            v21: 0x00000000000000007ff0000000000000
+#            v17: 0x0000000000000000000000007f800000
+#             v4: 0x00000000000000003ff8000000000000
+#            v14: 0x0000000000000000000000003fc00000
+#            d14:                 0x1f56954b41cd4293 (1.028e-157)
+#             s4:                         0x40a21722 (5.065)
+#            d13:                 0xfff0000000000000 (-inf)
+#             s3:                         0x00000000 (0.000)
+#            v31: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             d6:                 0x0000000000000000
+#             d5:                 0x3f90000000000000
+#            d16:                 0x0000000000000000
+#            d15:                 0x0000000000000000
+#             v7: 0x00000000000000007ff000004e81442e
+#             v8: 0x0000000000000000c004000000000000
+#            s29:                         0x00000000
+#            s15:                         0x49800000
+#            s27:                         0x00000000
+#            s26:                         0x3c7fffff
+#             v0: 0x000000000000000043d21c000020e097
+#             v5: 0x00000000000000003effffffffe00000
+#            d30:                 0x0000000000000000
+#             d3:                 0x0000000000000000
+#            d28:                 0x41dfffffffc00000
+#            d27:                 0x0000000000000000
+#            v11: 0x0000000000000000400000004f7fe000
+#             v0: 0x000000000000000043d21c00480a8294
+#            s20:                         0x00000000
+#            s21:                         0x00000000
+#             s6:                         0x5f000000
+#             s7:                         0x38ff0000
+#            v19: 0x000000000000000043d21c00480a8294
+#            v16: 0x0000000000000000400000004f7f2000
+#             v0: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000003e01010101200000
+#            v29: 0x00000000000000000010000000000000
+#            v10: 0x00000000000000003f0000007f600000
+#            v31: 0x495000018a83940149500000d3029400
+#            v10: 0x495000018a83940168a6954c14cfd693
+#            v15: 0x00000000000000006328b14b89d7c527
+#            v27: 0x0000000000000000495000000a029400
+#            v25: 0x000000000000000041efffffffc00000
+#            v13: 0x00000000000000000000000037feffff
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x000000000000000000000000827f4696
+#            v10: 0x00000000000000000000000000003c7f
+#            v31: 0x0000000000000000000000000000ffff
+#            v16: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v31: 0x000000000000b87f000000000000ffff
+#            v14: 0x000000000000000043d21c00480a8294
+#             v3: 0x0000000020febf0000000000c4000000
+#             v8: 0x000000007f8000003effffffffe00000
+#            v22: 0x00000000000000003c7fffff00000000
+#            v29: 0x00000000000000005fd2ca9e00000000
+#            v30: 0x0000000000000000000000003c7fffff
+#            v12: 0x0000000000000000000037000000bbfe
+#            v17: 0x000000003700bbfe00007f803efeffe0
+#            v27: 0x00000000000000000000000000000075
+#            v12: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000003c7e
+#            v19: 0x00000000000000000000000000002a70
+#            v14: 0x00000000000000000000000000003c7e
+#            v10: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v26: 0x0000000020febf0000000000c4000000
+#             v7: 0x000000000000000000000000381b0000
+#            v28: 0x000000000000000040dfdcffdcc00000
+#            v29: 0x00000000000000005fd2ca1200000000
+#            v12: 0x0000000000000000000000000000ffff
+#            v18: 0x000000000000000000000000ff67ff67
+#            v12: 0x00000000007ebf000000000000000000
+#             v2: 0x0000000000000000495000008a828000
+#             v8: 0x000000007f8000003effffffcc000000
+#             v5: 0x00000000000000000000000000000000
+#             v9: 0x0100000008009801010000000800dc00
+#            v14: 0x000000000000000000000000c4000000
+#            v29: 0x07070707070707070707070707070707
+#            v21: 0x00000000000000000000001f0000001f
+#             v1: 0x0000000000000000000f000f000f000f
+#            v27: 0x0000001f0000001f0000001f0000001f
+#            v19: 0x00000000000000000707070707070707
+#            v15: 0x000f000f000f000f000f000f0001000f
+#             v1: 0x08080808080808080808080808080808
+#            v27: 0x00000000000000000000001100000002
+#             v9: 0x00000000000000000007001000040000
+#            v31: 0x0000000c0000000c0000000c0000000f
+#            v14: 0x00000000000000000505050505050505
+#             v6: 0x00100010001000100001001000010000
+#            v18: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v19: 0xffffffff000000ff0000000000ffffff
+#            v15: 0xffffffffffffffffff00ff00ff00ffff
+#            v12: 0xffffffffffffffffffffffffffffffff
+#             v8: 0xffffffffffffffff0000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000ffff00000000
+#            v16: 0x0000000000000000ffffffff00000000
+#            v21: 0xffffffff000000000000000000000000
+#             v6: 0xffffffffffffffff0000000000000000
+#            v16: 0x0000000000000000ffffffff00000000
+#            v21: 0x000000000000000000000000ffffffff
+#            v20: 0xffffffffffffffff000000000000ffff
+#            v26: 0x0000000000000000ffffffffffffffff
+#            v16: 0x00000000000000000000000000000000
+#            v25: 0x0000000000000000ffffffffffffffff
+#            v17: 0x0000000000ffffffffff00ff00ffffff
+#            v22: 0xffffffffffffffffffffffffffff0000
+#            v28: 0x0000000000000000ffffffffffffffff
+#             v6: 0xffffffffffffffffffffffffffffffff
+#            v25: 0x000000000000000000000000ffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
+#            v16: 0x0000000000000000ffffffff0000ffff
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v7: 0xffffffffffffffff0000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000ff00ff00ffff0000
+#            v21: 0x0000000000000000ffffffffffffffff
+#             v2: 0x0000000000000000ffffffffffffffff
+#            v19: 0xffffffffffffffff000000000000ffff
+#             v6: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v5: 0x0000000000000000ffffffffffffffff
+#            v12: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000000ffff
+#            v22: 0x00000000000000000000000000000000
+#             v5: 0x0000000000000000ffffffffffffffff
+#            v13: 0x00000000000000000000000000000000
+#            v27: 0x0000000000000000000000ff000000ff
+#             v5: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x000000000000000000000000ffffffff
+#            v31: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v11: 0x0000000000000000ffffffff00000000
+#             v1: 0x00000000000000000000000000000000
+#            v21: 0xffffffffffffffffffffffffffffffff
+#             v8: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000ffffffffffffffff
+#            v19: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000000000000000ffff
+#            v30: 0x0000000000000000ffffffffffffffff
+#             v0: 0xffffffff00ffffffffffffffffffffff
+#             v2: 0xffffffffffffffffffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#             v9: 0x0000000000000000ffffffffffffffff
+#             v9: 0xffffffffffffffffffffffffffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
+#            v29: 0xffffffffffffffffffffffffffffffff
+#            v25: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#            v25: 0x00000000000000000000000000000000
+#             v0: 0x0000000000000000ffffffff00000000
+#            v24: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000ffffffff00000000
+#             v1: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
+#            v26: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v11: 0x0000000000000000ff00ff00ffff0000
+#             v0: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000008080808
+#            v28: 0x00000000000000000000000000000000
+#             v6: 0xffffffffffffffffffffffffffffffff
+#             v9: 0x01010101010101010101010101010101
+#            v12: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ffffff7dffffff7d
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000ffffffffffffffff
+#            v31: 0x00000000000000000101010101010101
+#            v28: 0xffffffffffffffffffffffffffffffff
+#             v2: 0x00000000000000000000000000000000
+#            v29: 0x0000000000000000ffffff7df7f7f775
+#             v3: 0x0000000000000000ffffffffffffffff
+#             v1: 0xff000000000000000000000000000000
+#             v2: 0x000000000000000000ffffffffffffff
+#            v21: 0x3f3e3d3c3b3a39383736353433323130
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0b0a09080706050403020100fffefdfc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfb <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xeb <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xdb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v8: 0x0a09080706050403020100fffefdfcfb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xeb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3a393837363534333231302f2e2d2c2b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x2a292827262524232221201f1e1d1c1b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x1a191817161514131211100f0e0d0c0b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x393837363534333231302f2e2d2c2b2a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x292827262524232221201f1e1d1c1b1a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x191817161514131211100f0e0d0c0b0a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x595857565554535251504f4e4d4c4b4a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x494847464544434241403f3e3d3c3b3a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x5857565554535251504f4e4d4c4b4a49
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x49 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x4847464544434241403f3e3d3c3b3a39
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x6867666564636261605f5e5d5c5b5a59
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x68 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v4: 0x67666564636261605f5e5d5c5b5a5958
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8786858483828180 (-2.082e-272)
+#                                                  ╙─ 0x8786858483828180 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x7f7e7d7c7b7a7978 (1.338e+306)
+#                                                  ╙─ 0x7f7e7d7c7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x7776757473727170 (2.897e+267)
+#                                                  ╙─ 0x7776757473727170 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x6f6e6d6c6b6a6968 (5.766e+228)
+#                                                  ╙─ 0x6f6e6d6c6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x868584838281807f (-3.035e-277)
+#                                                  ╙─ 0x868584838281807f <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x767574737271706f (4.222e+262)
+#                                                  ╙─ 0x767574737271706f <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x6e6d6c6b6a696867 (8.509e+223)
+#                                                  ╙─ 0x6e6d6c6b6a696867 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x9e9d9c9b9a999897 (-3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x969594939291908f (-7.048e-200)
+#                                                  ╙─ 0x969594939291908f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8e8d8c8b8a898887 (-1.418e-238)
+#                                                  ╙─ 0x8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9d9c9b9a99989796 (-4.851e-166)
+#                                                  ╙─ 0x9d9c9b9a99989796 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x9594939291908f8e (-1.025e-204)
+#                                                  ╙─ 0x9594939291908f8e <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x8d8c8b8a89888786 (-2.090e-243)
+#                                                  ╙─ 0x8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xadacabaaa9a8a7a6 (-1.126e-88)
+#                                                  ╙─ 0xadacabaaa9a8a7a6 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xa5a4a3a2a1a09f9e (-2.382e-127)
+#                                                  ╙─ 0xa5a4a3a2a1a09f9e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xacabaaa9a8a7a6a5 (-1.658e-93)
+#                                                  ╙─ 0xacabaaa9a8a7a6a5 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xa4a3a2a1a09f9e9d (-3.458e-132)
+#                                                  ╙─ 0xa4a3a2a1a09f9e9d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xb4b3b2b1b0afaead (-8.033e-55)
+#                                                  ╙─ 0xb4b3b2b1b0afaead <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v31: 0x3f3e3d3c3b3a39383736353433323130 (0.0004614, 9.958e-43)
+#                                  ║               ╙─ 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.391e+250, -7.078e+211)
+#                                  ║               ╙─ 0xebeae9e8e7e6e5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.459e+173, -3.049e+134)
+#                                  ║               ╙─ 0xdbdad9d8d7d6d5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.281e+95, -1.314e+57)
+#                                  ║               ╙─ 0xcbcac9c8c7c6c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd3d2d1d0cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.703e+18, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.900e+245, -1.040e+207)
+#                                  ║               ╙─ 0xeae9e8e7e6e5e4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.109e+168, -4.479e+129)
+#                                  ║               ╙─ 0xdad9d8d7d6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.073e+90, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.904e+13, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2221201f1e1d1c1b1a19181716151413 (2.743e-144, 5.906e-183)
+#                                  ║               ╙─ 0x1a19181716151413 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1211100f0e0d0c0b0a09080706050403 (1.180e-221, 2.544e-260)
+#                                  ║               ╙─ 0x0a09080706050403 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.078e-299, -2.414e+284)
+#                                  ║               ╙─ 0xfaf9f8f7f6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x21201f1e1d1c1b1a1918171615141312 (3.940e-149, 8.651e-188)
+#                                  ║               ╙─ 0x1918171615141312 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x21201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x11100f0e0d0c0b0a0908070605040302 (1.695e-226, 3.726e-265)
+#                                  ║               ╙─ 0x0908070605040302 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x11100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.747e-304, -3.541e+279)
+#                                  ║               ╙─ 0xf9f8f7f6f5f4f3f2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0100fffefdfcfbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x41403f3e3d3c3b3a3938373635343332 (2.130e+06, 4.664e-33)
+#                                  ║               ╙─ 0x3938373635343332 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x41403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x31302f2e2d2c2b2a2928272625242322 (9.160e-72, 2.009e-110)
+#                                  ║               ╙─ 0x2928272625242322 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x31302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0x403f3e3d3c3b3a393837363534333231 (31.24, 6.821e-38)
+#                                  ║               ╙─ 0x3837363534333231 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x302f2e2d2c2b2a292827262524232221 (1.346e-76, 2.938e-115)
+#                                  ║               ╙─ 0x2827262524232221 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x302f2e2d2c2b2a29 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x504f4e4d4c4b4a494847464544434241 (7.250e+78, 1.584e+40)
+#                                  ║               ╙─ 0x4847464544434241 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x4f4e4d4c4b4a49484746454443424140 (1.071e+74, 2.313e+35)
+#                                  ║               ╙─ 0x4746454443424140 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x4f4e4d4c4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x1f1e1d1c1b1a1918 (3.348e-20, 1.275e-22)
+#                                          ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x6f6e6d6c6b6a6968 (7.379e+28, 2.834e+26)
+#                                          ║       ╙─ 0x6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x6766656463626160 (1.088e+24, 4.176e+21)
+#                                          ║       ╙─ 0x63626160 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x67666564 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0x5f5e5d5c5b5a5958 (1.602e+19, 6.146e+16)
+#                                          ║       ╙─ 0x5b5a5958 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x5756555453525150 (2.357e+14, 9.033e+11)
+#                                          ║       ╙─ 0x53525150 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x57565554 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x6e6d6c6b6a696867 (1.837e+28, 7.054e+25)
+#                                          ║       ╙─ 0x6a696867 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x666564636261605f (2.708e+23, 1.039e+21)
+#                                          ║       ╙─ 0x6261605f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x66656463 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x5e5d5c5b5a595857 (3.988e+18, 1.529e+16)
+#                                          ║       ╙─ 0x5a595857 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x565554535251504f (5.864e+13, 2.247e+11)
+#                                          ║       ╙─ 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x868584838281807f (-5.022e-35, -1.903e-37)
+#                                          ║       ╙─ 0x8281807f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x86858483 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (8.424e+37, 3.238e+35)
+#                                          ║       ╙─ 0x7a797877 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7e7d7c7b <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0x767574737271706f (1.245e+33, 4.782e+30)
+#                                          ║       ╙─ 0x7271706f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8584838281807f7e (-1.246e-35, -4.720e-38)
+#                                          ║       ╙─ 0x81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x85848382 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x7d7c7b7a79787776 (2.098e+37, 8.063e+34)
+#                                          ║       ╙─ 0x79787776 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7d7c7b7a <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x7574737271706f6e (3.099e+32, 1.191e+30)
+#                                          ║       ╙─ 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9594939291908f8e (-6.001e-26, -2.281e-28)
+#                                          ║       ╙─ 0x91908f8e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x95949392 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x8d8c8b8a89888786 (-8.662e-31, -3.287e-33)
+#                                          ║       ╙─ 0x89888786 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8d8c8b8a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x94939291908f8e8d (-1.490e-26, -5.662e-29)
+#                                          ║       ╙─ 0x908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x94939291 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0x8c8b8a8988878685 (-2.150e-31, -8.157e-34)
+#                                          ║       ╙─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x9c9b9a9998979695 (-1.030e-21, -3.918e-24)
+#                                          ║       ╙─ 0x98979695 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9b9a999897969594 (-2.558e-22, -9.731e-25)
+#                                          ║       ╙─ 0x97969594 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9b9a9998 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1f1e1d1c1b1a1918 (0.006950, 0.004990, 0.003468, 0.002487)
+#                                      ║   ║   ║   ╙─ 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d16:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xbbbab9b8b7b6b5b4 (-0.9658, -0.7148, -0.4819, -0.3564)
+#                                      ║   ║   ║   ╙─ 0xb5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb7b6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb9b8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xb3b2b1b0afaeadac (-0.2405, -0.1777, -0.1200, -0.08862)
+#                                      ║   ║   ║   ╙─ 0xadac <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xafae <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb1b0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb3b2 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xabaaa9a8a7a6a5a4 (-0.05988, -0.04419, -0.02988, -0.02203)
+#                                      ║   ║   ║   ╙─ 0xa5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa7a6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa9a8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xabaa <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xa3a2a1a09f9e9d9c (-0.01491, -0.01099, -0.007439, -0.005478)
+#                                      ║   ║   ║   ╙─ 0x9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9f9e <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa1a0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa3a2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3 (-0.8403, -0.5894, -0.4192, -0.2937)
+#                                      ║   ║   ║   ╙─ 0xb4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb6b5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb8b7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbab9 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab (-0.2091, -0.1464, -0.1043, -0.07294)
+#                                      ║   ║   ║   ╙─ 0xacab <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xaead <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb0af <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb2b1 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3 (-0.05203, -0.03635, -0.02596, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa8a7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xaaa9 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xa2a1a09f9e9d9c9b (-0.01295, -0.009026, -0.006458, -0.004498)
+#                                      ║   ║   ║   ╙─ 0x9c9b <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa09f <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa2a1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xd2d1d0cfcecdcccb (-54.53, -38.47, -27.20, -19.17)
+#                                      ║   ║   ║   ╙─ 0xcccb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcecd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xcac9c8c7c6c5c4c3 (-13.57, -9.555, -6.770, -4.762)
+#                                      ║   ║   ║   ╙─ 0xc4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc6c5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc8c7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xcac9 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xc2c1c0bfbebdbcbb (-3.377, -2.373, -1.685, -1.183)
+#                                      ║   ║   ║   ╙─ 0xbcbb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbebd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc0bf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc2c1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d5:                 0xd1d0cfcecdcccbca (-46.50, -31.22, -23.19, -15.58)
+#                                      ║   ║   ║   ╙─ 0xcbca <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcdcc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xcfce <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xc9c8c7c6c5c4c3c2 (-11.56, -7.773, -5.766, -3.879)
+#                                      ║   ║   ║   ╙─ 0xc3c2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc7c6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc9c8 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xc1c0bfbebdbcbbba (-2.875, -1.936, -1.434, -0.9658)
+#                                      ║   ║   ║   ╙─ 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbdbc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xbfbe <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc1c0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xe1e0dfdedddcdbda (-752.0, -503.5, -375.0, -251.2)
+#                                      ║   ║   ║   ╙─ 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xd9d8d7d6d5d4d3d2 (-187.0, -125.4, -93.25, -62.56)
+#                                      ║   ║   ║   ╙─ 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xe0dfdedddcdbdad9 (-623.5, -439.2, -310.8, -219.1)
+#                                      ║   ║   ║   ╙─ 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xd8d7d6d5d4d3d2d1 (-154.9, -109.3, -77.19, -54.53)
+#                                      ║   ║   ║   ╙─ 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe8e7e6e5e4e3e2e1 (-2510., -1765., -1251., -880.5)
+#                                      ║   ║   ║   ╙─ 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xe7e6e5e4e3e2e1e0 (-2022., -1508., -1009., -752.0)
+#                                      ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x3f3e3d3c3b3a39383736353433323130 (0.7431, 0.002842, 1.086e-05, 4.149e-08)
+#                          ║       ║       ║       ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x27262524232221201f1e1d1c1b1a1918 (2.306e-15, 8.789e-18, 3.348e-20, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x17161514131211100f0e0d0c0b0a0908 (4.849e-25, 1.844e-27, 7.004e-30, 2.658e-32)
+#                          ║       ║       ║       ╙─ 0x0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x17161514 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.008e-34, 3.820e-37, nan, -2.606e+36)
+#                          ║       ║       ║       ╙─ 0xfbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.002e+34, -3.850e+31, -1.479e+29, -5.680e+26)
+#                          ║       ║       ║       ╙─ 0xebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xefeeedec <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf7f6f5f4 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x262524232221201f1e1d1c1b1a191817 (5.729e-16, 2.184e-18, 8.317e-21, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2221201f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x26252423 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x161514131211100f0e0d0c0b0a090807 (1.204e-25, 4.577e-28, 1.739e-30, 6.598e-33)
+#                          ║       ║       ║       ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x16151413 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.502e-35, 9.478e-38, -1.688e+38, -6.490e+35)
+#                          ║       ║       ║       ╙─ 0xfaf9f8f7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x020100ff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x06050403 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.494e+33, -9.584e+30, -3.682e+28, -1.414e+26)
+#                          ║       ║       ║       ╙─ 0xeae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf2f1f0ef <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x565554535251504f4e4d4c4b4a494847 (5.864e+13, 2.247e+11, 8.611e+08, 3.298e+06)
+#                          ║       ║       ║       ╙─ 0x4a494847 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4e4d4c4b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0x464544434241403f3e3d3c3b3a393837 (1.263e+04, 48.31, 0.1848, 0.0007066)
+#                          ║       ║       ║       ╙─ 0x3a393837 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3e3d3c3b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x4241403f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x46454443 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x363534333231302f2e2d2c2b2a292827 (2.700e-06, 1.031e-08, 3.937e-11, 1.502e-13)
+#                          ║       ║       ║       ╙─ 0x2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x36353433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v17: 0x5554535251504f4e4d4c4b4a49484746 (1.459e+13, 5.592e+10, 2.142e+08, 8.203e+05)
+#                          ║       ║       ║       ╙─ 0x49484746 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x51504f4e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x55545352 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e3d3c3b3a39383736 (3140., 12.02, 0.04595, 0.0001757)
+#                          ║       ║       ║       ╙─ 0x39383736 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x41403f3e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x45444342 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3534333231302f2e2d2c2b2a29282726 (6.713e-07, 2.564e-09, 9.787e-12, 3.734e-14)
+#                          ║       ║       ║       ╙─ 0x29282726 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x31302f2e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x35343332 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x7574737271706f6e6d6c6b6a69686766 (3.099e+32, 1.191e+30, 4.573e+27, 1.756e+25)
+#                          ║       ║       ║       ╙─ 0x69686766 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6d6c6b6a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x6564636261605f5e5d5c5b5a59585756 (6.741e+22, 2.587e+20, 9.924e+17, 3.806e+15)
+#                          ║       ║       ║       ╙─ 0x59585756 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5d5c5b5a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x61605f5e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x65646362 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x74737271706f6e6d6c6b6a6968676665 (7.715e+31, 2.964e+29, 1.138e+27, 4.371e+24)
+#                          ║       ║       ║       ╙─ 0x68676665 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6c6b6a69 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x706f6e6d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x74737271 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0x64636261605f5e5d5c5b5a5958575655 (1.678e+22, 6.438e+19, 2.470e+17, 9.471e+14)
+#                          ║       ║       ║       ╙─ 0x58575655 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x605f5e5d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x64636261 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.092e-36, -1.171e-38, 5.223e+36, 2.008e+34)
+#                          ║       ║       ║       ╙─ 0x78777675 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x84838281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v0: 0x838281807f7e7d7c7b7a797877767574 (-7.670e-37, 3.383e+38, 1.301e+36, 4.999e+33)
+#                          ║       ║       ║       ╙─ 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x83828180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x1f1e1d1c1b1a1918
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xa3a2a1a09f9e9d9c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x9b9a999897969594
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9b <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x939291908f8e8d8c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x93 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x8b8a898887868584
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa2a1a09f9e9d9c9b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9a99989796959493
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x93 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x9291908f8e8d8c8b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x8a89888786858483
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x83 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xba <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xaa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xb9b8b7b6b5b4b3b2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0xb1b0afaeadacabaa
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xaa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa9a8a7a6a5a4a3a2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xc9c8c7c6c5c4c3c2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xc1c0bfbebdbcbbba
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xc8c7c6c5c4c3c2c1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xc0bfbebdbcbbbab9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xd0cfcecdcccbcac9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xcfcecdcccbcac9c8
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v8: 0x3f3e3d3c3b3a39383736353433323130 (1.811, 1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0f0e0d0c0b0a09080706050403020100 (0.0004306, 0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 (nan, nan, -6.534e+04, -4.890e+04, -3.261e+04, -2.438e+04, -1.627e+04, -1.216e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf1f0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf3f2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf5f4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf7f6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfbfa <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfdfc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 (-8120., -6064., -4052., -3024., -2022., -1508., -1009., -752.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe9e8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xebea <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xedec <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xefee <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 (-503.5, -375.0, -251.2, -187.0, -125.4, -93.25, -62.56, -46.50)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b0a09080706050403020100ff (0.0003693, 0.0002468, 0.0001842, 0.0001229, 9.185e-05, 6.121e-05, 3.058e-05, 1.520e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0201 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0605 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0807 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0a09 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0c0b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0e0d <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef (nan, nan, -5.712e+04, -4.067e+04, -2.850e+04, -2.027e+04, -1.422e+04, -1.010e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf0ef <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf2f1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf4f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf6f5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf8f7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfcfb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfefd <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df (-7092., -5036., -3538., -2510., -1765., -1251., -880.5, -623.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xeae9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xeceb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xeeed <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf (-439.2, -310.8, -219.1, -154.9, -109.3, -77.19, -54.53, -38.47)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3e3d3c3b3a393837363534333231302f (1.560, 1.058, 0.7778, 0.5269, 0.3879, 0.2625, 0.1935, 0.1307)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x302f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3433 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3635 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3837 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3c3b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2e2d2c2b2a292827262524232221201f (0.09650, 0.06512, 0.04813, 0.03244, 0.02400, 0.01616, 0.01197, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2e2d <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1e1d1c1b1a191817161514131211100f (0.005970, 0.004009, 0.002977, 0.001997, 0.001485, 0.0009947, 0.0007405, 0.0004954)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x100f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1211 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1413 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1615 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1e1d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a393837363534333231302f2e (1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x5d5c5b5a595857565554535251504f4e (343.0, 235.2, 171.0, 117.4, 85.25, 58.56, 42.50, 29.22)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4f4e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5150 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5554 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5958 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5b5a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857565554535251504f4e4d (278.8, 203.1, 138.9, 101.3, 69.19, 50.53, 34.47, 25.20)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4e4d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x504f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5251 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5453 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5857 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5a59 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5c5b <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x4c4b4a494847464544434241403f3e3d (17.17, 12.57, 8.555, 6.270, 4.262, 3.127, 2.123, 1.560)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x403f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4443 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4645 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4c4b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v9: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a696867666564636261605f5e5d (4524., 3282., 2254., 1637., 1123., 816.5, 559.5, 407.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5e5d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6463 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6665 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6a69 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6c6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x6b6a696867666564636261605f5e5d5c (3796., 2768., 1894., 1380., 945.0, 688.0, 471.5, 343.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6766 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6b6a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a39383736353433323130012e
+#                                                ╙─── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef
+#                                            ╙─────── 0x6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a6b6867666564636261605f5e5d
+#                          ╙───────────────────────── 0x6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.487e+303, ...)
+#                                  ╙───────────────── 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x737271706f6e6d6c636261605f5e5d5c (1.290e+248, ...)
+#                                  ╙───────────────── 0x737271706f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x7271706f6e6d6c6b2726252423222120 (1.861e+243, ...)
+#                                  ╙───────────────── 0x7271706f6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3aff013736353433323130012e (..., nan, ...)
+#                              ╙───────────────────── 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d37473d0cf (..., 1.822e+04, ...)
+#                                              ╙───── 0x7473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857737254535251504f4e4d (..., 1.525e+04, ...)
+#                                  ╙───────────────── 0x7372 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.751e-40, ...)
+#                                  ╙───────────────── 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.999e+33, ...)
+#                                  ╙───────────────── 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.245e+33, ...)
+#                                  ╙───────────────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x01010101010101010101010101010101
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x77777777777777777777777777777777
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x77 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x76767676767676767676767676767676
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x76 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x7d7c7b7a79787776 (2.911e+296)
+#                                                  ╙─ 0x7d7c7b7a79787776 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#                                  ╙───────────────╨─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8584838281807f7e8584838281807f7e (-4.414e-282, -4.414e-282)
+#                                  ╙───────────────╨─ 0x8584838281807f7e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84838281807f7e7d84838281807f7e7d (-6.406e-287, -6.406e-287)
+#                                  ╙───────────────╨─ 0x84838281807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#                                          ╙───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x8887868588878685 (-8.157e-34, -8.157e-34)
+#                                          ╙───────╨─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x8786858487868584 (-2.024e-34, -2.024e-34)
+#                                          ╙───────╨─ 0x87868584 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8988898889888988 (-0.0001688, -0.0001688, -0.0001688, -0.0001688)
+#                                      ╙───╨───╨───╨─ 0x8988 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x8887888788878887 (-0.0001382, -0.0001382, -0.0001382, -0.0001382)
+#                                      ╙───╨───╨───╨─ 0x8887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#                          ╙───────╨───────╨───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (-2.150e-31, -2.150e-31, -2.150e-31, -2.150e-31)
+#                          ╙───────╨───────╨───────╨─ 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0x8b8a89888b8a89888b8a89888b8a8988 (-5.336e-32, -5.336e-32, -5.336e-32, -5.336e-32)
+#                          ╙───────╨───────╨───────╨─ 0x8b8a8988 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x8c8c8c8c8c8c8c8c
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8b8b8b8b8b8b8b8b
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c (-0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8d8c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b (-0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8c8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1e1c1a18000000000000ffff00850201
+#            v22: 0x1f1d1b1917000000000000feff0000ff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x17'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1b'1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f'1e <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#            v22: 0xacaaa8a6a4a2a09e9c9a98969492908e
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x92'91 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x98'97 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa4'a3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaa'a9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xac'ab <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c
+#            v13: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x8f'8e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x95'94 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa1'a0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa7'a6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xa9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xab'aa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0x1700000000000000ff0000850002ff01 (6.689e-198, -5.487e+303)
+#            v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.568e-159, 8.289e-317)
+#                                  ║               ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.703e+18, -1.163e-59)
+#             v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.314e+57, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4'b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcbcac9c8c7c6c5c4'c3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.904e+13, -1.680e-64)
+#            v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.929e+52, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3'b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00fffeff0002ff01 (2.351e-38, 2.751e-40)
+#            d28:                 0x00000000ff000085 (0.000, -1.701e+38)
+#                                          ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xd6d5d4d3cecdcccb (-1.176e+14, -1.726e+09)
+#             d3:                 0xdad9d8d7d2d1d0cf (-3.066e+16, -4.506e+11)
+#                                          ║       ╙─ 0xd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xdad9d8d7'd6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xd5d4d3d2cdcccbca (-2.925e+13, -4.295e+08)
+#            d13:                 0xd9d8d7d6d1d0cfce (-7.629e+15, -1.121e+11)
+#                                          ║       ╙─ 0xd1d0cfce'cdcccbca <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x0000feff0085ff01 (0.000, nan, 7.927e-06, nan)
+#            d10:                 0x000000ffff000002 (0.000, 1.520e-05, nan, 1.192e-07)
+#                                      ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe7e6e3e2dfdedbda (-2022., -1009., -503.5, -251.2)
+#            d24:                 0xe9e8e5e4e1e0dddc (-3024., -1508., -752.0, -375.0)
+#                                      ║   ║   ║   ╙─ 0xdddc'dbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe1e0'dfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe9e8'e7e6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe6e5e2e1dedddad9 (-1765., -880.5, -439.2, -219.1)
+#             d2:                 0xe8e7e4e3e0dfdcdb (-2510., -1251., -623.5, -310.8)
+#                                      ║   ║   ║   ╙─ 0xdcdb'dad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe0df'dedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7'e6e5 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x1b1a19180000000000fffeff0002ff01 (1.275e-22, 0.000, 2.351e-38, 2.751e-40)
+#            v21: 0x1f1e1d1c1700000000000000ff000085 (3.348e-20, 4.136e-25, 0.000, -1.701e+38)
+#                          ║       ║       ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.540e-36, -1.047e+37, -1.546e+32, -2.282e+27)
+#            v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.063e-34, 2.351e-38, -4.023e+34, -5.940e+29)
+#                          ║       ║       ║       ╙─ 0xf0efeeed'ecebeae9 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf8f7f6f5'f4f3f2f1 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffefd'fcfbfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x08070605'04030201 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.820e-37, -2.606e+36, -3.850e+31, -5.680e+26)
+#            v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.008e-34, nan, -1.002e+34, -1.479e+29)
+#                          ║       ║       ║       ╙─ 0xefeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf7f6f5f4'f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xfffefdfc'fbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504'03020100 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000ffff00850201
+#            d18:                 0x000000feff0000ff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x161412100e0c0a08
+#            d14:                 0x171513110f0d0b09
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x09'08 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x11'10 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'16 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1513110f0d0b0907
+#             d8:                 0x161412100e0c0a08
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0a'09 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0e'0d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x16'15 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c1918000000000000feff0085ff01 (0.004990, 0.002487, 0.000, 0.000, 0.000, nan, 7.927e-06, nan)
+#            v31: 0x1f1e1b1a17000000000000ffff000002 (0.006950, 0.003468, 0.001709, 0.000, 0.000, 1.520e-05, nan, 1.192e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1700'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x3433302f2c2b28272423201f1c1b1817 (0.2625, 0.1307, 0.06512, 0.03244, 0.01616, 0.008049, 0.004009, 0.001997)
+#             v5: 0x363532312e2d2a29262522211e1d1a19 (0.3879, 0.1935, 0.09650, 0.04813, 0.02400, 0.01197, 0.005970, 0.002977)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1a19'1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1e1d'1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2221'201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625'2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2a29'2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2e2d'2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3231'302f <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3635'3433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x33322f2e2b2a272623221f1e1b1a1716 (0.2249, 0.1122, 0.05597, 0.02792, 0.01393, 0.006950, 0.003468, 0.001730)
+#            v14: 0x353431302d2c2928252421201d1c1918 (0.3252, 0.1621, 0.08081, 0.04028, 0.02008, 0.01001, 0.004990, 0.002487)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928'2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x363532012e2d2a29262522211e1d1a19
+#             v6: 0x1f1e1dff1b1a19181700000000000000
+#                          ╙───────────────────────── 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e363c3b3a39383736
+#            v17: 0x00000000000000003700ffff00850201
+#                                    ╙─────────────── 0x37'36 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfb35f9f8
+#            v30: 0x1d1c1918000000000000feff0036ff01
+#                                              ╙───── 0x36'35 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.487e+303, ...)
+#            v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.289e-317, ...)
+#                                  ╙───────────────── 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x00000000000000003e3d3c3b3a393837 (..., 6.807e-09)
+#            v27: 0x0000000000000000464544434241403f (..., 3.370e+30)
+#                                                  ╙─ 0x464544434241403f'3e3d3c3b3a393837 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x07060504fffefdfc3d3c3b3a39383736 (..., 1.003e-13)
+#            v26: 0x00000000000000004544434241403f3e (..., 4.899e+25)
+#                                                  ╙─ 0x4544434241403f3e'3d3c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0xff01000000000000000000feff0000ff (nan, ...)
+#            v19: 0x00020000000000008b8b8b8b8b8b8b8b (1.192e-07, ...)
+#                      ╙───────────────────────────── 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x00000000474600003700ffff00850201 (..., 7.273, ...)
+#            v18: 0xff01000049480000000000feff0000ff (..., 10.56, ...)
+#                              ╙───────────────────── 0x4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c191800000000000046450036ff01 (..., 6.270, ...)
+#            v31: 0x1f1e1b1a1700000000004847ff000002 (..., 8.555, ...)
+#                                          ╙───────── 0x4847'4645 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.751e-40, ...)
+#            v30: 0xff00008500000000000046450036ff01 (-1.701e+38, ...)
+#                          ╙───────────────────────── 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000000000000000004c4b4a49 (..., 5.329e+07)
+#            v29: 0x0002ff0103020100fffefdfc504f4e4d (..., 1.391e+10)
+#                                                  ╙─ 0x504f4e4d'4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.326e+07, ...)
+#             v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.461e+09, ...)
+#                                          ╙───────── 0x4f4e4d4c'4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x01010101010101010101010101010101
+#            v27: 0xffffffffffffffffffffffffffffffff
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x50505050505050505050505050505050
+#            v22: 0x51515151515151515151515151515151
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x51'50 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f
+#             v6: 0x50505050505050505050505050505050
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x50'4f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-5.487e+303)
+#            d27:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x5857565554535251 (3.678e+117)
+#            d15:                 0x605f5e5d5c5b5a59 (1.682e+156)
+#                                                  ╙─ 0x605f5e5d5c5b5a59'5857565554535251 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x5756555453525150 (5.371e+112)
+#            d24:                 0x5f5e5d5c5b5a5958 (2.485e+151)
+#                                                  ╙─ 0x5f5e5d5c5b5a5958'5756555453525150 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v12: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#                                  ╙───────────────╨─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x67666564636261606766656463626160 (1.247e+190, 1.247e+190)
+#            v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.766e+228, 5.766e+228)
+#                                  ╙───────────────╨─ 0x6f6e6d6c6b6a6968'6766656463626160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x666564636261605f666564636261605f (1.818e+185, 1.818e+185)
+#            v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.509e+223, 8.509e+223)
+#                                  ╙───────────────╨─ 0x6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d27:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#                                          ╙───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x7271706f7271706f (4.782e+30, 4.782e+30)
+#            d23:                 0x7675747376757473 (1.245e+33, 1.245e+33)
+#                                          ╙───────╨─ 0x76757473'7271706f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x71706f6e71706f6e (1.191e+30, 1.191e+30)
+#             d3:                 0x7574737275747372 (3.099e+32, 3.099e+32)
+#                                          ╙───────╨─ 0x75747372'71706f6e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#             d3:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                                      ╙───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7776777677767776 (3.056e+04, 3.056e+04, 3.056e+04, 3.056e+04)
+#            d10:                 0x7978797879787978 (4.480e+04, 4.480e+04, 4.480e+04, 4.480e+04)
+#                                      ╙───╨───╨───╨─ 0x7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x7675767576757675 (2.645e+04, 2.645e+04, 2.645e+04, 2.645e+04)
+#             d7:                 0x7877787778777877 (3.658e+04, 3.658e+04, 3.658e+04, 3.658e+04)
+#                                      ╙───╨───╨───╨─ 0x7877'7675 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#             v8: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#                          ╙───────╨───────╨───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (5.223e+36, 5.223e+36, 5.223e+36, 5.223e+36)
+#            v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (-1.171e-38, -1.171e-38, -1.171e-38, -1.171e-38)
+#                          ╙───────╨───────╨───────╨─ 0x807f7e7d'7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x7b7a79787b7a79787b7a79787b7a7978 (1.301e+36, 1.301e+36, 1.301e+36, 1.301e+36)
+#            v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (3.383e+38, 3.383e+38, 3.383e+38, 3.383e+38)
+#                          ╙───────╨───────╨───────╨─ 0x7f7e7d7c'7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#            d27:                 0xffffffffffffffff
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8080808080808080
+#            d21:                 0x8181818181818181
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x81'80 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x7f7f7f7f7f7f7f7f
+#            d12:                 0x8080808080808080
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x80'7f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v13: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x82818281828182818281828182818281 (-3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05)
+#             v7: 0x84838483848384838483848384838483 (-6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8483'8281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x81808180818081808180818081808180 (-2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05)
+#            v26: 0x83828382838283828382838283828382 (-5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2d2a2724211e1b1800000000fe000001
+#            v21: 0x2e2b2825221f1c1900000000ffff85ff
+#            v22: 0x2f2c292623201d1a1700000000ff0002
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x20'1f'1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x23'22'21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2c'2b'2a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f'2e'2d <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v29: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#            v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x89'88'87 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8c'8b'8a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8f'8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x95'94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x98'97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa1'a0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa4'a3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa7'a6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xaa'a9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xad'ac'ab <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb3'b2'b1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0xb0adaaa7a4a19e9b9895928f8c898683
+#            v21: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v22: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x85'84'83 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x88'87'86 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8b'8a'89 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8e'8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x91'90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x94'93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x97'96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9a'99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa3'a2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa6'a5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa9'a8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xac'ab'aa <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb2'b1'b0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.568e-159, -5.487e+303)
+#            v22: 0x27262524232221200000000000fffeff (4.288e-120, 8.289e-317)
+#            v23: 0x2f2e2d2c2b2a29281700000000000000 (1.988e-81, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928'2726252423222120'1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.073e+90, -8.311e-26)
+#            v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.479e+129, -3.904e+13)
+#            v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.109e+168, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb'dad9d8d7d6d5d4d3'd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.306e+86, -1.219e-30)
+#            v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.569e+124, -5.620e+08)
+#            v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.037e+163, -2.829e+47)
+#                                  ║               ╙─ 0xc9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe1e0dfdedddcdbda'd9d8d7d6d5d4d3d2'd1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x000000000002ff01 (0.000, 2.751e-40)
+#             d8:                 0x00000000ff000085 (0.000, -1.701e+38)
+#             d9:                 0x1700000000fffeff (4.136e-25, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xf1f0efeee5e4e3e2 (-2.386e+30, -1.351e+23)
+#            d21:                 0xf5f4f3f2e9e8e7e6 (-6.210e+32, -3.520e+25)
+#            d22:                 0xf9f8f7f6edecebea (-1.616e+35, -9.165e+27)
+#                                          ║       ╙─ 0xedecebea'e9e8e7e6'e5e4e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xf0efeeede4e3e2e1 (-5.940e+29, -3.363e+22)
+#            d27:                 0xf4f3f2f1e8e7e6e5 (-1.546e+32, -8.761e+24)
+#            d28:                 0xf8f7f6f5ecebeae9 (-4.023e+34, -2.282e+27)
+#                                          ║       ╙─ 0xecebeae9'e8e7e6e5'e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00000000ff00ff01 (0.000, 0.000, nan, nan)
+#            d28:                 0x00000000feff0002 (0.000, 0.000, nan, 1.192e-07)
+#            d29:                 0x1700000000ff0085 (0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                                      ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x0c0b060500fffaf9 (0.0002468, 9.185e-05, 1.520e-05, -5.712e+04)
+#            d29:                 0x0e0d08070201fcfb (0.0003693, 0.0001229, 3.058e-05, nan)
+#            d30:                 0x100f0a090403fefd (0.0004954, 0.0001842, 6.121e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0403'0201'00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0a09'0807'0605 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x100f'0e0d'0c0b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x0b0a0504fffef9f8 (0.0002148, 7.653e-05, nan, -4.890e+04)
+#             d8:                 0x0d0c07060100fbfa (0.0003080, 0.0001072, 1.526e-05, -6.534e+04)
+#             d9:                 0x0f0e09080302fdfc (0.0004306, 0.0001535, 4.590e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfdfc'fbfa'f9f8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0302'0100'fffe <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0908'0706'0504 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0f0e'0d0c'0b0a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x272625241b1a1918000000000002ff01 (2.306e-15, 1.275e-22, 0.000, 2.751e-40)
+#             v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.045e-13, 3.348e-20, 0.000, -1.701e+38)
+#             v4: 0x2f2e2d2c232221201700000000fffeff (1.584e-10, 8.789e-18, 4.136e-25, 2.351e-38)
+#                          ║       ║       ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120'1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c'2b2a2928'27262524 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x373635342b2a29281f1e1d1c13121110 (1.086e-05, 6.045e-13, 3.348e-20, 1.844e-27)
+#            v25: 0x3b3a39382f2e2d2c2322212017161514 (0.002842, 1.584e-10, 8.789e-18, 4.849e-25)
+#            v26: 0x3f3e3d3c33323130272625241b1a1918 (0.7431, 4.149e-08, 2.306e-15, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918'17161514'13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x33323130'2f2e2d2c'2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v11: 0x363534332a2928271e1d1c1b1211100f (2.700e-06, 1.502e-13, 8.317e-21, 4.577e-28)
+#            v12: 0x3a3938372e2d2c2b2221201f16151413 (0.0007066, 3.937e-11, 2.184e-18, 1.204e-25)
+#            v13: 0x3e3d3c3b3231302f262524231a191817 (0.1848, 1.031e-08, 5.729e-16, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817'16151413'1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x26252423'2221201f'1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f'2e2d2c2b'2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3e3d3c3b'3a393837'36353433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x00000000fe000001
+#            d30:                 0x00000000ffff85ff
+#            d31:                 0x1700000000ff0002
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x54514e4b4845423f
+#             d2:                 0x55524f4c49464340
+#             d3:                 0x5653504d4a474441
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x41'40'3f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x44'43'42 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x47'46'45 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x4a'49'48 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4d'4c'4b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x50'4f'4e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x53'52'51 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x56'55'54 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x53504d4a4744413e
+#            d13:                 0x54514e4b4845423f
+#            d14:                 0x55524f4c49464340
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40'3f'3e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x43'42'41 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x46'45'44 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x49'48'47 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4c'4b'4a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x4f'4e'4d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x52'51'50 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x55'54'53 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x2b2a25241f1e191800000000ff00ff01 (0.05597, 0.02008, 0.006950, 0.002487, 0.000, 0.000, nan, nan)
+#            v23: 0x2d2c272621201b1a00000000feff0002 (0.08081, 0.02792, 0.01001, 0.003468, 0.000, 0.000, nan, 1.192e-07)
+#            v24: 0x2f2e292823221d1c1700000000ff0085 (0.1122, 0.04028, 0.01393, 0.004990, 0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2322'2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2928'2726'2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e696863625d5c5756 (-2.289e-05, 6.125e+04, 2.234e+04, 7608., 2768., 945.0, 343.0, 117.4)
+#            v14: 0x83827d7c777671706b6a65645f5e5958 (-5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5, 171.0)
+#            v15: 0x85847f7e797873726d6c676661605b5a (-8.416e-05, nan, 4.480e+04, 1.525e+04, 5552., 1894., 688.0, 235.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5b5a'5958'5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6160'5f5e'5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6766'6564'6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6d6c'6b6a'6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7372'7170'6f6e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7978'7776'7574 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8584'8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x807f7a7974736e6d686762615c5b5655 (-7.570e-06, 5.302e+04, 1.822e+04, 6580., 2254., 816.5, 278.8, 101.3)
+#            v29: 0x82817c7b7675706f6a6964635e5d5857 (-3.821e-05, nan, 2.645e+04, 9080., 3282., 1123., 407.2, 138.9)
+#            v30: 0x84837e7d787772716c6b6665605f5a59 (-6.884e-05, nan, 3.658e+04, 1.319e+04, 4524., 1637., 559.5, 203.1)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5a59'5857'5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f'5e5d'5c5b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6665'6463'6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6c6b'6a69'6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7271'706f'6e6d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7877'7675'7473 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7e7d'7c7b'7a79 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8483'8281'807f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x0000000001000000f5f4f3f2e9e8e7e6
+#            v22: 0x2b2a2524ff1e191800000000ff00ff01
+#            v23: 0x2d2c272602201b1a00000000feff0002
+#                            ╙─────────────────────── 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f
+#             v6: 0x82818281828186818281828182818281
+#             v7: 0x00000000000087000b0a0504fffef9f8
+#                                ╙─────────────────── 0x87'86'85 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0x2d2c272602201b1a00000000feff0084
+#            v24: 0x2f2e292823221d1c1700000000ff0085
+#            v25: 0x3b3a39382f2e2d2c2322212017161586
+#                                                  ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6e6d6c6b6a696867ff0000850002ff01 (..., -5.487e+303)
+#            v17: 0x00000000474600000000000000fffeff (..., 8.289e-317)
+#            v18: 0xd2d1d0cfcecdcccb1700000000000000 (..., 6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84837e7d787772718e8d8c8b8a898887 (..., -1.418e-238)
+#            v31: 0x0000000000000000969594939291908f (..., -7.048e-200)
+#             v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (..., -3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897'969594939291908f'8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.090e-243, ...)
+#            v29: 0x9594939291908f8e6a6964635e5d5857 (-1.025e-204, ...)
+#            v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.851e-166, ...)
+#                                  ╙───────────────── 0x9d9c9b9a99989796'9594939291908f8e'8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e6968ff015d5c5756 (..., nan, ...)
+#            v14: 0x83827d7c777671706b6a00025f5e5958 (..., 1.192e-07, ...)
+#            v15: 0x85847f7e797873726d6c008561605b5a (..., 7.927e-06, ...)
+#                                          ╙───────── 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x9f9e2524ff1e191800000000ff00ff01 (-0.007439, ...)
+#            v23: 0xa1a0272602201b1a00000000feff0084 (-0.01099, ...)
+#            v24: 0xa3a2292823221d1c1700000000ff0085 (-0.01491, ...)
+#                      ╙───────────────────────────── 0xa3a2'a1a0'9f9e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0x83827d7c777671709e9d00025f5e5958 (..., -0.006458, ...)
+#            v15: 0x85847f7e79787372a09f008561605b5a (..., -0.009026, ...)
+#            v16: 0x6e6d6c6b6a696867a2a100850002ff01 (..., -0.01295, ...)
+#                                      ╙───────────── 0xa2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x0002ff01ff1e191800000000ff00ff01 (2.751e-40, ...)
+#            v23: 0xff00008502201b1a00000000feff0084 (-1.701e+38, ...)
+#            v24: 0x00fffeff23221d1c1700000000ff0085 (2.351e-38, ...)
+#                          ╙───────────────────────── 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.149e-15, ...)
+#            v31: 0x00000000aaa9a8a7969594939291908f (..., -3.014e-13, ...)
+#             v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.898e-11, ...)
+#                                  ╙───────────────── 0xaeadacab'aaa9a8a7'a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000a5a4a3a24744413e (..., -2.856e-16, ...)
+#            v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.490e-14, ...)
+#            v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.963e-11, ...)
+#                                          ╙───────── 0xadacabaa'a9a8a7a6'a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0x01010101010101010101010101010101
+#            v25: 0xffffffffffffffffffffffffffffffff
+#            v26: 0x02020202020202020202020202020202
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#            v25: 0xafafafafafafafafafafafafafafafaf
+#            v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v3: 0xadadadadadadadadadadadadadadadad
+#             v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#             v5: 0xafafafafafafafafafafafafafafafaf
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xb7b6b5b4b3b2b1b0 (-2.607e-40)
+#             d8:                 0xbfbebdbcbbbab9b8 (-0.1201)
+#             d9:                 0xc7c6c5c4c3c2c1c0 (-6.054e+37)
+#                                                  ╙─ 0xc7c6c5c4c3c2c1c0'bfbebdbcbbbab9b8'b7b6b5b4b3b2b1b0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xb6b5b4b3b2b1b0af (-3.802e-45)
+#            d18:                 0xbebdbcbbbab9b8b7 (-1.772e-06)
+#            d19:                 0xc6c5c4c3c2c1c0bf (-8.830e+32)
+#                                                  ╙─ 0xc6c5c4c3c2c1c0bf'bebdbcbbbab9b8b7'b6b5b4b3b2b1b0af <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v17: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v18: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#                                  ╙───────────────╨─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.113e+71, -4.113e+71)
+#            v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.051e+110, -2.051e+110)
+#            v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.546e+148, -9.546e+148)
+#                                  ╙───────────────╨─ 0xdedddcdbdad9d8d7'd6d5d4d3d2d1d0cf'cecdcccbcac9c8c7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.065e+66, -6.065e+66)
+#            v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.985e+105, -2.985e+105)
+#            v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.408e+144, -1.408e+144)
+#                                  ╙───────────────╨─ 0xdddcdbdad9d8d7d6'd5d4d3d2d1d0cfce'cdcccbcac9c8c7c6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d11:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#            d12:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#                                          ╙───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#             d1:                 0xe5e4e3e2e5e4e3e2 (-1.351e+23, -1.351e+23)
+#             d2:                 0xe9e8e7e6e9e8e7e6 (-3.520e+25, -3.520e+25)
+#                                          ╙───────╨─ 0xe9e8e7e6'e5e4e3e2'e1e0dfde <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#            d24:                 0xe4e3e2e1e4e3e2e1 (-3.363e+22, -3.363e+22)
+#            d25:                 0xe8e7e6e5e8e7e6e5 (-8.761e+24, -8.761e+24)
+#                                          ╙───────╨─ 0xe8e7e6e5'e4e3e2e1'e0dfdedd <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d23:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d24:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                                      ╙───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0xeae9eae9eae9eae9 (-3538., -3538., -3538., -3538.)
+#             d7:                 0xecebecebecebeceb (-5036., -5036., -5036., -5036.)
+#             d8:                 0xeeedeeedeeedeeed (-7092., -7092., -7092., -7092.)
+#                                      ╙───╨───╨───╨─ 0xeeed'eceb'eae9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xe9e8e9e8e9e8e9e8 (-3024., -3024., -3024., -3024.)
+#             d8:                 0xebeaebeaebeaebea (-4052., -4052., -4052., -4052.)
+#             d9:                 0xedecedecedecedec (-6064., -6064., -6064., -6064.)
+#                                      ╙───╨───╨───╨─ 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v27: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v28: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#                          ╙───────╨───────╨───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (-2.386e+30, -2.386e+30, -2.386e+30, -2.386e+30)
+#             v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (-6.210e+32, -6.210e+32, -6.210e+32, -6.210e+32)
+#             v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (-1.616e+35, -1.616e+35, -1.616e+35, -1.616e+35)
+#                          ╙───────╨───────╨───────╨─ 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (-5.940e+29, -5.940e+29, -5.940e+29, -5.940e+29)
+#            v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (-1.546e+32, -1.546e+32, -1.546e+32, -1.546e+32)
+#             v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (-4.023e+34, -4.023e+34, -4.023e+34, -4.023e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x0101010101010101
+#             d3:                 0xffffffffffffffff
+#             d4:                 0x0202020202020202
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xf9f9f9f9f9f9f9f9
+#            d11:                 0xfafafafafafafafa
+#            d12:                 0xfbfbfbfbfbfbfbfb
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfb'fa'f9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v7: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#             v8: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#             v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v9: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xfffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v3: 0x3c3834302c2824201c18000000ff8501
+#             v4: 0x3d3935312d2925211d19000000fe00ff
+#             v5: 0x3e3a36322e2a26221e1a000000ff0002
+#             v6: 0x3f3b37332f2b27231f1b17000000ff00
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x3c3834302c2824201c1814100c080400
+#             v3: 0x3d3935312d2925211d1915110d090501
+#             v4: 0x3e3a36322e2a26221e1a16120e0a0602
+#             v5: 0x3f3b37332f2b27231f1b17130f0b0703
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x03'02'01'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x07'06'05'04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0b'0a'09'08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0f'0e'0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x13'12'11'10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'16'15'14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3b37332f2b27231f1b17130f0b0703ff
+#             v6: 0x3c3834302c2824201c1814100c080400
+#             v7: 0x3d3935312d2925211d1915110d090501
+#             v8: 0x3e3a36322e2a26221e1a16120e0a0602
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1e'1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22'21'20'1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x26'25'24'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a'29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2e'2d'2c'2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x32'31'30'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x36'35'34'33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3a'39'38'37 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3e'3d'3c'3b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2726252423222120ff0000850002ff01 (4.288e-120, -5.487e+303)
+#            v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.988e-81, 8.289e-317)
+#            v20: 0x37363534333231301700000000000000 (9.958e-43, 6.689e-198)
+#            v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.0004614, 8.568e-159)
+#                                  ║               ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938'3736353433323130'2f2e2d2c2b2a2928'2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x666564636261605f464544434241403f (1.818e+185, 3.370e+30)
+#             v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.509e+223, 1.580e+69)
+#             v6: 0x767574737271706f565554535251504f (4.222e+262, 7.827e+107)
+#             v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.975e+301, 3.666e+146)
+#                                  ║               ╙─ 0x5e5d5c5b5a595857'565554535251504f'4e4d4c4b4a494847'464544434241403f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7e7d7c7b7a797877'767574737271706f'6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x6564636261605f5e4544434241403f3e (2.644e+180, 4.899e+25)
+#            v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.254e+219, 2.328e+64)
+#            v31: 0x7574737271706f6e5554535251504f4e (6.141e+257, 1.138e+103)
+#             v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.911e+296, 5.403e+141)
+#                                  ║               ╙─ 0x5d5c5b5a59585756'5554535251504f4e'4d4c4b4a49484746'4544434241403f3e <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7d7c7b7a79787776'7574737271706f6e'6d6c6b6a69686766'6564636261605f5e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x000000000002ff01 (0.000, 2.751e-40)
+#            d28:                 0x17000000ff000085 (4.136e-25, -1.701e+38)
+#            d29:                 0x1b1a191800fffeff (1.275e-22, 2.351e-38)
+#            d30:                 0x1f1e1d1c00000000 (3.348e-20, 0.000)
+#                                          ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x91908f8e81807f7e (-2.281e-28, -4.720e-38)
+#            d25:                 0x9594939285848382 (-6.001e-26, -1.246e-35)
+#            d26:                 0x9998979689888786 (-1.578e-23, -3.287e-33)
+#            d27:                 0x9d9c9b9a8d8c8b8a (-4.145e-21, -8.662e-31)
+#                                          ║       ╙─ 0x8d8c8b8a'89888786'85848382'81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9d9c9b9a'99989796'95949392'91908f8e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x908f8e8d807f7e7d (-5.662e-29, -1.171e-38)
+#             d5:                 0x9493929184838281 (-1.490e-26, -3.092e-36)
+#             d6:                 0x9897969588878685 (-3.918e-24, -8.157e-34)
+#             d7:                 0x9c9b9a998c8b8a89 (-1.030e-21, -2.150e-31)
+#                                          ║       ╙─ 0x8c8b8a89'88878685'84838281'807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99'98979695'94939291'908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d16:                 0x19180000feffff01 (0.002487, 0.000, nan, nan)
+#            d17:                 0x1b1a000000ff0002 (0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            d18:                 0x1d1c000000000085 (0.004990, 0.000, 0.000, 7.927e-06)
+#            d19:                 0x1f1e17000000ff00 (0.006950, 0.001709, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xb6b5aeada6a59e9d (-0.4192, -0.1043, -0.02596, -0.006458)
+#            d24:                 0xb8b7b0afa8a7a09f (-0.5894, -0.1464, -0.03635, -0.009026)
+#            d25:                 0xbab9b2b1aaa9a2a1 (-0.8403, -0.2091, -0.05203, -0.01295)
+#            d26:                 0xbcbbb4b3acaba4a3 (-1.183, -0.2937, -0.07294, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3'a2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xacab'aaa9'a8a7'a6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb4b3'b2b1'b0af'aead <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbcbb'bab9'b8b7'b6b5 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xb5b4adaca5a49d9c (-0.3564, -0.08862, -0.02203, -0.005478)
+#             d3:                 0xb7b6afaea7a69f9e (-0.4819, -0.1200, -0.02988, -0.007439)
+#             d4:                 0xb9b8b1b0a9a8a1a0 (-0.7148, -0.1777, -0.04419, -0.01099)
+#             d5:                 0xbbbab3b2abaaa3a2 (-0.9658, -0.2405, -0.05988, -0.01491)
+#                                      ║   ║   ║   ╙─ 0xa3a2'a1a0'9f9e'9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xabaa'a9a8'a7a6'a5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb3b2'b1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba'b9b8'b7b6'b5b4 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x3332313023222120000000000002ff01 (4.149e-08, 8.789e-18, 0.000, 2.751e-40)
+#             v8: 0x373635342726252417000000ff000085 (1.086e-05, 2.306e-15, 4.136e-25, -1.701e+38)
+#             v9: 0x3b3a39382b2a29281b1a191800fffeff (0.002842, 6.045e-13, 1.275e-22, 2.351e-38)
+#            v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.7431, 1.584e-10, 3.348e-20, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2f2e2d2c'2b2a2928'27262524'23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534'33323130 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#            v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.850e+31, -8.370e+21, -1.811e+12, -389.5)
+#            v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.002e+34, -2.181e+24, -4.724e+14, -1.018e+05)
+#            v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.606e+36, -5.680e+26, -1.232e+17, -2.658e+07)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.682e+28, -7.993e+18, -1.726e+09, -0.3706)
+#            v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.584e+30, -2.083e+21, -4.506e+11, -96.88)
+#            v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.494e+33, -5.428e+23, -1.176e+14, -2.531e+04)
+#             v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.490e+35, -1.414e+26, -3.066e+16, -6.612e+06)
+#                          ║       ║       ║       ╙─ 0xcac9c8c7'c6c5c4c3'c2c1c0bf'bebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdad9d8d7'd6d5d4d3'd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xeae9e8e7'e6e5e4e3'e2e1e0df'dedddcdb <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfaf9f8f7'f6f5f4f3'f2f1f0ef'eeedeceb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d15:                 0x1c18000000ff8501
+#            d16:                 0x1d19000000fe00ff
+#            d17:                 0x1e1a000000ff0002
+#            d18:                 0x1f1b17000000ff00
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x17130f0b0703fffb
+#            d28:                 0x1814100c080400fc
+#            d29:                 0x1915110d090501fd
+#            d30:                 0x1a16120e0a0602fe
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfe'fd'fc'fb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x16120e0a0602fefa
+#             d6:                 0x17130f0b0703fffb
+#             d7:                 0x1814100c080400fc
+#             d8:                 0x1915110d090501fd
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfd'fc'fb'fa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x01'00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x05'04'03'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x09'08'07'06 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0d'0c'0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x11'10'0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14'13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x19'18'17'16 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831302928212019180000feffff01 (0.6523, 0.1621, 0.04028, 0.01001, 0.002487, 0.000, nan, nan)
+#            v26: 0x3b3a33322b2a23221b1a000000ff0002 (0.9033, 0.2249, 0.05597, 0.01393, 0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            v27: 0x3d3c35342d2c25241d1c000000000085 (1.309, 0.3252, 0.08081, 0.02008, 0.004990, 0.000, 0.000, 7.927e-06)
+#            v28: 0x3f3e37362f2e27261f1e17000000ff00 (1.811, 0.4507, 0.1122, 0.02792, 0.006950, 0.001709, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726'2524'2322'2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2f2e'2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3736'3534'3332'3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e'3d3c'3b3a'3938 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x53524b4a43423b3a33322b2a23221b1a (58.56, 14.58, 3.629, 0.9033, 0.2249, 0.05597, 0.01393, 0.003468)
+#             v3: 0x55544d4c45443d3c35342d2c25241d1c (85.25, 21.19, 5.266, 1.309, 0.3252, 0.08081, 0.02008, 0.004990)
+#             v4: 0x57564f4e47463f3e37362f2e27261f1e (117.4, 29.22, 7.273, 1.811, 0.4507, 0.1122, 0.02792, 0.006950)
+#             v5: 0x59585150494841403938313029282120 (171.0, 42.50, 10.56, 2.625, 0.6523, 0.1621, 0.04028, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120'1f1e'1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2928'2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3130'2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3938'3736'3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4140'3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948'4746'4544'4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5150'4f4e'4d4c'4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5958'5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2922211a19 (50.53, 12.57, 3.127, 0.7778, 0.1935, 0.04813, 0.01197, 0.002977)
+#            v21: 0x54534c4b44433c3b34332c2b24231c1b (69.19, 17.17, 4.262, 1.058, 0.2625, 0.06512, 0.01616, 0.004009)
+#            v22: 0x56554e4d46453e3d36352e2d26251e1d (101.3, 25.20, 6.270, 1.560, 0.3879, 0.09650, 0.02400, 0.005970)
+#            v23: 0x5857504f4847403f3837302f2827201f (138.9, 34.47, 8.555, 2.123, 0.5269, 0.1307, 0.03244, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f'1e1d'1c1b'1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2827'2625'2423'2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x302f'2e2d'2c2b'2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3837'3635'3433'3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x403f'3e3d'3c3b'3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847'4645'4443'4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x504f'4e4d'4c4b'4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5857'5655'5453'5251 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2901211a19
+#            v21: 0x54534c4b44433c3b34332c2bff231c1b
+#            v22: 0x56554e4d46453e3d36352e2d02251e1d
+#            v23: 0x5857504f4847403f3837302f0027201f
+#                                            ╙─────── 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000fbfbfbfb59fbfbfb
+#            v13: 0x81807b7a75746f6ea9a8a7a65a5c5756
+#            v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6
+#            v15: 0x00000000000000001c1800005cff8501
+#                                            ╙─────── 0x5c'5b'5a'59 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x3d3c35342d2c25241d58000000000085
+#            v28: 0x3f3e37362f2e27261f5917000000ff00
+#            v29: 0x0000000000000000195a110d090501fd
+#            v30: 0x00000000000000001a5b120e0a0602fe
+#                                      ╙───────────── 0x5b'5a'59'58 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff0000850002ff011f5917000000ff00 (-5.487e+303, ...)
+#            v29: 0x0000000000fffeff195a110d090501fd (8.289e-317, ...)
+#            v30: 0x17000000000000001a5b120e0a0602fe (6.689e-198, ...)
+#            v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.568e-159, ...)
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x636261605f5e5d5c1c1800005cff8501 (5.549e+170, ...)
+#            v16: 0x6b6a6968676665641d19000000fe00ff (2.713e+209, ...)
+#            v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.290e+248, ...)
+#            v18: 0x7b7a7978777675741f1b17000000ff00 (6.299e+286, ...)
+#                                  ╙───────────────── 0x7b7a797877767574'737271706f6e6d6c'6b6a696867666564'636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.005e+165, ...)
+#            v17: 0x6a696867666564631e1a000000ff0002 (3.983e+204, ...)
+#            v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.861e+243, ...)
+#            v19: 0x7a797877767574731f1e17000000ff00 (9.247e+281, ...)
+#                                  ╙───────────────── 0x7a79787776757473'7271706f6e6d6c6b'6a69686766656463'6261605f5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x5352ff0143423b3a33322b2a23221b1a (..., nan, ...)
+#             v3: 0x5554000245443d3c35342d2c25241d1c (..., 1.192e-07, ...)
+#             v4: 0x5756008547463f3e37362f2e27261f1e (..., 7.927e-06, ...)
+#             v5: 0x5958ff00494841403938313029282120 (..., nan, ...)
+#                          ╙───────────────────────── 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5958ff00494841407c7b313029282120 (..., nan, ...)
+#             v6: 0x00000000000000007e7d0f0b0703fffb (..., nan, ...)
+#             v7: 0x0000000000000000807f100c080400fc (..., -7.570e-06, ...)
+#             v8: 0x00000000000000008281110d090501fd (..., -3.821e-05, ...)
+#                                      ╙───────────── 0x8281'807f'7e7d'7c7b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x00007b7a00000000807f100c080400fc (..., 6.125e+04, ...)
+#             v8: 0x00007d7c000000008281110d090501fd (..., nan, ...)
+#             v9: 0x3b3a7f7e2b2a29281b1a191800fffeff (..., nan, ...)
+#            v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 (..., -2.289e-05, ...)
+#                          ╙───────────────────────── 0x8180'7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0x00000000000000000002ff010703fffb (..., 2.751e-40, ...)
+#             v7: 0x00007b7a00000000ff000085080400fc (..., -1.701e+38, ...)
+#             v8: 0x00007d7c0000000000fffeff090501fd (..., 2.351e-38, ...)
+#             v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831308584838219180000feffff01 (..., -1.246e-35, ...)
+#            v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.287e-33, ...)
+#            v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.662e-31, ...)
+#            v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.281e-28, ...)
+#                                  ╙───────────────── 0x91908f8e'8d8c8b8a'89888786'85848382 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v8: 0x848382810000000000fffeff090501fd (-3.092e-36, ...)
+#             v9: 0x888786852b2a29280000000000fffeff (-8.157e-34, ...)
+#            v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.150e-31, ...)
+#            v11: 0x908f8e8d00000000fafafafafafafafa (-5.662e-29, ...)
+#                          ╙───────────────────────── 0x908f8e8d'8c8b8a89'88878685'84838281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0x01010101010101010101010101010101
+#            v15: 0xffffffffffffffffffffffffffffffff
+#            v16: 0x02020202020202020202020202020202
+#            v17: 0x00000000000000000000000000000000
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x91919191919191919191919191919191
+#            v14: 0x92929292929292929292929292929292
+#            v15: 0x93939393939393939393939393939393
+#            v16: 0x94949494949494949494949494949494
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x94'93'92'91 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v9: 0x90909090909090909090909090909090
+#            v10: 0x91919191919191919191919191919191
+#            v11: 0x92929292929292929292929292929292
+#            v12: 0x93939393939393939393939393939393
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x93'92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xff0000850002ff01 (-5.487e+303)
+#             d9:                 0x0000000000fffeff (8.289e-317)
+#            d10:                 0x1700000000000000 (6.689e-198)
+#            d11:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x9b9a999897969594 (-1.050e-175)
+#             d5:                 0xa3a2a1a09f9e9d9c (-5.007e-137)
+#             d6:                 0xabaaa9a8a7a6a5a4 (-2.438e-98)
+#             d7:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac'abaaa9a8a7a6a5a4'a3a2a1a09f9e9d9c'9b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x9a99989796959493 (-1.542e-180)
+#            d27:                 0xa2a1a09f9e9d9c9b (-7.228e-142)
+#            d28:                 0xaaa9a8a7a6a5a4a3 (-3.580e-103)
+#            d29:                 0xb2b1b0afaeadacab (-1.680e-64)
+#                                                  ╙─ 0xb2b1b0afaeadacab'aaa9a8a7a6a5a4a3'a2a1a09f9e9d9c9b'9a99989796959493 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v20: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v21: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#            v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.568e-159, 8.568e-159)
+#                                  ╙───────────────╨─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.311e-26, -8.311e-26)
+#            v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.904e+13, -3.904e+13)
+#            v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.929e+52, -1.929e+52)
+#            v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.073e+90, -9.073e+90)
+#                                  ╙───────────────╨─ 0xd2d1d0cfcecdcccb'cac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.219e-30, -1.219e-30)
+#            v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.620e+08, -5.620e+08)
+#            v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.829e+47, -2.829e+47)
+#            v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.306e+86, -1.306e+86)
+#                                  ╙───────────────╨─ 0xd1d0cfcecdcccbca'c9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#             d0:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#             d1:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#             d2:                 0x0000000000000000 (0.000, 0.000)
+#                                          ╙───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xd5d4d3d2d5d4d3d2 (-2.925e+13, -2.925e+13)
+#            d29:                 0xd9d8d7d6d9d8d7d6 (-7.629e+15, -7.629e+15)
+#            d30:                 0xdddcdbdadddcdbda (-1.989e+18, -1.989e+18)
+#            d31:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#                                          ╙───────╨─ 0xe1e0dfde'dddcdbda'd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xd4d3d2d1d4d3d2d1 (-7.278e+12, -7.278e+12)
+#            d12:                 0xd8d7d6d5d8d7d6d5 (-1.899e+15, -1.899e+15)
+#            d13:                 0xdcdbdad9dcdbdad9 (-4.951e+17, -4.951e+17)
+#            d14:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#                                          ╙───────╨─ 0xe0dfdedd'dcdbdad9'd8d7d6d5'd4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d20:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d21:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            d22:                 0xff00ff00ff00ff00 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xe2e1e2e1e2e1e2e1 (-880.5, -880.5, -880.5, -880.5)
+#            d23:                 0xe4e3e4e3e4e3e4e3 (-1251., -1251., -1251., -1251.)
+#            d24:                 0xe6e5e6e5e6e5e6e5 (-1765., -1765., -1765., -1765.)
+#            d25:                 0xe8e7e8e7e8e7e8e7 (-2510., -2510., -2510., -2510.)
+#                                      ╙───╨───╨───╨─ 0xe8e7'e6e5'e4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xe1e0e1e0e1e0e1e0 (-752.0, -752.0, -752.0, -752.0)
+#            d21:                 0xe3e2e3e2e3e2e3e2 (-1009., -1009., -1009., -1009.)
+#            d22:                 0xe5e4e5e4e5e4e5e4 (-1508., -1508., -1508., -1508.)
+#            d23:                 0xe7e6e7e6e7e6e7e6 (-2022., -2022., -2022., -2022.)
+#                                      ╙───╨───╨───╨─ 0xe7e6'e5e4'e3e2'e1e0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v17: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v18: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#            v19: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ╙───────╨───────╨───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (-5.680e+26, -5.680e+26, -5.680e+26, -5.680e+26)
+#            v26: 0xefeeedecefeeedecefeeedecefeeedec (-1.479e+29, -1.479e+29, -1.479e+29, -1.479e+29)
+#            v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (-3.850e+31, -3.850e+31, -3.850e+31, -3.850e+31)
+#            v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (-1.002e+34, -1.002e+34, -1.002e+34, -1.002e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf7f6f5f4'f3f2f1f0'efeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (-1.414e+26, -1.414e+26, -1.414e+26, -1.414e+26)
+#            v24: 0xeeedecebeeedecebeeedecebeeedeceb (-3.682e+28, -3.682e+28, -3.682e+28, -3.682e+28)
+#            v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (-9.584e+30, -9.584e+30, -9.584e+30, -9.584e+30)
+#            v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (-2.494e+33, -2.494e+33, -2.494e+33, -2.494e+33)
+#                          ╙───────╨───────╨───────╨─ 0xf6f5f4f3'f2f1f0ef'eeedeceb'eae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x0101010101010101
+#            d23:                 0xffffffffffffffff
+#            d24:                 0x0202020202020202
+#            d25:                 0x0000000000000000
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xf7f7f7f7f7f7f7f7
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8'f7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xf6f6f6f6f6f6f6f6
+#            d30:                 0xf7f7f7f7f7f7f7f7
+#            d31:                 0xf8f8f8f8f8f8f8f8
+#             d0:                 0xf9f9f9f9f9f9f9f9
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xf9'f8'f7'f6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v29: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            v30: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#            v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v27: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v28: 0x01000100010001000100010001000100 (1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0100'fffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 (-5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04)
+#            v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0002000200020002e73aed42f34af952
+#             v6: 0x0000000000000000dcbb11e0e6481e68
+#             v9: 0x00000000000000000000000000fffeff
+#             v5: 0x0000000000000000a4a2261ba09e2217
+#            v24: 0x000000000000000082b3330de36793c1
+#            v12: 0x00000000000000006f49f4f5e911f705
+#            v10: 0x00000000000000001700000000000000
+#             v3: 0x000000000000000035342d2c25221f1b
+#            v19: 0xfe070c07fe070c07fe070c07fe070c07
+#             v6: 0x0000000000000000dcbb11e0e6481e68
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v28: 0x00000000000000000100010001000100
+#             v2: 0x0000000000000000ac03d811ac03d811
+#            v18: 0x000000000000000000fffeff00fffeff
+#             v6: 0x00000000000000006347100f6cd41c97
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v26: 0x0000000000000000bd4365396d436539
+#            v10: 0x00000000000000008800000000000000
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000000000000000e3e2
+#            v26: 0x000000000000000000000000fe070c07
+#            v26: 0x0000000000000000d4d3d2d1d4d3d2d1
+#            v20: 0x0000000000000000f9f9f9f9f9f9f9f9
+#            v19: 0xfe070f07fe070c07fe070c07fe070c07
+#             v4: 0x00000000000000009b9a999897969594
+#            v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
+#             v3: 0x00000000000000000000000000000000
+#            v29: 0x000200020002ff00e73aed42f34af952
+#             v2: 0x0000ffff00000000ac03d811ac03d811
+#            v22: 0x00000000000000000000000000000000
+#            v24: 0x000000000000000082b3330de36793c1
+#            x18: 0x0000000000000000
+#            x28: 0xe3e2e3e2e3e2e3e2
+#            v24: 0x000000000000000000ffff0000ffffff
+#            v29: 0x80808080808080808080808080808080
+#            v12: 0xffff00ff00ffff00ffff00ff00ffff00
+#            v12: 0x0000000000000000ec000000ec000000
+#            v10: 0x0000000000000000004cffff004cffff
+#            v26: 0x000000000000000000c000c000c000c0
+#            v24: 0x00980000009800000098000000980000
+#             v1: 0x00deffff00deffff00deffff00deffff
+#            v21: 0x00000000000000004d4d4d4d4d4d4d4d
+#            v29: 0x00690069006900690069006900690069
+#             v1: 0x4700008e4b00007a4700008e4b00007a
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
+#            v19: 0x00000000000000000000000000000000
+#            v29: 0x0000000000000000427957e1427957e1
+#             v2: 0x00000000000000000000000000000000
+#            v25: 0x000000000000000042ff40c042ff40c0
+#            v26: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x0000000000000000470049004b004d00
+#            v20: 0x48004a004c004e0048004a004c004e00
+#            v29: 0x00000000000000000000000000000000
+#            v13: 0xffffffffffffffffe03d1120e03d1120
+#            v28: 0x0000000000000000ffffffffffffffff
+#            v25: 0x0000000000000000ffff47ffffff47ff
+#            v17: 0x0000000000000000ff930000ff930000
+#            v29: 0x0000000000000000ffb7ffb7ffb7ffb7
+#            v20: 0xff85ffffff85ffffff85ffffff85ffff
+#             v0: 0xffffe100ffffe100ffffe100ffffe100
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v25: 0x0000000000000000b8ffb6ffb4ffb300
+#             v4: 0x00000000000000000000000000010201
+#            v11: 0x0000000000000000470049004b004d00
+#             v7: 0x0000000000000000ff000101ff000101
+#             v7: 0x00000000000000004648484a4a4c4c4e
+#            v17: 0x0000000000000000ff000101ff000101
+#            v20: 0x00000000000000000100ffff0100ffff
+#             v0: 0x0000000000000000b900b700b500b300
+#            v13: 0x003e003e003e003e473e493e4b3e4d3e
+#            v22: 0x0000000000000000ffffffffffffffff
+#            v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
+#             v8: 0x0000000000000000ff0000e70002ffe3
+#            v11: 0x0000000000000000d700df00df00df00
+#             v7: 0x000000ab000000ab464848eb4a4c4cef
+#             v8: 0x00000000000000000000000000010201
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v11: 0x000000000000000000a9a8a900a9a8a9
+#             v8: 0x00000000000000000030000000100000
+#            v24: 0x0000555555aa55550000555555aa5555
+#            v13: 0x00000000000000000000000000000000
+#            v22: 0x000000000000000000000000200feede
+#             v5: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000fdfdfdfd9da5d974
+#             v9: 0x00000000000000000000000000fffeff
+#            v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
+#             v0: 0x0000000046004a04b900b700b500b300
+#            v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
+#            v30: 0x00000000000000000000000000000000
+#            v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
+#             v5: 0x00000000000000000000000001020100
+#            v16: 0x0000000000000000a76e9d2f75fed8a5
+#            v20: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000ffffffffffffffff
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000075fed8a5a76e9d2f
+#             v7: 0x0000000000000000fefffefffefffeff
+#            v15: 0x0000000000000000d8a575fe9d2fa76e
+#            v25: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000009d2fa76ed8a575fe
+#            v18: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v3: 0x0000000063106d1d0000000000000000
+#             v0: 0x00000000dbffdc00b900b700b500b300
+#            v27: 0x000000003a5fb14bfffefffefffefffe
+#            v15: 0x00000000000000000000000000000000
+#            v23: 0x000000000000000000009cf000000000
+#             v6: 0x000000000000000000abaaab00abaaab
+#             v4: 0x00555655005556550000000000010201
+#             v1: 0x62e2129262e2af824700008e4b00007a
+#            v19: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000ffffffffffffffff
+#             v9: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000fffbfdfbfffbfdfb
+#            v29: 0x000000003a5fb14b75b7d85e58486286
+#            v20: 0x00000000000000001e3d11201e3d1120
+#            v27: 0x000000003a5fb14b0003020300030203
+#            v20: 0x00000000010001011e3d11201f3d1221
+#             v4: 0x005585f20055c4fc00005a290001058d
+#            v23: 0x001e003d0044003500369d8300430034
+#            v26: 0x00000000000000009d2fa76ed8a575fe
+#            v27: 0x000000003a5fb14b0003020300030203
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
+#             v0: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000100010101000101
+#            v17: 0x00000000000000002fa270ac5a23007a
+#             v7: 0x633798855327f7af62e26cbc52d33840
+#            v23: 0x0000000000000000632f596e285b7502
+#            v20: 0x000000000000000075ff275a589162d0
+#            v27: 0x00000000d8e139ed00000000ab639583
+#            v31: 0x000012d0000032140000303600001232
+#             v0: 0x007500010027005a00ad00d200cd004d
+#            v31: 0x00000000000000000000000063106d1d
+#            v26: 0x00000000000000000000271f000039ed
+#             v6: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000003000000010610c
+#            v12: 0x00000000000000002f9d6ea7a5d95f81
+#            v12: 0x00000000000000002f9d95c6a5d9996e
+#             v4: 0x0000000000000000004759b7004c0607
+#            v15: 0x00000000000000000100a14f01005b9e
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
+#             v5: 0xffffffffd6dfd5daffffffff7687b151
+#            v18: 0x00000100ffffa14f0000010000005b9e
+#            v15: 0x0063002f0059006e0028005b00750002
+#            v16: 0x0000000000000000ffffffffd8e139ed
+#             v6: 0x0000007500005556000055d1000055af
+#             v7: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffd8e139ec
+#            v18: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000004600000026
+#            v10: 0x00007574000012640000478e00004b7a
+#             v0: 0x0000000000000000ffe1ffcdffe1ffcd
+#            v12: 0x00000000000000000000000000000000
+#            v14: 0x0000000000000000000000000000fff8
+#            v30: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v16: 0x000000000000000000000000000012cc
+#            v24: 0x00000000000000009d2fa76ed8a575fe
+#            v13: 0x00000000000055d100000000000055af
+#            v19: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000632f596e285b7502
+#            v15: 0x00000000000000000000000000000000
+#             v7: 0x000000000000000000232cdb00260303
+#            v29: 0x0000000000000000ce97d3b7ec52baff
+#            v31: 0x0000000000000000000023c700005094
+#            v21: 0x000000000000000000180000000839ec
+#            v14: 0x0000000000000000b5dae012cc3fc326
+#            v19: 0x00000000000000000997e764189b6c67
+#            v22: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000008000000000800000
+#             v2: 0x000000000000000036e00980c0e00000
+#             v4: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ff00ff00ff00ff00
+#             v4: 0x0000000000000000c700000094000000
+#            v18: 0x00000000000000000000000000004830
+#             v0: 0x0000000000000000e9783b70c528aff0
+#             v5: 0x9d2fa76e00000000d8a575fe00000000
+#            v26: 0x75ff0000275a00005891000062d00000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x62e200001292000062e20000af820000
+#            v30: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000002e212926700008e4
+#            v29: 0x00000000000000000000000000000090
+#            v17: 0x00000000000000000000000000000024
+#             v5: 0x00000000000000002e212926700008e4
+#            v24: 0x317157c12580003d9d2fa76ed8a575fe
+#             v5: 0x00000000b5dacc3f2e212926700008e4
+#            v30: 0x31f1000009c90000ffd9d3c9c393c5ff
+#            v22: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000dc80ffb9da80ffc3
+#            v10: 0x0000000000000000ce805349ebda7605
+#             v6: 0x00000000000000000000ee1c0000d836
+#             v8: 0x0000000000000000ffe811e3fff8f7c4
+#            v19: 0x000000000000000000000000090b6c67
+#             v9: 0x317157c12580003d9d2fa76ed8a575fe
+#            v22: 0xc55f04960000f400be9dbb6295d7f800
+#            v11: 0x0000000000000000000fa76e000575fe
+#            v16: 0x0000000000000000000000000000000c
+#             v8: 0x0000000000000000c7e811e389f8f7c4
+#            v10: 0x0000000000000000ffd9d3c9c393c5ff
+#             v7: 0x0000000000000000ffe3ffdbffe6ffc3
+#            v18: 0x6200120062000000470011e34b00007a
+#            v30: 0x00000000000000004700008e700008e4
+#            v17: 0x000000000000000000000000090b6c67
+#             v1: 0x317157c12580003d000023c700005094
+#            v17: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x75ff0000275a00005891000062d00000
+#            v12: 0x00000000ffffffff00000000da123f26
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#            v10: 0x0000000000000000ffd9c5ff00000090
+#            v18: 0x00000000ffe6ffc375ff000062d00000
+#            v21: 0x000000000000000075006200787028f0
+#            v26: 0x00000000000000000000000011e3f7c4
+#             v4: 0x00000000000000000000000000000070
+#            v23: 0x00000000000000000000000000000078
+#             v6: 0x00000000000000000000000000003b70
+#            v24: 0x000000000000000000000000000011e3
+#             v3: 0x0000000000000000000000000000000c
+#            v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
+#            v29: 0x0000000000000000c7e811e389f8f7c4
+#             v6: 0x00000000000000005891000062d00000
+#            v24: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000000000000000000c
+#            v12: 0x0000000000000000ffd9c5ff00000090
+#            v13: 0x00000000ffffffff0000e6c3ff00d000
+#            v22: 0x000000000000000000000000ffffffff
+#            v15: 0x0000000000000000292608e4c5ff0000
+#            v15: 0x0000000000000000000000009d2fa76e
+#            v21: 0x00000000000000009100d000e080c000
+#            v21: 0x000000000000000000000000c5ff0000
+#             v8: 0x00000000000000000000000000000091
+#             v6: 0x000000000000000000000000000000d0
+#            v20: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000009d2f
+#            v21: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#             v7: 0x00000000000000000000000000009d2f
+#            v19: 0x0000000000000000000000000906ca9b
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#            v30: 0x00000000000000004700008e700008e4
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#            v17: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x75ff0000275a00005891000062d00000
+#            v30: 0x00000000000000004700008e700008e4
+#             v1: 0x317157c12580003d000023c700005094
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#             v0: 0x0000000000000000e9783b70c7c032a0
+#             v3: 0x0000000000000000000000000000000c
+#             v4: 0x000000000000000003c9f8c001c2e9f0
+#            v14: 0x0000000000000000b5dae012cc3fc326
+#            v15: 0x0000000000000000f9797b018bdbc6de
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#             v6: 0x000000000000000000000000000000d0
+#            v30: 0x00000000000000004700008e700008e4
+#            w21:         0x00000000
+#            w13:         0x00000000
+#            x24: 0x0000000000000000
+#             x7: 0x00000000000003c9
+#            x29: 0x0000000000000000
+#             v4: 0x15a6d000c90fc48aedb876b6692ad888
+#            v30: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000042ae0
+#             v8: 0x185dc92015d7004009b45060e2e7be40
+#            v31: 0x00000000f3d5e78200000000249000d8
+#             v3: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v14: 0x000000000000000062d05891275a8a02
+#            v31: 0x00000000000000000000000000000001
+#             v8: 0x000000000000000000000000383fcd60
+#            v14: 0x0000000000000000000000000000632f
+#            v23: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000001687c490383fcd60
+#            v29: 0x000000000000000016793c70383f3360
+#            v17: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000060
+#             v2: 0x00000000000000000000000011e3f7c4
+#             v7: 0x00000000000000000000000000003360
+#            v11: 0x00000000000000000000000000003360
+#            v20: 0x000000000000000016793c70383f336c
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v8: 0x00000000000000000000000011e3f7c4
+#            v20: 0x0000000000000000ffd9c5ff00000090
+#            v14: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000016792233373f0360
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000060
+#            v14: 0x000000000000000000000000ffe772e8
+#            v30: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v8: 0x0672308605c005640fa6a0001322041c
+#             v1: 0x317157c12580003d000023c700005094
+#            v19: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000011e3f7c4
+#             v6: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000ffffffc0b8e63400
+#            v10: 0x0000000000000000ffffffc0b8e66400
+#            v30: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000000000000ff00d000
+#            v27: 0xffffffffece2ff800000004ffccf8000
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v22: 0x000000000000000000000000ffffffff
+#            v12: 0x0000000000000000ffd9c5ff00000090
+#            v20: 0x0000000000000000ffd9c5ff00000090
+#            v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000000000000000ff70
+#            v16: 0x00000000000000000000000000000391
+#             v1: 0x00000000000000000000000000000000
+#             v1: 0x0000000000000000000000000000018a
+#            v28: 0x0000000000000000000000000000003a
+#            v28: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000fffe0529
+#            v25: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000fff726ef1b546ce0
+#            v29: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000e59831500
+#            v18: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000060
+#            v24: 0x0000000000000000ffffffffffffffa0
+#            v29: 0x00000000000000000000000000000000
+#             v4: 0x000000000000000000000000ffffffa0
+#            v14: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000263a00ffffff70
+#            v28: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000010060
+#             v9: 0x00000000000000000000000000000000
+#            v20: 0x000000000000000001273b0100000070
+#            v27: 0x000000000000000000010040471a9c00
+#             v7: 0x0000000000000000000000000000ffda
+#            v14: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v22: 0x0000000000000000ffa408a4ff20b5ee
+#            v22: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v2: 0x0000000000000000000000000000fff1
+#            v16: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000007fffffffffffffff
+#            v28: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v19: 0x000000000000000000000000ed800048
+#            v19: 0x000000000000000000000000ed800048
+#            v29: 0x00000000000000007fffffffffffffff
+#            v12: 0x0000000000000040ffd9c5ff00000090
+#            v16: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000e598315
+#            v31: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000000000000004ffff
+#            v24: 0x0000000000000000ffffffffffffffa0
+#            v22: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000e598315
+#             v6: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000007fed000000000
+#            v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x0000000000000000000000000e598315
+#             v0: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v24: 0x00000000000200000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#             v8: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v30: 0x00000000002000000000000000000000
+#             v1: 0x00000000000000000000000000000080
+#            v31: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v14: 0x0000000000077f7f0000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v31: 0x000000000000ffff0000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000000000000007ffff
+#            v10: 0x00000000000000000010000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v27: 0x00000001000000000000000000000000
+#            v23: 0x0000ffff000000000000000e59831500
+#            v19: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000010000000000000
+#             v8: 0x000000000000000000000000ffff000f
+#            v18: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000fff0000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000800000000e59831500
+#            v13: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v26: 0x000000000000000000000000ffff0000
+#             v7: 0x00000000000000000000000000000000
+#            v21: 0x000007ff000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000800000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000040
+#            v24: 0x00000000000000000000000000007ff9
+#             v6: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v23: 0x0000000000000080000000005f8f1000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000000000000000b0002
+#            v27: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000040
+#            v29: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000040
+#            v22: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000fe0000000000000000
+#            v20: 0x00000000000000000000000000000020
+#             v0: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v18: 0x00000000000000000000000000000000
+#            v21: 0x000000000000000000000000000000c0
+#            v31: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000000000000000b0002
+#            v23: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000020000000
+#            v11: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#             v3: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#            v29: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000020
+#            v14: 0x00000000000000000000000000000001
+#            v18: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000040
+#            v13: 0x0000000000000000ffffffffffffffe1
+#             v5: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v21: 0x000000000000000000000000ffff8007
+#            v30: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007ff9
+#            v31: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000ffffffffffffffc0
+#            v20: 0x00000000000000000000000000007ff9
+#             v8: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000000000000ffff8007
+#            v24: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v16: 0x000000000000000000000000010180f9
+#            v20: 0x0000000000000000000100010001001f
+#             v5: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000ff0000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v20: 0x000000000000ffff000100010001001f
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000ffffffffffffffe1
+#             v0: 0x00000000000000000000000000000040
+#            v22: 0x00000000000000000000000000000000
+#            v24: 0x000000000000007f0000000000000000
+#            v26: 0x00000000000000000000000000000001
+#             v7: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000007fff7fff7fff7fff
+#             v4: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v31: 0x00000000000000000000000000000000
+#            v16: 0x0000000000010001000000000001001f
+#            v27: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000100000001
+#            v25: 0x00000000000000000000000000000000
+#            v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
+#             v3: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#             v6: 0x01010101010101010101010101010101
+#            v13: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#             v2: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000ff00ff0000000000
+#            v24: 0x00000000000000000000010100000101
+#             v2: 0x000000000000000000000000ff00ff00
+#            v25: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000001
+#             v9: 0x00000000000000000000000000000000
+#             v6: 0x01010101010101010101010100020001
+#            v16: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ff00ff0000000001
+#            v10: 0x00000000ff00ff000000000000000000
+#            v30: 0x0000ff000000ff00ff01fe000000c000
+#             v4: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#            v26: 0x00000000000000000000000000000001
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#            v18: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000001
+#            v20: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v9: 0x000000000000000000000000ff00ff01
+#            v14: 0x00000000000000000000000000000001
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ff00ff0000000001
+#             v1: 0x00000000000000000000000000000001
+#            v31: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v5: 0x00000000010101010000000001010101
+#             v1: 0x00000000000000000000010100000101
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x000000000000000000000000ff00ff01
+#            v26: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000010100000101
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000ff00ff
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000001
+#             v9: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000010100000101
+#            v18: 0x00000000010101010000000001010101
+#            v17: 0x0000000000000000ff00ff0000000001
+#            v29: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000008000800000000000800080
+#             v1: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v26: 0x00000000ff7f7f7f00000000ff7f7f7f
+#             v3: 0x0000000000000000000000007f007f00
+#            v25: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000ff00ff
+#            v20: 0x000000000000000000000000ff7f7f7f
+#             v0: 0x00000000000000000000000001010101
+#             v6: 0x00000000000000000000000000ff00ff
+#             v0: 0x000000000000000000000000ff7fff7f
+#             v4: 0x00000000000000000000000000000000
+#             v1: 0x0000000000000000000000000000ffff
+#            v19: 0x00000000000000000000000100000000
+#            v21: 0x00000000000000000000ff0100000000
+#             v9: 0x000000000000000000000000ff7f7f7f
+#            v13: 0x000000000000000000000000000000ff
+#            v19: 0x0000ff7f0000ff7f0000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v31: 0x0000000000000000000000000000ff00
+#            v15: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#            v22: 0x0000000000000000000000000000ff01
+#             v1: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v24: 0x000000000000000000000000000000ff
+#            v20: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v21: 0x0000000000000000000000000000ff7f
+#             v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007e81
+#            v17: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007e81
+#            v15: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#             v7: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#            v28: 0x00000000000000000000000000ff00ff
+#            v11: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v10: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             lr: 0x0000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000000000ff
+#            v27: 0x00000000000000000000000000007e81
+#             v7: 0x000000000000000000000000000000ff
+#            v28: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000000000000000ff7f
+#            v16: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x0000000000000000000000000000ff00
+#            v23: 0x0000000000000000000000007f007f00
+#            v17: 0x00000000000000000000000000007e81
+#            v10: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v10: 0x000000000000000000000000000000ff
+#             v9: 0x0000000000000000000000000000ff01
+#            v24: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000008
+#            v10: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000001fe0
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000400000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000200000000000000ff
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x000000000000000000000000000000ff
+#            v23: 0x00000000000000000000000000ff00ff
+#             v8: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v14: 0x000000000000000000000000000000ff
+#             v6: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000003fc0000
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000000000000ffffffff
+#            v28: 0x00000000000000000000000000000000
+#             v4: 0x0000000000000000000000000000fd02
+#             v9: 0x00000000000000000000000000007f80
+#            v18: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000008
+#            v26: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000ff00ff
+#            v14: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000007e81
+#            v10: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000001fe0
+#            v23: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v29: 0x000000000000ffff0000000000000000
+#            v13: 0x0000000000007e810000000000000000
+#            v28: 0x0000000000007e810000000000000000
+#            v23: 0x0000000000000000ffffffffffffffff
+#            v27: 0xffffffffffffffffffffffffffffffff
+#             v2: 0x80808080808080808080808080808080
+#            v15: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000007e81
+#             v2: 0x80000000800000008000000080000000
+#             v5: 0x00000000000000000000000000003f41
+#            v30: 0x40000000400000004000000040000000
+#             v4: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v14: 0x0000000000000000ffffffffffffffff
+#            v10: 0x00000000000000000000000000000008
+#            v15: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v30: 0xffffffffffffffffffffffffffffffff
+#             v4: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000010
+#             v4: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000ffffffffffffffff
+#            v28: 0xffffffffffffffffffffffffffffffff
+#            v27: 0x0000000000000000ffffffffffffffff
+#            v18: 0x00000000000000000000000000001010
+#            v26: 0x00000000000000400000000000000040
+#             v8: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v18: 0x00000000000000000008000800081018
+#            v31: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000008
+#            v14: 0x0000000000000000ffffffffffffffff
+#            v22: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000000000000007e8100
+#            v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
+#             v8: 0x000000000000000000000000007fff80
+#            v29: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x0000000000000000000000007f007f00
+#            v31: 0x00000000000000000000000000000000
+#             v8: 0x000000000000000000000000007fff80
+#            v18: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v16: 0x0000000000000000000000007e007e00
+#            v12: 0x0000000000000000000000007e007e00
+#            v28: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000008
+#             v4: 0x0000000000000000000000000000003f
+#             v9: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v29: 0x0000000000000000000000007e007e00
+#            v29: 0x00000000000000000000000000000000
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
+#             v1: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v9: 0x0000000000000000ffffffffffffffff
+#            v20: 0x0000000000000000000000007e007e00
+#            v25: 0x000000000000000000000000007fff80
+#            v18: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v30: 0x000000000000008100000000ffffffff
+#             v7: 0x00000000000000000000000000000040
+#            v26: 0x0000000000000000000000007e007e00
+#            v14: 0x00000000000000000000000000000000
+#            v17: 0x00000081ffffffff0000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v17: 0xff01ff01ff01ff400000000000000000
+#             v8: 0x0000000000007e7e0000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v25: 0x000000000000000001fe01fe01fe01fe
+#            v31: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000ff01ff0100000000
+#            v17: 0x0000000000000000000000007e007e00
+#             v3: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000001010000
+#             v0: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
+#            v23: 0x000000000000000001fe01fe01fe01fe
+#            v26: 0x0000000000000000ffffffff00000000
+#             v1: 0x00000000000000000000ffff0040ffff
+#             v0: 0x000000000000000000000000ffffffff
+#            v30: 0x0000000000000000007e0000007e0000
+#            v17: 0x0000ff010000ff010000000000000000
+#            v23: 0x0100fe000100fe000100fe000100fe00
+#            v30: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v0: 0x0100fe00000000000100fe0000000000
+#            v25: 0x00000000000000000001000000fe0000
+#             v7: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000001000000fe0000
+#            v14: 0x000000000000000001fe01fe01fe01fe
+#             v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
+#             v1: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000001000000fe0000
+#            v18: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffffffffff
+#            v30: 0xffffffffffffffff0000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v22: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000100fe000100fe00
+#            v16: 0x01fe01fe01fe01feffffffffffffffff
+#            v27: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000000000000180fe00
+#            v21: 0x020e01fe01fe01fe0000000000000000
+#            v31: 0x000000000000000000000000ffffffff
+#            v13: 0x00000000000000000000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v24: 0x0000000000000000ffffffffffffffff
+#             v8: 0xffffffffffffffff0000000000000000
+#            v26: 0xffffffffffffffff0000000000000000
+#            v27: 0xffffffffffffffffffffffffffffffff
+#            v22: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffffffffff
+#            v29: 0x00000000000000000000000000000000
+#            v22: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v15: 0xffffffffffffffffffffffffffffffff
+#            v21: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v14: 0xffffffff00000000ffffffff00000000
+#            v13: 0x00000000000000000000000000000000
+#             v4: 0xffffffffffffffffffffffffffffffff
+#            v24: 0x0000000000000000ffffffff00000000
+#             v8: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v8: 0x37a0000000000000381fc00000000000
+#            v27: 0xffffe000ffffe0000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v24: 0x377f0000377f0000377f0000377f0000
+#             v9: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v8: 0x37a00000000000000000000000000000
+#            v24: 0x0000000000000000377f0000377f0000
+#             v4: 0x0000000000000000ffffffffffffffff
+#            v25: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v31: 0x000000000000000000000000ffffffff
+#            v19: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x7ff00000000000007ff8000000000000
+#            v12: 0x00000000000000007fc000007fc00000
+#            v19: 0xffffffffffffffffffffffffffffffff
+#            v19: 0x37a00000000000000000000000000000
+#            v25: 0x00000000000000007fc000007fc00000
+#             v6: 0x7ff00000000000007ff8000000000000
+#            v16: 0x37a0000000000000000000000180fe00
+#            v15: 0x00000000000000000000000000000000
+#            v23: 0x37a0000000000000000000000180fe00
+#             v6: 0x000000000000000037a0000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v8: 0x37a00000000000007fc000007fc00000
+#            v13: 0x0000000000000000ffffffff7fc00000
+#            v15: 0xffffffff000000000000000000000000
+#            v27: 0x00000000000000000000000037a00000
+#            v20: 0x0000000000000000ffffffff00000000
+#            v18: 0x00000000000000000000000000000000
+#             v9: 0x00000000ffffffff37a0000000000000
+#             v7: 0x0000000000000000ffffffffffffffff
+#            v18: 0x000000000000000000000000ffffffff
+#            v31: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v25: 0x0000000000000000000000007fc00000
+#            v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000007fc000007fc00000
+#            v24: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
+#            v21: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007fffffff
+#            v27: 0x00000000000000000000000037a00000
+#            v26: 0x00000000000000007fffffff00000000
+#            v14: 0xbfd6000000000000bfd6000000000000
+#            v26: 0x00000000000000003f6800003f680000
+#            v31: 0xc0a00000c0a00000c0a00000c0a00000
+#            v28: 0x00000000000000000000000000000000
+#            x18: 0x0000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000ffffffff
+#            v25: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v11: 0x7fc000007fc000007fc000007fffffff
+#            v28: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v1: 0x80000000000000008000000000000000
+#            v14: 0x00000000000000008000000080000000
+#             v5: 0x80000000800000008000000080000000
+#            v18: 0x7ff00000000000007ff0000000000000
+#            v10: 0x00000000000000007f8000007f800000
+#             v5: 0x7f8000007f800000474c80007f800000
+#            v22: 0x40000000000000004000000000000000
+#            v31: 0x00000000000000004000000040000000
+#            v18: 0x40000000400000004000000040000000
+#            v26: 0x0000000000000000ffffffff7fc00000
+#            v15: 0x0000000000000000ffffffff7fc00000
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000007fc000007fc00000
+#            v15: 0x7fc000007fc000007fc000007fffffff
+#            v17: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000007fc000007fffffff
+#             v1: 0x0000000000000000ffffffff00000000
+#            v24: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v29: 0x7fc000007fc000007fc000007fffffff
+#            v10: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000004000000040000000
+#            v26: 0x00000000000000004000000040000000
+#            v24: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000007fc000007fc00000
+#            v20: 0x00000000000000000000000000000000
+#            v23: 0x7ff00000000000002006900000000000
+#             v9: 0x00000000000000007f8000007f800000
+#             v3: 0x7f8000007f8000000000000000000000
+#            v25: 0x3ff80000000000003ff8000000000000
+#             v9: 0x00000000000000003fc000003fc00000
+#             v5: 0x3fc000003fc000007fffffff3fc00000
+#             v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000003fb504f33fb504f3
+#            v31: 0x00000000000000007fc000007fffffff
+#            v11: 0x00000000000000007fc000007fc00000
+#            v16: 0x00000000000000007fc000007fffffff
+#            v25: 0x000000000000000043dff00000200000
+#            v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000004eff80004eff8000
+#            v18: 0x00000000000000000000000000000000
+#            v17: 0x4e7f00004e7f00004f0000004e7f0000
+#            v11: 0x00000000000000004287bfe03e000000
+#             v9: 0x43dfe000001fe0000000000000000000
+#            v26: 0x000000000000000040fff00000200000
+#            v11: 0x00000000000000000000000000000000
+#            v29: 0x7fc000007fc000000000000000000000
+#            v22: 0x4effe000000000004e001a4000000000
+#            v18: 0x4207bfc03d7f00000000000000000000
+#       p8<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#       p9<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p9<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p10<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p10<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p11<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x7f000000008000000000000000000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x80 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x7f <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x2f000000000029000000000023000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x0d0c0b0a09080706050403020100fffe (0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (...)
+#
+#   z21<639:512>: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x7f800000000000000000000000000000 (inf, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z22<511:384>: 0x2f2e0000000000000000000023220000 (1.583e-10, ..., 0.000, 8.782e-18)
+#                          ║               ║       ╙─ 0x23220000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e0000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z23<511:384>: 0x00000000000000000000000023220000 (..., 2.912e-315)
+#                                                  ╙─ 0x0000000023220000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#                          ║   ║       ║   ║       ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000230022000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x0000000000000000000000000000007f
+#                                  ║               ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x000000000000002f0000290000230000
+#   z21<255:128>: 0x00000000000000002e00000000002200
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x22'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x2e'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x0000007f007f00000000000000000000
+#   z21<383:256>: 0x00000000800000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x80'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     z22<127:0>: 0x000000007f807f800000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#     z23<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'7f800000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#     z24<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z24<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x0000000000000000000000ff00000000
+#     z25<127:0>: 0xa000000000000000000000ffc0000000
+#     z26<127:0>: 0x3700000000000000000000007f000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x7f'c0'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'ff'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x37'a0'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<639:512>: 0x00000000000000000000000000000000
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z25<127:0>: 0x292823221d1c17160000000000000000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z26<127:0>: 0x2b2a25241f1e191813120d0c07060100 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z27<127:0>: 0x2d2c272621201b1a1514000009080000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0100'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0908'0706'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0d0c'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514'1312'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1b1a'1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2120'1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x595853524d4c474641403b3a35342f2e (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z26<255:128>: 0x5b5a55544f4e494843423d3c37363130 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z27<255:128>: 0x5d5c575651504b4a45443f3e39383332 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3332'3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3938'3736'3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544'4342'4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4b4a'4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5150'4f4e'4d4c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c'5b5a'5958 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x898883827d7c777671706b6a65645f5e (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z26<383:256>: 0x8b8a85847f7e797873726d6c67666160 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z27<383:256>: 0x8d8c878681807b7a75746f6e69686362 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x6362'6160'5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6968'6766'6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6f6e'6d6c'6b6a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x7574'7372'7170 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7b7a'7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x8180'7f7e'7d7c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x8786'8584'8382 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8d8c'8b8a'8988 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0xb9b8b3b2adaca7a6a1a09b9a95948f8e (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z26<511:384>: 0xbbbab5b4afaea9a8a3a29d9c97969190 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z27<511:384>: 0xbdbcb7b6b1b0abaaa5a49f9e99989392 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x9392'9190'8f8e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x9998'9796'9594 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x9f9e'9d9c'9b9a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xa5a4'a3a2'a1a0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xabaa'a9a8'a7a6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xb1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xb7b6'b5b4'b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xbdbc'bbba'b9b8 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0xe9e8e3e2dddcd7d6d1d0cbcac5c4bfbe (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z26<639:512>: 0xebeae5e4dfded9d8d3d2cdccc7c6c1c0 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z27<639:512>: 0xedece7e6e1e0dbdad5d4cfcec9c8c3c2 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xc3c2'c1c0'bfbe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xc9c8'c7c6'c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xcfce'cdcc'cbca <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd5d4'd3d2'd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xdbda'd9d8'd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xe1e0'dfde'dddc <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xe7e6'e5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+#     z26<127:0>: 0x00000000000000000000ffff00000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z27<127:0>: 0x00000000000000007fff000000000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z28<127:0>: 0x37a0000000000000000000007fc00000 (0.000, 0.000, 9.183e-41, 0.000)
+#                          ║       ║       ║       ╙─ 0x7fc00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'7fff0000'0000ffff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z27<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000ffff7fc00000 (0.000, 0.000)
+#     z29<127:0>: 0x37a0000000000000000000007fff0000 (0.000, 0.000)
+#                                  ║               ╙─ 0x000000007fff0000'0000ffff7fc00000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x37a0000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z25<127:0>: 0x0000000000000000000000f300000000
+#     z26<127:0>: 0x00000000000000000000000400000000
+#     z27<127:0>: 0x0080000000800000000000ff00000000
+#     z28<127:0>: 0x007f0000007f0000000000ff00000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0xff'ff'04'f3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#   z27<255:128>: 0x00000000000000000000000000000000
+#   z28<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#   z27<383:256>: 0x00000000000000000000000000000000
+#   z28<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#   z27<511:384>: 0x00000000000000000000000000000000
+#   z28<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#   z27<639:512>: 0x00000000000000000000000000000000
+#   z28<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z26<127:0>: 0x00000000000000003fb504f300000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z27<127:0>: 0x7f8000007f800000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#     z27<127:0>: 0x2f2e2d2c000000000000000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z28<127:0>: 0x33323130000000007f80000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000007060504 (1.584e-10, 0.000, 0.000, 0.000)
+#     z30<127:0>: 0x00000000000000007f8000000b0a0908 (1.584e-10, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7f800000'00000000'7f800000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000005756555400000000 (0.000, 0.000, 0.000, 0.000)
+#   z30<255:128>: 0x00000000000000005b5a595800000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5b5a5958'57565554'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0xafaeadac9f9e9d9c8f8e8d8c7f7e7d7c (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z28<383:256>: 0xb3b2b1b0a3a2a1a09392919083828180 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z29<383:256>: 0xb7b6b5b4a7a6a5a49796959487868584 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z30<383:256>: 0xbbbab9b8abaaa9a89b9a99988b8a8988 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#                          ║       ║       ║       ╙─ 0x8b8a8988'87868584'83828180'7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x9b9a9998'97969594'93929190'8f8e8d8c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xabaaa9a8'a7a6a5a4'a3a2a1a0'9f9e9d9c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xbbbab9b8'b7b6b5b4'b3b2b1b0'afaeadac <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z28<511:384>: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z29<511:384>: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z30<511:384>: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x2f2e2d2c1f1e1d1c0f0e0d0cfffefdfc (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z28<639:512>: 0x33323130232221201312111003020100 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z29<639:512>: 0x37363534272625241716151407060504 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z30<639:512>: 0x3b3a39382b2a29281b1a19180b0a0908 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'03020100'fffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1b1a1918'17161514'13121110'0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928'27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3b3a3938'37363534'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z29<127:0>: 0x000000007f8000000000000000000000 (0.000, 0.000)
+#     z30<127:0>: 0x000000000000000000000000ffff04f3 (0.000, 0.000)
+#     z31<127:0>: 0x000000007f80000000000000ffff3fb5 (0.000, 0.000)
+#                                  ║               ╙─ 0x00000000ffff3fb5'00000000ffff04f3'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x000000007f800000'0000000000000000'000000007f800000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z30<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z31<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
diff --git a/test/test-trace-reference/log-state-colour b/test/test-trace-reference/log-state-colour
index 54dc558..0f1b75e 100644
--- a/test/test-trace-reference/log-state-colour
+++ b/test/test-trace-reference/log-state-colour
@@ -1,97 +1,310 @@
-#    x0: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0300003000300303
-#    x4: 0x0400004000400404
-#    x5: 0x0500005000500505
-#    x6: 0x0600006000600606
-#    x7: 0x0700007000700707
-#    x8: 0x0800008000800808
-#    x9: 0x0900009000900909
-#   x10: 0x0a0000a000a00a0a
-#   x11: 0x0b0000b000b00b0b
-#   x12: 0x0c0000c000c00c0c
-#   x13: 0x0d0000d000d00d0d
-#   x14: 0x0e0000e000e00e0e
-#   x15: 0x0f0000f000f00f0f
-#   x16: 0x1000010001001010
-#   x17: 0x1100011001101111
-#   x18: 0x1200012001201212
-#   x19: 0x1300013001301313
-#   x20: 0x1400014001401414
-#   x21: 0x1500015001501515
-#   x22: 0x1600016001601616
-#   x23: 0x1700017001701717
-#   x24: 0x1800018001801818
-#   x25: 0x1900019001901919
-#   x26: 0x1a0001a001a01a1a
-#   x27: 0x1b0001b001b01b1b
-#   x28: 0x1c0001c001c01c1c
-#   x29: 0x1d0001d001d01d1d
-#    lr: 0x0000000000000000
-#    sp: 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00055555005555550000000000000000
-#    v1: 0x3ff0d2c63fcb514c3ff587933f9e0419
-#    v2: 0x4000d2c6404b514c40058793401e0419
-#    v3: 0x401570fb40385373401025ae406d0626
-#    v4: 0x4010d2c640cb514c40158793409e0419
-#    v5: 0x401fbc2d4090d04a401ae97840c5851f
-#    v6: 0x402570fb40b85373402025ae40ed0626
-#    v7: 0x402783f4415f16c34022d6a1410a4396
-#    v8: 0x4020d2c6414b514c40258793411e0419
-#    v9: 0x402d6dd3416491c9402838864131c49c
-#   v10: 0x402fbc2d4110d04a402ae9784145851f
-#   v11: 0x4028cf3e410c10f7402d9a6b415945a2
-#   v12: 0x403570fb41385373403025ae416d0626
-#   v13: 0x40342b7d41d5360140317e2841806354
-#   v14: 0x403783f441df16c34032d6a1418a4396
-#   v15: 0x40317a4f41c1768240342f1a419423d7
-#   v16: 0x4030d2c641cb514c40358793419e0419
-#   v17: 0x4033b55841f2b10e4036e00d41a7e45b
-#   v18: 0x403d6dd341e491c94038388641b1c49c
-#   v19: 0x403cc5aa41eef18b403990ff41bba4de
-#   v20: 0x403fbc2d4190d04a403ae97841c5851f
-#   v21: 0x403914a7419a3034403c41f241cf6561
-#   v22: 0x4038cf3e418c10f7403d9a6b41d945a2
-#   v23: 0x403ba7b141b670b1403ef2e441e325e4
-#   v24: 0x404570fb41b85373404025ae41ed0626
-#   v25: 0x404584be41a3b3324040d1eb41f6e667
-#   v26: 0x40442b7d4255360140417e2842006354
-#   v27: 0x40477f314250062040422a6442055375
-#   v28: 0x404783f4425f16c34042d6a1420a4396
-#   v29: 0x4046d78b425a66e2404382de420f33b7
-#   v30: 0x40417a4f4241768240442f1a421423d7
-#   v31: 0x40418e02424c46ad4044db57421913f8
-#    x3: 0x0000000000900909
-#    x6: 0x0f0000f000f00f0f
+#             x0: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             x3: 0x0300003000300303
+#             x4: 0x0400004000400404
+#             x5: 0x0500005000500505
+#             x6: 0x0600006000600606
+#             x7: 0x0700007000700707
+#             x8: 0x0800008000800808
+#             x9: 0x0900009000900909
+#            x10: 0x0a0000a000a00a0a
+#            x11: 0x0b0000b000b00b0b
+#            x12: 0x0c0000c000c00c0c
+#            x13: 0x0d0000d000d00d0d
+#            x14: 0x0e0000e000e00e0e
+#            x15: 0x0f0000f000f00f0f
+#            x16: 0x1000010001001010
+#            x17: 0x1100011001101111
+#            x18: 0x1200012001201212
+#            x19: 0x1300013001301313
+#            x20: 0x1400014001401414
+#            x21: 0x1500015001501515
+#            x22: 0x1600016001601616
+#            x23: 0x1700017001701717
+#            x24: 0x1800018001801818
+#            x25: 0x1900019001901919
+#            x26: 0x1a0001a001a01a1a
+#            x27: 0x1b0001b001b01b1b
+#            x28: 0x1c0001c001c01c1c
+#            x29: 0x1d0001d001d01d1d
+#             lr: 0x0000000000000000
+#             sp: 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x47e000017f03380147e000007f023800
+#    z0<255:128>: 0x47e000037f03380347e000027f023802
+#    z0<383:256>: 0x47e000057f07380547e000047f063804
+#    z0<511:384>: 0x47e000077f07380747e000067f063806
+#    z0<639:512>: 0x47e000097f0b380947e000087f0a3808
+#      z1<127:0>: 0x47f000017f833c0147f000007f823c00
+#    z1<255:128>: 0x47f000037f833c0347f000027f823c02
+#    z1<383:256>: 0x47f000057f873c0547f000047f863c04
+#    z1<511:384>: 0x47f000077f873c0747f000067f863c06
+#    z1<639:512>: 0x47f000097f8b3c0947f000087f8a3c08
+#      z2<127:0>: 0x48000001800340014800000080024000
+#    z2<255:128>: 0x48000003800340034800000280024002
+#    z2<383:256>: 0x48000005800740054800000480064004
+#    z2<511:384>: 0x48000007800740074800000680064006
+#    z2<639:512>: 0x48000009800b400948000008800a4008
+#      z3<127:0>: 0x48100001808344014810000080824400
+#    z3<255:128>: 0x48100003808344034810000280824402
+#    z3<383:256>: 0x48100005808744054810000480864404
+#    z3<511:384>: 0x48100007808744074810000680864406
+#    z3<639:512>: 0x48100009808b440948100008808a4408
+#      z4<127:0>: 0x48200001810348014820000081024800
+#    z4<255:128>: 0x48200003810348034820000281024802
+#    z4<383:256>: 0x48200005810748054820000481064804
+#    z4<511:384>: 0x48200007810748074820000681064806
+#    z4<639:512>: 0x48200009810b480948200008810a4808
+#      z5<127:0>: 0x4830000181834c014830000081824c00
+#    z5<255:128>: 0x4830000381834c034830000281824c02
+#    z5<383:256>: 0x4830000581874c054830000481864c04
+#    z5<511:384>: 0x4830000781874c074830000681864c06
+#    z5<639:512>: 0x48300009818b4c0948300008818a4c08
+#      z6<127:0>: 0x48400001820350014840000082025000
+#    z6<255:128>: 0x48400003820350034840000282025002
+#    z6<383:256>: 0x48400005820750054840000482065004
+#    z6<511:384>: 0x48400007820750074840000682065006
+#    z6<639:512>: 0x48400009820b500948400008820a5008
+#      z7<127:0>: 0x48500001828354014850000082825400
+#    z7<255:128>: 0x48500003828354034850000282825402
+#    z7<383:256>: 0x48500005828754054850000482865404
+#    z7<511:384>: 0x48500007828754074850000682865406
+#    z7<639:512>: 0x48500009828b540948500008828a5408
+#      z8<127:0>: 0x48600001830358014860000083025800
+#    z8<255:128>: 0x48600003830358034860000283025802
+#    z8<383:256>: 0x48600005830758054860000483065804
+#    z8<511:384>: 0x48600007830758074860000683065806
+#    z8<639:512>: 0x48600009830b580948600008830a5808
+#      z9<127:0>: 0x4870000183835c014870000083825c00
+#    z9<255:128>: 0x4870000383835c034870000283825c02
+#    z9<383:256>: 0x4870000583875c054870000483865c04
+#    z9<511:384>: 0x4870000783875c074870000683865c06
+#    z9<639:512>: 0x48700009838b5c0948700008838a5c08
+#     z10<127:0>: 0x48800001840360014880000084026000
+#   z10<255:128>: 0x48800003840360034880000284026002
+#   z10<383:256>: 0x48800005840760054880000484066004
+#   z10<511:384>: 0x48800007840760074880000684066006
+#   z10<639:512>: 0x48800009840b600948800008840a6008
+#     z11<127:0>: 0x48900001848364014890000084826400
+#   z11<255:128>: 0x48900003848364034890000284826402
+#   z11<383:256>: 0x48900005848764054890000484866404
+#   z11<511:384>: 0x48900007848764074890000684866406
+#   z11<639:512>: 0x48900009848b640948900008848a6408
+#     z12<127:0>: 0x48a000018503680148a0000085026800
+#   z12<255:128>: 0x48a000038503680348a0000285026802
+#   z12<383:256>: 0x48a000058507680548a0000485066804
+#   z12<511:384>: 0x48a000078507680748a0000685066806
+#   z12<639:512>: 0x48a00009850b680948a00008850a6808
+#     z13<127:0>: 0x48b0000185836c0148b0000085826c00
+#   z13<255:128>: 0x48b0000385836c0348b0000285826c02
+#   z13<383:256>: 0x48b0000585876c0548b0000485866c04
+#   z13<511:384>: 0x48b0000785876c0748b0000685866c06
+#   z13<639:512>: 0x48b00009858b6c0948b00008858a6c08
+#     z14<127:0>: 0x48c000018603700148c0000086027000
+#   z14<255:128>: 0x48c000038603700348c0000286027002
+#   z14<383:256>: 0x48c000058607700548c0000486067004
+#   z14<511:384>: 0x48c000078607700748c0000686067006
+#   z14<639:512>: 0x48c00009860b700948c00008860a7008
+#     z15<127:0>: 0x48d000018683740148d0000086827400
+#   z15<255:128>: 0x48d000038683740348d0000286827402
+#   z15<383:256>: 0x48d000058687740548d0000486867404
+#   z15<511:384>: 0x48d000078687740748d0000686867406
+#   z15<639:512>: 0x48d00009868b740948d00008868a7408
+#     z16<127:0>: 0x48e000018703780148e0000087027800
+#   z16<255:128>: 0x48e000038703780348e0000287027802
+#   z16<383:256>: 0x48e000058707780548e0000487067804
+#   z16<511:384>: 0x48e000078707780748e0000687067806
+#   z16<639:512>: 0x48e00009870b780948e00008870a7808
+#     z17<127:0>: 0x48f0000187837c0148f0000087827c00
+#   z17<255:128>: 0x48f0000387837c0348f0000287827c02
+#   z17<383:256>: 0x48f0000587877c0548f0000487867c04
+#   z17<511:384>: 0x48f0000787877c0748f0000687867c06
+#   z17<639:512>: 0x48f00009878b7c0948f00008878a7c08
+#     z18<127:0>: 0x49000001880380014900000088028000
+#   z18<255:128>: 0x49000003880380034900000288028002
+#   z18<383:256>: 0x49000005880780054900000488068004
+#   z18<511:384>: 0x49000007880780074900000688068006
+#   z18<639:512>: 0x49000009880b800949000008880a8008
+#     z19<127:0>: 0x49100001888384014910000088828400
+#   z19<255:128>: 0x49100003888384034910000288828402
+#   z19<383:256>: 0x49100005888784054910000488868404
+#   z19<511:384>: 0x49100007888784074910000688868406
+#   z19<639:512>: 0x49100009888b840949100008888a8408
+#     z20<127:0>: 0x49200001890388014920000089028800
+#   z20<255:128>: 0x49200003890388034920000289028802
+#   z20<383:256>: 0x49200005890788054920000489068804
+#   z20<511:384>: 0x49200007890788074920000689068806
+#   z20<639:512>: 0x49200009890b880949200008890a8808
+#     z21<127:0>: 0x4930000189838c014930000089828c00
+#   z21<255:128>: 0x4930000389838c034930000289828c02
+#   z21<383:256>: 0x4930000589878c054930000489868c04
+#   z21<511:384>: 0x4930000789878c074930000689868c06
+#   z21<639:512>: 0x49300009898b8c0949300008898a8c08
+#     z22<127:0>: 0x494000018a039001494000008a029000
+#   z22<255:128>: 0x494000038a039003494000028a029002
+#   z22<383:256>: 0x494000058a079005494000048a069004
+#   z22<511:384>: 0x494000078a079007494000068a069006
+#   z22<639:512>: 0x494000098a0b9009494000088a0a9008
+#     z23<127:0>: 0x495000018a839401495000008a829400
+#   z23<255:128>: 0x495000038a839403495000028a829402
+#   z23<383:256>: 0x495000058a879405495000048a869404
+#   z23<511:384>: 0x495000078a879407495000068a869406
+#   z23<639:512>: 0x495000098a8b9409495000088a8a9408
+#     z24<127:0>: 0x496000018b039801496000008b029800
+#   z24<255:128>: 0x496000038b039803496000028b029802
+#   z24<383:256>: 0x496000058b079805496000048b069804
+#   z24<511:384>: 0x496000078b079807496000068b069806
+#   z24<639:512>: 0x496000098b0b9809496000088b0a9808
+#     z25<127:0>: 0x497000018b839c01497000008b829c00
+#   z25<255:128>: 0x497000038b839c03497000028b829c02
+#   z25<383:256>: 0x497000058b879c05497000048b869c04
+#   z25<511:384>: 0x497000078b879c07497000068b869c06
+#   z25<639:512>: 0x497000098b8b9c09497000088b8a9c08
+#     z26<127:0>: 0x498000018c03a001498000008c02a000
+#   z26<255:128>: 0x498000038c03a003498000028c02a002
+#   z26<383:256>: 0x498000058c07a005498000048c06a004
+#   z26<511:384>: 0x498000078c07a007498000068c06a006
+#   z26<639:512>: 0x498000098c0ba009498000088c0aa008
+#     z27<127:0>: 0x499000018c83a401499000008c82a400
+#   z27<255:128>: 0x499000038c83a403499000028c82a402
+#   z27<383:256>: 0x499000058c87a405499000048c86a404
+#   z27<511:384>: 0x499000078c87a407499000068c86a406
+#   z27<639:512>: 0x499000098c8ba409499000088c8aa408
+#     z28<127:0>: 0x49a000018d03a80149a000008d02a800
+#   z28<255:128>: 0x49a000038d03a80349a000028d02a802
+#   z28<383:256>: 0x49a000058d07a80549a000048d06a804
+#   z28<511:384>: 0x49a000078d07a80749a000068d06a806
+#   z28<639:512>: 0x49a000098d0ba80949a000088d0aa808
+#     z29<127:0>: 0x49b000018d83ac0149b000008d82ac00
+#   z29<255:128>: 0x49b000038d83ac0349b000028d82ac02
+#   z29<383:256>: 0x49b000058d87ac0549b000048d86ac04
+#   z29<511:384>: 0x49b000078d87ac0749b000068d86ac06
+#   z29<639:512>: 0x49b000098d8bac0949b000088d8aac08
+#     z30<127:0>: 0x49c000018e03b00149c000008e02b000
+#   z30<255:128>: 0x49c000038e03b00349c000028e02b002
+#   z30<383:256>: 0x49c000058e07b00549c000048e06b004
+#   z30<511:384>: 0x49c000078e07b00749c000068e06b006
+#   z30<639:512>: 0x49c000098e0bb00949c000088e0ab008
+#     z31<127:0>: 0x49d000018e83b40149d000008e82b400
+#   z31<255:128>: 0x49d000038e83b40349d000028e82b402
+#   z31<383:256>: 0x49d000058e87b40549d000048e86b404
+#   z31<511:384>: 0x49d000078e87b40749d000068e86b406
+#   z31<639:512>: 0x49d000098e8bb40949d000088e8ab408
+#       p0<15:0>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<47:32>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<79:64>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#       p1<15:0>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<31:16>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#      p1<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p1<63:48>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<79:64>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#       p2<15:0>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<31:16>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<47:32>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p2<79:64>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#       p3<15:0>: 0b 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1
+#      p3<31:16>: 0b 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1
+#      p3<47:32>: 0b 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1
+#      p3<63:48>: 0b 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1
+#      p3<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#       p4<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<31:16>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#      p4<47:32>: 0b 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1
+#      p4<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<79:64>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#       p5<15:0>: 0b 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p5<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1
+#      p5<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1
+#      p5<63:48>: 0b 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0
+#      p5<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1
+#       p6<15:0>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<31:16>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<47:32>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<63:48>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<79:64>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p7<15:0>: 0b 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
+#      p7<31:16>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1
+#      p7<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1
+#      p7<63:48>: 0b 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p7<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p8<15:0>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#      p8<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p8<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1
+#      p8<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#       p9<15:0>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p9<47:32>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p9<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1
+#      p10<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p10<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p10<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p11<15:0>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p11<31:16>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p11<79:64>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      FFR<15:0>: 0b 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
+#     FFR<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#             w3:         0x00900909
+#             x6: 0x0f0000f000f00f0f
 # NZCV: N:0 Z:0 C:0 V:0
-#    x9: 0x0000000001501515
+#             w9:         0x01501515
 # NZCV: N:0 Z:0 C:0 V:0
-#   x12: 0x1b0001b001b01b1b
-#   x15: 0x0000000002102121
-#   x18: 0x2700027002702727
+#            x12: 0x1b0001b001b01b1b
+#            w15:         0x02102121
+#            x18: 0x2700027002702727
 # NZCV: N:0 Z:0 C:0 V:0
-#   x21: 0x0000000002d02d2d
+#            w21:         0x02d02d2d
 # NZCV: N:0 Z:0 C:0 V:0
-#   x24: 0x3300033003303333
-#   x27: 0x0000000001c01c1c
-#    x2: 0x~~~~~~~~~~~~~~~~
+#            x24: 0x3300033003303333
+#            w27:         0x01c01c1c
+#             x2: 0x~~~~~~~~~~~~~~~~
 # NZCV: N:0 Z:0 C:0 V:0
-#    x5: 0x0000000000700707
+#             w5:         0x00700707
 # NZCV: N:0 Z:1 C:0 V:0
-#    x8: 0x0000000000000000
-#   x11: 0x0000000001b01b1b
-#   x13: 0x0700007000700707
-#   x15: 0x0000000000000080
-#   x18: 0x0000013000130013
-#   x21: 0x0000000002d02d2c
-#   x23: 0x1700017001701716
-#   x25: 0x0000000000200202
-#   x28: 0x1d0001d001d01d1d
+#             x8: 0x0000000000000000
+#            w11:         0x01b01b1b
+#            x13: 0x0700007000700707
+#            w15:         0x00000080
+#            x18: 0x0000013000130013
+#            w21:         0x02d02d2c
+#            x23: 0x1700017001701716
+#            w25:         0x00200202
+#            x28: 0x1d0001d001d01d1d
 # NZCV: N:0 Z:1 C:0 V:0
-#    x3: 0x0000000000000000
+#             w3:         0x00000000
 # NZCV: N:0 Z:0 C:0 V:0
-#    x6: 0x0700007000700707
+#             x6: 0x0700007000700707
 # NZCV: N:0 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:0 V:0
@@ -104,2989 +317,5897 @@
 # NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:1 V:1
 # NZCV: N:1 Z:0 C:0 V:0
-#   x17: 0x0000000000130014
-#   x17: 0x0000000000130013
-#   x19: 0x1400014001401414
-#   x19: 0x1400014001401415
-#   x21: 0x0000000001601616
-#   x21: 0x00000000fe9fe9e9
-#   x23: 0xccfffccffccfcccc
-#   x23: 0x3300033003303333
-#   x25: 0x0000000000000006
-#   x27: 0x0000000000000002
-#   x29: 0x0000000000000020
-#    x3: 0x0000000000000005
+#            w17:         0x00130014
+#            w17:         0x00130013
+#            x19: 0x1400014001401414
+#            x19: 0x1400014001401415
+#            w21:         0x01601616
+#            w21:         0xfe9fe9e9
+#            x23: 0xccfffccffccfcccc
+#            x23: 0x3300033003303333
+#            w25:         0x00000006
+#            x27: 0x0000000000000002
+#            w29:         0x00000020
+#             x3: 0x0000000000000005
 # NZCV: N:0 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:1 V:0
 # NZCV: N:1 Z:0 C:0 V:0
-#   x13: 0x0000000000e00e0e
-#   x13: 0x00000000ff1ff1f2
-#   x15: 0x1000010001001010
-#   x15: 0xeffffefffeffeff0
-#   x17: 0x00000000e963b635
-#   x20: 0x00000000ad83ccb8
-#   x23: 0x000000003ed5525d
-#   x26: 0x00000000bc365145
-#    x4: 0x0000000000000070
-#    x7: 0x00000000b096abf4
-#   x13: 0x0000000000e00e0e
-#   x13: 0x00000000feffeff0
-#   x16: 0x0000013000130013
-#   x16: 0x00000000e963b635
-#   x19: 0x0000000000000000
-#   x19: 0x0000000000000001
-#   x20: 0x0000000000000001
-#   x20: 0x0000000000000000
-#   x21: 0x0000000000000000
-#   x21: 0x00000000ffffffff
-#   x22: 0x0000000000000000
-#   x22: 0xffffffffffffffff
-#   x23: 0x0000000003303333
-#   x23: 0x0000000000000007
-#   x26: 0x1d0001d001d01d1e
-#   x26: 0x0000000000000002
-#   x29: 0x00000000fffffffa
-#   x29: 0x0000000000000000
-#    x4: 0x0000000000700707
-#    x4: 0xf8ffff8fff8ff8f8
-#    x7: 0x00000000feafeaeb
-#    x7: 0x0000000000000000
-#   x10: 0xe4fffe4ffe4fe4e5
-#   x10: 0x0000000001b01b1b
-#   x13: 0x0000000001e01e01
-#   x16: 0xfffffecf168f49d9
-#   x19: 0x00000000ffffffff
-#   x22: 0x3300033003303334
-#   x25: 0x0000000001000000
-#   x28: 0x0000000000000000
-#    x3: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x13: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x15: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   x16: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   x17: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x18: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000013121110 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000017161514 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000033323130 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000037363534 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0000000047464544 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000043424140 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x29: 0x000000004b4a4948 <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000058 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x3: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x000000000000005a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x000000000000005c <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000005d5c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000006160 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000006564 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000064 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x7: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000066 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x8: 0x0000000000000068 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000006968 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x9: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000006d6c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x10: 0x0000000000007170 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x11: 0x0000000073727170 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   x11: 0x000000007b7a7978 <- 0x~~~~~~~~~~~~~~~~
-#   x12: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
-#   x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
-#   x14: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x15: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x16: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x17: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x18: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000000000001 <- 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 <- 0x~~~~~~~~~~~~~~~~
-#   x22: 0x000000000a090807 <- 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x24: 0x0000000007060504 <- 0x~~~~~~~~~~~~~~~~
-#   x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
-#   x27: 0x0000000003020100 <- 0x~~~~~~~~~~~~~~~~
-#   x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
-#    x3: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000100 <- 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000000019590
-#    x7: 0x0000000000000340
-#    x9: 0x0000000070000000
-#   x12: 0x2c2a28262422201e
-#   x15: 0x0000000000000040
-#   x17: 0x0000000000000000
-#   x19: 0x0000000000000080
-#   x22: 0x0000000000302010
-#   x25: 0x00000000371b0900
-#   x29: 0x0000000000000100
-#    x5: 0x00000000feb67b00
-#    x8: 0xffffce5f00000000
-#   x11: 0x000000002422201e
-#   x13: 0x0000000000000001
-#   x15: 0x0000000000000082
-#   x16: 0x0000000000000083
-#   x17: 0x00000000ffffff7b
-#   x18: 0xffffffffffffff7a
-#   x19: 0x0000000000000086
-#   x20: 0x0000000000000087
-#   x22: 0x000000001b0e0500
-#   x26: 0xe3e9eff5fbff0100
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x5: 0x0000000001498500
-#    x8: 0x000000008fffffff
-#   x10: 0xffffffffdbdddfe1
-#   x12: 0x00000000ffffffff
-#   x14: 0xffffffffffffff7e
+#            w13:         0x00e00e0e
+#            w13:         0xff1ff1f2
+#            x15: 0x1000010001001010
+#            x15: 0xeffffefffeffeff0
+#            w17:         0xe963b635
+#            w20:         0xad83ccb8
+#            w23:         0x3ed5525d
+#            w26:         0xbc365145
+#             w4:         0x00000070
+#             w7:         0xb096abf4
+#            w13:         0x00e00e0e
+#            w13:         0xfeffeff0
+#            x16: 0x0000013000130013
+#            x16: 0x00000000e963b635
+#            w19:         0x00000000
+#            w19:         0x00000001
+#            x20: 0x0000000000000001
+#            x20: 0x0000000000000000
+#            w21:         0x00000000
+#            w21:         0xffffffff
+#            x22: 0x0000000000000000
+#            x22: 0xffffffffffffffff
+#            w23:         0x03303333
+#            w23:         0x00000007
+#            x26: 0x1d0001d001d01d1e
+#            x26: 0x0000000000000002
+#            w29:         0xfffffffa
+#            w29:         0x00000000
+#             x4: 0x0000000000700707
+#             x4: 0xf8ffff8fff8ff8f8
+#             w7:         0xfeafeaeb
+#             w7:         0x00000000
+#            x10: 0xe4fffe4ffe4fe4e5
+#            x10: 0x0000000001b01b1b
+#            w13:         0x01e01e01
+#            x16: 0xfffffecf168f49d9
+#            w19:         0xffffffff
+#            x22: 0x3300033003303334
+#            w25:         0x01000000
+#            x28: 0x0000000000000000
+#             w3:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#             x4: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w8:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w10:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x12: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w13:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x14: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            w19:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w23:         0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x17161514 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x1716151413121110 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x25: 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000007060504
+#                                  ╙─ 0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000033323130
+#                                  ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000037363534
+#                                  ╙─ 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x27: 0x0000000043424140
+#                                  ╙─ 0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0000000047464544
+#                                  ╙─ 0x47464544 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x43424140 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            w29:         0x4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x2: 0x~~~~~~~~~~~~~~~~ <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000058
+#                                  ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w3:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005a
+#                                  ╙─ 0x5a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x0000005c
+#                                  ╙─ 0x5c <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00005d5c
+#                                  ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006160
+#                                  ╙─ 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00006564
+#                                  ╙─ 0x6564 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000064
+#                                  ╙─ 0x64 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w7:         0x00000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000066
+#                                  ╙─ 0x66 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x8: 0x0000000000000068
+#                                  ╙─ 0x68 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006968
+#                                  ╙─ 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w9:         0x00006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000006d6c
+#                                  ╙─ 0x6d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x10: 0x0000000000007170
+#                                  ╙─ 0x7170 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000003020100
+#                                  ╙─ 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x11: 0x0000000073727170
+#                                  ╙─ 0x73727170 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            x11: 0x000000007b7a7978
+#                                  ╙─ 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            w12:         0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#            x13: 0x161514131211100f <- 0x~~~~~~~~~~~~~~~~
+#            w14:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w15:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w16:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            w17:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            w18:         0x00000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            x19: 0x0000000000000001
+#                                  ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            w20:         0x00000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            x21: 0x0000000000000403
+#                                  ╙─ 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#            x22: 0x000000000a090807
+#                                  ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#            w23:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            w24:         0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            x25: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            x26: 0x0f0e0d0c0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#            w27:         0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#            x28: 0x0706050403020100 <- 0x~~~~~~~~~~~~~~~~
+#            w29:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w2:         0x00000000
+#                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             w3:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000100
+#                                  ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#             w5:         0x00019590
+#             x7: 0x0000000000000340
+#             w9:         0x70000000
+#            x12: 0x2c2a28262422201e
+#            w15:         0x00000040
+#            x17: 0x0000000000000000
+#            w19:         0x00000080
+#            x22: 0x0000000000302010
+#            w25:         0x371b0900
+#            x29: 0x0000000000000100
+#             w5:         0xfeb67b00
+#             x8: 0xffffce5f00000000
+#            w11:         0x2422201e
+#            x13: 0x0000000000000001
+#            x15: 0x0000000000000082
+#            x16: 0x0000000000000083
+#            x17: 0x00000000ffffff7b
+#            x18: 0xffffffffffffff7a
+#            x19: 0x0000000000000086
+#            x20: 0x0000000000000087
+#            w22:         0x1b0e0500
+#            x26: 0xe3e9eff5fbff0100
+#             w2:         0x00010000
+#             x5: 0x0000000001498500
+#             w8:         0x8fffffff
+#            x10: 0xffffffffdbdddfe1
+#            w12:         0xffffffff
+#            x14: 0xffffffffffffff7e
 # NZCV: N:0 Z:0 C:0 V:0
-#   x16: 0x0000000000000085
+#            w16:         0x00000085
 # NZCV: N:1 Z:0 C:0 V:0
-#   x18: 0xffffffffffffff7a
-#   x20: 0x00000000fffffbfc
-#   x22: 0xfffffffffcfdfeff
+#            x18: 0xffffffffffffff7a
+#            w20:         0xfffffbfc
+#            x22: 0xfffffffffcfdfeff
 # NZCV: N:1 Z:0 C:0 V:0
-#   x24: 0x00000000c8e4f6ff
+#            w24:         0xc8e4f6ff
 # NZCV: N:1 Z:0 C:0 V:0
-#   x26: 0xfffffffffcfdfeff
-#   x28: 0x00000000fffeffff
-#    x3: 0xfffffffffeb67bff
-#    x6: 0x000000008fffffff
-#    x9: 0xffffffffffffffff
-#   x12: 0x0000000080000000
-#   x14: 0x4100000000000000
-#   x16: 0x000000007bffffff
-#   x18: 0x8600000000000000
-#   x20: 0x0000000000000304
-#   x22: 0x0000000002030001
-#   x24: 0x0000000000091b37
-#   x26: 0x0000000006040200
-#   x29: 0x0000000000020000
-#    x4: 0x0000000071498500
-#    x7: 0x000000008fffffff
+#            x26: 0xfffffffffcfdfeff
+#            w28:         0xfffeffff
+#             x3: 0xfffffffffeb67bff
+#             w6:         0x8fffffff
+#             x9: 0xffffffffffffffff
+#            w12:         0x80000000
+#            x14: 0x4100000000000000
+#            w16:         0x7bffffff
+#            x18: 0x8600000000000000
+#            w20:         0x00000304
+#            x22: 0x0000000002030001
+#            x24: 0x0000000000091b37
+#            w26:         0x06040200
+#            x29: 0x0000000000020000
+#             w4:         0x71498500
+#             x7: 0x000000008fffffff
 # NZCV: N:1 Z:0 C:0 V:1
-#   x10: 0x00000000a422201d
+#            w10:         0xa422201d
 # NZCV: N:0 Z:0 C:1 V:0
-#   x13: 0x40ffffffffffff7d
-#   x16: 0x000000000000000c
-#   x18: 0x0000000000000060
-#   x22: 0x0000000000000004
-#   x24: 0xffffffffffffff09
-#   x26: 0x00000000fffffcff
-#   x29: 0x0000000000000000
-#   x12: 0x1080ffffffffffde
-#   x24: 0x0000000000000001
-#   x27: 0x0000000000000001
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000001
-#    x6: 0x0000000000000001
-#    x8: 0x0000000000000001
-#   x10: 0x0000000000000001
-#   x12: 0x0000000000000001
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x6: 0x0000000000000001
-#    x9: 0x0000000000000001
-#   x12: 0x0000000000000001
-#   x14: 0x0000000000000001
-#   x16: 0x0000000000000001
-#   x18: 0x0000000000000001
-#   x20: 0x0000000000000001
-#   x22: 0x0000000000000001
-#   x24: 0x00000000371b0c01
-#   x27: 0x00000000fffeffff
+#            x13: 0x40ffffffffffff7d
+#            w16:         0x0000000c
+#            x18: 0x0000000000000060
+#            w22:         0x00000004
+#            x24: 0xffffffffffffff09
+#            w26:         0xfffffcff
+#            x29: 0x0000000000000000
+#            x12: 0x1080ffffffffffde
+#            w24:         0x00000001
+#            w27:         0x00000001
+#             w2:         0x00000001
+#             w4:         0x00000001
+#             w6:         0x00000001
+#             w8:         0x00000001
+#            w10:         0x00000001
+#            w12:         0x00000001
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             w6:         0x00000001
+#             w9:         0x00000001
+#            w12:         0x00000001
+#            w14:         0x00000001
+#            w16:         0x00000001
+#            w18:         0x00000001
+#            w20:         0x00000001
+#            w22:         0x00000001
+#            w24:         0x371b0c01
+#            x27: 0x00000000fffeffff
 # NZCV: N:1 Z:0 C:1 V:0
-#    x2: 0x~~~~~~~~~~~~~~~~
+#             w2:         0xfeb67bfe
 # NZCV: N:1 Z:0 C:0 V:0
-#    x5: 0xffffffff70000002
-#    x8: 0x0000000000000001
-#   x10: 0x000000000000001e
-#   x12: 0x00000000ffffff7d
-#   x14: 0x0000000000000082
-#   x16: 0x00000000ffffff7b
-#   x18: 0x0000000000000086
+#             x5: 0xffffffff70000002
+#             w8:         0x00000001
+#            x10: 0x000000000000001e
+#            w12:         0xffffff7d
+#            x14: 0x0000000000000082
+#            w16:         0xffffff7b
+#            x18: 0x0000000000000086
 # NZCV: N:0 Z:0 C:0 V:0
 # NZCV: N:0 Z:1 C:0 V:0
-#   x24: 0x0000000000040000
-#   x26: 0x0000000001fff000
-#   x28: 0x0000000000000000
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000000
-#    x6: 0x000000000000003f
-#    x8: 0x0000000000000000
-#   x11: 0x0000000000000000
-#   x22: 0x0000000000000000
-#   x28: 0x0000000000000000
-#    x2: 0x~~~~~~~~~~~~~~~~
-#    x4: 0x0000000000000002
-#    x6: 0x000000000000ffff
-#    x8: 0x0000000000000001
-#   x10: 0x0000000000000000
+#            w24:         0x00040000
+#            x26: 0x0000000001fff000
+#            w28:         0x00000000
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000000
+#             x6: 0x000000000000003f
+#             w8:         0x00000000
+#            x11: 0x0000000000000000
+#            x22: 0x0000000000000000
+#            w28:         0x00000000
+#             x2: 0x~~~~~~~~~~~~~~~~
+#             w4:         0x00000002
+#             x6: 0x000000000000ffff
+#             w8:         0x00000001
+#            x10: 0x0000000000000000
 # NZCV: N:0 Z:1 C:1 V:0
-#    x3: 0x0000000000000000
+#             x3: 0x0000000000000000
 # NZCV: N:1 Z:0 C:0 V:0
-#   v13: 0x00000000000000004036e00cd9b7e45b
-#    v8: 0x00000000000000000000000041c5851e
-#    v1: 0x00000000000000003ff587933f9e0419 (d1: 1.34560)
-#   v25: 0x000000000000000000000000410a4396 (s25: 8.64150)
-#    v1: 0x0000000000000000ffffffffffffffff
-#    v4: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#   v13: 0x0000000000000000404633d07142f43a (d13: 44.4048)
-#   v27: 0x000000000000000000000000424094fe (s27: 48.1455)
+#            v13: 0x0000000000000000490ffff1110487fe
+#             v8: 0x0000000000000000000000000e02aff8
+#             d1:                 0x47f000007f823c00 (3.403e+38)
+#            s25:                         0x02825400 (1.915e-37)
+#             v1: 0x0000000000000000ffffffffffffffff
+#             v4: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#            d13:                 0x494002008a13204c (7.140e+44)
+#            s27:                         0x0e029fa8 (1.610e-30)
 # NZCV: N:0 Z:0 C:0 V:0
-# NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:1 C:1 V:0
-#   v19: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v27: 0x0000000000000000ffffffffffffffff
-#   v31: 0x0000000000000000ffffffffffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v1: 0x000000000000000000000000ffffffff
-#   v18: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v11: 0x000000000000000000000000ffffffff
-#   v17: 0x000000000000000000000000ffffffff
-#   v24: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-# NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:0
 # NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:0 Z:1 C:1 V:0
+#            v19: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v27: 0x0000000000000000ffffffffffffffff
+#            v31: 0x0000000000000000ffffffffffffffff
+#            v31: 0x000000000000000000000000ffffffff
+#             v1: 0x000000000000000000000000ffffffff
+#            v18: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ffffffffffffffff
+#            v11: 0x000000000000000000000000ffffffff
+#            v17: 0x00000000000000000000000000000000
+#            v24: 0x0000000000000000ffffffffffffffff
+#            v11: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+# NZCV: N:0 Z:0 C:1 V:1
 # NZCV: N:0 Z:0 C:1 V:0
 # NZCV: N:0 Z:0 C:1 V:1
+# NZCV: N:1 Z:0 C:0 V:0
+# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:1 C:1 V:0
-#   v10: 0x00000000000000000000000000000000 (d10: 0.00000)
-#   v22: 0x00000000000000000000000000000000 (s22: 0.00000)
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
-#   v11: 0x00000000000000000000000000000000 (d11: 0.00000)
-#    v8: 0x00000000000000000000000000004a0e
-#   v12: 0x0000000000000000000000000000ffff
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
-#   v27: 0x0000000000000000000000004072c000 (s27: 3.79297)
-#   v28: 0x00000000000000000000000000000016
-#    v3: 0x00000000000000000000000000000000
-#   x18: 0x0000000000000000
-#   x29: 0x0000000000000000
-#    x9: 0x0000000000000000
-#    lr: 0x0000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   x16: 0x0000000000000000
-#   x18: 0x0000000000000000
-#   x26: 0x0000000000000009
-#   x25: 0x0000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000012
-#    x9: 0x0000000000000009
-#   x19: 0x0000000000000007
-#    x6: 0x0000000000000008
-#   x22: 0x0000000000000008
-#   v27: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   x29: 0x0000000000000000
-#   x26: 0x0000000000000000
-#   x13: 0x0000000000000000
-#    x5: 0x0000000000000000
-#   v30: 0x00000000000000000000000000000014
-#   v10: 0x00000000000000000000000000000000
-#   x21: 0x0000000000000014
-#   x18: 0x0000000000000000
-#    x8: 0x0000000000000000
-#   x17: 0x0000000000000000
-#    v0: 0x0000000000000000000000000000001c
-#    v6: 0x00000000000000000000000000000009
-#   x29: 0x0000000000000000
-#   x25: 0x0000000000000000
-#    lr: 0x0000000000000000
-#   x27: 0x0000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000019
-#   x15: 0x0000000000000001
-#   x16: 0x0000000000000009
-#   x13: 0x000000000000001b
-#    x3: 0x000000000000001d
-#   v24: 0x00000000000000000000000000000001
-#   v14: 0x00000000000000000000000000000001
-#   x26: 0x0000000000000001
-#   x27: 0x0000000000000001
-#   x29: 0x0000000000000001
-#   v12: 0x00000000000000000000000000000001
-#   v15: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    x6: 0x000000000000000c
-#   x25: 0x0000000000000000
-#    x9: 0x0000000000000000
-#   x17: 0x0000000000000000
-#   x19: 0x0000000000000000
-#   x22: 0x0000000000000000
-#   x14: 0x0000000000000018
-#    x3: 0x0000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   x11: 0x0000000000000000
-#    x7: 0x0000000000000000
-#   x18: 0x0000000000000000
-#   x14: 0x0000000000000000
-#   x22: 0x0000000000000000
-#    x8: 0x0000000000000000
-#    x7: 0x0000000000000018
-#   x22: 0x00008a4396000000
-#    v6: 0x00000000000000007ff0000000000000 (d6: inf)
-#   v26: 0x00000000000000000000000000000000 (s26: 0.00000)
-#   v18: 0x00000000000000000000000000000014 (d18: 9.88131e-323)
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
-#   v12: 0x00000000000000000000000000000000 (d12: 0.00000)
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
-#   v28: 0x00000000000000000000000000000000 (d28: 0.00000)
-#    v6: 0x00000000000000000000000000000000 (s6: 0.00000)
-#   v20: 0x00000000000000000000000000000014 (d20: 9.88131e-323)
-#    v7: 0x00000000000000000000000000000000 (s7: 0.00000)
-#   v19: 0x00000000000000000000000000000001 (d19: 4.94066e-324)
-#    v0: 0x000000000000000000000000ffffffff (s0: nan)
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
-#    v2: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000c004000000000000 (d8: -2.50000)
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
-#   v25: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000040380000 (s21: 2.87500)
-#   x18: 0x0000000000000001
-#   x18: 0x0000000000000000
-#   v20: 0x00000000000000000000000000000001 (d20: 4.94066e-324)
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
-#   v25: 0x000000000000000000000000ffffffff (s25: nan)
-#    v4: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000000000000ffffffff
-#   v15: 0x000000000000000080000000ffffffff (d15: -2.12200e-314)
-#   v14: 0x0000000000000000000000007fffffff (s14: nan)
-#    v0: 0x00000000000000008000000000000000 (d0: -0.00000)
-#    v0: 0x00000000000000000000000080000014 (s0: -2.80260e-44)
-#   v19: 0x00000000000000008000000040380000 (d19: -5.32312e-315)
-#   v29: 0x00000000000000000000000080000000 (s29: -0.00000)
-#   v31: 0x00000000000000000000000000000000 (d31: 0.00000)
-#   v18: 0x0000000000000000000000007fffffff (s18: nan)
-#    v7: 0x00000000000000007ff0000000000000
-#   v29: 0x000000000000000000000000ffffffff
-#   v11: 0x00000000000000004000000000000000
-#   v18: 0x000000000000000000000000ffffffff
-#   v15: 0x00000000000000007fe0000000000000
-#    v5: 0x0000000000000000000000007f000000
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
-#   v19: 0x00000000000000000000000000000000 (d19: 0.00000)
-#   v14: 0x00000000000000000000000040400000 (s14: 3.00000)
-#   v20: 0x00000000000000000000000000000000 (d20: 0.00000)
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
-#   v24: 0x00000000000000000000000000000000 (s24: 0.00000)
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
-#   v17: 0x00000000000000000000000000000000 (s17: 0.00000)
-#    v0: 0x0000000000000000c000000000000000 (d0: -2.00000)
-#   v15: 0x000000000000000000000000ffffffff (s15: nan)
-#   v21: 0x00000000000000007ff0000000000000
-#   v17: 0x000000000000000000000000ffffffff
-#    v4: 0x00000000000000003ff8000000000000
-#   v14: 0x0000000000000000000000003fc00000
-#   v14: 0x00000000000000001f5ffffffff00000 (d14: 1.45671e-157)
-#    v4: 0x000000000000000000000000fff00000 (s4: nan)
-#   v13: 0x0000000000000000fff0000000000000 (d13: -inf)
-#    v3: 0x00000000000000000000000000000000 (s3: 0.00000)
-#   v31: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000004022000000000000 (d6: 9.00000)
-#    v5: 0x00000000000000003f90000000000000 (d5: 0.0156250)
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
-#   v15: 0x00000000000000000000000000000000 (d15: 0.00000)
-#    v7: 0x00000000000000007ff00000c9800000
-#    v8: 0x0000000000000000c004000000000000
-#   v29: 0x00000000000000000000000000000000 (s29: 0.00000)
-#   v15: 0x0000000000000000000000003c200000 (s15: 0.00976562)
-#   v27: 0x0000000000000000000000003f800000 (s27: 1.00000)
-#   v26: 0x0000000000000000000000003c7fffff (s26: 0.0156250)
-#    v0: 0x000000000000000043d00a0e21904c71
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000003ff0000000000000 (d30: 1.00000)
-#    v3: 0x00000000000000000000000000000000 (d3: 0.00000)
-#   v28: 0x00000000000000004034000000000000 (d28: 20.0000)
-#   v27: 0x00000000000000000000000000000000 (d27: 0.00000)
-#   v11: 0x00000000000000004000000000000000
-#    v0: 0x000000000000000043d00a0e4783c64c
-#   v20: 0x00000000000000000000000000000000 (s20: 0.00000)
-#   v21: 0x00000000000000000000000046160000 (s21: 9600.00)
-#    v6: 0x00000000000000000000000041d80000 (s6: 27.0000)
-#    v7: 0x00000000000000000000000038ff0000 (s7: 0.000121593)
-#   v19: 0x000000000000000043d00a0e4783c64c
-#   v16: 0x00000000000000004000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000000000001
-#   v16: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000010000000000000
-#   v10: 0x000000000000000000000000ffffffff
-#   v31: 0x403ba7b141b670b1403ef2e47d0325e4
-#   v10: 0x403ba7b141b670b15f9ef2e47cf325e4
-#   v15: 0x000000000000000063300a0d4773c64c
-#   v27: 0x0000000000000000403ef2e441e225e3
-#   v25: 0x00000000000000004044000000000000
-#   v13: 0x00000000000000000000000037feffff
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000082900a0d
-#   v10: 0x0000000000000000000000003ff03c7f
-#   v31: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v31: 0x00000000000038fe0000000000000000
-#   v14: 0x000000000000000043d00a0e4783c64c
-#    v3: 0x000000007400000000000000c4000000
-#    v8: 0x00000000ffffffff0000000000000000
-#   v22: 0x00000000000000003c7fffff3ff00000
-#   v29: 0x00000000000000004dde0dcf00000000
-#   v30: 0x0000000000000000000000003c7fffff
-#   v12: 0x0000000000000000000037000000bbfe
-#   v17: 0x000000003700bbfe0000fffe00000000
-#   v27: 0x0000000000000000000000000000006c
-#   v12: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000003c7e
-#   v19: 0x00000000000000000000000000005bad
-#   v14: 0x00000000000000000000000000003c7e
-#   v10: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v26: 0x000000007400000000000000c4000000
-#    v7: 0x000000000000000000000000381b0000
-#   v28: 0x00000000000000004034000000000000
-#   v29: 0x00000000000000004dde0d4300000000
-#   v12: 0x00000000000000000000000000000000
-#   v18: 0x000000000000000000000000ff67ff67
-#   v12: 0x000000000000000000000000c4000000
-#    v2: 0x0000000000000000403ef2e441e30180
-#    v8: 0x00000000ffffffff0000000004000000
-#    v5: 0x00000000000000000000000000000000
-#    v9: 0x00128220009270f80016c26000c22160
-#   v14: 0x000000000000000000000000c4000000
-#   v29: 0x07070707070707070707070707070707
-#   v21: 0x00000000000000000000001f0000001f
-#    v1: 0x0000000000000000000f000f0001000f
-#   v27: 0x0000001f0000001f0000001f0000001f
-#   v19: 0x00000000000000000707070707070707
-#   v15: 0x000f000f000f000f000f000f0001000f
-#    v1: 0x08080808080808080808080808080808
-#   v27: 0x00000000000000000000001000000020
-#    v9: 0x0000000000000000000b000000080002
-#   v31: 0x0000000c0000000c0000000c0000000f
-#   v14: 0x00000000000000000505050505050505
-#    v6: 0x00100010001000100001001000100010
-#   v18: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v19: 0xffffffff00ffffff000000000000ffff
-#   v15: 0xffffffffffffffffff00ffffff00ff00
-#   v12: 0xffffffffffffffffffffffffffffffff
-#    v8: 0xffffffffffffffff0000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000ffffffff
-#    v6: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000ffffffff00000000
-#   v21: 0xffffffff0000000000000000ffffffff
-#    v6: 0xffffffffffffffff00000000ffffffff
-#   v16: 0x0000000000000000ffffffff00000000
-#   v21: 0x000000000000000000000000ffffffff
-#   v20: 0xffffffffffffffff0000ffff0000ffff
-#   v26: 0x0000000000000000ffffffffffffffff
-#   v16: 0x00000000000000000000000000000000
-#   v25: 0x0000000000000000ffffffffffffffff
-#   v17: 0x000000000000ffffffffffffffff0000
-#   v22: 0xffffffffffffffffffffffffffff0000
-#   v28: 0x0000000000000000ffffffffffffffff
-#    v6: 0xffffffffffffffffffffffffffffffff
-#   v25: 0x000000000000000000000000ffffffff
-#   v21: 0x0000000000000000ffffffffffffffff
-#   v16: 0x0000000000000000ffffffff0000ffff
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v7: 0xffffffffffffffff00000000ffffffff
-#    v0: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000ff00ffffffff0000
-#   v21: 0x0000000000000000ffffffffffffffff
-#    v2: 0x0000000000000000ffffffffffffffff
-#   v19: 0xffffffffffffffff000000000000ffff
-#    v6: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v5: 0x0000000000000000ffffffffffffffff
-#   v12: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v5: 0x0000000000000000ffffffff00000000
-#   v13: 0x00000000000000000000000000000000
-#   v27: 0x0000000000000000000000ffffffffff
-#    v5: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x000000000000000000000000ffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v11: 0x0000000000000000ffffffff00000000
-#    v1: 0x00000000000000000000000000000000
-#   v21: 0xffffffffffffffffffffffffffffffff
-#    v8: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000ffffffffffffffff
-#   v19: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000ffffffffffffffff
-#    v0: 0xffffffff00ffffffffffffffffffffff
-#    v2: 0xffffffffffffffffffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#    v9: 0x0000000000000000ffffffffffffffff
-#    v9: 0xffffffffffffffffffffffffffffffff
-#   v21: 0x0000000000000000ffffffffffffffff
-#   v29: 0xffffffffffffffffffffffffffffffff
-#   v25: 0x0000000000000000ffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#   v25: 0x00000000000000000000000000000000
-#    v0: 0x0000000000000000ffffffff00000000
-#   v24: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000ffffffff00000000
-#    v1: 0x0000000000000000ffffffffffffffff
-#   v28: 0x0000000000000000ffffffffffffffff
-#   v26: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v11: 0x0000000000000000ff00ffffffff0000
-#    v0: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000008080808
-#   v28: 0x00000000000000000000000000000000
-#    v6: 0xffffffffffffffffffffffffffffffff
-#    v9: 0x01010101010101010101010101010101
-#   v12: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000ffffff7dffffff7d
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v10: 0x00000018000000180000001800000018
-#   v30: 0x0000000000000000ffffffffffffffff
-#   v31: 0x00000000000000000101010101010101
-#   v28: 0xffffffffffffffffffffffffffffffff
-#    v2: 0x00000000000000000000000000000000
-#   v29: 0x0000000000000000ffffff7df7f7f775
-#    v3: 0x0000000000000000ffffffffffffffff
-#    v1: 0xff000000000000000000000000000000
-#    v2: 0x000000000000000000ffffffffffffff
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0b0a09080706050403020100fffefdfc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0a09080706050403020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x1a191817161514131211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x2a292827262524232221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x3a393837363534333231302f2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x191817161514131211100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x292827262524232221201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x393837363534333231302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x494847464544434241403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x595857565554535251504f4e4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x4847464544434241403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x5857565554535251504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x6867666564636261605f5e5d5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x67666564636261605f5e5d5c5b5a5958 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001f1e1d1c1b1a1918 (d7: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000006f6e6d6c6b6a6968 (d17: 5.76650e+228) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000007776757473727170 (d18: 2.89670e+267) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000007f7e7d7c7b7a7978 (d19: 1.33818e+306) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000008786858483828180 (d20: -2.08158e-272) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000006e6d6c6b6a696867 (d28: 8.50866e+223) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000767574737271706f (d29: 4.22243e+262) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000007e7d7c7b7a797877 (d30: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000868584838281807f (d31: -3.03465e-277) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000ff0000850002ff01 (d20: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000000000000fffeff (d21: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000001700000000000000 (d22: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000008e8d8c8b8a898887 (d19: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000969594939291908f (d20: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000009e9d9c9b9a999897 (d21: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000008d8c8b8a89888786 (d12: -2.09028e-243) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000009594939291908f8e (d13: -1.02545e-204) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009d9c9b9a99989796 (d14: -4.85140e-166) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000ff0000850002ff01 (d29: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000fffeff (d30: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000a5a4a3a2a1a09f9e (d31: -2.38202e-127) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000adacabaaa9a8a7a6 (d0: -1.12597e-88) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000a4a3a2a1a09f9e9d (d3: -3.45787e-132) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000acabaaa9a8a7a6a5 (d4: -1.65794e-93) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000ff0000850002ff01 (d28: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000b4b3b2b1b0afaead (d11: -8.03348e-55) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000b3b2b1b0afaeadac (d29: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x3f3e3d3c3b3a39383736353433323130 (0.000461414, 9.95833e-43) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.70315e+18, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.28100e+95, -1.31369e+57) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.45943e+173, -3.04943e+134) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.39104e+250, -7.07849e+211) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.90391e+13, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.07279e+90, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.10851e+168, -4.47908e+129) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.90012e+245, -1.03980e+207) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.07812e-299, -2.41385e+284) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1211100f0e0d0c0b0a09080706050403 (1.18008e-221, 2.54377e-260) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2221201f1e1d1c1b1a19181716151413 (2.74293e-144, 5.90574e-183) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.74681e-304, -3.54087e+279) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x11100f0e0d0c0b0a0908070605040302 (1.69471e-226, 3.72581e-265) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x21201f1e1d1c1b1a1918171615141312 (3.94003e-149, 8.65093e-188) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x31302f2e2d2c2b2a2928272625242322 (9.15999e-72, 2.00864e-110) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x41403f3e3d3c3b3a3938373635343332 (2.12953e+06, 4.66377e-33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x302f2e2d2c2b2a292827262524232221 (1.34639e-76, 2.93754e-115) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x403f3e3d3c3b3a393837363534333231 (31.2431, 6.82132e-38) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x504f4e4d4c4b4a494847464544434241 (7.24994e+78, 1.58398e+40) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x4f4e4d4c4b4a49484746454443424140 (1.07078e+74, 2.31271e+35) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000001f1e1d1c1b1a1918 (..., 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000005756555453525150 (..., 2.35662e+14, 9.03307e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000005f5e5d5c5b5a5958 (..., 1.60231e+19, 6.14598e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000006766656463626160 (..., 1.08801e+24, 4.17598e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000006f6e6d6c6b6a6968 (..., 7.37897e+28, 2.83386e+26) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000565554535251504f (..., 5.86395e+13, 2.24749e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000005e5d5c5b5a595857 (..., 3.98768e+18, 1.52943e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000666564636261605f (..., 2.70818e+23, 1.03937e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000006e6d6c6b6a696867 (..., 1.83698e+28, 7.05432e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000767574737271706f (..., 1.24460e+33, 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007e7d7c7b7a797877 (..., 8.42353e+37, 3.23831e+35) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000868584838281807f (..., -5.02237e-35, -1.90286e-37) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000007574737271706f6e (..., 3.09878e+32, 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000007d7c7b7a79787776 (..., 2.09754e+37, 8.06320e+34) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000008584838281807f7e (..., -1.24615e-35, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000008d8c8b8a89888786 (..., -8.66176e-31, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009594939291908f8e (..., -6.00095e-26, -2.28077e-28) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000008c8b8a8988878685 (..., -2.14997e-31, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x000000000000000094939291908f8e8d (..., -1.49010e-26, -5.66232e-29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000009c9b9a9998979695 (..., -1.02970e-21, -3.91846e-24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000009b9a999897969594 (..., -2.55764e-22, -9.73128e-25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000abaaa9a8a7a6a5a4 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000bbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000cac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000d1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000d9d8d7d6d5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000e1e0dfdedddcdbda <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000d8d7d6d5d4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e0dfdedddcdbdad9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e8e7e6e5e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x3f3e3d3c3b3a39383736353433323130 (0.743122, 0.00284155, 1.08604e-05, 4.14886e-08) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.00179e+34, -3.84962e+31, -1.47890e+29, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.00825e-34, 3.82047e-37, nan, -2.60629e+36) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17161514131211100f0e0d0c0b0a0908 (4.84942e-25, 1.84362e-27, 7.00365e-30, 2.65846e-32) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x27262524232221201f1e1d1c1b1a1918 (2.30573e-15, 8.78905e-18, 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.49430e+33, -9.58428e+30, -3.68172e+28, -1.41390e+26) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.50175e-35, 9.47771e-38, -1.68804e+38, -6.48966e+35) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x161514131211100f0e0d0c0b0a090807 (1.20425e-25, 4.57737e-28, 1.73854e-30, 6.59782e-33) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x262524232221201f1e1d1c1b1a191817 (5.72948e-16, 2.18366e-18, 8.31732e-21, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x363534333231302f2e2d2c2b2a292827 (2.70015e-06, 1.03137e-08, 3.93749e-11, 1.50241e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x464544434241403f3e3d3c3b3a393837 (12625.1, 48.3127, 0.184800, 0.000706557) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x565554535251504f4e4d4c4b4a494847 (5.86395e+13, 2.24749e+11, 8.61082e+08, 3.29781e+06) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x3534333231302f2e2d2c2b2a29282726 (6.71297e-07, 2.56382e-09, 9.78665e-12, 3.73374e-14) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x4544434241403f3e3d3c3b3a39383736 (3140.20, 12.0154, 0.0459549, 0.000175682) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x5554535251504f4e4d4c4b4a49484746 (1.45909e+13, 5.59177e+10, 2.14218e+08, 820340.) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6564636261605f5e5d5c5b5a59585756 (6.74083e+22, 2.58684e+20, 9.92399e+17, 3.80591e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e6d6c6b6a69686766 (3.09878e+32, 1.19058e+30, 4.57302e+27, 1.75599e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x64636261605f5e5d5c5b5a5958575655 (1.67780e+22, 6.43816e+19, 2.46969e+17, 9.47063e+14) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x74737271706f6e6d6c6b6a6968676665 (7.71514e+31, 2.96402e+29, 1.13840e+27, 4.37102e+24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.09178e-36, -1.17085e-38, 5.22300e+36, 2.00766e+34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v0: 0x838281807f7e7d7c7b7a797877767574 (-7.67045e-37, 3.38275e+38, 1.30054e+36, 4.99878e+33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000008b8a898887868584 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000939291908f8e8d8c <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000008a89888786858483 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000009291908f8e8d8c8b <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000009a99989796959493 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a9a8a7a6a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000b1b0afaeadacabaa <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000c0bfbebdbcbbbab9 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000c8c7c6c5c4c3c2c1 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000d0cfcecdcccbcac9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000cfcecdcccbcac9c8 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0f0e0d0c0b0a09080706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0e0d0c0b0a09080706050403020100ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x1e1d1c1b1a191817161514131211100f <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2e2d2c2b2a292827262524232221201f <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3d3c3b3a393837363534333231302f <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x1d1c1b1a191817161514131211100f0e <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x2d2c2b2a292827262524232221201f1e <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3a393837363534333231302f2e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x4d4c4b4a494847464544434241403f3e <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x5d5c5b5a595857565554535251504f4e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x4c4b4a494847464544434241403f3e3d <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5c5b5a595857565554535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x6c6b6a696867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x6b6a696867666564636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3a39383736353433323130012e <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x6c6b6a6b6867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x737271706f6e6d6c636261605f5e5d5c (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x7271706f6e6d6c6b2726252423222120 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3aff013736353433323130012e <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xff0000850002ff01d6d5d4d37473d0cf <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5c5b5a595857737254535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.99878e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.24460e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x77777777777777777777777777777777 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0x76767676767676767676767676767676 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000ff0000850002ff01 (d25: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007e7d7c7b7a797877 (d9: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000007d7c7b7a79787776 (d23: 2.91053e+296) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x8584838281807f7e8584838281807f7e (-4.41447e-282, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84838281807f7e7d84838281807f7e7d (-6.40629e-287, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000002ff010002ff01 (s24: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000008887868588878685 (s26: -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000008786858487868584 (s28: -2.02406e-34) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000008988898889888988 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000008887888788878887 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (..., -2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x8b8a89888b8a89888b8a89888b8a8988 (..., -5.33626e-32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000008c8c8c8c8c8c8c8c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1e1c1a18000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1d1b1917000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xacaaa8a6a4a2a09e9c9a98969492908e <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0x1700000000000000ff0000850002ff01 (6.68887e-198, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.56775e-159, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.70315e+18, -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.31369e+57, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.90391e+13, -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.92941e+52, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000000fffeff0002ff01 (..., 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000d6d5d4d3cecdcccb (..., -1.17555e+14, -1.72638e+09) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000dad9d8d7d2d1d0cf (..., -3.06592e+16, -4.50576e+11) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000d5d4d3d2cdcccbca (..., -2.92508e+13, -4.29488e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000d9d8d7d6d1d0cfce (..., -7.62949e+15, -1.12105e+11) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e7e6e3e2dfdedbda <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e9e8e5e4e1e0dddc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e6e5e2e1dedddad9 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e8e7e4e3e0dfdcdb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x1b1a19180000000000fffeff0002ff01 (1.27467e-22, 0.00000, 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1700000000000000ff000085 (3.34819e-20, 4.13590e-25, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.53999e-36, -1.04669e+37, -1.54621e+32, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.06322e-34, 2.35095e-38, -4.02346e+34, -5.94046e+29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.82047e-37, -2.60629e+36, -3.84962e+31, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.00825e-34, nan, -1.00179e+34, -1.47890e+29) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000171513110f0d0b09 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001513110f0d0b0907 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c1918000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a17000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3433302f2c2b28272423201f1c1b1817 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x363532312e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v13: 0x33322f2e2b2a272623221f1e1b1a1716 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x353431302d2c2928252421201d1c1918 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x363532012e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1dff1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x4544434241403f3e363c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0706050403020100fffefdfcfb35f9f8 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c1918000000000000feff0036ff01 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000003e3d3c3b3a393837 (d26: 6.80687e-09) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000464544434241403f (d27: 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v25: 0x07060504fffefdfc3d3c3b3a39383736 (d25: 1.00298e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000004544434241403f3e (d26: 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v18: 0xff01000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00020000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000474600003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xff01000049480000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c191800000000000046450036ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a1700000000004847ff000002 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xff00008500000000000046450036ff01 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000000000004c4b4a49 (s28: 5.32913e+07) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002ff0103020100fffefdfc504f4e4d (s29: 1.39121e+10) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.32570e+07, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.46117e+09, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x51515151515151515151515151515151 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 (d26: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000000000000000fffeff (d27: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000005857565554535251 (d14: 3.67814e+117) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0000000000000000605f5e5d5c5b5a59 (d15: 1.68234e+156) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000005756555453525150 (d23: 5.37096e+112) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000005f5e5d5c5b5a5958 (d24: 2.48489e+151) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x67666564636261606766656463626160 (1.24732e+190, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.76650e+228, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x666564636261605f666564636261605f (1.81795e+185, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.50866e+223, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000002ff010002ff01 (s26: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ff000085ff000085 (s27: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000007271706f7271706f (s22: 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000007675747376757473 (s23: 1.24460e+33) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x000000000000000071706f6e71706f6e (s2: 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000007574737275747372 (s3: 3.09878e+32) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007776777677767776 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000007978797879787978 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000007675767576757675 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000007877787778777877 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (..., 5.22300e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (..., -1.17085e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x7b7a79787b7a79787b7a79787b7a7978 (..., 1.30054e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (..., 3.38275e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000008181818181818181 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000007f7f7f7f7f7f7f7f <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x82818281828182818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x84838483848384838483848384838483 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v25: 0x81808180818081808180818081808180 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x83828382838283828382838283828382 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2d2a2724211e1b1800000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x2e2b2825221f1c1900000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2f2c292623201d1a1700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0xb0adaaa7a4a19e9b9895928f8c898683 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.56775e-159, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x27262524232221200000000000fffeff (4.28794e-120, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2f2e2d2c2b2a29281700000000000000 (1.98829e-81, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.07279e+90, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.47908e+129, -3.90391e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.10851e+168, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.30639e+86, -1.21867e-30) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.56908e+124, -5.62003e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.03668e+163, -2.82942e+47) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000001700000000fffeff (..., 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000f1f0efeee5e4e3e2 (..., -2.38613e+30, -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000f5f4f3f2e9e8e7e6 (..., -6.21029e+32, -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000f9f8f7f6edecebea (..., -1.61590e+35, -9.16546e+27) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000f0efeeede4e3e2e1 (..., -5.94046e+29, -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000f4f3f2f1e8e7e6e5 (..., -1.54621e+32, -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f7f6f5ecebeae9 (..., -4.02346e+34, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000000000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000c0b060500fffaf9 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000e0d08070201fcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000100f0a090403fefd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000d0c07060100fbfa <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000f0e09080302fdfc <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x272625241b1a1918000000000002ff01 (2.30573e-15, 1.27467e-22, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.04532e-13, 3.34819e-20, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c232221201700000000fffeff (1.58413e-10, 8.78905e-18, 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x373635342b2a29281f1e1d1c13121110 (1.08604e-05, 6.04532e-13, 3.34819e-20, 1.84362e-27) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161514 (0.00284155, 1.58413e-10, 8.78905e-18, 4.84942e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3f3e3d3c33323130272625241b1a1918 (0.743122, 4.14886e-08, 2.30573e-15, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x363534332a2928271e1d1c1b1211100f (2.70015e-06, 1.50241e-13, 8.31732e-21, 4.57737e-28) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x3a3938372e2d2c2b2221201f16151413 (0.000706557, 3.93749e-11, 2.18366e-18, 1.20425e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x3e3d3c3b3231302f262524231a191817 (0.184800, 1.03137e-08, 5.72948e-16, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x000000000000000000000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x000000000000000000000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000001700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000005653504d4a474441 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000053504d4a4744413e <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2b2a25241f1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272621201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6e696863625d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a65645f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c676661605b5a <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x807f7a7974736e6d686762615c5b5655 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x82817c7b7675706f6a6964635e5d5857 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84837e7d787772716c6b6665605f5a59 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000001000000f5f4f3f2e9e8e7e6 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2b2a2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272602201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x82818281828186818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000087000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161586 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a696867ff0000850002ff01 (d16: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000474600000000000000fffeff (d17: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd2d1d0cfcecdcccb1700000000000000 (d18: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84837e7d787772718e8d8c8b8a898887 (d30: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000969594939291908f (d31: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (d0: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.09028e-243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x9594939291908f8e6a6964635e5d5857 (-1.02545e-204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.85140e-166, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6e6968ff015d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c008561605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x9f9e2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xa1a0272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xa3a2292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671709e9d00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e79787372a09f008561605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a696867a2a100850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0002ff01ff1e191800000000ff00ff01 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xff00008502201b1a00000000feff0084 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00fffeff23221d1c1700000000ff0085 (2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.14938e-15, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000aaa9a8a7969594939291908f (..., -3.01375e-13, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.89780e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a5a4a3a24744413e (..., -2.85603e-16, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.48978e-14, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.96304e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v24: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0xadadadadadadadadadadadadadadadad <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000b7b6b5b4b3b2b1b0 (d7: -2.60696e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000bfbebdbcbbbab9b8 (d8: -0.120083) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000c7c6c5c4c3c2c1c0 (d9: -6.05398e+37) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000b6b5b4b3b2b1b0af (d17: -3.80205e-45) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000bebdbcbbbab9b8b7 (d18: -1.77248e-06) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000c6c5c4c3c2c1c0bf (d19: -8.83040e+32) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.11344e+71, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.05087e+110, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.54613e+148, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.06516e+66, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.98548e+105, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.40766e+144, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000002ff010002ff01 (s10: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000ff000085ff000085 (s11: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000fffeff00fffeff (s12: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000e1e0dfdee1e0dfde (s0: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e5e4e3e2e5e4e3e2 (s1: -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e9e8e7e6e9e8e7e6 (s2: -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e0dfdedde0dfdedd (s23: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e4e3e2e1e4e3e2e1 (s24: -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e6e5e8e7e6e5 (s25: -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000eae9eae9eae9eae9 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000ecebecebecebeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000eeedeeedeeedeeed <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000e9e8e9e8e9e8e9e8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000ebeaebeaebeaebea <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000edecedecedecedec <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (..., -2.38613e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (..., -6.21029e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (..., -1.61590e+35, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (..., -5.94046e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (..., -1.54621e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (..., -4.02346e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000fbfbfbfbfbfbfbfb <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v3: 0x3c3834302c2824201c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3d3935312d2925211d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3a36322e2a26221e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3f3b37332f2b27231f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3f3b37332f2b27231f1b17130f0b0703 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3b37332f2b27231f1b17130f0b0703ff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v18: 0x2726252423222120ff0000850002ff01 (4.28794e-120, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.98829e-81, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x37363534333231301700000000000000 (9.95833e-43, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.000461414, 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x666564636261605f464544434241403f (1.81795e+185, 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.50866e+223, 1.57975e+69) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x767574737271706f565554535251504f (4.22243e+262, 7.82703e+107) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.97467e+301, 3.66628e+146) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x6564636261605f5e4544434241403f3e (2.64379e+180, 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.25402e+219, 2.32790e+64) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e5554535251504f4e (6.14144e+257, 1.13810e+103) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.91053e+296, 5.40301e+141) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000017000000ff000085 (..., 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001b1a191800fffeff (..., 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001f1e1d1c00000000 (..., 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x000000000000000091908f8e81807f7e (..., -2.28077e-28, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000009594939285848382 (..., -6.00095e-26, -1.24615e-35) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000009998979689888786 (..., -1.57777e-23, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000009d9c9b9a8d8c8b8a (..., -4.14537e-21, -8.66176e-31) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000908f8e8d807f7e7d (..., -5.66232e-29, -1.17085e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000009493929184838281 (..., -1.49010e-26, -3.09178e-36) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000009897969588878685 (..., -3.91846e-24, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009c9b9a998c8b8a89 (..., -1.02970e-21, -2.14997e-31) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0x000000000000000019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000b6b5aeada6a59e9d <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000b8b7b0afa8a7a09f <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000bab9b2b1aaa9a2a1 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000bcbbb4b3acaba4a3 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000b5b4adaca5a49d9c <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b7b6afaea7a69f9e <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000b9b8b1b0a9a8a1a0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000bbbab3b2abaaa3a2 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x3332313023222120000000000002ff01 (4.14886e-08, 8.78905e-18, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x373635342726252417000000ff000085 (1.08604e-05, 2.30573e-15, 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a39382b2a29281b1a191800fffeff (0.00284155, 6.04532e-13, 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.743122, 1.58413e-10, 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.47890e+29, -3.21185e+19, -6.93919e+09, -1.49017) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.84962e+31, -8.37048e+21, -1.81093e+12, -389.514) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.00179e+34, -2.18077e+24, -4.72428e+14, -101772.) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.60629e+36, -5.67986e+26, -1.23202e+17, -2.65799e+07) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.68172e+28, -7.99345e+18, -1.72638e+09, -0.370581) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.58428e+30, -2.08336e+21, -4.50576e+11, -96.8765) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.49430e+33, -5.42822e+23, -1.17555e+14, -25314.4) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.48966e+35, -1.41390e+26, -3.06592e+16, -6.61207e+06) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000001c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000001d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a16120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v5: 0x000000000000000016120e0a0602fefa <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v25: 0x393831302928212019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a33322b2a23221b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35342d2c25241d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x53524b4a43423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x55544d4c45443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x57564f4e47463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x59585150494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x52514a4942413a3932312a2922211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2b24231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d26251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f2827201f <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x52514a4942413a3932312a2901211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2bff231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d02251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f0027201f <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000fbfbfbfb59fbfbfb <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65a5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000001c1800005cff8501 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35342d2c25241d58000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f5917000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000195a110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a5b120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff0000850002ff011f5917000000ff00 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000fffeff195a110d090501fd (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17000000000000001a5b120e0a0602fe (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x636261605f5e5d5c1c1800005cff8501 (5.54935e+170, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6b6a6968676665641d19000000fe00ff (2.71346e+209, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7b7a7978777675741f1b17000000ff00 (6.29888e+286, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.00514e+165, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x6a696867666564631e1a000000ff0002 (3.98304e+204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x7a797877767574731f1e17000000ff00 (9.24687e+281, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v2: 0x5352ff0143423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x5554000245443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x5756008547463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5958ff00494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5958ff00494841407c7b313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000007e7d0f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00007b7a00000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29281b1a191800fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000002ff010703fffb (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00007b7a00000000ff000085080400fc (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c0000000000fffeff090501fd (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x393831308584838219180000feffff01 (..., -1.24615e-35, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.28683e-33, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.66176e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.28077e-28, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v8: 0x848382810000000000fffeff090501fd (-3.09178e-36, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x888786852b2a29280000000000fffeff (-8.15664e-34, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x908f8e8d00000000fafafafafafafafa (-5.66232e-29, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v14: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x94949494949494949494949494949494 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v9: 0x90909090909090909090909090909090 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000ff0000850002ff01 (d8: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000fffeff (d9: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000001700000000000000 (d10: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000001f1e1d1c1b1a1918 (d11: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000009b9a999897969594 (d4: -1.05028e-175) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000a3a2a1a09f9e9d9c (d5: -5.00653e-137) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000abaaa9a8a7a6a5a4 (d6: -2.43801e-98) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000b3b2b1b0afaeadac (d7: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000009a99989796959493 (d26: -1.54211e-180) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000a2a1a09f9e9d9c9b (d27: -7.22772e-142) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000aaa9a8a7a6a5a4a3 (d28: -3.58004e-103) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000b2b1b0afaeadacab (d29: -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.31108e-26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.90391e+13, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.92941e+52, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.07279e+90, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.21867e-30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.62003e+08, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.82942e+47, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.30639e+86, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000002ff010002ff01 (s31: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000ff000085ff000085 (s0: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x000000000000000000fffeff00fffeff (s1: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000000 (s2: 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000d5d4d3d2d5d4d3d2 (s28: -2.92508e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000d9d8d7d6d9d8d7d6 (s29: -7.62949e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000dddcdbdadddcdbda (s30: -1.98932e+18) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000e1e0dfdee1e0dfde (s31: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000d4d3d2d1d4d3d2d1 (s11: -7.27820e+12) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000d8d7d6d5d8d7d6d5 (s12: -1.89854e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000dcdbdad9dcdbdad9 (s13: -4.95069e+17) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000e0dfdedde0dfdedd (s14: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000e2e1e2e1e2e1e2e1 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e4e3e4e3e4e3e4e3 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e6e5e6e5e6e5e6e5 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e8e7e8e7e8e7 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000e1e0e1e0e1e0e1e0 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000e3e2e3e2e3e2e3e2 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000e5e4e5e4e5e4e5e4 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e7e6e7e6e7e6e7e6 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v16: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (..., -5.67986e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xefeeedecefeeedecefeeedecefeeedec (..., -1.47890e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (..., -3.84962e+31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (..., -1.00179e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (..., -1.41390e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xeeedecebeeedecebeeedecebeeedeceb (..., -3.68172e+28, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (..., -9.58428e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (..., -2.49430e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f6f6f6f6f6f6f6f6 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x01000100010001000100010001000100 <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002000200020002e73aed42f34af952
-#    v6: 0x0000000000000000dcbb11e0e6481e68
-#    v9: 0x00000000000000000000000000fffeff
-#    v5: 0x0000000000000000a4a2261ba09e2217
-#   v24: 0x000000000000000082b3330de36793c1
-#   v12: 0x00000000000000006f49f4f5e911f705
-#   v10: 0x00000000000000001700000000000000
-#    v3: 0x000000000000000035342d2c25221f1b
-#   v19: 0xfe070c07fe070c07fe070c07fe070c07
-#    v6: 0x0000000000000000dcbb11e0e6481e68
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
-#   v28: 0x00000000000000000100010001000100
-#    v2: 0x0000000000000000ac03d811ac03d811
-#   v18: 0x000000000000000000fffeff00fffeff
-#    v6: 0x00000000000000006347100f6cd41c97
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
-#   v26: 0x0000000000000000bd4365396d436539
-#   v10: 0x00000000000000008800000000000000
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000000000000000e3e2
-#   v26: 0x000000000000000000000000fe070c07
-#   v26: 0x0000000000000000d4d3d2d1d4d3d2d1
-#   v20: 0x0000000000000000f9f9f9f9f9f9f9f9
-#   v19: 0xfe070f07fe070c07fe070c07fe070c07
-#    v4: 0x00000000000000009b9a999897969594
-#   v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
-#    v3: 0x00000000000000000000000000000000
-#   v29: 0x000200020002ff00e73aed42f34af952
-#    v2: 0x0000000c00000000ac03d811ac03d811
-#   v22: 0x00000000000000000000000000000000
-#   v24: 0x000000000000000082b3330de36793c1
-#   x18: 0x0000000000000000
-#   x28: 0xe3e2e3e2e3e2e3e2
-#   v24: 0x000000000000000000ffff0000ffffff
-#   v29: 0x80808080808080808080808080808080
-#   v12: 0xffff00ff00ffff00ffff00ff00ffff00
-#   v12: 0x0000000000000000ec000000ec000000
-#   v10: 0x0000000000000000004cffff004cffff
-#   v26: 0x000000000000000000c000c000c000c0
-#   v24: 0x00980000009800000098000000980000
-#    v1: 0x00deffff00deffff00deffff00deffff
-#   v21: 0x00000000000000004d4d4d4d4d4d4d4d
-#   v29: 0x00690069006900690069006900690069
-#    v1: 0x4700008e4b00007a4700008e4b00007a
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
-#   v19: 0x00000000000000000000000000000000
-#   v29: 0x0000000000000000427957e1427957e1
-#    v2: 0x00000000000000000000000000000000
-#   v25: 0x000000000000000042ff40c042ff40c0
-#   v26: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x0000000000000000470049004b004d00
-#   v20: 0x48004a004c004e0048004a004c004e00
-#   v29: 0x00000000000000000000000000000000
-#   v13: 0xffffffffffffffffe03d1120e03d1120
-#   v28: 0x0000000000000000ffffffffffffffff
-#   v25: 0x0000000000000000ffff47ffffff47ff
-#   v17: 0x0000000000000000ff930000ff930000
-#   v29: 0x0000000000000000ffb7ffb7ffb7ffb7
-#   v20: 0xff85ffffff85ffffff85ffffff85ffff
-#    v0: 0xffffe100ffffe100ffffe100ffffe100
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
-#   v25: 0x0000000000000000b8ffb6ffb4ffb300
-#    v4: 0x00000000000000000000000000010201
-#   v11: 0x0000000000000000470049004b004d00
-#    v7: 0x0000000000000000ff000101ff000101
-#    v7: 0x00000000000000004648484a4a4c4c4e
-#   v17: 0x0000000000000000ff000101ff000101
-#   v20: 0x00000000000000000100ffff0100ffff
-#    v0: 0x0000000000000000b900b700b500b300
-#   v13: 0x003e003e003e003e473e493e4b3e4d3e
-#   v22: 0x0000000000000000ffffffffffffffff
-#   v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
-#    v8: 0x0000000000000000ff0000e70002ffe3
-#   v11: 0x0000000000000000d700df00df00df00
-#    v7: 0x000000ab000000ab464848eb4a4c4cef
-#    v8: 0x00000000000000000000000000010201
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
-#   v11: 0x000000000000000000a9a8a900a9a8a9
-#    v8: 0x00000000000000000030000000100000
-#   v24: 0x0000555555aa55550000555555aa5555
-#   v13: 0x00000000000000000000000000000000
-#   v22: 0x000000000000000000000000200feede
-#    v5: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000fdfdfdfd9da5d974
-#    v9: 0x00000000000000000000000000fffeff
-#   v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
-#    v0: 0x0000000046004a04b900b700b500b300
-#   v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
-#   v30: 0x00000000000000000000000000000000
-#   v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
-#    v5: 0x00000000000000000000000001020100
-#   v16: 0x0000000000000000a76e9d2f75fed8a5
-#   v20: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000ffffffffffffffff
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000075fed8a5a76e9d2f
-#    v7: 0x0000000000000000fefffefffefffeff
-#   v15: 0x0000000000000000d8a575fe9d2fa76e
-#   v25: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000009d2fa76ed8a575fe
-#   v18: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v3: 0x0000000063106d1d0000000000000000
-#    v0: 0x00000000dbffdc00b900b700b500b300
-#   v27: 0x000000003a5fb14bfffefffefffefffe
-#   v15: 0x00000000000000000000000000000000
-#   v23: 0x000000000000000000009cf000000000
-#    v6: 0x000000000000000000abaaab00abaaab
-#    v4: 0x00555655005556550000000000010201
-#    v1: 0x62e2129262e2af824700008e4b00007a
-#   v19: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000ffffffffffffffff
-#    v9: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000fffbfdfbfffbfdfb
-#   v29: 0x000000003a5fb14b75b7d85e58486286
-#   v20: 0x00000000000000001e3d11201e3d1120
-#   v27: 0x000000003a5fb14b0003020300030203
-#   v20: 0x00000000010001011e3d11201f3d1221
-#    v4: 0x005585f20055c4fc00005a290001058d
-#   v23: 0x001e003d0044003500369d8300430034
-#   v26: 0x00000000000000009d2fa76ed8a575fe
-#   v27: 0x000000003a5fb14b0003020300030203
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
-#    v0: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000100010101000101
-#   v17: 0x00000000000000002fa270ac5a23007a
-#    v7: 0x633798855327f7af62e26cbc52d33840
-#   v23: 0x0000000000000000632f596e285b7502
-#   v20: 0x000000000000000075ff275a589162d0
-#   v27: 0x00000000d8e139ed00000000ab639583
-#   v31: 0x000012d0000032140000303600001232
-#    v0: 0x007500010027005a00ad00d200cd004d
-#   v31: 0x00000000000000000000000063106d1d
-#   v26: 0x00000000000000000000271f000039ed
-#    v6: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000003000000010610c
-#   v12: 0x00000000000000002f9d6ea7a5d95f81
-#   v12: 0x00000000000000002f9d95c6a5d9996e
-#    v4: 0x0000000000000000004759b7004c0607
-#   v15: 0x00000000000000000100a14f01005b9e
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
-#    v5: 0xffffffffd6dfd5daffffffff7687b151
-#   v18: 0x00000100ffffa14f0000010000005b9e
-#   v15: 0x0063002f0059006e0028005b00750002
-#   v16: 0x0000000000000000ffffffffd8e139ed
-#    v6: 0x0000007500005556000055d1000055af
-#    v7: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffd8e139ec
-#   v18: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000004600000026
-#   v10: 0x00007574000012640000478e00004b7a
-#    v0: 0x0000000000000000ffe1ffcdffe1ffcd
-#   v12: 0x00000000000000000000000000000000
-#   v14: 0x0000000000000000000000000000fff8
-#   v30: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000000012cc
-#   v24: 0x00000000000000009d2fa76ed8a575fe
-#   v13: 0x00000000000055d100000000000055af
-#   v19: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000632f596e285b7502
-#   v15: 0x00000000000000000000000000000000
-#    v7: 0x000000000000000000232cdb00260303
-#   v29: 0x0000000000000000ce97d3b7ec52baff
-#   v31: 0x0000000000000000000023c700005094
-#   v21: 0x000000000000000000180000000839ec
-#   v14: 0x0000000000000000b5dae012cc3fc326
-#   v19: 0x00000000000000000997e764189b6c67
-#   v22: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000008000000000800000
-#    v2: 0x000000000000000036e00980c0e00000
-#    v4: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000ff00ff00ff00ff00
-#    v4: 0x0000000000000000c700000094000000
-#   v18: 0x00000000000000000000000000004830
-#    v0: 0x0000000000000000e9783b70c528aff0
-#    v5: 0x9d2fa76e00000000d8a575fe00000000
-#   v26: 0x75ff0000275a00005891000062d00000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x62e200001292000062e20000af820000
-#   v30: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000002e212926700008e4
-#   v29: 0x00000000000000000000000000000090
-#   v17: 0x00000000000000000000000000000024
-#    v5: 0x00000000000000002e212926700008e4
-#   v24: 0x317157c12580003d9d2fa76ed8a575fe
-#    v5: 0x00000000b5dacc3f2e212926700008e4
-#   v30: 0x31f1000009c90000ffd9d3c9c393c5ff
-#   v22: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000dc80ffb9da80ffc3
-#   v10: 0x0000000000000000ce805349ebda7605
-#    v6: 0x00000000000000000000ee1c0000d836
-#    v8: 0x0000000000000000ffe811e3fff8f7c4
-#   v19: 0x000000000000000000000000090b6c67
-#    v9: 0x317157c12580003d9d2fa76ed8a575fe
-#   v22: 0xc55f04960000f400be9dbb6295d7f800
-#   v11: 0x0000000000000000000fa76e000575fe
-#   v16: 0x0000000000000000000000000000000c
-#    v8: 0x0000000000000000c7e811e389f8f7c4
-#   v10: 0x0000000000000000ffd9d3c9c393c5ff
-#    v7: 0x0000000000000000ffe3ffdbffe6ffc3
-#   v18: 0x6200120062000000470011e34b00007a
-#   v30: 0x00000000000000004700008e700008e4
-#   v17: 0x000000000000000000000000090b6c67
-#    v1: 0x317157c12580003d000023c700005094
-#   v17: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x75ff0000275a00005891000062d00000
-#   v12: 0x00000000ffffffff00000000da123f26
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#   v10: 0x0000000000000000ffd9c5ff00000090
-#   v18: 0x00000000ffe6ffc375ff000062d00000
-#   v21: 0x000000000000000075006200787028f0
-#   v26: 0x00000000000000000000000011e3f7c4
-#    v4: 0x00000000000000000000000000000070
-#   v23: 0x00000000000000000000000000000078
-#    v6: 0x00000000000000000000000000003b70
-#   v24: 0x000000000000000000000000000011e3
-#    v3: 0x0000000000000000000000000000000c
-#   v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
-#   v29: 0x0000000000000000c7e811e389f8f7c4
-#    v6: 0x00000000000000005891000062d00000
-#   v24: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000000000000000000c
-#   v12: 0x0000000000000000ffd9c5ff00000090
-#   v13: 0x00000000ffffffff0000e6c3ff00d000
-#   v22: 0x000000000000000000000000ffffffff
-#   v15: 0x0000000000000000292608e4c5ff0000
-#   v15: 0x0000000000000000000000009d2fa76e
-#   v21: 0x00000000000000009100d000e080c000
-#   v21: 0x000000000000000000000000c5ff0000
-#    v8: 0x00000000000000000000000000000091
-#    v6: 0x000000000000000000000000000000d0
-#   v20: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000009d2f
-#   v21: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#    v7: 0x00000000000000000000000000009d2f
-#   v19: 0x0000000000000000000000000906ca9b
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#   v30: 0x00000000000000004700008e700008e4
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#   v17: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x75ff0000275a00005891000062d00000
-#   v30: 0x00000000000000004700008e700008e4
-#    v1: 0x317157c12580003d000023c700005094
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#    v0: 0x0000000000000000e9783b70c7c032a0
-#    v3: 0x0000000000000000000000000000000c
-#    v4: 0x000000000000000003c9f8c001c2e9f0
-#   v14: 0x0000000000000000b5dae012cc3fc326
-#   v15: 0x0000000000000000f9797b018bdbc6de
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#    v6: 0x000000000000000000000000000000d0
-#   v30: 0x00000000000000004700008e700008e4
-#   x21: 0x0000000000000000
-#   x13: 0x0000000000000000
-#   x24: 0x0000000000000000
-#    x7: 0x00000000000003c9
-#   x29: 0x0000000000000000
-#    v4: 0x15a6d000c90fc48aedb876b6692ad888
-#   v30: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000042ae0
-#    v8: 0x185dc92015d7004009b45060e2e7be40
-#   v31: 0x00000000f3d5e78200000000249000d8
-#    v3: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000062d05891275a8a02
-#   v31: 0x00000000000000000000000000000001
-#    v8: 0x000000000000000000000000383fcd60
-#   v14: 0x0000000000000000000000000000632f
-#   v23: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000001687c490383fcd60
-#   v29: 0x000000000000000016793c70383f3360
-#   v17: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000060
-#    v2: 0x00000000000000000000000011e3f7c4
-#    v7: 0x00000000000000000000000000003360
-#   v11: 0x00000000000000000000000000003360
-#   v20: 0x000000000000000016793c70383f336c
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v8: 0x00000000000000000000000011e3f7c4
-#   v20: 0x0000000000000000ffd9c5ff00000090
-#   v14: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000016792233373f0360
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000060
-#   v14: 0x000000000000000000000000ffe772e8
-#   v30: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v8: 0x0672308605c005640fa6a0001322041c
-#    v1: 0x317157c12580003d000023c700005094
-#   v19: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000011e3f7c4
-#    v6: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000ffffffc0b8e63400
-#   v10: 0x0000000000000000ffffffc0b8e66400
-#   v30: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000000000000ff00d000
-#   v27: 0xffffffffece2ff800000004ffccf8000
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v22: 0x000000000000000000000000ffffffff
-#   v12: 0x0000000000000000ffd9c5ff00000090
-#   v20: 0x0000000000000000ffd9c5ff00000090
-#   v25: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000000000000000ff70
-#   v16: 0x00000000000000000000000000000391
-#    v1: 0x00000000000000000000000000000000
-#    v1: 0x0000000000000000000000000000018a
-#   v28: 0x0000000000000000000000000000003a
-#   v28: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000fffe0529
-#   v25: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000fff726ef1b546ce0
-#   v29: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000e59831500
-#   v18: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000060
-#   v24: 0x0000000000000000ffffffffffffffa0
-#   v29: 0x00000000000000000000000000000000
-#    v4: 0x000000000000000000000000ffffffa0
-#   v14: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000263a00ffffff70
-#   v28: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000010060
-#    v9: 0x00000000000000000000000000000000
-#   v20: 0x000000000000000001273b0100000070
-#   v27: 0x000000000000000000010040471a9c00
-#    v7: 0x0000000000000000000000000000ffda
-#   v14: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v22: 0x0000000000000000ffa408a4ff20b5ee
-#   v22: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v2: 0x0000000000000000000000000000fff1
-#   v16: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000007fffffffffffffff
-#   v28: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v19: 0x000000000000000000000000ed800048
-#   v19: 0x000000000000000000000000ed800048
-#   v29: 0x00000000000000007fffffffffffffff
-#   v12: 0x0000000000000040ffd9c5ff00000090
-#   v16: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000000000000e598315
-#   v31: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000000000000004ffff
-#   v24: 0x0000000000000000ffffffffffffffa0
-#   v22: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000000000000e598315
-#    v6: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000007fed000000000
-#   v20: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v6: 0x0000000000000000000000000e598315
-#    v0: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v24: 0x00000000000200000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#    v8: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v30: 0x00000000002000000000000000000000
-#    v1: 0x00000000000000000000000000000080
-#   v31: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v14: 0x0000000000077f7f0000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v31: 0x000000000000ffff0000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000000000000007ffff
-#   v10: 0x00000000000000000010000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v27: 0x00000001000000000000000000000000
-#   v23: 0x0000ffff000000000000000e59831500
-#   v19: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000010000000000000
-#    v8: 0x000000000000000000000000ffff000f
-#   v18: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000fff0000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000800000000e59831500
-#   v13: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v26: 0x000000000000000000000000ffff0000
-#    v7: 0x00000000000000000000000000000000
-#   v21: 0x000007ff000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000800000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000040
-#   v24: 0x00000000000000000000000000007ff9
-#    v6: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v23: 0x0000000000000080000000005f8f1000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000000000000000b0002
-#   v27: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000040
-#   v29: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000040
-#   v22: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000fe0000000000000000
-#   v20: 0x00000000000000000000000000000020
-#    v0: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v18: 0x00000000000000000000000000000000
-#   v21: 0x000000000000000000000000000000c0
-#   v31: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000000000000000b0002
-#   v23: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000020000000
-#   v11: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#    v3: 0x00000000000000000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#   v29: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000020
-#   v14: 0x00000000000000000000000000000001
-#   v18: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000040
-#   v13: 0x0000000000000000ffffffffffffffe1
-#    v5: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v21: 0x000000000000000000000000ffff8007
-#   v30: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007ff9
-#   v31: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#    x1: 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000ffffffffffffffc0
-#   v20: 0x00000000000000000000000000007ff9
-#    v8: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000000000000ffff8007
-#   v24: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000010180f9
-#   v20: 0x0000000000000000000100010001001f
-#    v5: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000ff0000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v20: 0x000000000000ffff000100010001001f
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000ffffffffffffffe1
-#    v0: 0x00000000000000000000000000000040
-#   v22: 0x00000000000000000000000000000000
-#   v24: 0x000000000000007f0000000000000000
-#   v26: 0x00000000000000000000000000000001
-#    v7: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000007fff7fff7fff7fff
-#    v4: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v31: 0x00000000000000000000000000000000
-#   v16: 0x0000000000010001000000000001001f
-#   v27: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000100000001
-#   v25: 0x00000000000000000000000000000000
-#   v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
-#    v3: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#    v6: 0x01010101010101010101010101010101
-#   v13: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#    v2: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000ff00ff0000000000
-#   v24: 0x00000000000000000000010100000101
-#    v2: 0x000000000000000000000000ff00ff00
-#   v25: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000001
-#    v9: 0x00000000000000000000000000000000
-#    v6: 0x01010101010101010101010100020001
-#   v16: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ff00ff0000000001
-#   v10: 0x00000000ff00ff000000000000000000
-#   v30: 0x0000ff000000ff00ff01fe000000c000
-#    v4: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#   v26: 0x00000000000000000000000000000001
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#   v18: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000001
-#   v20: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v9: 0x000000000000000000000000ff00ff01
-#   v14: 0x00000000000000000000000000000001
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ff00ff0000000001
-#    v1: 0x00000000000000000000000000000001
-#   v31: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v5: 0x00000000010101010000000001010101
-#    v1: 0x00000000000000000000010100000101
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x000000000000000000000000ff00ff01
-#   v26: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000010100000101
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000ff00ff
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000001
-#    v9: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000010100000101
-#   v18: 0x00000000010101010000000001010101
-#   v17: 0x0000000000000000ff00ff0000000001
-#   v29: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000008000800000000000800080
-#    v1: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v26: 0x00000000ff7f7f7f00000000ff7f7f7f
-#    v3: 0x0000000000000000000000007f007f00
-#   v25: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000ff00ff
-#   v20: 0x000000000000000000000000ff7f7f7f
-#    v0: 0x00000000000000000000000001010101
-#    v6: 0x00000000000000000000000000ff00ff
-#    v0: 0x000000000000000000000000ff7fff7f
-#    v4: 0x00000000000000000000000000000000
-#    v1: 0x0000000000000000000000000000ffff
-#   v19: 0x00000000000000000000000100000000
-#   v21: 0x00000000000000000000ff0100000000
-#    v9: 0x000000000000000000000000ff7f7f7f
-#   v13: 0x000000000000000000000000000000ff
-#   v19: 0x0000ff7f0000ff7f0000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v31: 0x0000000000000000000000000000ff00
-#   v15: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#   v22: 0x0000000000000000000000000000ff01
-#    v1: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v24: 0x000000000000000000000000000000ff
-#   v20: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v21: 0x0000000000000000000000000000ff7f
-#    v0: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007e81
-#   v17: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007e81
-#   v15: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#    v7: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#   v28: 0x00000000000000000000000000ff00ff
-#   v11: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v10: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    lr: 0x0000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000000000ff
-#   v27: 0x00000000000000000000000000007e81
-#    v7: 0x000000000000000000000000000000ff
-#   v28: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000000000000000ff7f
-#   v16: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x0000000000000000000000000000ff00
-#   v23: 0x0000000000000000000000007f007f00
-#   v17: 0x00000000000000000000000000007e81
-#   v10: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v10: 0x000000000000000000000000000000ff
-#    v9: 0x0000000000000000000000000000ff01
-#   v24: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000008
-#   v10: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000001fe0
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000400000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000200000000000000ff
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x000000000000000000000000000000ff
-#   v23: 0x00000000000000000000000000ff00ff
-#    v8: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000000000000000000ff
-#    v6: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000003fc0000
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000000000000ffffffff
-#   v28: 0x00000000000000000000000000000000
-#    v4: 0x0000000000000000000000000000fd02
-#    v9: 0x00000000000000000000000000007f80
-#   v18: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000008
-#   v26: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000ff00ff
-#   v14: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000007e81
-#   v10: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000001fe0
-#   v23: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v29: 0x000000000000ffff0000000000000000
-#   v13: 0x0000000000007e810000000000000000
-#   v28: 0x0000000000007e810000000000000000
-#   v23: 0x0000000000000000ffffffffffffffff
-#   v27: 0xffffffffffffffffffffffffffffffff
-#    v2: 0x80808080808080808080808080808080
-#   v15: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000007e81
-#    v2: 0x80000000800000008000000080000000
-#    v5: 0x00000000000000000000000000003f41
-#   v30: 0x40000000400000004000000040000000
-#    v4: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v14: 0x0000000000000000ffffffffffffffff
-#   v10: 0x00000000000000000000000000000008
-#   v15: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v30: 0xffffffffffffffffffffffffffffffff
-#    v4: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000010
-#    v4: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000ffffffffffffffff
-#   v28: 0xffffffffffffffffffffffffffffffff
-#   v27: 0x0000000000000000ffffffffffffffff
-#   v18: 0x00000000000000000000000000001010
-#   v26: 0x00000000000000400000000000000040
-#    v8: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v18: 0x00000000000000000008000800081018
-#   v31: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000008
-#   v14: 0x0000000000000000ffffffffffffffff
-#   v22: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000000000000007e8100
-#   v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
-#    v8: 0x000000000000000000000000007fff80
-#   v29: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000000000007f007f00
-#   v31: 0x00000000000000000000000000000000
-#    v8: 0x000000000000000000000000007fff80
-#   v18: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000000000007e007e00
-#   v12: 0x0000000000000000000000007e007e00
-#   v28: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000008
-#    v4: 0x0000000000000000000000000000003f
-#    v9: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v29: 0x0000000000000000000000007e007e00
-#   v29: 0x00000000000000000000000000000000
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
-#    v1: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v9: 0x0000000000000000ffffffffffffffff
-#   v20: 0x0000000000000000000000007e007e00
-#   v25: 0x000000000000000000000000007fff80
-#   v18: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v30: 0x000000000000008100000000ffffffff
-#    v7: 0x00000000000000000000000000000040
-#   v26: 0x0000000000000000000000007e007e00
-#   v14: 0x00000000000000000000000000000000
-#   v17: 0x00000081ffffffff0000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v17: 0xff01ff01ff01ff400000000000000000
-#    v8: 0x0000000000007e7e0000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v25: 0x000000000000000001fe01fe01fe01fe
-#   v31: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000ff01ff0100000000
-#   v17: 0x0000000000000000000000007e007e00
-#    v3: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000001010000
-#    v0: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
-#   v23: 0x000000000000000001fe01fe01fe01fe
-#   v26: 0x0000000000000000ffffffff00000000
-#    v1: 0x00000000000000000000ffff0040ffff
-#    v0: 0x000000000000000000000000ffffffff
-#   v30: 0x0000000000000000007e0000007e0000
-#   v17: 0x0000ff010000ff010000000000000000
-#   v23: 0x0100fe000100fe000100fe000100fe00
-#   v30: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v0: 0x0100fe00000000000100fe0000000000
-#   v25: 0x00000000000000000001000000fe0000
-#    v7: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000001000000fe0000
-#   v14: 0x000000000000000001fe01fe01fe01fe
-#    v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
-#    v1: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000001000000fe0000
-#   v18: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffffffffff
-#   v30: 0xffffffffffffffff0000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v22: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000100fe000100fe00
-#   v16: 0x01fe01fe01fe01feffffffffffffffff
-#   v27: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000000000000180fe00
-#   v21: 0x020e01fe01fe01fe0000000000000000
-#   v31: 0x000000000000000000000000ffffffff
-#   v13: 0x00000000000000000000000000000000
-#   v17: 0xffffffffffffffff0000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v24: 0x0000000000000000ffffffffffffffff
-#    v8: 0xffffffffffffffff0000000000000000
-#   v26: 0xffffffffffffffff0000000000000000
-#   v27: 0xffffffffffffffffffffffffffffffff
-#   v22: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffffffffff
-#   v29: 0x00000000000000000000000000000000
-#   v22: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v15: 0xffffffffffffffffffffffffffffffff
-#   v21: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v14: 0xffffffff00000000ffffffff00000000
-#   v13: 0x00000000000000000000000000000000
-#    v4: 0xffffffffffffffffffffffffffffffff
-#   v24: 0x0000000000000000ffffffff00000000
-#    v8: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v8: 0x37a0000000000000381fc00000000000
-#   v27: 0xffffe000ffffe0000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v24: 0x377f0000377f0000377f0000377f0000
-#    v9: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v8: 0x37a00000000000000000000000000000
-#   v24: 0x0000000000000000377f0000377f0000
-#    v4: 0x0000000000000000ffffffffffffffff
-#   v25: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v31: 0x000000000000000000000000ffffffff
-#   v19: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x7ff00000000000007ff8000000000000
-#   v12: 0x00000000000000007fc000007fc00000
-#   v19: 0xffffffffffffffffffffffffffffffff
-#   v19: 0x37a00000000000000000000000000000
-#   v25: 0x00000000000000007fc000007fc00000
-#    v6: 0x7ff00000000000007ff8000000000000
-#   v16: 0x37a0000000000000000000000180fe00
-#   v15: 0x00000000000000000000000000000000
-#   v23: 0x37a0000000000000000000000180fe00
-#    v6: 0x000000000000000037a0000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v8: 0x37a00000000000007fc000007fc00000
-#   v13: 0x0000000000000000ffffffff7fc00000
-#   v15: 0xffffffff000000000000000000000000
-#   v27: 0x00000000000000000000000037a00000
-#   v20: 0x0000000000000000ffffffff00000000
-#   v18: 0x00000000000000000000000000000000
-#    v9: 0x00000000ffffffff37a0000000000000
-#    v7: 0x0000000000000000ffffffffffffffff
-#   v18: 0x000000000000000000000000ffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v25: 0x0000000000000000000000007fc00000
-#   v23: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v17: 0xffffffffffffffff0000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000007fc000007fc00000
-#   v24: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000037a00000
-#   v27: 0x00000000000000000000000037a00000
-#   v21: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v18: 0x000000000000000000000000ffffffff
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007fffffff
-#   v27: 0x00000000000000000000000037a00000
-#   v26: 0x00000000000000007fffffff00000000
-#   v14: 0xbfd6000000000000bfd6000000000000
-#   v26: 0x00000000000000003f6800003f680000
-#   v31: 0xc0a00000c0a00000c0a00000c0a00000
-#   v28: 0x00000000000000000000000000000000
-#   x18: 0x0000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000ffffffff
-#   v25: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v11: 0x7fc000007fc000007fc000007fffffff
-#   v28: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v1: 0x80000000000000008000000000000000
-#   v14: 0x00000000000000008000000080000000
-#    v5: 0x80000000800000008000000080000000
-#   v18: 0x7ff00000000000007ff0000000000000
-#   v10: 0x00000000000000007f8000007f800000
-#    v5: 0x7f8000007f800000474c80007f800000
-#   v22: 0x40000000000000004000000000000000
-#   v31: 0x00000000000000004000000040000000
-#   v18: 0x40000000400000004000000040000000
-#   v26: 0x0000000000000000ffffffff7fc00000
-#   v15: 0x0000000000000000ffffffff7fc00000
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000007fc000007fc00000
-#   v15: 0x7fc000007fc000007fc000007fffffff
-#   v17: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000007fc000007fffffff
-#    v1: 0x0000000000000000ffffffff00000000
-#   v24: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v29: 0x7fc000007fc000007fc000007fffffff
-#   v10: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000004000000040000000
-#   v26: 0x00000000000000004000000040000000
-#   v24: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000007fc000007fc00000
-#   v20: 0x00000000000000000000000000000000
-#   v23: 0x7ff00000000000002006900000000000
-#    v9: 0x00000000000000007f8000007f800000
-#    v3: 0x7f8000007f8000000000000000000000
-#   v25: 0x3ff80000000000003ff8000000000000
-#    v9: 0x00000000000000003fc000003fc00000
-#    v5: 0x3fc000003fc000007fffffff3fc00000
-#    v6: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000003fb504f33fb504f3
-#   v31: 0x00000000000000007fc000007fffffff
-#   v11: 0x00000000000000007fc000007fc00000
-#   v16: 0x00000000000000007fc000007fffffff
-#   v25: 0x000000000000000043dff00000200000
-#   v10: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000004eff80004eff8000
-#   v18: 0x00000000000000000000000000000000
-#   v17: 0x4e7f00004e7f00004f0000004e7f0000
-#   v11: 0x00000000000000004287bfe03e000000
-#    v9: 0x43dfe000001fe0000000000000000000
-#   v26: 0x000000000000000040fff00000200000
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x7fc000007fc000000000000000000000
-#   v22: 0x4effe000000000004e001a4000000000
-#   v18: 0x4207bfc03d7f00000000000000000000
+#            d10:                 0x0000000000000000
+#            s22:                         0xffffffff
+#             d4:                 0xfffffc0000000000
+#            d11:                 0x0000000000000000
+#             h8:                             0x7c00
+#            h12:                             0xffff
+#            s12:                         0x00000000
+#            s27:                         0x42800000
+#            v28: 0x00000000000000007fffffffffffffff
+#             v3: 0x00000000000000000000000000000000
+#            w18:         0x00000000
+#            w29:         0x00000000
+#             x9: 0x0000000000000000
+#             lr: 0x0000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            w16:         0x00000000
+#            w18:         0x00000000
+#            x26: 0xffffffffffffffff
+#            x25: 0x0000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#             w9:         0x7fffffff
+#            w19:         0xffffffff
+#             x6: 0x7fffffffffffffff
+#            x22: 0xffffffffffffffff
+#            v27: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            w29:         0x00000000
+#            w26:         0x00000000
+#            x13: 0x0000000000000000
+#             x5: 0x0000000000000000
+#            v30: 0x00000000000000007fffffffffffffff
+#            v10: 0x00000000000000000000000000000000
+#            w21:         0x7fffffff
+#            w18:         0x00000000
+#             x8: 0x0000000000000000
+#            x17: 0x0000000000000000
+#             v0: 0x0000000000000000ffffffffffffffff
+#             v6: 0x00000000000000000000000000000000
+#            w29:         0x00000000
+#            w25:         0x00000000
+#             lr: 0x0000000000000000
+#            x27: 0x0000000000000000
+#            v11: 0x00000000000000000000000000000001
+#            v29: 0x00000000000000000000000000000000
+#            w15:         0x00000001
+#            w16:         0x00000000
+#            x13: 0x7fffffffffffffff
+#             x3: 0x0000000000000000
+#            v24: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
+#            w26:         0x00000000
+#            x27: 0x0000000000000000
+#            x29: 0x0000000000000001
+#            v12: 0x00000000000000000000000000000001
+#            v15: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             w6:         0x7fffffff
+#            w25:         0x00000000
+#             w9:         0x00000000
+#            w17:         0x00000000
+#            x19: 0x0000000000000000
+#            x22: 0x0000000000000000
+#            x14: 0x0000000000000000
+#             x3: 0x0000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            w11:         0x00000000
+#             w7:         0x00000000
+#            w18:         0x00000000
+#            w14:         0x00000000
+#            x22: 0x0000000000000000
+#             x8: 0x0000000000000000
+#             x7: 0x0000000000000000
+#            x22: 0x0000000000000000
+#             d6:                 0x7ff0000000000000 (inf)
+#            s26:                         0x00000000 (0.000)
+#            d18:                 0x7fffffffffffffff
+#            s13:                         0x00000000
+#            d12:                 0x0000000000000000 (0.000)
+#            s12:                         0x00000000 (0.000)
+#            d28:                 0x0000000000000000 (0.000)
+#             s6:                         0x00000000 (0.000)
+#            d20:                 0x7fffffffffffffff (nan)
+#             s7:                         0x87027800 (-9.815e-35)
+#            d19:                 0x0000000000000001 (4.941e-324)
+#             s0:                         0xffffffff (nan)
+#            d13:                 0x0000000000000000
+#             d2:                 0x0000000000000000
+#             d8:                 0xc004000000000000
+#             s5:                         0x00000000
+#            s25:                         0x00000001
+#            s21:                         0x40380000
+#            w18:         0x00000001
+#            x18: 0x0000000000000000
+#            d20:                 0xffffffffffffffff
+#             s5:                         0x00000000
+#            d30:                 0x0000000000000000 (0.000)
+#            s25:                         0x00000000 (0.000)
+#             v4: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            d15:                 0x80000000ffffffff (-2.122e-314)
+#            s14:                         0x7fffffff (nan)
+#             d0:                 0x87c0000086f277ff
+#             s0:                         0x7fffffff
+#            d19:                 0x8000000040380000
+#            s29:                         0x7fffffff
+#            d31:                 0x0000000000000000 (0.000)
+#            s18:                         0x80000000 (-0.000)
+#             v7: 0x00000000000000007ff0000000000000
+#            v29: 0x0000000000000000000000007f800000
+#            v11: 0x00000000000000004000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+#            v15: 0x00000000000000007fe0000000000000
+#             v5: 0x0000000000000000000000007f000000
+#            d16:                 0x0000000000000000 (0.000)
+#             s1:                         0xffffffff (nan)
+#            d19:                 0x0000000000000000 (0.000)
+#            s14:                         0x40400000 (3.000)
+#            d20:                 0x0000000000000000 (0.000)
+#             s1:                         0x00000000 (0.000)
+#            d30:                 0x0000000000000000 (0.000)
+#            s24:                         0x00000000 (0.000)
+#             d4:                 0x0000000000000000 (0.000)
+#            s13:                         0x00000000 (0.000)
+#            d13:                 0x0000000000000000 (0.000)
+#            s17:                         0x00000000 (0.000)
+#             d0:                 0xc000000000000000 (-2.000)
+#            s15:                         0x7f800000 (inf)
+#            v21: 0x00000000000000007ff0000000000000
+#            v17: 0x0000000000000000000000007f800000
+#             v4: 0x00000000000000003ff8000000000000
+#            v14: 0x0000000000000000000000003fc00000
+#            d14:                 0x1f56954b41cd4293 (1.028e-157)
+#             s4:                         0x40a21722 (5.065)
+#            d13:                 0xfff0000000000000 (-inf)
+#             s3:                         0x00000000 (0.000)
+#            v31: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             d6:                 0x0000000000000000
+#             d5:                 0x3f90000000000000
+#            d16:                 0x0000000000000000
+#            d15:                 0x0000000000000000
+#             v7: 0x00000000000000007ff000004e81442e
+#             v8: 0x0000000000000000c004000000000000
+#            s29:                         0x00000000
+#            s15:                         0x49800000
+#            s27:                         0x00000000
+#            s26:                         0x3c7fffff
+#             v0: 0x000000000000000043d21c000020e097
+#             v5: 0x00000000000000003effffffffe00000
+#            d30:                 0x0000000000000000
+#             d3:                 0x0000000000000000
+#            d28:                 0x41dfffffffc00000
+#            d27:                 0x0000000000000000
+#            v11: 0x0000000000000000400000004f7fe000
+#             v0: 0x000000000000000043d21c00480a8294
+#            s20:                         0x00000000
+#            s21:                         0x00000000
+#             s6:                         0x5f000000
+#             s7:                         0x38ff0000
+#            v19: 0x000000000000000043d21c00480a8294
+#            v16: 0x0000000000000000400000004f7f2000
+#             v0: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000003e01010101200000
+#            v29: 0x00000000000000000010000000000000
+#            v10: 0x00000000000000003f0000007f600000
+#            v31: 0x495000018a83940149500000d3029400
+#            v10: 0x495000018a83940168a6954c14cfd693
+#            v15: 0x00000000000000006328b14b89d7c527
+#            v27: 0x0000000000000000495000000a029400
+#            v25: 0x000000000000000041efffffffc00000
+#            v13: 0x00000000000000000000000037feffff
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x000000000000000000000000827f4696
+#            v10: 0x00000000000000000000000000003c7f
+#            v31: 0x0000000000000000000000000000ffff
+#            v16: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v31: 0x000000000000b87f000000000000ffff
+#            v14: 0x000000000000000043d21c00480a8294
+#             v3: 0x0000000020febf0000000000c4000000
+#             v8: 0x000000007f8000003effffffffe00000
+#            v22: 0x00000000000000003c7fffff00000000
+#            v29: 0x00000000000000005fd2ca9e00000000
+#            v30: 0x0000000000000000000000003c7fffff
+#            v12: 0x0000000000000000000037000000bbfe
+#            v17: 0x000000003700bbfe00007f803efeffe0
+#            v27: 0x00000000000000000000000000000075
+#            v12: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000003c7e
+#            v19: 0x00000000000000000000000000002a70
+#            v14: 0x00000000000000000000000000003c7e
+#            v10: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v26: 0x0000000020febf0000000000c4000000
+#             v7: 0x000000000000000000000000381b0000
+#            v28: 0x000000000000000040dfdcffdcc00000
+#            v29: 0x00000000000000005fd2ca1200000000
+#            v12: 0x0000000000000000000000000000ffff
+#            v18: 0x000000000000000000000000ff67ff67
+#            v12: 0x00000000007ebf000000000000000000
+#             v2: 0x0000000000000000495000008a828000
+#             v8: 0x000000007f8000003effffffcc000000
+#             v5: 0x00000000000000000000000000000000
+#             v9: 0x0100000008009801010000000800dc00
+#            v14: 0x000000000000000000000000c4000000
+#            v29: 0x07070707070707070707070707070707
+#            v21: 0x00000000000000000000001f0000001f
+#             v1: 0x0000000000000000000f000f000f000f
+#            v27: 0x0000001f0000001f0000001f0000001f
+#            v19: 0x00000000000000000707070707070707
+#            v15: 0x000f000f000f000f000f000f0001000f
+#             v1: 0x08080808080808080808080808080808
+#            v27: 0x00000000000000000000001100000002
+#             v9: 0x00000000000000000007001000040000
+#            v31: 0x0000000c0000000c0000000c0000000f
+#            v14: 0x00000000000000000505050505050505
+#             v6: 0x00100010001000100001001000010000
+#            v18: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v19: 0xffffffff000000ff0000000000ffffff
+#            v15: 0xffffffffffffffffff00ff00ff00ffff
+#            v12: 0xffffffffffffffffffffffffffffffff
+#             v8: 0xffffffffffffffff0000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000ffff00000000
+#            v16: 0x0000000000000000ffffffff00000000
+#            v21: 0xffffffff000000000000000000000000
+#             v6: 0xffffffffffffffff0000000000000000
+#            v16: 0x0000000000000000ffffffff00000000
+#            v21: 0x000000000000000000000000ffffffff
+#            v20: 0xffffffffffffffff000000000000ffff
+#            v26: 0x0000000000000000ffffffffffffffff
+#            v16: 0x00000000000000000000000000000000
+#            v25: 0x0000000000000000ffffffffffffffff
+#            v17: 0x0000000000ffffffffff00ff00ffffff
+#            v22: 0xffffffffffffffffffffffffffff0000
+#            v28: 0x0000000000000000ffffffffffffffff
+#             v6: 0xffffffffffffffffffffffffffffffff
+#            v25: 0x000000000000000000000000ffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
+#            v16: 0x0000000000000000ffffffff0000ffff
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v7: 0xffffffffffffffff0000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000ff00ff00ffff0000
+#            v21: 0x0000000000000000ffffffffffffffff
+#             v2: 0x0000000000000000ffffffffffffffff
+#            v19: 0xffffffffffffffff000000000000ffff
+#             v6: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v5: 0x0000000000000000ffffffffffffffff
+#            v12: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000000ffff
+#            v22: 0x00000000000000000000000000000000
+#             v5: 0x0000000000000000ffffffffffffffff
+#            v13: 0x00000000000000000000000000000000
+#            v27: 0x0000000000000000000000ff000000ff
+#             v5: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x000000000000000000000000ffffffff
+#            v31: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v11: 0x0000000000000000ffffffff00000000
+#             v1: 0x00000000000000000000000000000000
+#            v21: 0xffffffffffffffffffffffffffffffff
+#             v8: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000ffffffffffffffff
+#            v19: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000000000000000ffff
+#            v30: 0x0000000000000000ffffffffffffffff
+#             v0: 0xffffffff00ffffffffffffffffffffff
+#             v2: 0xffffffffffffffffffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#             v9: 0x0000000000000000ffffffffffffffff
+#             v9: 0xffffffffffffffffffffffffffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
+#            v29: 0xffffffffffffffffffffffffffffffff
+#            v25: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#            v25: 0x00000000000000000000000000000000
+#             v0: 0x0000000000000000ffffffff00000000
+#            v24: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000ffffffff00000000
+#             v1: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
+#            v26: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v11: 0x0000000000000000ff00ff00ffff0000
+#             v0: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000008080808
+#            v28: 0x00000000000000000000000000000000
+#             v6: 0xffffffffffffffffffffffffffffffff
+#             v9: 0x01010101010101010101010101010101
+#            v12: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ffffff7dffffff7d
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000ffffffffffffffff
+#            v31: 0x00000000000000000101010101010101
+#            v28: 0xffffffffffffffffffffffffffffffff
+#             v2: 0x00000000000000000000000000000000
+#            v29: 0x0000000000000000ffffff7df7f7f775
+#             v3: 0x0000000000000000ffffffffffffffff
+#             v1: 0xff000000000000000000000000000000
+#             v2: 0x000000000000000000ffffffffffffff
+#            v21: 0x3f3e3d3c3b3a39383736353433323130
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0b0a09080706050403020100fffefdfc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfb <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xeb <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xdb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v8: 0x0a09080706050403020100fffefdfcfb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xeb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3a393837363534333231302f2e2d2c2b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x2a292827262524232221201f1e1d1c1b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x1a191817161514131211100f0e0d0c0b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x393837363534333231302f2e2d2c2b2a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x292827262524232221201f1e1d1c1b1a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x191817161514131211100f0e0d0c0b0a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x595857565554535251504f4e4d4c4b4a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x494847464544434241403f3e3d3c3b3a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x5857565554535251504f4e4d4c4b4a49
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x49 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x4847464544434241403f3e3d3c3b3a39
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x6867666564636261605f5e5d5c5b5a59
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x68 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v4: 0x67666564636261605f5e5d5c5b5a5958
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8786858483828180 (-2.082e-272)
+#                                                  ╙─ 0x8786858483828180 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x7f7e7d7c7b7a7978 (1.338e+306)
+#                                                  ╙─ 0x7f7e7d7c7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x7776757473727170 (2.897e+267)
+#                                                  ╙─ 0x7776757473727170 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x6f6e6d6c6b6a6968 (5.766e+228)
+#                                                  ╙─ 0x6f6e6d6c6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x868584838281807f (-3.035e-277)
+#                                                  ╙─ 0x868584838281807f <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x767574737271706f (4.222e+262)
+#                                                  ╙─ 0x767574737271706f <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x6e6d6c6b6a696867 (8.509e+223)
+#                                                  ╙─ 0x6e6d6c6b6a696867 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x9e9d9c9b9a999897 (-3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x969594939291908f (-7.048e-200)
+#                                                  ╙─ 0x969594939291908f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8e8d8c8b8a898887 (-1.418e-238)
+#                                                  ╙─ 0x8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9d9c9b9a99989796 (-4.851e-166)
+#                                                  ╙─ 0x9d9c9b9a99989796 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x9594939291908f8e (-1.025e-204)
+#                                                  ╙─ 0x9594939291908f8e <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x8d8c8b8a89888786 (-2.090e-243)
+#                                                  ╙─ 0x8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xadacabaaa9a8a7a6 (-1.126e-88)
+#                                                  ╙─ 0xadacabaaa9a8a7a6 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xa5a4a3a2a1a09f9e (-2.382e-127)
+#                                                  ╙─ 0xa5a4a3a2a1a09f9e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xacabaaa9a8a7a6a5 (-1.658e-93)
+#                                                  ╙─ 0xacabaaa9a8a7a6a5 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xa4a3a2a1a09f9e9d (-3.458e-132)
+#                                                  ╙─ 0xa4a3a2a1a09f9e9d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xb4b3b2b1b0afaead (-8.033e-55)
+#                                                  ╙─ 0xb4b3b2b1b0afaead <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v31: 0x3f3e3d3c3b3a39383736353433323130 (0.0004614, 9.958e-43)
+#                                  ║               ╙─ 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.391e+250, -7.078e+211)
+#                                  ║               ╙─ 0xebeae9e8e7e6e5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.459e+173, -3.049e+134)
+#                                  ║               ╙─ 0xdbdad9d8d7d6d5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.281e+95, -1.314e+57)
+#                                  ║               ╙─ 0xcbcac9c8c7c6c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd3d2d1d0cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.703e+18, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.900e+245, -1.040e+207)
+#                                  ║               ╙─ 0xeae9e8e7e6e5e4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.109e+168, -4.479e+129)
+#                                  ║               ╙─ 0xdad9d8d7d6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.073e+90, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.904e+13, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2221201f1e1d1c1b1a19181716151413 (2.743e-144, 5.906e-183)
+#                                  ║               ╙─ 0x1a19181716151413 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1211100f0e0d0c0b0a09080706050403 (1.180e-221, 2.544e-260)
+#                                  ║               ╙─ 0x0a09080706050403 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.078e-299, -2.414e+284)
+#                                  ║               ╙─ 0xfaf9f8f7f6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x21201f1e1d1c1b1a1918171615141312 (3.940e-149, 8.651e-188)
+#                                  ║               ╙─ 0x1918171615141312 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x21201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x11100f0e0d0c0b0a0908070605040302 (1.695e-226, 3.726e-265)
+#                                  ║               ╙─ 0x0908070605040302 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x11100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.747e-304, -3.541e+279)
+#                                  ║               ╙─ 0xf9f8f7f6f5f4f3f2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0100fffefdfcfbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x41403f3e3d3c3b3a3938373635343332 (2.130e+06, 4.664e-33)
+#                                  ║               ╙─ 0x3938373635343332 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x41403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x31302f2e2d2c2b2a2928272625242322 (9.160e-72, 2.009e-110)
+#                                  ║               ╙─ 0x2928272625242322 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x31302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0x403f3e3d3c3b3a393837363534333231 (31.24, 6.821e-38)
+#                                  ║               ╙─ 0x3837363534333231 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x302f2e2d2c2b2a292827262524232221 (1.346e-76, 2.938e-115)
+#                                  ║               ╙─ 0x2827262524232221 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x302f2e2d2c2b2a29 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x504f4e4d4c4b4a494847464544434241 (7.250e+78, 1.584e+40)
+#                                  ║               ╙─ 0x4847464544434241 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x4f4e4d4c4b4a49484746454443424140 (1.071e+74, 2.313e+35)
+#                                  ║               ╙─ 0x4746454443424140 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x4f4e4d4c4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x1f1e1d1c1b1a1918 (3.348e-20, 1.275e-22)
+#                                          ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x6f6e6d6c6b6a6968 (7.379e+28, 2.834e+26)
+#                                          ║       ╙─ 0x6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x6766656463626160 (1.088e+24, 4.176e+21)
+#                                          ║       ╙─ 0x63626160 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x67666564 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0x5f5e5d5c5b5a5958 (1.602e+19, 6.146e+16)
+#                                          ║       ╙─ 0x5b5a5958 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x5756555453525150 (2.357e+14, 9.033e+11)
+#                                          ║       ╙─ 0x53525150 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x57565554 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x6e6d6c6b6a696867 (1.837e+28, 7.054e+25)
+#                                          ║       ╙─ 0x6a696867 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x666564636261605f (2.708e+23, 1.039e+21)
+#                                          ║       ╙─ 0x6261605f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x66656463 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x5e5d5c5b5a595857 (3.988e+18, 1.529e+16)
+#                                          ║       ╙─ 0x5a595857 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x565554535251504f (5.864e+13, 2.247e+11)
+#                                          ║       ╙─ 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x868584838281807f (-5.022e-35, -1.903e-37)
+#                                          ║       ╙─ 0x8281807f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x86858483 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (8.424e+37, 3.238e+35)
+#                                          ║       ╙─ 0x7a797877 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7e7d7c7b <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0x767574737271706f (1.245e+33, 4.782e+30)
+#                                          ║       ╙─ 0x7271706f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8584838281807f7e (-1.246e-35, -4.720e-38)
+#                                          ║       ╙─ 0x81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x85848382 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x7d7c7b7a79787776 (2.098e+37, 8.063e+34)
+#                                          ║       ╙─ 0x79787776 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7d7c7b7a <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x7574737271706f6e (3.099e+32, 1.191e+30)
+#                                          ║       ╙─ 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9594939291908f8e (-6.001e-26, -2.281e-28)
+#                                          ║       ╙─ 0x91908f8e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x95949392 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x8d8c8b8a89888786 (-8.662e-31, -3.287e-33)
+#                                          ║       ╙─ 0x89888786 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8d8c8b8a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x94939291908f8e8d (-1.490e-26, -5.662e-29)
+#                                          ║       ╙─ 0x908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x94939291 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0x8c8b8a8988878685 (-2.150e-31, -8.157e-34)
+#                                          ║       ╙─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x9c9b9a9998979695 (-1.030e-21, -3.918e-24)
+#                                          ║       ╙─ 0x98979695 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9b9a999897969594 (-2.558e-22, -9.731e-25)
+#                                          ║       ╙─ 0x97969594 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9b9a9998 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1f1e1d1c1b1a1918 (0.006950, 0.004990, 0.003468, 0.002487)
+#                                      ║   ║   ║   ╙─ 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d16:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xbbbab9b8b7b6b5b4 (-0.9658, -0.7148, -0.4819, -0.3564)
+#                                      ║   ║   ║   ╙─ 0xb5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb7b6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb9b8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xb3b2b1b0afaeadac (-0.2405, -0.1777, -0.1200, -0.08862)
+#                                      ║   ║   ║   ╙─ 0xadac <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xafae <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb1b0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb3b2 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xabaaa9a8a7a6a5a4 (-0.05988, -0.04419, -0.02988, -0.02203)
+#                                      ║   ║   ║   ╙─ 0xa5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa7a6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa9a8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xabaa <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xa3a2a1a09f9e9d9c (-0.01491, -0.01099, -0.007439, -0.005478)
+#                                      ║   ║   ║   ╙─ 0x9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9f9e <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa1a0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa3a2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3 (-0.8403, -0.5894, -0.4192, -0.2937)
+#                                      ║   ║   ║   ╙─ 0xb4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb6b5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb8b7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbab9 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab (-0.2091, -0.1464, -0.1043, -0.07294)
+#                                      ║   ║   ║   ╙─ 0xacab <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xaead <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb0af <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb2b1 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3 (-0.05203, -0.03635, -0.02596, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa8a7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xaaa9 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xa2a1a09f9e9d9c9b (-0.01295, -0.009026, -0.006458, -0.004498)
+#                                      ║   ║   ║   ╙─ 0x9c9b <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa09f <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa2a1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xd2d1d0cfcecdcccb (-54.53, -38.47, -27.20, -19.17)
+#                                      ║   ║   ║   ╙─ 0xcccb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcecd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xcac9c8c7c6c5c4c3 (-13.57, -9.555, -6.770, -4.762)
+#                                      ║   ║   ║   ╙─ 0xc4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc6c5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc8c7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xcac9 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xc2c1c0bfbebdbcbb (-3.377, -2.373, -1.685, -1.183)
+#                                      ║   ║   ║   ╙─ 0xbcbb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbebd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc0bf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc2c1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d5:                 0xd1d0cfcecdcccbca (-46.50, -31.22, -23.19, -15.58)
+#                                      ║   ║   ║   ╙─ 0xcbca <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcdcc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xcfce <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xc9c8c7c6c5c4c3c2 (-11.56, -7.773, -5.766, -3.879)
+#                                      ║   ║   ║   ╙─ 0xc3c2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc7c6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc9c8 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xc1c0bfbebdbcbbba (-2.875, -1.936, -1.434, -0.9658)
+#                                      ║   ║   ║   ╙─ 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbdbc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xbfbe <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc1c0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xe1e0dfdedddcdbda (-752.0, -503.5, -375.0, -251.2)
+#                                      ║   ║   ║   ╙─ 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xd9d8d7d6d5d4d3d2 (-187.0, -125.4, -93.25, -62.56)
+#                                      ║   ║   ║   ╙─ 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xe0dfdedddcdbdad9 (-623.5, -439.2, -310.8, -219.1)
+#                                      ║   ║   ║   ╙─ 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xd8d7d6d5d4d3d2d1 (-154.9, -109.3, -77.19, -54.53)
+#                                      ║   ║   ║   ╙─ 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe8e7e6e5e4e3e2e1 (-2510., -1765., -1251., -880.5)
+#                                      ║   ║   ║   ╙─ 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xe7e6e5e4e3e2e1e0 (-2022., -1508., -1009., -752.0)
+#                                      ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x3f3e3d3c3b3a39383736353433323130 (0.7431, 0.002842, 1.086e-05, 4.149e-08)
+#                          ║       ║       ║       ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x27262524232221201f1e1d1c1b1a1918 (2.306e-15, 8.789e-18, 3.348e-20, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x17161514131211100f0e0d0c0b0a0908 (4.849e-25, 1.844e-27, 7.004e-30, 2.658e-32)
+#                          ║       ║       ║       ╙─ 0x0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x17161514 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.008e-34, 3.820e-37, nan, -2.606e+36)
+#                          ║       ║       ║       ╙─ 0xfbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.002e+34, -3.850e+31, -1.479e+29, -5.680e+26)
+#                          ║       ║       ║       ╙─ 0xebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xefeeedec <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf7f6f5f4 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x262524232221201f1e1d1c1b1a191817 (5.729e-16, 2.184e-18, 8.317e-21, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2221201f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x26252423 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x161514131211100f0e0d0c0b0a090807 (1.204e-25, 4.577e-28, 1.739e-30, 6.598e-33)
+#                          ║       ║       ║       ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x16151413 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.502e-35, 9.478e-38, -1.688e+38, -6.490e+35)
+#                          ║       ║       ║       ╙─ 0xfaf9f8f7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x020100ff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x06050403 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.494e+33, -9.584e+30, -3.682e+28, -1.414e+26)
+#                          ║       ║       ║       ╙─ 0xeae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf2f1f0ef <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x565554535251504f4e4d4c4b4a494847 (5.864e+13, 2.247e+11, 8.611e+08, 3.298e+06)
+#                          ║       ║       ║       ╙─ 0x4a494847 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4e4d4c4b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0x464544434241403f3e3d3c3b3a393837 (1.263e+04, 48.31, 0.1848, 0.0007066)
+#                          ║       ║       ║       ╙─ 0x3a393837 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3e3d3c3b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x4241403f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x46454443 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x363534333231302f2e2d2c2b2a292827 (2.700e-06, 1.031e-08, 3.937e-11, 1.502e-13)
+#                          ║       ║       ║       ╙─ 0x2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x36353433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v17: 0x5554535251504f4e4d4c4b4a49484746 (1.459e+13, 5.592e+10, 2.142e+08, 8.203e+05)
+#                          ║       ║       ║       ╙─ 0x49484746 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x51504f4e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x55545352 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e3d3c3b3a39383736 (3140., 12.02, 0.04595, 0.0001757)
+#                          ║       ║       ║       ╙─ 0x39383736 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x41403f3e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x45444342 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3534333231302f2e2d2c2b2a29282726 (6.713e-07, 2.564e-09, 9.787e-12, 3.734e-14)
+#                          ║       ║       ║       ╙─ 0x29282726 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x31302f2e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x35343332 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x7574737271706f6e6d6c6b6a69686766 (3.099e+32, 1.191e+30, 4.573e+27, 1.756e+25)
+#                          ║       ║       ║       ╙─ 0x69686766 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6d6c6b6a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x6564636261605f5e5d5c5b5a59585756 (6.741e+22, 2.587e+20, 9.924e+17, 3.806e+15)
+#                          ║       ║       ║       ╙─ 0x59585756 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5d5c5b5a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x61605f5e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x65646362 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x74737271706f6e6d6c6b6a6968676665 (7.715e+31, 2.964e+29, 1.138e+27, 4.371e+24)
+#                          ║       ║       ║       ╙─ 0x68676665 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6c6b6a69 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x706f6e6d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x74737271 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0x64636261605f5e5d5c5b5a5958575655 (1.678e+22, 6.438e+19, 2.470e+17, 9.471e+14)
+#                          ║       ║       ║       ╙─ 0x58575655 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x605f5e5d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x64636261 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.092e-36, -1.171e-38, 5.223e+36, 2.008e+34)
+#                          ║       ║       ║       ╙─ 0x78777675 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x84838281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v0: 0x838281807f7e7d7c7b7a797877767574 (-7.670e-37, 3.383e+38, 1.301e+36, 4.999e+33)
+#                          ║       ║       ║       ╙─ 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x83828180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x1f1e1d1c1b1a1918
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xa3a2a1a09f9e9d9c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x9b9a999897969594
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9b <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x939291908f8e8d8c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x93 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x8b8a898887868584
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa2a1a09f9e9d9c9b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9a99989796959493
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x93 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x9291908f8e8d8c8b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x8a89888786858483
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x83 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xba <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xaa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xb9b8b7b6b5b4b3b2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0xb1b0afaeadacabaa
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xaa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa9a8a7a6a5a4a3a2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xc9c8c7c6c5c4c3c2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xc1c0bfbebdbcbbba
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xc8c7c6c5c4c3c2c1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xc0bfbebdbcbbbab9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xd0cfcecdcccbcac9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xcfcecdcccbcac9c8
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v8: 0x3f3e3d3c3b3a39383736353433323130 (1.811, 1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0f0e0d0c0b0a09080706050403020100 (0.0004306, 0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 (nan, nan, -6.534e+04, -4.890e+04, -3.261e+04, -2.438e+04, -1.627e+04, -1.216e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf1f0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf3f2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf5f4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf7f6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfbfa <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfdfc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 (-8120., -6064., -4052., -3024., -2022., -1508., -1009., -752.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe9e8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xebea <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xedec <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xefee <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 (-503.5, -375.0, -251.2, -187.0, -125.4, -93.25, -62.56, -46.50)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b0a09080706050403020100ff (0.0003693, 0.0002468, 0.0001842, 0.0001229, 9.185e-05, 6.121e-05, 3.058e-05, 1.520e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0201 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0605 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0807 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0a09 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0c0b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0e0d <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef (nan, nan, -5.712e+04, -4.067e+04, -2.850e+04, -2.027e+04, -1.422e+04, -1.010e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf0ef <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf2f1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf4f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf6f5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf8f7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfcfb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfefd <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df (-7092., -5036., -3538., -2510., -1765., -1251., -880.5, -623.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xeae9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xeceb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xeeed <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf (-439.2, -310.8, -219.1, -154.9, -109.3, -77.19, -54.53, -38.47)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3e3d3c3b3a393837363534333231302f (1.560, 1.058, 0.7778, 0.5269, 0.3879, 0.2625, 0.1935, 0.1307)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x302f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3433 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3635 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3837 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3c3b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2e2d2c2b2a292827262524232221201f (0.09650, 0.06512, 0.04813, 0.03244, 0.02400, 0.01616, 0.01197, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2e2d <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1e1d1c1b1a191817161514131211100f (0.005970, 0.004009, 0.002977, 0.001997, 0.001485, 0.0009947, 0.0007405, 0.0004954)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x100f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1211 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1413 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1615 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1e1d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a393837363534333231302f2e (1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x5d5c5b5a595857565554535251504f4e (343.0, 235.2, 171.0, 117.4, 85.25, 58.56, 42.50, 29.22)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4f4e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5150 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5554 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5958 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5b5a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857565554535251504f4e4d (278.8, 203.1, 138.9, 101.3, 69.19, 50.53, 34.47, 25.20)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4e4d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x504f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5251 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5453 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5857 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5a59 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5c5b <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x4c4b4a494847464544434241403f3e3d (17.17, 12.57, 8.555, 6.270, 4.262, 3.127, 2.123, 1.560)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x403f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4443 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4645 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4c4b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v9: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a696867666564636261605f5e5d (4524., 3282., 2254., 1637., 1123., 816.5, 559.5, 407.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5e5d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6463 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6665 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6a69 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6c6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x6b6a696867666564636261605f5e5d5c (3796., 2768., 1894., 1380., 945.0, 688.0, 471.5, 343.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6766 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6b6a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a39383736353433323130012e
+#                                                ╙─── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef
+#                                            ╙─────── 0x6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a6b6867666564636261605f5e5d
+#                          ╙───────────────────────── 0x6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.487e+303, ...)
+#                                  ╙───────────────── 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x737271706f6e6d6c636261605f5e5d5c (1.290e+248, ...)
+#                                  ╙───────────────── 0x737271706f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x7271706f6e6d6c6b2726252423222120 (1.861e+243, ...)
+#                                  ╙───────────────── 0x7271706f6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3aff013736353433323130012e (..., nan, ...)
+#                              ╙───────────────────── 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d37473d0cf (..., 1.822e+04, ...)
+#                                              ╙───── 0x7473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857737254535251504f4e4d (..., 1.525e+04, ...)
+#                                  ╙───────────────── 0x7372 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.751e-40, ...)
+#                                  ╙───────────────── 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.999e+33, ...)
+#                                  ╙───────────────── 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.245e+33, ...)
+#                                  ╙───────────────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x01010101010101010101010101010101
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x77777777777777777777777777777777
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x77 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x76767676767676767676767676767676
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x76 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x7d7c7b7a79787776 (2.911e+296)
+#                                                  ╙─ 0x7d7c7b7a79787776 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#                                  ╙───────────────╨─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8584838281807f7e8584838281807f7e (-4.414e-282, -4.414e-282)
+#                                  ╙───────────────╨─ 0x8584838281807f7e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84838281807f7e7d84838281807f7e7d (-6.406e-287, -6.406e-287)
+#                                  ╙───────────────╨─ 0x84838281807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#                                          ╙───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x8887868588878685 (-8.157e-34, -8.157e-34)
+#                                          ╙───────╨─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x8786858487868584 (-2.024e-34, -2.024e-34)
+#                                          ╙───────╨─ 0x87868584 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8988898889888988 (-0.0001688, -0.0001688, -0.0001688, -0.0001688)
+#                                      ╙───╨───╨───╨─ 0x8988 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x8887888788878887 (-0.0001382, -0.0001382, -0.0001382, -0.0001382)
+#                                      ╙───╨───╨───╨─ 0x8887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#                          ╙───────╨───────╨───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (-2.150e-31, -2.150e-31, -2.150e-31, -2.150e-31)
+#                          ╙───────╨───────╨───────╨─ 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0x8b8a89888b8a89888b8a89888b8a8988 (-5.336e-32, -5.336e-32, -5.336e-32, -5.336e-32)
+#                          ╙───────╨───────╨───────╨─ 0x8b8a8988 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x8c8c8c8c8c8c8c8c
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8b8b8b8b8b8b8b8b
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c (-0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8d8c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b (-0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8c8b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1e1c1a18000000000000ffff00850201
+#            v22: 0x1f1d1b1917000000000000feff0000ff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x17'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1b'1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f'1e <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#            v22: 0xacaaa8a6a4a2a09e9c9a98969492908e
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x92'91 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x98'97 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa4'a3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaa'a9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xac'ab <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c
+#            v13: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x8f'8e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x95'94 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa1'a0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa7'a6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xa9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xab'aa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0x1700000000000000ff0000850002ff01 (6.689e-198, -5.487e+303)
+#            v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.568e-159, 8.289e-317)
+#                                  ║               ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.703e+18, -1.163e-59)
+#             v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.314e+57, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4'b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcbcac9c8c7c6c5c4'c3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.904e+13, -1.680e-64)
+#            v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.929e+52, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3'b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00fffeff0002ff01 (2.351e-38, 2.751e-40)
+#            d28:                 0x00000000ff000085 (0.000, -1.701e+38)
+#                                          ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xd6d5d4d3cecdcccb (-1.176e+14, -1.726e+09)
+#             d3:                 0xdad9d8d7d2d1d0cf (-3.066e+16, -4.506e+11)
+#                                          ║       ╙─ 0xd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xdad9d8d7'd6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xd5d4d3d2cdcccbca (-2.925e+13, -4.295e+08)
+#            d13:                 0xd9d8d7d6d1d0cfce (-7.629e+15, -1.121e+11)
+#                                          ║       ╙─ 0xd1d0cfce'cdcccbca <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x0000feff0085ff01 (0.000, nan, 7.927e-06, nan)
+#            d10:                 0x000000ffff000002 (0.000, 1.520e-05, nan, 1.192e-07)
+#                                      ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe7e6e3e2dfdedbda (-2022., -1009., -503.5, -251.2)
+#            d24:                 0xe9e8e5e4e1e0dddc (-3024., -1508., -752.0, -375.0)
+#                                      ║   ║   ║   ╙─ 0xdddc'dbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe1e0'dfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe9e8'e7e6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe6e5e2e1dedddad9 (-1765., -880.5, -439.2, -219.1)
+#             d2:                 0xe8e7e4e3e0dfdcdb (-2510., -1251., -623.5, -310.8)
+#                                      ║   ║   ║   ╙─ 0xdcdb'dad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe0df'dedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7'e6e5 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x1b1a19180000000000fffeff0002ff01 (1.275e-22, 0.000, 2.351e-38, 2.751e-40)
+#            v21: 0x1f1e1d1c1700000000000000ff000085 (3.348e-20, 4.136e-25, 0.000, -1.701e+38)
+#                          ║       ║       ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.540e-36, -1.047e+37, -1.546e+32, -2.282e+27)
+#            v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.063e-34, 2.351e-38, -4.023e+34, -5.940e+29)
+#                          ║       ║       ║       ╙─ 0xf0efeeed'ecebeae9 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf8f7f6f5'f4f3f2f1 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffefd'fcfbfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x08070605'04030201 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.820e-37, -2.606e+36, -3.850e+31, -5.680e+26)
+#            v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.008e-34, nan, -1.002e+34, -1.479e+29)
+#                          ║       ║       ║       ╙─ 0xefeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf7f6f5f4'f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xfffefdfc'fbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504'03020100 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000ffff00850201
+#            d18:                 0x000000feff0000ff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x161412100e0c0a08
+#            d14:                 0x171513110f0d0b09
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x09'08 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x11'10 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'16 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1513110f0d0b0907
+#             d8:                 0x161412100e0c0a08
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0a'09 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0e'0d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x16'15 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c1918000000000000feff0085ff01 (0.004990, 0.002487, 0.000, 0.000, 0.000, nan, 7.927e-06, nan)
+#            v31: 0x1f1e1b1a17000000000000ffff000002 (0.006950, 0.003468, 0.001709, 0.000, 0.000, 1.520e-05, nan, 1.192e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1700'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x3433302f2c2b28272423201f1c1b1817 (0.2625, 0.1307, 0.06512, 0.03244, 0.01616, 0.008049, 0.004009, 0.001997)
+#             v5: 0x363532312e2d2a29262522211e1d1a19 (0.3879, 0.1935, 0.09650, 0.04813, 0.02400, 0.01197, 0.005970, 0.002977)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1a19'1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1e1d'1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2221'201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625'2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2a29'2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2e2d'2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3231'302f <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3635'3433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x33322f2e2b2a272623221f1e1b1a1716 (0.2249, 0.1122, 0.05597, 0.02792, 0.01393, 0.006950, 0.003468, 0.001730)
+#            v14: 0x353431302d2c2928252421201d1c1918 (0.3252, 0.1621, 0.08081, 0.04028, 0.02008, 0.01001, 0.004990, 0.002487)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928'2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x363532012e2d2a29262522211e1d1a19
+#             v6: 0x1f1e1dff1b1a19181700000000000000
+#                          ╙───────────────────────── 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e363c3b3a39383736
+#            v17: 0x00000000000000003700ffff00850201
+#                                    ╙─────────────── 0x37'36 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfb35f9f8
+#            v30: 0x1d1c1918000000000000feff0036ff01
+#                                              ╙───── 0x36'35 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.487e+303, ...)
+#            v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.289e-317, ...)
+#                                  ╙───────────────── 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x00000000000000003e3d3c3b3a393837 (..., 6.807e-09)
+#            v27: 0x0000000000000000464544434241403f (..., 3.370e+30)
+#                                                  ╙─ 0x464544434241403f'3e3d3c3b3a393837 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x07060504fffefdfc3d3c3b3a39383736 (..., 1.003e-13)
+#            v26: 0x00000000000000004544434241403f3e (..., 4.899e+25)
+#                                                  ╙─ 0x4544434241403f3e'3d3c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0xff01000000000000000000feff0000ff (nan, ...)
+#            v19: 0x00020000000000008b8b8b8b8b8b8b8b (1.192e-07, ...)
+#                      ╙───────────────────────────── 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x00000000474600003700ffff00850201 (..., 7.273, ...)
+#            v18: 0xff01000049480000000000feff0000ff (..., 10.56, ...)
+#                              ╙───────────────────── 0x4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c191800000000000046450036ff01 (..., 6.270, ...)
+#            v31: 0x1f1e1b1a1700000000004847ff000002 (..., 8.555, ...)
+#                                          ╙───────── 0x4847'4645 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.751e-40, ...)
+#            v30: 0xff00008500000000000046450036ff01 (-1.701e+38, ...)
+#                          ╙───────────────────────── 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000000000000000004c4b4a49 (..., 5.329e+07)
+#            v29: 0x0002ff0103020100fffefdfc504f4e4d (..., 1.391e+10)
+#                                                  ╙─ 0x504f4e4d'4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.326e+07, ...)
+#             v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.461e+09, ...)
+#                                          ╙───────── 0x4f4e4d4c'4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x01010101010101010101010101010101
+#            v27: 0xffffffffffffffffffffffffffffffff
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x50505050505050505050505050505050
+#            v22: 0x51515151515151515151515151515151
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x51'50 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f
+#             v6: 0x50505050505050505050505050505050
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x50'4f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-5.487e+303)
+#            d27:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x5857565554535251 (3.678e+117)
+#            d15:                 0x605f5e5d5c5b5a59 (1.682e+156)
+#                                                  ╙─ 0x605f5e5d5c5b5a59'5857565554535251 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x5756555453525150 (5.371e+112)
+#            d24:                 0x5f5e5d5c5b5a5958 (2.485e+151)
+#                                                  ╙─ 0x5f5e5d5c5b5a5958'5756555453525150 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v12: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#                                  ╙───────────────╨─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x67666564636261606766656463626160 (1.247e+190, 1.247e+190)
+#            v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.766e+228, 5.766e+228)
+#                                  ╙───────────────╨─ 0x6f6e6d6c6b6a6968'6766656463626160 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0x666564636261605f666564636261605f (1.818e+185, 1.818e+185)
+#            v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.509e+223, 8.509e+223)
+#                                  ╙───────────────╨─ 0x6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d27:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#                                          ╙───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x7271706f7271706f (4.782e+30, 4.782e+30)
+#            d23:                 0x7675747376757473 (1.245e+33, 1.245e+33)
+#                                          ╙───────╨─ 0x76757473'7271706f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x71706f6e71706f6e (1.191e+30, 1.191e+30)
+#             d3:                 0x7574737275747372 (3.099e+32, 3.099e+32)
+#                                          ╙───────╨─ 0x75747372'71706f6e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#             d3:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                                      ╙───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7776777677767776 (3.056e+04, 3.056e+04, 3.056e+04, 3.056e+04)
+#            d10:                 0x7978797879787978 (4.480e+04, 4.480e+04, 4.480e+04, 4.480e+04)
+#                                      ╙───╨───╨───╨─ 0x7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x7675767576757675 (2.645e+04, 2.645e+04, 2.645e+04, 2.645e+04)
+#             d7:                 0x7877787778777877 (3.658e+04, 3.658e+04, 3.658e+04, 3.658e+04)
+#                                      ╙───╨───╨───╨─ 0x7877'7675 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#             v8: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#                          ╙───────╨───────╨───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (5.223e+36, 5.223e+36, 5.223e+36, 5.223e+36)
+#            v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (-1.171e-38, -1.171e-38, -1.171e-38, -1.171e-38)
+#                          ╙───────╨───────╨───────╨─ 0x807f7e7d'7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x7b7a79787b7a79787b7a79787b7a7978 (1.301e+36, 1.301e+36, 1.301e+36, 1.301e+36)
+#            v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (3.383e+38, 3.383e+38, 3.383e+38, 3.383e+38)
+#                          ╙───────╨───────╨───────╨─ 0x7f7e7d7c'7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#            d27:                 0xffffffffffffffff
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8080808080808080
+#            d21:                 0x8181818181818181
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x81'80 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x7f7f7f7f7f7f7f7f
+#            d12:                 0x8080808080808080
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x80'7f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v13: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x82818281828182818281828182818281 (-3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05)
+#             v7: 0x84838483848384838483848384838483 (-6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8483'8281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x81808180818081808180818081808180 (-2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05)
+#            v26: 0x83828382838283828382838283828382 (-5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2d2a2724211e1b1800000000fe000001
+#            v21: 0x2e2b2825221f1c1900000000ffff85ff
+#            v22: 0x2f2c292623201d1a1700000000ff0002
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x20'1f'1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x23'22'21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2c'2b'2a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f'2e'2d <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v29: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#            v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x89'88'87 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8c'8b'8a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8f'8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x95'94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x98'97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa1'a0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa4'a3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa7'a6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xaa'a9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xad'ac'ab <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb3'b2'b1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0xb0adaaa7a4a19e9b9895928f8c898683
+#            v21: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v22: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x85'84'83 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x88'87'86 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8b'8a'89 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8e'8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x91'90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x94'93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x97'96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9a'99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa3'a2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa6'a5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa9'a8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xac'ab'aa <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb2'b1'b0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.568e-159, -5.487e+303)
+#            v22: 0x27262524232221200000000000fffeff (4.288e-120, 8.289e-317)
+#            v23: 0x2f2e2d2c2b2a29281700000000000000 (1.988e-81, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928'2726252423222120'1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.073e+90, -8.311e-26)
+#            v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.479e+129, -3.904e+13)
+#            v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.109e+168, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb'dad9d8d7d6d5d4d3'd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.306e+86, -1.219e-30)
+#            v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.569e+124, -5.620e+08)
+#            v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.037e+163, -2.829e+47)
+#                                  ║               ╙─ 0xc9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe1e0dfdedddcdbda'd9d8d7d6d5d4d3d2'd1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x000000000002ff01 (0.000, 2.751e-40)
+#             d8:                 0x00000000ff000085 (0.000, -1.701e+38)
+#             d9:                 0x1700000000fffeff (4.136e-25, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xf1f0efeee5e4e3e2 (-2.386e+30, -1.351e+23)
+#            d21:                 0xf5f4f3f2e9e8e7e6 (-6.210e+32, -3.520e+25)
+#            d22:                 0xf9f8f7f6edecebea (-1.616e+35, -9.165e+27)
+#                                          ║       ╙─ 0xedecebea'e9e8e7e6'e5e4e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xf0efeeede4e3e2e1 (-5.940e+29, -3.363e+22)
+#            d27:                 0xf4f3f2f1e8e7e6e5 (-1.546e+32, -8.761e+24)
+#            d28:                 0xf8f7f6f5ecebeae9 (-4.023e+34, -2.282e+27)
+#                                          ║       ╙─ 0xecebeae9'e8e7e6e5'e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00000000ff00ff01 (0.000, 0.000, nan, nan)
+#            d28:                 0x00000000feff0002 (0.000, 0.000, nan, 1.192e-07)
+#            d29:                 0x1700000000ff0085 (0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                                      ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x0c0b060500fffaf9 (0.0002468, 9.185e-05, 1.520e-05, -5.712e+04)
+#            d29:                 0x0e0d08070201fcfb (0.0003693, 0.0001229, 3.058e-05, nan)
+#            d30:                 0x100f0a090403fefd (0.0004954, 0.0001842, 6.121e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0403'0201'00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0a09'0807'0605 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x100f'0e0d'0c0b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x0b0a0504fffef9f8 (0.0002148, 7.653e-05, nan, -4.890e+04)
+#             d8:                 0x0d0c07060100fbfa (0.0003080, 0.0001072, 1.526e-05, -6.534e+04)
+#             d9:                 0x0f0e09080302fdfc (0.0004306, 0.0001535, 4.590e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfdfc'fbfa'f9f8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0302'0100'fffe <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0908'0706'0504 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0f0e'0d0c'0b0a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x272625241b1a1918000000000002ff01 (2.306e-15, 1.275e-22, 0.000, 2.751e-40)
+#             v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.045e-13, 3.348e-20, 0.000, -1.701e+38)
+#             v4: 0x2f2e2d2c232221201700000000fffeff (1.584e-10, 8.789e-18, 4.136e-25, 2.351e-38)
+#                          ║       ║       ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120'1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c'2b2a2928'27262524 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x373635342b2a29281f1e1d1c13121110 (1.086e-05, 6.045e-13, 3.348e-20, 1.844e-27)
+#            v25: 0x3b3a39382f2e2d2c2322212017161514 (0.002842, 1.584e-10, 8.789e-18, 4.849e-25)
+#            v26: 0x3f3e3d3c33323130272625241b1a1918 (0.7431, 4.149e-08, 2.306e-15, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918'17161514'13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x33323130'2f2e2d2c'2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v11: 0x363534332a2928271e1d1c1b1211100f (2.700e-06, 1.502e-13, 8.317e-21, 4.577e-28)
+#            v12: 0x3a3938372e2d2c2b2221201f16151413 (0.0007066, 3.937e-11, 2.184e-18, 1.204e-25)
+#            v13: 0x3e3d3c3b3231302f262524231a191817 (0.1848, 1.031e-08, 5.729e-16, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817'16151413'1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x26252423'2221201f'1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f'2e2d2c2b'2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3e3d3c3b'3a393837'36353433 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x00000000fe000001
+#            d30:                 0x00000000ffff85ff
+#            d31:                 0x1700000000ff0002
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x54514e4b4845423f
+#             d2:                 0x55524f4c49464340
+#             d3:                 0x5653504d4a474441
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x41'40'3f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x44'43'42 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x47'46'45 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x4a'49'48 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4d'4c'4b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x50'4f'4e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x53'52'51 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x56'55'54 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x53504d4a4744413e
+#            d13:                 0x54514e4b4845423f
+#            d14:                 0x55524f4c49464340
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40'3f'3e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x43'42'41 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x46'45'44 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x49'48'47 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4c'4b'4a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x4f'4e'4d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x52'51'50 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x55'54'53 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x2b2a25241f1e191800000000ff00ff01 (0.05597, 0.02008, 0.006950, 0.002487, 0.000, 0.000, nan, nan)
+#            v23: 0x2d2c272621201b1a00000000feff0002 (0.08081, 0.02792, 0.01001, 0.003468, 0.000, 0.000, nan, 1.192e-07)
+#            v24: 0x2f2e292823221d1c1700000000ff0085 (0.1122, 0.04028, 0.01393, 0.004990, 0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2322'2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2928'2726'2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e696863625d5c5756 (-2.289e-05, 6.125e+04, 2.234e+04, 7608., 2768., 945.0, 343.0, 117.4)
+#            v14: 0x83827d7c777671706b6a65645f5e5958 (-5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5, 171.0)
+#            v15: 0x85847f7e797873726d6c676661605b5a (-8.416e-05, nan, 4.480e+04, 1.525e+04, 5552., 1894., 688.0, 235.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5b5a'5958'5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6160'5f5e'5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6766'6564'6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6d6c'6b6a'6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7372'7170'6f6e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7978'7776'7574 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8584'8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x807f7a7974736e6d686762615c5b5655 (-7.570e-06, 5.302e+04, 1.822e+04, 6580., 2254., 816.5, 278.8, 101.3)
+#            v29: 0x82817c7b7675706f6a6964635e5d5857 (-3.821e-05, nan, 2.645e+04, 9080., 3282., 1123., 407.2, 138.9)
+#            v30: 0x84837e7d787772716c6b6665605f5a59 (-6.884e-05, nan, 3.658e+04, 1.319e+04, 4524., 1637., 559.5, 203.1)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5a59'5857'5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f'5e5d'5c5b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6665'6463'6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6c6b'6a69'6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7271'706f'6e6d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7877'7675'7473 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7e7d'7c7b'7a79 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8483'8281'807f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v21: 0x0000000001000000f5f4f3f2e9e8e7e6
+#            v22: 0x2b2a2524ff1e191800000000ff00ff01
+#            v23: 0x2d2c272602201b1a00000000feff0002
+#                            ╙─────────────────────── 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f
+#             v6: 0x82818281828186818281828182818281
+#             v7: 0x00000000000087000b0a0504fffef9f8
+#                                ╙─────────────────── 0x87'86'85 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0x2d2c272602201b1a00000000feff0084
+#            v24: 0x2f2e292823221d1c1700000000ff0085
+#            v25: 0x3b3a39382f2e2d2c2322212017161586
+#                                                  ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6e6d6c6b6a696867ff0000850002ff01 (..., -5.487e+303)
+#            v17: 0x00000000474600000000000000fffeff (..., 8.289e-317)
+#            v18: 0xd2d1d0cfcecdcccb1700000000000000 (..., 6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84837e7d787772718e8d8c8b8a898887 (..., -1.418e-238)
+#            v31: 0x0000000000000000969594939291908f (..., -7.048e-200)
+#             v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (..., -3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897'969594939291908f'8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.090e-243, ...)
+#            v29: 0x9594939291908f8e6a6964635e5d5857 (-1.025e-204, ...)
+#            v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.851e-166, ...)
+#                                  ╙───────────────── 0x9d9c9b9a99989796'9594939291908f8e'8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e6968ff015d5c5756 (..., nan, ...)
+#            v14: 0x83827d7c777671706b6a00025f5e5958 (..., 1.192e-07, ...)
+#            v15: 0x85847f7e797873726d6c008561605b5a (..., 7.927e-06, ...)
+#                                          ╙───────── 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x9f9e2524ff1e191800000000ff00ff01 (-0.007439, ...)
+#            v23: 0xa1a0272602201b1a00000000feff0084 (-0.01099, ...)
+#            v24: 0xa3a2292823221d1c1700000000ff0085 (-0.01491, ...)
+#                      ╙───────────────────────────── 0xa3a2'a1a0'9f9e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0x83827d7c777671709e9d00025f5e5958 (..., -0.006458, ...)
+#            v15: 0x85847f7e79787372a09f008561605b5a (..., -0.009026, ...)
+#            v16: 0x6e6d6c6b6a696867a2a100850002ff01 (..., -0.01295, ...)
+#                                      ╙───────────── 0xa2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0x0002ff01ff1e191800000000ff00ff01 (2.751e-40, ...)
+#            v23: 0xff00008502201b1a00000000feff0084 (-1.701e+38, ...)
+#            v24: 0x00fffeff23221d1c1700000000ff0085 (2.351e-38, ...)
+#                          ╙───────────────────────── 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.149e-15, ...)
+#            v31: 0x00000000aaa9a8a7969594939291908f (..., -3.014e-13, ...)
+#             v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.898e-11, ...)
+#                                  ╙───────────────── 0xaeadacab'aaa9a8a7'a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000a5a4a3a24744413e (..., -2.856e-16, ...)
+#            v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.490e-14, ...)
+#            v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.963e-11, ...)
+#                                          ╙───────── 0xadacabaa'a9a8a7a6'a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v24: 0x01010101010101010101010101010101
+#            v25: 0xffffffffffffffffffffffffffffffff
+#            v26: 0x02020202020202020202020202020202
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#            v25: 0xafafafafafafafafafafafafafafafaf
+#            v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v3: 0xadadadadadadadadadadadadadadadad
+#             v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#             v5: 0xafafafafafafafafafafafafafafafaf
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xb7b6b5b4b3b2b1b0 (-2.607e-40)
+#             d8:                 0xbfbebdbcbbbab9b8 (-0.1201)
+#             d9:                 0xc7c6c5c4c3c2c1c0 (-6.054e+37)
+#                                                  ╙─ 0xc7c6c5c4c3c2c1c0'bfbebdbcbbbab9b8'b7b6b5b4b3b2b1b0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xb6b5b4b3b2b1b0af (-3.802e-45)
+#            d18:                 0xbebdbcbbbab9b8b7 (-1.772e-06)
+#            d19:                 0xc6c5c4c3c2c1c0bf (-8.830e+32)
+#                                                  ╙─ 0xc6c5c4c3c2c1c0bf'bebdbcbbbab9b8b7'b6b5b4b3b2b1b0af <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v17: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v18: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#                                  ╙───────────────╨─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.113e+71, -4.113e+71)
+#            v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.051e+110, -2.051e+110)
+#            v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.546e+148, -9.546e+148)
+#                                  ╙───────────────╨─ 0xdedddcdbdad9d8d7'd6d5d4d3d2d1d0cf'cecdcccbcac9c8c7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.065e+66, -6.065e+66)
+#            v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.985e+105, -2.985e+105)
+#            v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.408e+144, -1.408e+144)
+#                                  ╙───────────────╨─ 0xdddcdbdad9d8d7d6'd5d4d3d2d1d0cfce'cdcccbcac9c8c7c6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d11:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#            d12:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#                                          ╙───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#             d1:                 0xe5e4e3e2e5e4e3e2 (-1.351e+23, -1.351e+23)
+#             d2:                 0xe9e8e7e6e9e8e7e6 (-3.520e+25, -3.520e+25)
+#                                          ╙───────╨─ 0xe9e8e7e6'e5e4e3e2'e1e0dfde <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#            d24:                 0xe4e3e2e1e4e3e2e1 (-3.363e+22, -3.363e+22)
+#            d25:                 0xe8e7e6e5e8e7e6e5 (-8.761e+24, -8.761e+24)
+#                                          ╙───────╨─ 0xe8e7e6e5'e4e3e2e1'e0dfdedd <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d23:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d24:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                                      ╙───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0xeae9eae9eae9eae9 (-3538., -3538., -3538., -3538.)
+#             d7:                 0xecebecebecebeceb (-5036., -5036., -5036., -5036.)
+#             d8:                 0xeeedeeedeeedeeed (-7092., -7092., -7092., -7092.)
+#                                      ╙───╨───╨───╨─ 0xeeed'eceb'eae9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xe9e8e9e8e9e8e9e8 (-3024., -3024., -3024., -3024.)
+#             d8:                 0xebeaebeaebeaebea (-4052., -4052., -4052., -4052.)
+#             d9:                 0xedecedecedecedec (-6064., -6064., -6064., -6064.)
+#                                      ╙───╨───╨───╨─ 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v27: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v28: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#                          ╙───────╨───────╨───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (-2.386e+30, -2.386e+30, -2.386e+30, -2.386e+30)
+#             v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (-6.210e+32, -6.210e+32, -6.210e+32, -6.210e+32)
+#             v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (-1.616e+35, -1.616e+35, -1.616e+35, -1.616e+35)
+#                          ╙───────╨───────╨───────╨─ 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (-5.940e+29, -5.940e+29, -5.940e+29, -5.940e+29)
+#            v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (-1.546e+32, -1.546e+32, -1.546e+32, -1.546e+32)
+#             v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (-4.023e+34, -4.023e+34, -4.023e+34, -4.023e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x0101010101010101
+#             d3:                 0xffffffffffffffff
+#             d4:                 0x0202020202020202
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xf9f9f9f9f9f9f9f9
+#            d11:                 0xfafafafafafafafa
+#            d12:                 0xfbfbfbfbfbfbfbfb
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfb'fa'f9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v7: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#             v8: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#             v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v9: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xfffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v3: 0x3c3834302c2824201c18000000ff8501
+#             v4: 0x3d3935312d2925211d19000000fe00ff
+#             v5: 0x3e3a36322e2a26221e1a000000ff0002
+#             v6: 0x3f3b37332f2b27231f1b17000000ff00
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x3c3834302c2824201c1814100c080400
+#             v3: 0x3d3935312d2925211d1915110d090501
+#             v4: 0x3e3a36322e2a26221e1a16120e0a0602
+#             v5: 0x3f3b37332f2b27231f1b17130f0b0703
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x03'02'01'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x07'06'05'04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0b'0a'09'08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0f'0e'0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x13'12'11'10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'16'15'14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3b37332f2b27231f1b17130f0b0703ff
+#             v6: 0x3c3834302c2824201c1814100c080400
+#             v7: 0x3d3935312d2925211d1915110d090501
+#             v8: 0x3e3a36322e2a26221e1a16120e0a0602
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1e'1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22'21'20'1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x26'25'24'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a'29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2e'2d'2c'2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x32'31'30'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x36'35'34'33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3a'39'38'37 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3e'3d'3c'3b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2726252423222120ff0000850002ff01 (4.288e-120, -5.487e+303)
+#            v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.988e-81, 8.289e-317)
+#            v20: 0x37363534333231301700000000000000 (9.958e-43, 6.689e-198)
+#            v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.0004614, 8.568e-159)
+#                                  ║               ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938'3736353433323130'2f2e2d2c2b2a2928'2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x666564636261605f464544434241403f (1.818e+185, 3.370e+30)
+#             v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.509e+223, 1.580e+69)
+#             v6: 0x767574737271706f565554535251504f (4.222e+262, 7.827e+107)
+#             v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.975e+301, 3.666e+146)
+#                                  ║               ╙─ 0x5e5d5c5b5a595857'565554535251504f'4e4d4c4b4a494847'464544434241403f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7e7d7c7b7a797877'767574737271706f'6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x6564636261605f5e4544434241403f3e (2.644e+180, 4.899e+25)
+#            v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.254e+219, 2.328e+64)
+#            v31: 0x7574737271706f6e5554535251504f4e (6.141e+257, 1.138e+103)
+#             v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.911e+296, 5.403e+141)
+#                                  ║               ╙─ 0x5d5c5b5a59585756'5554535251504f4e'4d4c4b4a49484746'4544434241403f3e <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7d7c7b7a79787776'7574737271706f6e'6d6c6b6a69686766'6564636261605f5e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x000000000002ff01 (0.000, 2.751e-40)
+#            d28:                 0x17000000ff000085 (4.136e-25, -1.701e+38)
+#            d29:                 0x1b1a191800fffeff (1.275e-22, 2.351e-38)
+#            d30:                 0x1f1e1d1c00000000 (3.348e-20, 0.000)
+#                                          ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x91908f8e81807f7e (-2.281e-28, -4.720e-38)
+#            d25:                 0x9594939285848382 (-6.001e-26, -1.246e-35)
+#            d26:                 0x9998979689888786 (-1.578e-23, -3.287e-33)
+#            d27:                 0x9d9c9b9a8d8c8b8a (-4.145e-21, -8.662e-31)
+#                                          ║       ╙─ 0x8d8c8b8a'89888786'85848382'81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9d9c9b9a'99989796'95949392'91908f8e <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x908f8e8d807f7e7d (-5.662e-29, -1.171e-38)
+#             d5:                 0x9493929184838281 (-1.490e-26, -3.092e-36)
+#             d6:                 0x9897969588878685 (-3.918e-24, -8.157e-34)
+#             d7:                 0x9c9b9a998c8b8a89 (-1.030e-21, -2.150e-31)
+#                                          ║       ╙─ 0x8c8b8a89'88878685'84838281'807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99'98979695'94939291'908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d16:                 0x19180000feffff01 (0.002487, 0.000, nan, nan)
+#            d17:                 0x1b1a000000ff0002 (0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            d18:                 0x1d1c000000000085 (0.004990, 0.000, 0.000, 7.927e-06)
+#            d19:                 0x1f1e17000000ff00 (0.006950, 0.001709, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xb6b5aeada6a59e9d (-0.4192, -0.1043, -0.02596, -0.006458)
+#            d24:                 0xb8b7b0afa8a7a09f (-0.5894, -0.1464, -0.03635, -0.009026)
+#            d25:                 0xbab9b2b1aaa9a2a1 (-0.8403, -0.2091, -0.05203, -0.01295)
+#            d26:                 0xbcbbb4b3acaba4a3 (-1.183, -0.2937, -0.07294, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3'a2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xacab'aaa9'a8a7'a6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb4b3'b2b1'b0af'aead <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbcbb'bab9'b8b7'b6b5 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xb5b4adaca5a49d9c (-0.3564, -0.08862, -0.02203, -0.005478)
+#             d3:                 0xb7b6afaea7a69f9e (-0.4819, -0.1200, -0.02988, -0.007439)
+#             d4:                 0xb9b8b1b0a9a8a1a0 (-0.7148, -0.1777, -0.04419, -0.01099)
+#             d5:                 0xbbbab3b2abaaa3a2 (-0.9658, -0.2405, -0.05988, -0.01491)
+#                                      ║   ║   ║   ╙─ 0xa3a2'a1a0'9f9e'9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xabaa'a9a8'a7a6'a5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb3b2'b1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba'b9b8'b7b6'b5b4 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x3332313023222120000000000002ff01 (4.149e-08, 8.789e-18, 0.000, 2.751e-40)
+#             v8: 0x373635342726252417000000ff000085 (1.086e-05, 2.306e-15, 4.136e-25, -1.701e+38)
+#             v9: 0x3b3a39382b2a29281b1a191800fffeff (0.002842, 6.045e-13, 1.275e-22, 2.351e-38)
+#            v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.7431, 1.584e-10, 3.348e-20, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2f2e2d2c'2b2a2928'27262524'23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534'33323130 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#            v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.850e+31, -8.370e+21, -1.811e+12, -389.5)
+#            v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.002e+34, -2.181e+24, -4.724e+14, -1.018e+05)
+#            v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.606e+36, -5.680e+26, -1.232e+17, -2.658e+07)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.682e+28, -7.993e+18, -1.726e+09, -0.3706)
+#            v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.584e+30, -2.083e+21, -4.506e+11, -96.88)
+#            v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.494e+33, -5.428e+23, -1.176e+14, -2.531e+04)
+#             v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.490e+35, -1.414e+26, -3.066e+16, -6.612e+06)
+#                          ║       ║       ║       ╙─ 0xcac9c8c7'c6c5c4c3'c2c1c0bf'bebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdad9d8d7'd6d5d4d3'd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xeae9e8e7'e6e5e4e3'e2e1e0df'dedddcdb <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfaf9f8f7'f6f5f4f3'f2f1f0ef'eeedeceb <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d15:                 0x1c18000000ff8501
+#            d16:                 0x1d19000000fe00ff
+#            d17:                 0x1e1a000000ff0002
+#            d18:                 0x1f1b17000000ff00
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x17130f0b0703fffb
+#            d28:                 0x1814100c080400fc
+#            d29:                 0x1915110d090501fd
+#            d30:                 0x1a16120e0a0602fe
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfe'fd'fc'fb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x16120e0a0602fefa
+#             d6:                 0x17130f0b0703fffb
+#             d7:                 0x1814100c080400fc
+#             d8:                 0x1915110d090501fd
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfd'fc'fb'fa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x01'00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x05'04'03'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x09'08'07'06 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0d'0c'0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x11'10'0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14'13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x19'18'17'16 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831302928212019180000feffff01 (0.6523, 0.1621, 0.04028, 0.01001, 0.002487, 0.000, nan, nan)
+#            v26: 0x3b3a33322b2a23221b1a000000ff0002 (0.9033, 0.2249, 0.05597, 0.01393, 0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            v27: 0x3d3c35342d2c25241d1c000000000085 (1.309, 0.3252, 0.08081, 0.02008, 0.004990, 0.000, 0.000, 7.927e-06)
+#            v28: 0x3f3e37362f2e27261f1e17000000ff00 (1.811, 0.4507, 0.1122, 0.02792, 0.006950, 0.001709, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726'2524'2322'2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2f2e'2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3736'3534'3332'3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e'3d3c'3b3a'3938 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x53524b4a43423b3a33322b2a23221b1a (58.56, 14.58, 3.629, 0.9033, 0.2249, 0.05597, 0.01393, 0.003468)
+#             v3: 0x55544d4c45443d3c35342d2c25241d1c (85.25, 21.19, 5.266, 1.309, 0.3252, 0.08081, 0.02008, 0.004990)
+#             v4: 0x57564f4e47463f3e37362f2e27261f1e (117.4, 29.22, 7.273, 1.811, 0.4507, 0.1122, 0.02792, 0.006950)
+#             v5: 0x59585150494841403938313029282120 (171.0, 42.50, 10.56, 2.625, 0.6523, 0.1621, 0.04028, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120'1f1e'1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2928'2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3130'2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3938'3736'3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4140'3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948'4746'4544'4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5150'4f4e'4d4c'4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5958'5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2922211a19 (50.53, 12.57, 3.127, 0.7778, 0.1935, 0.04813, 0.01197, 0.002977)
+#            v21: 0x54534c4b44433c3b34332c2b24231c1b (69.19, 17.17, 4.262, 1.058, 0.2625, 0.06512, 0.01616, 0.004009)
+#            v22: 0x56554e4d46453e3d36352e2d26251e1d (101.3, 25.20, 6.270, 1.560, 0.3879, 0.09650, 0.02400, 0.005970)
+#            v23: 0x5857504f4847403f3837302f2827201f (138.9, 34.47, 8.555, 2.123, 0.5269, 0.1307, 0.03244, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f'1e1d'1c1b'1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2827'2625'2423'2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x302f'2e2d'2c2b'2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3837'3635'3433'3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x403f'3e3d'3c3b'3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847'4645'4443'4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x504f'4e4d'4c4b'4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5857'5655'5453'5251 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2901211a19
+#            v21: 0x54534c4b44433c3b34332c2bff231c1b
+#            v22: 0x56554e4d46453e3d36352e2d02251e1d
+#            v23: 0x5857504f4847403f3837302f0027201f
+#                                            ╙─────── 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000fbfbfbfb59fbfbfb
+#            v13: 0x81807b7a75746f6ea9a8a7a65a5c5756
+#            v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6
+#            v15: 0x00000000000000001c1800005cff8501
+#                                            ╙─────── 0x5c'5b'5a'59 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v27: 0x3d3c35342d2c25241d58000000000085
+#            v28: 0x3f3e37362f2e27261f5917000000ff00
+#            v29: 0x0000000000000000195a110d090501fd
+#            v30: 0x00000000000000001a5b120e0a0602fe
+#                                      ╙───────────── 0x5b'5a'59'58 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff0000850002ff011f5917000000ff00 (-5.487e+303, ...)
+#            v29: 0x0000000000fffeff195a110d090501fd (8.289e-317, ...)
+#            v30: 0x17000000000000001a5b120e0a0602fe (6.689e-198, ...)
+#            v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.568e-159, ...)
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x636261605f5e5d5c1c1800005cff8501 (5.549e+170, ...)
+#            v16: 0x6b6a6968676665641d19000000fe00ff (2.713e+209, ...)
+#            v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.290e+248, ...)
+#            v18: 0x7b7a7978777675741f1b17000000ff00 (6.299e+286, ...)
+#                                  ╙───────────────── 0x7b7a797877767574'737271706f6e6d6c'6b6a696867666564'636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.005e+165, ...)
+#            v17: 0x6a696867666564631e1a000000ff0002 (3.983e+204, ...)
+#            v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.861e+243, ...)
+#            v19: 0x7a797877767574731f1e17000000ff00 (9.247e+281, ...)
+#                                  ╙───────────────── 0x7a79787776757473'7271706f6e6d6c6b'6a69686766656463'6261605f5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v2: 0x5352ff0143423b3a33322b2a23221b1a (..., nan, ...)
+#             v3: 0x5554000245443d3c35342d2c25241d1c (..., 1.192e-07, ...)
+#             v4: 0x5756008547463f3e37362f2e27261f1e (..., 7.927e-06, ...)
+#             v5: 0x5958ff00494841403938313029282120 (..., nan, ...)
+#                          ╙───────────────────────── 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5958ff00494841407c7b313029282120 (..., nan, ...)
+#             v6: 0x00000000000000007e7d0f0b0703fffb (..., nan, ...)
+#             v7: 0x0000000000000000807f100c080400fc (..., -7.570e-06, ...)
+#             v8: 0x00000000000000008281110d090501fd (..., -3.821e-05, ...)
+#                                      ╙───────────── 0x8281'807f'7e7d'7c7b <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v7: 0x00007b7a00000000807f100c080400fc (..., 6.125e+04, ...)
+#             v8: 0x00007d7c000000008281110d090501fd (..., nan, ...)
+#             v9: 0x3b3a7f7e2b2a29281b1a191800fffeff (..., nan, ...)
+#            v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 (..., -2.289e-05, ...)
+#                          ╙───────────────────────── 0x8180'7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v6: 0x00000000000000000002ff010703fffb (..., 2.751e-40, ...)
+#             v7: 0x00007b7a00000000ff000085080400fc (..., -1.701e+38, ...)
+#             v8: 0x00007d7c0000000000fffeff090501fd (..., 2.351e-38, ...)
+#             v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831308584838219180000feffff01 (..., -1.246e-35, ...)
+#            v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.287e-33, ...)
+#            v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.662e-31, ...)
+#            v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.281e-28, ...)
+#                                  ╙───────────────── 0x91908f8e'8d8c8b8a'89888786'85848382 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v8: 0x848382810000000000fffeff090501fd (-3.092e-36, ...)
+#             v9: 0x888786852b2a29280000000000fffeff (-8.157e-34, ...)
+#            v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.150e-31, ...)
+#            v11: 0x908f8e8d00000000fafafafafafafafa (-5.662e-29, ...)
+#                          ╙───────────────────────── 0x908f8e8d'8c8b8a89'88878685'84838281 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v14: 0x01010101010101010101010101010101
+#            v15: 0xffffffffffffffffffffffffffffffff
+#            v16: 0x02020202020202020202020202020202
+#            v17: 0x00000000000000000000000000000000
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x91919191919191919191919191919191
+#            v14: 0x92929292929292929292929292929292
+#            v15: 0x93939393939393939393939393939393
+#            v16: 0x94949494949494949494949494949494
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x94'93'92'91 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             v9: 0x90909090909090909090909090909090
+#            v10: 0x91919191919191919191919191919191
+#            v11: 0x92929292929292929292929292929292
+#            v12: 0x93939393939393939393939393939393
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x93'92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xff0000850002ff01 (-5.487e+303)
+#             d9:                 0x0000000000fffeff (8.289e-317)
+#            d10:                 0x1700000000000000 (6.689e-198)
+#            d11:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x9b9a999897969594 (-1.050e-175)
+#             d5:                 0xa3a2a1a09f9e9d9c (-5.007e-137)
+#             d6:                 0xabaaa9a8a7a6a5a4 (-2.438e-98)
+#             d7:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac'abaaa9a8a7a6a5a4'a3a2a1a09f9e9d9c'9b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x9a99989796959493 (-1.542e-180)
+#            d27:                 0xa2a1a09f9e9d9c9b (-7.228e-142)
+#            d28:                 0xaaa9a8a7a6a5a4a3 (-3.580e-103)
+#            d29:                 0xb2b1b0afaeadacab (-1.680e-64)
+#                                                  ╙─ 0xb2b1b0afaeadacab'aaa9a8a7a6a5a4a3'a2a1a09f9e9d9c9b'9a99989796959493 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v20: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v21: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#            v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.568e-159, 8.568e-159)
+#                                  ╙───────────────╨─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.311e-26, -8.311e-26)
+#            v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.904e+13, -3.904e+13)
+#            v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.929e+52, -1.929e+52)
+#            v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.073e+90, -9.073e+90)
+#                                  ╙───────────────╨─ 0xd2d1d0cfcecdcccb'cac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.219e-30, -1.219e-30)
+#            v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.620e+08, -5.620e+08)
+#            v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.829e+47, -2.829e+47)
+#            v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.306e+86, -1.306e+86)
+#                                  ╙───────────────╨─ 0xd1d0cfcecdcccbca'c9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#             d0:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#             d1:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#             d2:                 0x0000000000000000 (0.000, 0.000)
+#                                          ╙───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xd5d4d3d2d5d4d3d2 (-2.925e+13, -2.925e+13)
+#            d29:                 0xd9d8d7d6d9d8d7d6 (-7.629e+15, -7.629e+15)
+#            d30:                 0xdddcdbdadddcdbda (-1.989e+18, -1.989e+18)
+#            d31:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#                                          ╙───────╨─ 0xe1e0dfde'dddcdbda'd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xd4d3d2d1d4d3d2d1 (-7.278e+12, -7.278e+12)
+#            d12:                 0xd8d7d6d5d8d7d6d5 (-1.899e+15, -1.899e+15)
+#            d13:                 0xdcdbdad9dcdbdad9 (-4.951e+17, -4.951e+17)
+#            d14:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#                                          ╙───────╨─ 0xe0dfdedd'dcdbdad9'd8d7d6d5'd4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d20:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d21:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            d22:                 0xff00ff00ff00ff00 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xe2e1e2e1e2e1e2e1 (-880.5, -880.5, -880.5, -880.5)
+#            d23:                 0xe4e3e4e3e4e3e4e3 (-1251., -1251., -1251., -1251.)
+#            d24:                 0xe6e5e6e5e6e5e6e5 (-1765., -1765., -1765., -1765.)
+#            d25:                 0xe8e7e8e7e8e7e8e7 (-2510., -2510., -2510., -2510.)
+#                                      ╙───╨───╨───╨─ 0xe8e7'e6e5'e4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xe1e0e1e0e1e0e1e0 (-752.0, -752.0, -752.0, -752.0)
+#            d21:                 0xe3e2e3e2e3e2e3e2 (-1009., -1009., -1009., -1009.)
+#            d22:                 0xe5e4e5e4e5e4e5e4 (-1508., -1508., -1508., -1508.)
+#            d23:                 0xe7e6e7e6e7e6e7e6 (-2022., -2022., -2022., -2022.)
+#                                      ╙───╨───╨───╨─ 0xe7e6'e5e4'e3e2'e1e0 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v16: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v17: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v18: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#            v19: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ╙───────╨───────╨───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (-5.680e+26, -5.680e+26, -5.680e+26, -5.680e+26)
+#            v26: 0xefeeedecefeeedecefeeedecefeeedec (-1.479e+29, -1.479e+29, -1.479e+29, -1.479e+29)
+#            v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (-3.850e+31, -3.850e+31, -3.850e+31, -3.850e+31)
+#            v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (-1.002e+34, -1.002e+34, -1.002e+34, -1.002e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf7f6f5f4'f3f2f1f0'efeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (-1.414e+26, -1.414e+26, -1.414e+26, -1.414e+26)
+#            v24: 0xeeedecebeeedecebeeedecebeeedeceb (-3.682e+28, -3.682e+28, -3.682e+28, -3.682e+28)
+#            v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (-9.584e+30, -9.584e+30, -9.584e+30, -9.584e+30)
+#            v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (-2.494e+33, -2.494e+33, -2.494e+33, -2.494e+33)
+#                          ╙───────╨───────╨───────╨─ 0xf6f5f4f3'f2f1f0ef'eeedeceb'eae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x0101010101010101
+#            d23:                 0xffffffffffffffff
+#            d24:                 0x0202020202020202
+#            d25:                 0x0000000000000000
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xf7f7f7f7f7f7f7f7
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8'f7 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xf6f6f6f6f6f6f6f6
+#            d30:                 0xf7f7f7f7f7f7f7f7
+#            d31:                 0xf8f8f8f8f8f8f8f8
+#             d0:                 0xf9f9f9f9f9f9f9f9
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xf9'f8'f7'f6 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v29: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            v30: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#            v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v27: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v28: 0x01000100010001000100010001000100 (1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0100'fffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 (-5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04)
+#            v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0002000200020002e73aed42f34af952
+#             v6: 0x0000000000000000dcbb11e0e6481e68
+#             v9: 0x00000000000000000000000000fffeff
+#             v5: 0x0000000000000000a4a2261ba09e2217
+#            v24: 0x000000000000000082b3330de36793c1
+#            v12: 0x00000000000000006f49f4f5e911f705
+#            v10: 0x00000000000000001700000000000000
+#             v3: 0x000000000000000035342d2c25221f1b
+#            v19: 0xfe070c07fe070c07fe070c07fe070c07
+#             v6: 0x0000000000000000dcbb11e0e6481e68
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v28: 0x00000000000000000100010001000100
+#             v2: 0x0000000000000000ac03d811ac03d811
+#            v18: 0x000000000000000000fffeff00fffeff
+#             v6: 0x00000000000000006347100f6cd41c97
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v26: 0x0000000000000000bd4365396d436539
+#            v10: 0x00000000000000008800000000000000
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000000000000000e3e2
+#            v26: 0x000000000000000000000000fe070c07
+#            v26: 0x0000000000000000d4d3d2d1d4d3d2d1
+#            v20: 0x0000000000000000f9f9f9f9f9f9f9f9
+#            v19: 0xfe070f07fe070c07fe070c07fe070c07
+#             v4: 0x00000000000000009b9a999897969594
+#            v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
+#             v3: 0x00000000000000000000000000000000
+#            v29: 0x000200020002ff00e73aed42f34af952
+#             v2: 0x0000ffff00000000ac03d811ac03d811
+#            v22: 0x00000000000000000000000000000000
+#            v24: 0x000000000000000082b3330de36793c1
+#            x18: 0x0000000000000000
+#            x28: 0xe3e2e3e2e3e2e3e2
+#            v24: 0x000000000000000000ffff0000ffffff
+#            v29: 0x80808080808080808080808080808080
+#            v12: 0xffff00ff00ffff00ffff00ff00ffff00
+#            v12: 0x0000000000000000ec000000ec000000
+#            v10: 0x0000000000000000004cffff004cffff
+#            v26: 0x000000000000000000c000c000c000c0
+#            v24: 0x00980000009800000098000000980000
+#             v1: 0x00deffff00deffff00deffff00deffff
+#            v21: 0x00000000000000004d4d4d4d4d4d4d4d
+#            v29: 0x00690069006900690069006900690069
+#             v1: 0x4700008e4b00007a4700008e4b00007a
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
+#            v19: 0x00000000000000000000000000000000
+#            v29: 0x0000000000000000427957e1427957e1
+#             v2: 0x00000000000000000000000000000000
+#            v25: 0x000000000000000042ff40c042ff40c0
+#            v26: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x0000000000000000470049004b004d00
+#            v20: 0x48004a004c004e0048004a004c004e00
+#            v29: 0x00000000000000000000000000000000
+#            v13: 0xffffffffffffffffe03d1120e03d1120
+#            v28: 0x0000000000000000ffffffffffffffff
+#            v25: 0x0000000000000000ffff47ffffff47ff
+#            v17: 0x0000000000000000ff930000ff930000
+#            v29: 0x0000000000000000ffb7ffb7ffb7ffb7
+#            v20: 0xff85ffffff85ffffff85ffffff85ffff
+#             v0: 0xffffe100ffffe100ffffe100ffffe100
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v25: 0x0000000000000000b8ffb6ffb4ffb300
+#             v4: 0x00000000000000000000000000010201
+#            v11: 0x0000000000000000470049004b004d00
+#             v7: 0x0000000000000000ff000101ff000101
+#             v7: 0x00000000000000004648484a4a4c4c4e
+#            v17: 0x0000000000000000ff000101ff000101
+#            v20: 0x00000000000000000100ffff0100ffff
+#             v0: 0x0000000000000000b900b700b500b300
+#            v13: 0x003e003e003e003e473e493e4b3e4d3e
+#            v22: 0x0000000000000000ffffffffffffffff
+#            v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
+#             v8: 0x0000000000000000ff0000e70002ffe3
+#            v11: 0x0000000000000000d700df00df00df00
+#             v7: 0x000000ab000000ab464848eb4a4c4cef
+#             v8: 0x00000000000000000000000000010201
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v11: 0x000000000000000000a9a8a900a9a8a9
+#             v8: 0x00000000000000000030000000100000
+#            v24: 0x0000555555aa55550000555555aa5555
+#            v13: 0x00000000000000000000000000000000
+#            v22: 0x000000000000000000000000200feede
+#             v5: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000fdfdfdfd9da5d974
+#             v9: 0x00000000000000000000000000fffeff
+#            v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
+#             v0: 0x0000000046004a04b900b700b500b300
+#            v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
+#            v30: 0x00000000000000000000000000000000
+#            v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
+#             v5: 0x00000000000000000000000001020100
+#            v16: 0x0000000000000000a76e9d2f75fed8a5
+#            v20: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000ffffffffffffffff
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000075fed8a5a76e9d2f
+#             v7: 0x0000000000000000fefffefffefffeff
+#            v15: 0x0000000000000000d8a575fe9d2fa76e
+#            v25: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000009d2fa76ed8a575fe
+#            v18: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v3: 0x0000000063106d1d0000000000000000
+#             v0: 0x00000000dbffdc00b900b700b500b300
+#            v27: 0x000000003a5fb14bfffefffefffefffe
+#            v15: 0x00000000000000000000000000000000
+#            v23: 0x000000000000000000009cf000000000
+#             v6: 0x000000000000000000abaaab00abaaab
+#             v4: 0x00555655005556550000000000010201
+#             v1: 0x62e2129262e2af824700008e4b00007a
+#            v19: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000ffffffffffffffff
+#             v9: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000fffbfdfbfffbfdfb
+#            v29: 0x000000003a5fb14b75b7d85e58486286
+#            v20: 0x00000000000000001e3d11201e3d1120
+#            v27: 0x000000003a5fb14b0003020300030203
+#            v20: 0x00000000010001011e3d11201f3d1221
+#             v4: 0x005585f20055c4fc00005a290001058d
+#            v23: 0x001e003d0044003500369d8300430034
+#            v26: 0x00000000000000009d2fa76ed8a575fe
+#            v27: 0x000000003a5fb14b0003020300030203
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
+#             v0: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000100010101000101
+#            v17: 0x00000000000000002fa270ac5a23007a
+#             v7: 0x633798855327f7af62e26cbc52d33840
+#            v23: 0x0000000000000000632f596e285b7502
+#            v20: 0x000000000000000075ff275a589162d0
+#            v27: 0x00000000d8e139ed00000000ab639583
+#            v31: 0x000012d0000032140000303600001232
+#             v0: 0x007500010027005a00ad00d200cd004d
+#            v31: 0x00000000000000000000000063106d1d
+#            v26: 0x00000000000000000000271f000039ed
+#             v6: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000003000000010610c
+#            v12: 0x00000000000000002f9d6ea7a5d95f81
+#            v12: 0x00000000000000002f9d95c6a5d9996e
+#             v4: 0x0000000000000000004759b7004c0607
+#            v15: 0x00000000000000000100a14f01005b9e
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
+#             v5: 0xffffffffd6dfd5daffffffff7687b151
+#            v18: 0x00000100ffffa14f0000010000005b9e
+#            v15: 0x0063002f0059006e0028005b00750002
+#            v16: 0x0000000000000000ffffffffd8e139ed
+#             v6: 0x0000007500005556000055d1000055af
+#             v7: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffd8e139ec
+#            v18: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000004600000026
+#            v10: 0x00007574000012640000478e00004b7a
+#             v0: 0x0000000000000000ffe1ffcdffe1ffcd
+#            v12: 0x00000000000000000000000000000000
+#            v14: 0x0000000000000000000000000000fff8
+#            v30: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v16: 0x000000000000000000000000000012cc
+#            v24: 0x00000000000000009d2fa76ed8a575fe
+#            v13: 0x00000000000055d100000000000055af
+#            v19: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000632f596e285b7502
+#            v15: 0x00000000000000000000000000000000
+#             v7: 0x000000000000000000232cdb00260303
+#            v29: 0x0000000000000000ce97d3b7ec52baff
+#            v31: 0x0000000000000000000023c700005094
+#            v21: 0x000000000000000000180000000839ec
+#            v14: 0x0000000000000000b5dae012cc3fc326
+#            v19: 0x00000000000000000997e764189b6c67
+#            v22: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000008000000000800000
+#             v2: 0x000000000000000036e00980c0e00000
+#             v4: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ff00ff00ff00ff00
+#             v4: 0x0000000000000000c700000094000000
+#            v18: 0x00000000000000000000000000004830
+#             v0: 0x0000000000000000e9783b70c528aff0
+#             v5: 0x9d2fa76e00000000d8a575fe00000000
+#            v26: 0x75ff0000275a00005891000062d00000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x62e200001292000062e20000af820000
+#            v30: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000002e212926700008e4
+#            v29: 0x00000000000000000000000000000090
+#            v17: 0x00000000000000000000000000000024
+#             v5: 0x00000000000000002e212926700008e4
+#            v24: 0x317157c12580003d9d2fa76ed8a575fe
+#             v5: 0x00000000b5dacc3f2e212926700008e4
+#            v30: 0x31f1000009c90000ffd9d3c9c393c5ff
+#            v22: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000dc80ffb9da80ffc3
+#            v10: 0x0000000000000000ce805349ebda7605
+#             v6: 0x00000000000000000000ee1c0000d836
+#             v8: 0x0000000000000000ffe811e3fff8f7c4
+#            v19: 0x000000000000000000000000090b6c67
+#             v9: 0x317157c12580003d9d2fa76ed8a575fe
+#            v22: 0xc55f04960000f400be9dbb6295d7f800
+#            v11: 0x0000000000000000000fa76e000575fe
+#            v16: 0x0000000000000000000000000000000c
+#             v8: 0x0000000000000000c7e811e389f8f7c4
+#            v10: 0x0000000000000000ffd9d3c9c393c5ff
+#             v7: 0x0000000000000000ffe3ffdbffe6ffc3
+#            v18: 0x6200120062000000470011e34b00007a
+#            v30: 0x00000000000000004700008e700008e4
+#            v17: 0x000000000000000000000000090b6c67
+#             v1: 0x317157c12580003d000023c700005094
+#            v17: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x75ff0000275a00005891000062d00000
+#            v12: 0x00000000ffffffff00000000da123f26
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#            v10: 0x0000000000000000ffd9c5ff00000090
+#            v18: 0x00000000ffe6ffc375ff000062d00000
+#            v21: 0x000000000000000075006200787028f0
+#            v26: 0x00000000000000000000000011e3f7c4
+#             v4: 0x00000000000000000000000000000070
+#            v23: 0x00000000000000000000000000000078
+#             v6: 0x00000000000000000000000000003b70
+#            v24: 0x000000000000000000000000000011e3
+#             v3: 0x0000000000000000000000000000000c
+#            v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
+#            v29: 0x0000000000000000c7e811e389f8f7c4
+#             v6: 0x00000000000000005891000062d00000
+#            v24: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000000000000000000c
+#            v12: 0x0000000000000000ffd9c5ff00000090
+#            v13: 0x00000000ffffffff0000e6c3ff00d000
+#            v22: 0x000000000000000000000000ffffffff
+#            v15: 0x0000000000000000292608e4c5ff0000
+#            v15: 0x0000000000000000000000009d2fa76e
+#            v21: 0x00000000000000009100d000e080c000
+#            v21: 0x000000000000000000000000c5ff0000
+#             v8: 0x00000000000000000000000000000091
+#             v6: 0x000000000000000000000000000000d0
+#            v20: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000009d2f
+#            v21: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#             v7: 0x00000000000000000000000000009d2f
+#            v19: 0x0000000000000000000000000906ca9b
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#            v30: 0x00000000000000004700008e700008e4
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#            v17: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x75ff0000275a00005891000062d00000
+#            v30: 0x00000000000000004700008e700008e4
+#             v1: 0x317157c12580003d000023c700005094
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#             v0: 0x0000000000000000e9783b70c7c032a0
+#             v3: 0x0000000000000000000000000000000c
+#             v4: 0x000000000000000003c9f8c001c2e9f0
+#            v14: 0x0000000000000000b5dae012cc3fc326
+#            v15: 0x0000000000000000f9797b018bdbc6de
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#             v6: 0x000000000000000000000000000000d0
+#            v30: 0x00000000000000004700008e700008e4
+#            w21:         0x00000000
+#            w13:         0x00000000
+#            x24: 0x0000000000000000
+#             x7: 0x00000000000003c9
+#            x29: 0x0000000000000000
+#             v4: 0x15a6d000c90fc48aedb876b6692ad888
+#            v30: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000042ae0
+#             v8: 0x185dc92015d7004009b45060e2e7be40
+#            v31: 0x00000000f3d5e78200000000249000d8
+#             v3: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v14: 0x000000000000000062d05891275a8a02
+#            v31: 0x00000000000000000000000000000001
+#             v8: 0x000000000000000000000000383fcd60
+#            v14: 0x0000000000000000000000000000632f
+#            v23: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000001687c490383fcd60
+#            v29: 0x000000000000000016793c70383f3360
+#            v17: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000060
+#             v2: 0x00000000000000000000000011e3f7c4
+#             v7: 0x00000000000000000000000000003360
+#            v11: 0x00000000000000000000000000003360
+#            v20: 0x000000000000000016793c70383f336c
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v8: 0x00000000000000000000000011e3f7c4
+#            v20: 0x0000000000000000ffd9c5ff00000090
+#            v14: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000016792233373f0360
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000060
+#            v14: 0x000000000000000000000000ffe772e8
+#            v30: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v8: 0x0672308605c005640fa6a0001322041c
+#             v1: 0x317157c12580003d000023c700005094
+#            v19: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000011e3f7c4
+#             v6: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000ffffffc0b8e63400
+#            v10: 0x0000000000000000ffffffc0b8e66400
+#            v30: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000000000000ff00d000
+#            v27: 0xffffffffece2ff800000004ffccf8000
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v22: 0x000000000000000000000000ffffffff
+#            v12: 0x0000000000000000ffd9c5ff00000090
+#            v20: 0x0000000000000000ffd9c5ff00000090
+#            v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000000000000000ff70
+#            v16: 0x00000000000000000000000000000391
+#             v1: 0x00000000000000000000000000000000
+#             v1: 0x0000000000000000000000000000018a
+#            v28: 0x0000000000000000000000000000003a
+#            v28: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000fffe0529
+#            v25: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000fff726ef1b546ce0
+#            v29: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000e59831500
+#            v18: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000060
+#            v24: 0x0000000000000000ffffffffffffffa0
+#            v29: 0x00000000000000000000000000000000
+#             v4: 0x000000000000000000000000ffffffa0
+#            v14: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000263a00ffffff70
+#            v28: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000010060
+#             v9: 0x00000000000000000000000000000000
+#            v20: 0x000000000000000001273b0100000070
+#            v27: 0x000000000000000000010040471a9c00
+#             v7: 0x0000000000000000000000000000ffda
+#            v14: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v22: 0x0000000000000000ffa408a4ff20b5ee
+#            v22: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v2: 0x0000000000000000000000000000fff1
+#            v16: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000007fffffffffffffff
+#            v28: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v19: 0x000000000000000000000000ed800048
+#            v19: 0x000000000000000000000000ed800048
+#            v29: 0x00000000000000007fffffffffffffff
+#            v12: 0x0000000000000040ffd9c5ff00000090
+#            v16: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000e598315
+#            v31: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000000000000004ffff
+#            v24: 0x0000000000000000ffffffffffffffa0
+#            v22: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000e598315
+#             v6: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000007fed000000000
+#            v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x0000000000000000000000000e598315
+#             v0: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v24: 0x00000000000200000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#             v8: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v30: 0x00000000002000000000000000000000
+#             v1: 0x00000000000000000000000000000080
+#            v31: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v14: 0x0000000000077f7f0000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v31: 0x000000000000ffff0000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000000000000007ffff
+#            v10: 0x00000000000000000010000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v27: 0x00000001000000000000000000000000
+#            v23: 0x0000ffff000000000000000e59831500
+#            v19: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000010000000000000
+#             v8: 0x000000000000000000000000ffff000f
+#            v18: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000fff0000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000800000000e59831500
+#            v13: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v26: 0x000000000000000000000000ffff0000
+#             v7: 0x00000000000000000000000000000000
+#            v21: 0x000007ff000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000800000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000040
+#            v24: 0x00000000000000000000000000007ff9
+#             v6: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v23: 0x0000000000000080000000005f8f1000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000000000000000b0002
+#            v27: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000040
+#            v29: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000040
+#            v22: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000fe0000000000000000
+#            v20: 0x00000000000000000000000000000020
+#             v0: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v18: 0x00000000000000000000000000000000
+#            v21: 0x000000000000000000000000000000c0
+#            v31: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000000000000000b0002
+#            v23: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000020000000
+#            v11: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#             v3: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#            v29: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000020
+#            v14: 0x00000000000000000000000000000001
+#            v18: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000040
+#            v13: 0x0000000000000000ffffffffffffffe1
+#             v5: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v21: 0x000000000000000000000000ffff8007
+#            v30: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007ff9
+#            v31: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#             x1: 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000ffffffffffffffc0
+#            v20: 0x00000000000000000000000000007ff9
+#             v8: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000000000000ffff8007
+#            v24: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v16: 0x000000000000000000000000010180f9
+#            v20: 0x0000000000000000000100010001001f
+#             v5: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000ff0000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v20: 0x000000000000ffff000100010001001f
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000ffffffffffffffe1
+#             v0: 0x00000000000000000000000000000040
+#            v22: 0x00000000000000000000000000000000
+#            v24: 0x000000000000007f0000000000000000
+#            v26: 0x00000000000000000000000000000001
+#             v7: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000007fff7fff7fff7fff
+#             v4: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v31: 0x00000000000000000000000000000000
+#            v16: 0x0000000000010001000000000001001f
+#            v27: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000100000001
+#            v25: 0x00000000000000000000000000000000
+#            v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
+#             v3: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#             v6: 0x01010101010101010101010101010101
+#            v13: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#             v2: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000ff00ff0000000000
+#            v24: 0x00000000000000000000010100000101
+#             v2: 0x000000000000000000000000ff00ff00
+#            v25: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000001
+#             v9: 0x00000000000000000000000000000000
+#             v6: 0x01010101010101010101010100020001
+#            v16: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ff00ff0000000001
+#            v10: 0x00000000ff00ff000000000000000000
+#            v30: 0x0000ff000000ff00ff01fe000000c000
+#             v4: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#            v26: 0x00000000000000000000000000000001
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#            v18: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000001
+#            v20: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v9: 0x000000000000000000000000ff00ff01
+#            v14: 0x00000000000000000000000000000001
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ff00ff0000000001
+#             v1: 0x00000000000000000000000000000001
+#            v31: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v5: 0x00000000010101010000000001010101
+#             v1: 0x00000000000000000000010100000101
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x000000000000000000000000ff00ff01
+#            v26: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000010100000101
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000ff00ff
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000001
+#             v9: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000010100000101
+#            v18: 0x00000000010101010000000001010101
+#            v17: 0x0000000000000000ff00ff0000000001
+#            v29: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000008000800000000000800080
+#             v1: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v26: 0x00000000ff7f7f7f00000000ff7f7f7f
+#             v3: 0x0000000000000000000000007f007f00
+#            v25: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000ff00ff
+#            v20: 0x000000000000000000000000ff7f7f7f
+#             v0: 0x00000000000000000000000001010101
+#             v6: 0x00000000000000000000000000ff00ff
+#             v0: 0x000000000000000000000000ff7fff7f
+#             v4: 0x00000000000000000000000000000000
+#             v1: 0x0000000000000000000000000000ffff
+#            v19: 0x00000000000000000000000100000000
+#            v21: 0x00000000000000000000ff0100000000
+#             v9: 0x000000000000000000000000ff7f7f7f
+#            v13: 0x000000000000000000000000000000ff
+#            v19: 0x0000ff7f0000ff7f0000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v31: 0x0000000000000000000000000000ff00
+#            v15: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#            v22: 0x0000000000000000000000000000ff01
+#             v1: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v24: 0x000000000000000000000000000000ff
+#            v20: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v21: 0x0000000000000000000000000000ff7f
+#             v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007e81
+#            v17: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007e81
+#            v15: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#             v7: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#            v28: 0x00000000000000000000000000ff00ff
+#            v11: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v10: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             lr: 0x0000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000000000ff
+#            v27: 0x00000000000000000000000000007e81
+#             v7: 0x000000000000000000000000000000ff
+#            v28: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000000000000000ff7f
+#            v16: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x0000000000000000000000000000ff00
+#            v23: 0x0000000000000000000000007f007f00
+#            v17: 0x00000000000000000000000000007e81
+#            v10: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v10: 0x000000000000000000000000000000ff
+#             v9: 0x0000000000000000000000000000ff01
+#            v24: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000008
+#            v10: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000001fe0
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000400000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000200000000000000ff
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x000000000000000000000000000000ff
+#            v23: 0x00000000000000000000000000ff00ff
+#             v8: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v14: 0x000000000000000000000000000000ff
+#             v6: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000003fc0000
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000000000000ffffffff
+#            v28: 0x00000000000000000000000000000000
+#             v4: 0x0000000000000000000000000000fd02
+#             v9: 0x00000000000000000000000000007f80
+#            v18: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000008
+#            v26: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000ff00ff
+#            v14: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000007e81
+#            v10: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000001fe0
+#            v23: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v29: 0x000000000000ffff0000000000000000
+#            v13: 0x0000000000007e810000000000000000
+#            v28: 0x0000000000007e810000000000000000
+#            v23: 0x0000000000000000ffffffffffffffff
+#            v27: 0xffffffffffffffffffffffffffffffff
+#             v2: 0x80808080808080808080808080808080
+#            v15: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000007e81
+#             v2: 0x80000000800000008000000080000000
+#             v5: 0x00000000000000000000000000003f41
+#            v30: 0x40000000400000004000000040000000
+#             v4: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v14: 0x0000000000000000ffffffffffffffff
+#            v10: 0x00000000000000000000000000000008
+#            v15: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v30: 0xffffffffffffffffffffffffffffffff
+#             v4: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000010
+#             v4: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000ffffffffffffffff
+#            v28: 0xffffffffffffffffffffffffffffffff
+#            v27: 0x0000000000000000ffffffffffffffff
+#            v18: 0x00000000000000000000000000001010
+#            v26: 0x00000000000000400000000000000040
+#             v8: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v18: 0x00000000000000000008000800081018
+#            v31: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000008
+#            v14: 0x0000000000000000ffffffffffffffff
+#            v22: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000000000000007e8100
+#            v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
+#             v8: 0x000000000000000000000000007fff80
+#            v29: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x0000000000000000000000007f007f00
+#            v31: 0x00000000000000000000000000000000
+#             v8: 0x000000000000000000000000007fff80
+#            v18: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v16: 0x0000000000000000000000007e007e00
+#            v12: 0x0000000000000000000000007e007e00
+#            v28: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000008
+#             v4: 0x0000000000000000000000000000003f
+#             v9: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v29: 0x0000000000000000000000007e007e00
+#            v29: 0x00000000000000000000000000000000
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
+#             v1: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v9: 0x0000000000000000ffffffffffffffff
+#            v20: 0x0000000000000000000000007e007e00
+#            v25: 0x000000000000000000000000007fff80
+#            v18: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v30: 0x000000000000008100000000ffffffff
+#             v7: 0x00000000000000000000000000000040
+#            v26: 0x0000000000000000000000007e007e00
+#            v14: 0x00000000000000000000000000000000
+#            v17: 0x00000081ffffffff0000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v17: 0xff01ff01ff01ff400000000000000000
+#             v8: 0x0000000000007e7e0000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v25: 0x000000000000000001fe01fe01fe01fe
+#            v31: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000ff01ff0100000000
+#            v17: 0x0000000000000000000000007e007e00
+#             v3: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000001010000
+#             v0: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
+#            v23: 0x000000000000000001fe01fe01fe01fe
+#            v26: 0x0000000000000000ffffffff00000000
+#             v1: 0x00000000000000000000ffff0040ffff
+#             v0: 0x000000000000000000000000ffffffff
+#            v30: 0x0000000000000000007e0000007e0000
+#            v17: 0x0000ff010000ff010000000000000000
+#            v23: 0x0100fe000100fe000100fe000100fe00
+#            v30: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v0: 0x0100fe00000000000100fe0000000000
+#            v25: 0x00000000000000000001000000fe0000
+#             v7: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000001000000fe0000
+#            v14: 0x000000000000000001fe01fe01fe01fe
+#             v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
+#             v1: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000001000000fe0000
+#            v18: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffffffffff
+#            v30: 0xffffffffffffffff0000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v22: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000100fe000100fe00
+#            v16: 0x01fe01fe01fe01feffffffffffffffff
+#            v27: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000000000000180fe00
+#            v21: 0x020e01fe01fe01fe0000000000000000
+#            v31: 0x000000000000000000000000ffffffff
+#            v13: 0x00000000000000000000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v24: 0x0000000000000000ffffffffffffffff
+#             v8: 0xffffffffffffffff0000000000000000
+#            v26: 0xffffffffffffffff0000000000000000
+#            v27: 0xffffffffffffffffffffffffffffffff
+#            v22: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffffffffff
+#            v29: 0x00000000000000000000000000000000
+#            v22: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v15: 0xffffffffffffffffffffffffffffffff
+#            v21: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v14: 0xffffffff00000000ffffffff00000000
+#            v13: 0x00000000000000000000000000000000
+#             v4: 0xffffffffffffffffffffffffffffffff
+#            v24: 0x0000000000000000ffffffff00000000
+#             v8: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v8: 0x37a0000000000000381fc00000000000
+#            v27: 0xffffe000ffffe0000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v24: 0x377f0000377f0000377f0000377f0000
+#             v9: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v8: 0x37a00000000000000000000000000000
+#            v24: 0x0000000000000000377f0000377f0000
+#             v4: 0x0000000000000000ffffffffffffffff
+#            v25: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v31: 0x000000000000000000000000ffffffff
+#            v19: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x7ff00000000000007ff8000000000000
+#            v12: 0x00000000000000007fc000007fc00000
+#            v19: 0xffffffffffffffffffffffffffffffff
+#            v19: 0x37a00000000000000000000000000000
+#            v25: 0x00000000000000007fc000007fc00000
+#             v6: 0x7ff00000000000007ff8000000000000
+#            v16: 0x37a0000000000000000000000180fe00
+#            v15: 0x00000000000000000000000000000000
+#            v23: 0x37a0000000000000000000000180fe00
+#             v6: 0x000000000000000037a0000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v8: 0x37a00000000000007fc000007fc00000
+#            v13: 0x0000000000000000ffffffff7fc00000
+#            v15: 0xffffffff000000000000000000000000
+#            v27: 0x00000000000000000000000037a00000
+#            v20: 0x0000000000000000ffffffff00000000
+#            v18: 0x00000000000000000000000000000000
+#             v9: 0x00000000ffffffff37a0000000000000
+#             v7: 0x0000000000000000ffffffffffffffff
+#            v18: 0x000000000000000000000000ffffffff
+#            v31: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v25: 0x0000000000000000000000007fc00000
+#            v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000007fc000007fc00000
+#            v24: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
+#            v21: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007fffffff
+#            v27: 0x00000000000000000000000037a00000
+#            v26: 0x00000000000000007fffffff00000000
+#            v14: 0xbfd6000000000000bfd6000000000000
+#            v26: 0x00000000000000003f6800003f680000
+#            v31: 0xc0a00000c0a00000c0a00000c0a00000
+#            v28: 0x00000000000000000000000000000000
+#            x18: 0x0000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000ffffffff
+#            v25: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v11: 0x7fc000007fc000007fc000007fffffff
+#            v28: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v1: 0x80000000000000008000000000000000
+#            v14: 0x00000000000000008000000080000000
+#             v5: 0x80000000800000008000000080000000
+#            v18: 0x7ff00000000000007ff0000000000000
+#            v10: 0x00000000000000007f8000007f800000
+#             v5: 0x7f8000007f800000474c80007f800000
+#            v22: 0x40000000000000004000000000000000
+#            v31: 0x00000000000000004000000040000000
+#            v18: 0x40000000400000004000000040000000
+#            v26: 0x0000000000000000ffffffff7fc00000
+#            v15: 0x0000000000000000ffffffff7fc00000
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000007fc000007fc00000
+#            v15: 0x7fc000007fc000007fc000007fffffff
+#            v17: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000007fc000007fffffff
+#             v1: 0x0000000000000000ffffffff00000000
+#            v24: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v29: 0x7fc000007fc000007fc000007fffffff
+#            v10: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000004000000040000000
+#            v26: 0x00000000000000004000000040000000
+#            v24: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000007fc000007fc00000
+#            v20: 0x00000000000000000000000000000000
+#            v23: 0x7ff00000000000002006900000000000
+#             v9: 0x00000000000000007f8000007f800000
+#             v3: 0x7f8000007f8000000000000000000000
+#            v25: 0x3ff80000000000003ff8000000000000
+#             v9: 0x00000000000000003fc000003fc00000
+#             v5: 0x3fc000003fc000007fffffff3fc00000
+#             v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000003fb504f33fb504f3
+#            v31: 0x00000000000000007fc000007fffffff
+#            v11: 0x00000000000000007fc000007fc00000
+#            v16: 0x00000000000000007fc000007fffffff
+#            v25: 0x000000000000000043dff00000200000
+#            v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000004eff80004eff8000
+#            v18: 0x00000000000000000000000000000000
+#            v17: 0x4e7f00004e7f00004f0000004e7f0000
+#            v11: 0x00000000000000004287bfe03e000000
+#             v9: 0x43dfe000001fe0000000000000000000
+#            v26: 0x000000000000000040fff00000200000
+#            v11: 0x00000000000000000000000000000000
+#            v29: 0x7fc000007fc000000000000000000000
+#            v22: 0x4effe000000000004e001a4000000000
+#            v18: 0x4207bfc03d7f00000000000000000000
+#       p8<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#       p9<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p9<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p10<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p10<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p11<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x7f000000008000000000000000000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x80 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x7f <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x2f000000000029000000000023000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x0d0c0b0a09080706050403020100fffe (0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (...)
+#
+#   z21<639:512>: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x7f800000000000000000000000000000 (inf, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z22<511:384>: 0x2f2e0000000000000000000023220000 (1.583e-10, ..., 0.000, 8.782e-18)
+#                          ║               ║       ╙─ 0x23220000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e0000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z23<511:384>: 0x00000000000000000000000023220000 (..., 2.912e-315)
+#                                                  ╙─ 0x0000000023220000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#                          ║   ║       ║   ║       ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000230022000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x0000000000000000000000000000007f
+#                                  ║               ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x000000000000002f0000290000230000
+#   z21<255:128>: 0x00000000000000002e00000000002200
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x22'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x2e'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x0000007f007f00000000000000000000
+#   z21<383:256>: 0x00000000800000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x80'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     z22<127:0>: 0x000000007f807f800000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#     z23<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'7f800000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#     z24<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z24<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x0000000000000000000000ff00000000
+#     z25<127:0>: 0xa000000000000000000000ffc0000000
+#     z26<127:0>: 0x3700000000000000000000007f000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x7f'c0'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'ff'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x37'a0'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<639:512>: 0x00000000000000000000000000000000
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z25<127:0>: 0x292823221d1c17160000000000000000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z26<127:0>: 0x2b2a25241f1e191813120d0c07060100 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z27<127:0>: 0x2d2c272621201b1a1514000009080000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0100'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0908'0706'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0d0c'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514'1312'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1b1a'1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2120'1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x595853524d4c474641403b3a35342f2e (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z26<255:128>: 0x5b5a55544f4e494843423d3c37363130 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z27<255:128>: 0x5d5c575651504b4a45443f3e39383332 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3332'3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3938'3736'3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544'4342'4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4b4a'4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5150'4f4e'4d4c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c'5b5a'5958 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x898883827d7c777671706b6a65645f5e (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z26<383:256>: 0x8b8a85847f7e797873726d6c67666160 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z27<383:256>: 0x8d8c878681807b7a75746f6e69686362 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x6362'6160'5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6968'6766'6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6f6e'6d6c'6b6a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x7574'7372'7170 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7b7a'7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x8180'7f7e'7d7c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x8786'8584'8382 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8d8c'8b8a'8988 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0xb9b8b3b2adaca7a6a1a09b9a95948f8e (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z26<511:384>: 0xbbbab5b4afaea9a8a3a29d9c97969190 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z27<511:384>: 0xbdbcb7b6b1b0abaaa5a49f9e99989392 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x9392'9190'8f8e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x9998'9796'9594 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x9f9e'9d9c'9b9a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xa5a4'a3a2'a1a0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xabaa'a9a8'a7a6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xb1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xb7b6'b5b4'b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xbdbc'bbba'b9b8 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0xe9e8e3e2dddcd7d6d1d0cbcac5c4bfbe (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z26<639:512>: 0xebeae5e4dfded9d8d3d2cdccc7c6c1c0 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z27<639:512>: 0xedece7e6e1e0dbdad5d4cfcec9c8c3c2 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xc3c2'c1c0'bfbe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xc9c8'c7c6'c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xcfce'cdcc'cbca <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd5d4'd3d2'd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xdbda'd9d8'd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xe1e0'dfde'dddc <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xe7e6'e5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+#     z26<127:0>: 0x00000000000000000000ffff00000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z27<127:0>: 0x00000000000000007fff000000000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z28<127:0>: 0x37a0000000000000000000007fc00000 (0.000, 0.000, 9.183e-41, 0.000)
+#                          ║       ║       ║       ╙─ 0x7fc00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'7fff0000'0000ffff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z27<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000ffff7fc00000 (0.000, 0.000)
+#     z29<127:0>: 0x37a0000000000000000000007fff0000 (0.000, 0.000)
+#                                  ║               ╙─ 0x000000007fff0000'0000ffff7fc00000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x37a0000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z25<127:0>: 0x0000000000000000000000f300000000
+#     z26<127:0>: 0x00000000000000000000000400000000
+#     z27<127:0>: 0x0080000000800000000000ff00000000
+#     z28<127:0>: 0x007f0000007f0000000000ff00000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0xff'ff'04'f3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#   z27<255:128>: 0x00000000000000000000000000000000
+#   z28<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#   z27<383:256>: 0x00000000000000000000000000000000
+#   z28<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#   z27<511:384>: 0x00000000000000000000000000000000
+#   z28<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#   z27<639:512>: 0x00000000000000000000000000000000
+#   z28<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z26<127:0>: 0x00000000000000003fb504f300000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z27<127:0>: 0x7f8000007f800000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#     z27<127:0>: 0x2f2e2d2c000000000000000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z28<127:0>: 0x33323130000000007f80000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000007060504 (1.584e-10, 0.000, 0.000, 0.000)
+#     z30<127:0>: 0x00000000000000007f8000000b0a0908 (1.584e-10, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7f800000'00000000'7f800000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000005756555400000000 (0.000, 0.000, 0.000, 0.000)
+#   z30<255:128>: 0x00000000000000005b5a595800000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5b5a5958'57565554'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0xafaeadac9f9e9d9c8f8e8d8c7f7e7d7c (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z28<383:256>: 0xb3b2b1b0a3a2a1a09392919083828180 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z29<383:256>: 0xb7b6b5b4a7a6a5a49796959487868584 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z30<383:256>: 0xbbbab9b8abaaa9a89b9a99988b8a8988 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#                          ║       ║       ║       ╙─ 0x8b8a8988'87868584'83828180'7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x9b9a9998'97969594'93929190'8f8e8d8c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xabaaa9a8'a7a6a5a4'a3a2a1a0'9f9e9d9c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xbbbab9b8'b7b6b5b4'b3b2b1b0'afaeadac <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z28<511:384>: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z29<511:384>: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z30<511:384>: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x2f2e2d2c1f1e1d1c0f0e0d0cfffefdfc (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z28<639:512>: 0x33323130232221201312111003020100 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z29<639:512>: 0x37363534272625241716151407060504 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z30<639:512>: 0x3b3a39382b2a29281b1a19180b0a0908 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'03020100'fffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1b1a1918'17161514'13121110'0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928'27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3b3a3938'37363534'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z29<127:0>: 0x000000007f8000000000000000000000 (0.000, 0.000)
+#     z30<127:0>: 0x000000000000000000000000ffff04f3 (0.000, 0.000)
+#     z31<127:0>: 0x000000007f80000000000000ffff3fb5 (0.000, 0.000)
+#                                  ║               ╙─ 0x00000000ffff3fb5'00000000ffff04f3'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x000000007f800000'0000000000000000'000000007f800000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z30<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z31<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
diff --git a/test/test-trace-reference/log-sysregs b/test/test-trace-reference/log-sysregs
index 7f3fa5e..5ab304f 100644
--- a/test/test-trace-reference/log-sysregs
+++ b/test/test-trace-reference/log-sysregs
@@ -35,14 +35,14 @@
 # NZCV: N:0 Z:1 C:1 V:0
 # NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:0 V:0
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:1 V:0
 # NZCV: N:0 Z:1 C:1 V:0
+# NZCV: N:0 Z:0 C:1 V:1
 # NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:0 Z:0 C:1 V:1
 # NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:1 V:0
 # NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:1
+# NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:1 C:1 V:0
diff --git a/test/test-trace-reference/log-sysregs-colour b/test/test-trace-reference/log-sysregs-colour
index f2ee4de..50a79a3 100644
--- a/test/test-trace-reference/log-sysregs-colour
+++ b/test/test-trace-reference/log-sysregs-colour
@@ -35,14 +35,14 @@
 # NZCV: N:0 Z:1 C:1 V:0
 # NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:0 V:0
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:1 V:0
 # NZCV: N:0 Z:1 C:1 V:0
+# NZCV: N:0 Z:0 C:1 V:1
 # NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:0
+# NZCV: N:0 Z:0 C:1 V:1
 # NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:0 C:1 V:0
 # NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:0
-# NZCV: N:0 Z:0 C:1 V:1
+# NZCV: N:1 Z:0 C:0 V:0
 # NZCV: N:0 Z:1 C:1 V:0
diff --git a/test/test-trace-reference/log-vregs b/test/test-trace-reference/log-vregs
index 11b2de9..60df96a 100644
--- a/test/test-trace-reference/log-vregs
+++ b/test/test-trace-reference/log-vregs
@@ -1,2304 +1,5371 @@
-#    v0: 0x00055555005555550000000000000000
-#    v1: 0x3ff0d2c63fcb514c3ff587933f9e0419
-#    v2: 0x4000d2c6404b514c40058793401e0419
-#    v3: 0x401570fb40385373401025ae406d0626
-#    v4: 0x4010d2c640cb514c40158793409e0419
-#    v5: 0x401fbc2d4090d04a401ae97840c5851f
-#    v6: 0x402570fb40b85373402025ae40ed0626
-#    v7: 0x402783f4415f16c34022d6a1410a4396
-#    v8: 0x4020d2c6414b514c40258793411e0419
-#    v9: 0x402d6dd3416491c9402838864131c49c
-#   v10: 0x402fbc2d4110d04a402ae9784145851f
-#   v11: 0x4028cf3e410c10f7402d9a6b415945a2
-#   v12: 0x403570fb41385373403025ae416d0626
-#   v13: 0x40342b7d41d5360140317e2841806354
-#   v14: 0x403783f441df16c34032d6a1418a4396
-#   v15: 0x40317a4f41c1768240342f1a419423d7
-#   v16: 0x4030d2c641cb514c40358793419e0419
-#   v17: 0x4033b55841f2b10e4036e00d41a7e45b
-#   v18: 0x403d6dd341e491c94038388641b1c49c
-#   v19: 0x403cc5aa41eef18b403990ff41bba4de
-#   v20: 0x403fbc2d4190d04a403ae97841c5851f
-#   v21: 0x403914a7419a3034403c41f241cf6561
-#   v22: 0x4038cf3e418c10f7403d9a6b41d945a2
-#   v23: 0x403ba7b141b670b1403ef2e441e325e4
-#   v24: 0x404570fb41b85373404025ae41ed0626
-#   v25: 0x404584be41a3b3324040d1eb41f6e667
-#   v26: 0x40442b7d4255360140417e2842006354
-#   v27: 0x40477f314250062040422a6442055375
-#   v28: 0x404783f4425f16c34042d6a1420a4396
-#   v29: 0x4046d78b425a66e2404382de420f33b7
-#   v30: 0x40417a4f4241768240442f1a421423d7
-#   v31: 0x40418e02424c46ad4044db57421913f8
-#   v13: 0x00000000000000004036e00cd9b7e45b
-#    v8: 0x00000000000000000000000041c5851e
-#    v1: 0x00000000000000003ff587933f9e0419 (d1: 1.34560)
-#   v25: 0x000000000000000000000000410a4396 (s25: 8.64150)
-#    v1: 0x0000000000000000ffffffffffffffff
-#    v4: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#   v13: 0x0000000000000000404633d07142f43a (d13: 44.4048)
-#   v27: 0x000000000000000000000000424094fe (s27: 48.1455)
-#   v19: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v27: 0x0000000000000000ffffffffffffffff
-#   v31: 0x0000000000000000ffffffffffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v1: 0x000000000000000000000000ffffffff
-#   v18: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v11: 0x000000000000000000000000ffffffff
-#   v17: 0x000000000000000000000000ffffffff
-#   v24: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000 (d10: 0.00000)
-#   v22: 0x00000000000000000000000000000000 (s22: 0.00000)
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
-#   v11: 0x00000000000000000000000000000000 (d11: 0.00000)
-#    v8: 0x00000000000000000000000000004a0e
-#   v12: 0x0000000000000000000000000000ffff
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
-#   v27: 0x0000000000000000000000004072c000 (s27: 3.79297)
-#   v28: 0x00000000000000000000000000000016
-#    v3: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000012
-#   v27: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000014
-#   v10: 0x00000000000000000000000000000000
-#    v0: 0x0000000000000000000000000000001c
-#    v6: 0x00000000000000000000000000000009
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000019
-#   v24: 0x00000000000000000000000000000001
-#   v14: 0x00000000000000000000000000000001
-#   v12: 0x00000000000000000000000000000001
-#   v15: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000007ff0000000000000 (d6: inf)
-#   v26: 0x00000000000000000000000000000000 (s26: 0.00000)
-#   v18: 0x00000000000000000000000000000014 (d18: 9.88131e-323)
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
-#   v12: 0x00000000000000000000000000000000 (d12: 0.00000)
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
-#   v28: 0x00000000000000000000000000000000 (d28: 0.00000)
-#    v6: 0x00000000000000000000000000000000 (s6: 0.00000)
-#   v20: 0x00000000000000000000000000000014 (d20: 9.88131e-323)
-#    v7: 0x00000000000000000000000000000000 (s7: 0.00000)
-#   v19: 0x00000000000000000000000000000001 (d19: 4.94066e-324)
-#    v0: 0x000000000000000000000000ffffffff (s0: nan)
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
-#    v2: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000c004000000000000 (d8: -2.50000)
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
-#   v25: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000040380000 (s21: 2.87500)
-#   v20: 0x00000000000000000000000000000001 (d20: 4.94066e-324)
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
-#   v25: 0x000000000000000000000000ffffffff (s25: nan)
-#    v4: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000000000000ffffffff
-#   v15: 0x000000000000000080000000ffffffff (d15: -2.12200e-314)
-#   v14: 0x0000000000000000000000007fffffff (s14: nan)
-#    v0: 0x00000000000000008000000000000000 (d0: -0.00000)
-#    v0: 0x00000000000000000000000080000014 (s0: -2.80260e-44)
-#   v19: 0x00000000000000008000000040380000 (d19: -5.32312e-315)
-#   v29: 0x00000000000000000000000080000000 (s29: -0.00000)
-#   v31: 0x00000000000000000000000000000000 (d31: 0.00000)
-#   v18: 0x0000000000000000000000007fffffff (s18: nan)
-#    v7: 0x00000000000000007ff0000000000000
-#   v29: 0x000000000000000000000000ffffffff
-#   v11: 0x00000000000000004000000000000000
-#   v18: 0x000000000000000000000000ffffffff
-#   v15: 0x00000000000000007fe0000000000000
-#    v5: 0x0000000000000000000000007f000000
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
-#   v19: 0x00000000000000000000000000000000 (d19: 0.00000)
-#   v14: 0x00000000000000000000000040400000 (s14: 3.00000)
-#   v20: 0x00000000000000000000000000000000 (d20: 0.00000)
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
-#   v24: 0x00000000000000000000000000000000 (s24: 0.00000)
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
-#   v17: 0x00000000000000000000000000000000 (s17: 0.00000)
-#    v0: 0x0000000000000000c000000000000000 (d0: -2.00000)
-#   v15: 0x000000000000000000000000ffffffff (s15: nan)
-#   v21: 0x00000000000000007ff0000000000000
-#   v17: 0x000000000000000000000000ffffffff
-#    v4: 0x00000000000000003ff8000000000000
-#   v14: 0x0000000000000000000000003fc00000
-#   v14: 0x00000000000000001f5ffffffff00000 (d14: 1.45671e-157)
-#    v4: 0x000000000000000000000000fff00000 (s4: nan)
-#   v13: 0x0000000000000000fff0000000000000 (d13: -inf)
-#    v3: 0x00000000000000000000000000000000 (s3: 0.00000)
-#   v31: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000004022000000000000 (d6: 9.00000)
-#    v5: 0x00000000000000003f90000000000000 (d5: 0.0156250)
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
-#   v15: 0x00000000000000000000000000000000 (d15: 0.00000)
-#    v7: 0x00000000000000007ff00000c9800000
-#    v8: 0x0000000000000000c004000000000000
-#   v29: 0x00000000000000000000000000000000 (s29: 0.00000)
-#   v15: 0x0000000000000000000000003c200000 (s15: 0.00976562)
-#   v27: 0x0000000000000000000000003f800000 (s27: 1.00000)
-#   v26: 0x0000000000000000000000003c7fffff (s26: 0.0156250)
-#    v0: 0x000000000000000043d00a0e21904c71
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000003ff0000000000000 (d30: 1.00000)
-#    v3: 0x00000000000000000000000000000000 (d3: 0.00000)
-#   v28: 0x00000000000000004034000000000000 (d28: 20.0000)
-#   v27: 0x00000000000000000000000000000000 (d27: 0.00000)
-#   v11: 0x00000000000000004000000000000000
-#    v0: 0x000000000000000043d00a0e4783c64c
-#   v20: 0x00000000000000000000000000000000 (s20: 0.00000)
-#   v21: 0x00000000000000000000000046160000 (s21: 9600.00)
-#    v6: 0x00000000000000000000000041d80000 (s6: 27.0000)
-#    v7: 0x00000000000000000000000038ff0000 (s7: 0.000121593)
-#   v19: 0x000000000000000043d00a0e4783c64c
-#   v16: 0x00000000000000004000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000000000001
-#   v16: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000010000000000000
-#   v10: 0x000000000000000000000000ffffffff
-#   v31: 0x403ba7b141b670b1403ef2e47d0325e4
-#   v10: 0x403ba7b141b670b15f9ef2e47cf325e4
-#   v15: 0x000000000000000063300a0d4773c64c
-#   v27: 0x0000000000000000403ef2e441e225e3
-#   v25: 0x00000000000000004044000000000000
-#   v13: 0x00000000000000000000000037feffff
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000082900a0d
-#   v10: 0x0000000000000000000000003ff03c7f
-#   v31: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v31: 0x00000000000038fe0000000000000000
-#   v14: 0x000000000000000043d00a0e4783c64c
-#    v3: 0x000000007400000000000000c4000000
-#    v8: 0x00000000ffffffff0000000000000000
-#   v22: 0x00000000000000003c7fffff3ff00000
-#   v29: 0x00000000000000004dde0dcf00000000
-#   v30: 0x0000000000000000000000003c7fffff
-#   v12: 0x0000000000000000000037000000bbfe
-#   v17: 0x000000003700bbfe0000fffe00000000
-#   v27: 0x0000000000000000000000000000006c
-#   v12: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000003c7e
-#   v19: 0x00000000000000000000000000005bad
-#   v14: 0x00000000000000000000000000003c7e
-#   v10: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v26: 0x000000007400000000000000c4000000
-#    v7: 0x000000000000000000000000381b0000
-#   v28: 0x00000000000000004034000000000000
-#   v29: 0x00000000000000004dde0d4300000000
-#   v12: 0x00000000000000000000000000000000
-#   v18: 0x000000000000000000000000ff67ff67
-#   v12: 0x000000000000000000000000c4000000
-#    v2: 0x0000000000000000403ef2e441e30180
-#    v8: 0x00000000ffffffff0000000004000000
-#    v5: 0x00000000000000000000000000000000
-#    v9: 0x00128220009270f80016c26000c22160
-#   v14: 0x000000000000000000000000c4000000
-#   v29: 0x07070707070707070707070707070707
-#   v21: 0x00000000000000000000001f0000001f
-#    v1: 0x0000000000000000000f000f0001000f
-#   v27: 0x0000001f0000001f0000001f0000001f
-#   v19: 0x00000000000000000707070707070707
-#   v15: 0x000f000f000f000f000f000f0001000f
-#    v1: 0x08080808080808080808080808080808
-#   v27: 0x00000000000000000000001000000020
-#    v9: 0x0000000000000000000b000000080002
-#   v31: 0x0000000c0000000c0000000c0000000f
-#   v14: 0x00000000000000000505050505050505
-#    v6: 0x00100010001000100001001000100010
-#   v18: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v19: 0xffffffff00ffffff000000000000ffff
-#   v15: 0xffffffffffffffffff00ffffff00ff00
-#   v12: 0xffffffffffffffffffffffffffffffff
-#    v8: 0xffffffffffffffff0000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000ffffffff
-#    v6: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000ffffffff00000000
-#   v21: 0xffffffff0000000000000000ffffffff
-#    v6: 0xffffffffffffffff00000000ffffffff
-#   v16: 0x0000000000000000ffffffff00000000
-#   v21: 0x000000000000000000000000ffffffff
-#   v20: 0xffffffffffffffff0000ffff0000ffff
-#   v26: 0x0000000000000000ffffffffffffffff
-#   v16: 0x00000000000000000000000000000000
-#   v25: 0x0000000000000000ffffffffffffffff
-#   v17: 0x000000000000ffffffffffffffff0000
-#   v22: 0xffffffffffffffffffffffffffff0000
-#   v28: 0x0000000000000000ffffffffffffffff
-#    v6: 0xffffffffffffffffffffffffffffffff
-#   v25: 0x000000000000000000000000ffffffff
-#   v21: 0x0000000000000000ffffffffffffffff
-#   v16: 0x0000000000000000ffffffff0000ffff
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v7: 0xffffffffffffffff00000000ffffffff
-#    v0: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000ff00ffffffff0000
-#   v21: 0x0000000000000000ffffffffffffffff
-#    v2: 0x0000000000000000ffffffffffffffff
-#   v19: 0xffffffffffffffff000000000000ffff
-#    v6: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v5: 0x0000000000000000ffffffffffffffff
-#   v12: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v5: 0x0000000000000000ffffffff00000000
-#   v13: 0x00000000000000000000000000000000
-#   v27: 0x0000000000000000000000ffffffffff
-#    v5: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x000000000000000000000000ffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v11: 0x0000000000000000ffffffff00000000
-#    v1: 0x00000000000000000000000000000000
-#   v21: 0xffffffffffffffffffffffffffffffff
-#    v8: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000ffffffffffffffff
-#   v19: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000ffffffffffffffff
-#    v0: 0xffffffff00ffffffffffffffffffffff
-#    v2: 0xffffffffffffffffffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#    v9: 0x0000000000000000ffffffffffffffff
-#    v9: 0xffffffffffffffffffffffffffffffff
-#   v21: 0x0000000000000000ffffffffffffffff
-#   v29: 0xffffffffffffffffffffffffffffffff
-#   v25: 0x0000000000000000ffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#   v25: 0x00000000000000000000000000000000
-#    v0: 0x0000000000000000ffffffff00000000
-#   v24: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000ffffffff00000000
-#    v1: 0x0000000000000000ffffffffffffffff
-#   v28: 0x0000000000000000ffffffffffffffff
-#   v26: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v11: 0x0000000000000000ff00ffffffff0000
-#    v0: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000008080808
-#   v28: 0x00000000000000000000000000000000
-#    v6: 0xffffffffffffffffffffffffffffffff
-#    v9: 0x01010101010101010101010101010101
-#   v12: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000ffffff7dffffff7d
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v10: 0x00000018000000180000001800000018
-#   v30: 0x0000000000000000ffffffffffffffff
-#   v31: 0x00000000000000000101010101010101
-#   v28: 0xffffffffffffffffffffffffffffffff
-#    v2: 0x00000000000000000000000000000000
-#   v29: 0x0000000000000000ffffff7df7f7f775
-#    v3: 0x0000000000000000ffffffffffffffff
-#    v1: 0xff000000000000000000000000000000
-#    v2: 0x000000000000000000ffffffffffffff
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0b0a09080706050403020100fffefdfc <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0a09080706050403020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x1a191817161514131211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x2a292827262524232221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x3a393837363534333231302f2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x191817161514131211100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x292827262524232221201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x393837363534333231302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x494847464544434241403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x595857565554535251504f4e4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x4847464544434241403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x5857565554535251504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x6867666564636261605f5e5d5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x67666564636261605f5e5d5c5b5a5958 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001f1e1d1c1b1a1918 (d7: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000006f6e6d6c6b6a6968 (d17: 5.76650e+228) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000007776757473727170 (d18: 2.89670e+267) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000007f7e7d7c7b7a7978 (d19: 1.33818e+306) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000008786858483828180 (d20: -2.08158e-272) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000006e6d6c6b6a696867 (d28: 8.50866e+223) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000767574737271706f (d29: 4.22243e+262) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000007e7d7c7b7a797877 (d30: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000868584838281807f (d31: -3.03465e-277) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000ff0000850002ff01 (d20: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000000000000fffeff (d21: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000001700000000000000 (d22: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000008e8d8c8b8a898887 (d19: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000969594939291908f (d20: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000009e9d9c9b9a999897 (d21: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000008d8c8b8a89888786 (d12: -2.09028e-243) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000009594939291908f8e (d13: -1.02545e-204) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009d9c9b9a99989796 (d14: -4.85140e-166) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000ff0000850002ff01 (d29: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000fffeff (d30: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000a5a4a3a2a1a09f9e (d31: -2.38202e-127) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000adacabaaa9a8a7a6 (d0: -1.12597e-88) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000a4a3a2a1a09f9e9d (d3: -3.45787e-132) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000acabaaa9a8a7a6a5 (d4: -1.65794e-93) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000ff0000850002ff01 (d28: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000b4b3b2b1b0afaead (d11: -8.03348e-55) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000b3b2b1b0afaeadac (d29: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x3f3e3d3c3b3a39383736353433323130 (0.000461414, 9.95833e-43) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.70315e+18, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.28100e+95, -1.31369e+57) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.45943e+173, -3.04943e+134) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.39104e+250, -7.07849e+211) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.90391e+13, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.07279e+90, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.10851e+168, -4.47908e+129) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.90012e+245, -1.03980e+207) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.07812e-299, -2.41385e+284) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1211100f0e0d0c0b0a09080706050403 (1.18008e-221, 2.54377e-260) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2221201f1e1d1c1b1a19181716151413 (2.74293e-144, 5.90574e-183) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.74681e-304, -3.54087e+279) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x11100f0e0d0c0b0a0908070605040302 (1.69471e-226, 3.72581e-265) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x21201f1e1d1c1b1a1918171615141312 (3.94003e-149, 8.65093e-188) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x31302f2e2d2c2b2a2928272625242322 (9.15999e-72, 2.00864e-110) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x41403f3e3d3c3b3a3938373635343332 (2.12953e+06, 4.66377e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x302f2e2d2c2b2a292827262524232221 (1.34639e-76, 2.93754e-115) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x403f3e3d3c3b3a393837363534333231 (31.2431, 6.82132e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x504f4e4d4c4b4a494847464544434241 (7.24994e+78, 1.58398e+40) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x4f4e4d4c4b4a49484746454443424140 (1.07078e+74, 2.31271e+35) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000001f1e1d1c1b1a1918 (..., 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000005756555453525150 (..., 2.35662e+14, 9.03307e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000005f5e5d5c5b5a5958 (..., 1.60231e+19, 6.14598e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000006766656463626160 (..., 1.08801e+24, 4.17598e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000006f6e6d6c6b6a6968 (..., 7.37897e+28, 2.83386e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000565554535251504f (..., 5.86395e+13, 2.24749e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000005e5d5c5b5a595857 (..., 3.98768e+18, 1.52943e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000666564636261605f (..., 2.70818e+23, 1.03937e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000006e6d6c6b6a696867 (..., 1.83698e+28, 7.05432e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000767574737271706f (..., 1.24460e+33, 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007e7d7c7b7a797877 (..., 8.42353e+37, 3.23831e+35) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000868584838281807f (..., -5.02237e-35, -1.90286e-37) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000007574737271706f6e (..., 3.09878e+32, 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000007d7c7b7a79787776 (..., 2.09754e+37, 8.06320e+34) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000008584838281807f7e (..., -1.24615e-35, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000008d8c8b8a89888786 (..., -8.66176e-31, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009594939291908f8e (..., -6.00095e-26, -2.28077e-28) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000008c8b8a8988878685 (..., -2.14997e-31, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x000000000000000094939291908f8e8d (..., -1.49010e-26, -5.66232e-29) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000009c9b9a9998979695 (..., -1.02970e-21, -3.91846e-24) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000009b9a999897969594 (..., -2.55764e-22, -9.73128e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000abaaa9a8a7a6a5a4 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000bbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000cac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000d1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000d9d8d7d6d5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000e1e0dfdedddcdbda <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000d8d7d6d5d4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e0dfdedddcdbdad9 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e8e7e6e5e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x3f3e3d3c3b3a39383736353433323130 (0.743122, 0.00284155, 1.08604e-05, 4.14886e-08) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.00179e+34, -3.84962e+31, -1.47890e+29, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.00825e-34, 3.82047e-37, nan, -2.60629e+36) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17161514131211100f0e0d0c0b0a0908 (4.84942e-25, 1.84362e-27, 7.00365e-30, 2.65846e-32) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x27262524232221201f1e1d1c1b1a1918 (2.30573e-15, 8.78905e-18, 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.49430e+33, -9.58428e+30, -3.68172e+28, -1.41390e+26) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.50175e-35, 9.47771e-38, -1.68804e+38, -6.48966e+35) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x161514131211100f0e0d0c0b0a090807 (1.20425e-25, 4.57737e-28, 1.73854e-30, 6.59782e-33) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x262524232221201f1e1d1c1b1a191817 (5.72948e-16, 2.18366e-18, 8.31732e-21, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x363534333231302f2e2d2c2b2a292827 (2.70015e-06, 1.03137e-08, 3.93749e-11, 1.50241e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x464544434241403f3e3d3c3b3a393837 (12625.1, 48.3127, 0.184800, 0.000706557) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x565554535251504f4e4d4c4b4a494847 (5.86395e+13, 2.24749e+11, 8.61082e+08, 3.29781e+06) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x3534333231302f2e2d2c2b2a29282726 (6.71297e-07, 2.56382e-09, 9.78665e-12, 3.73374e-14) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x4544434241403f3e3d3c3b3a39383736 (3140.20, 12.0154, 0.0459549, 0.000175682) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x5554535251504f4e4d4c4b4a49484746 (1.45909e+13, 5.59177e+10, 2.14218e+08, 820340.) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6564636261605f5e5d5c5b5a59585756 (6.74083e+22, 2.58684e+20, 9.92399e+17, 3.80591e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e6d6c6b6a69686766 (3.09878e+32, 1.19058e+30, 4.57302e+27, 1.75599e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x64636261605f5e5d5c5b5a5958575655 (1.67780e+22, 6.43816e+19, 2.46969e+17, 9.47063e+14) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x74737271706f6e6d6c6b6a6968676665 (7.71514e+31, 2.96402e+29, 1.13840e+27, 4.37102e+24) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.09178e-36, -1.17085e-38, 5.22300e+36, 2.00766e+34) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x838281807f7e7d7c7b7a797877767574 (-7.67045e-37, 3.38275e+38, 1.30054e+36, 4.99878e+33) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000008b8a898887868584 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000939291908f8e8d8c <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000008a89888786858483 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000009291908f8e8d8c8b <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000009a99989796959493 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a9a8a7a6a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000b1b0afaeadacabaa <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000c0bfbebdbcbbbab9 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000c8c7c6c5c4c3c2c1 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000d0cfcecdcccbcac9 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000cfcecdcccbcac9c8 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0f0e0d0c0b0a09080706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0e0d0c0b0a09080706050403020100ff <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x1e1d1c1b1a191817161514131211100f <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2e2d2c2b2a292827262524232221201f <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3d3c3b3a393837363534333231302f <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x1d1c1b1a191817161514131211100f0e <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x2d2c2b2a292827262524232221201f1e <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3a393837363534333231302f2e <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x4d4c4b4a494847464544434241403f3e <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x5d5c5b5a595857565554535251504f4e <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x4c4b4a494847464544434241403f3e3d <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5c5b5a595857565554535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x6c6b6a696867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x6b6a696867666564636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3a39383736353433323130012e <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x6c6b6a6b6867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x737271706f6e6d6c636261605f5e5d5c (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x7271706f6e6d6c6b2726252423222120 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3aff013736353433323130012e <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xff0000850002ff01d6d5d4d37473d0cf <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5c5b5a595857737254535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.99878e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.24460e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x77777777777777777777777777777777 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x76767676767676767676767676767676 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000ff0000850002ff01 (d25: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007e7d7c7b7a797877 (d9: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000007d7c7b7a79787776 (d23: 2.91053e+296) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x8584838281807f7e8584838281807f7e (-4.41447e-282, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84838281807f7e7d84838281807f7e7d (-6.40629e-287, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000002ff010002ff01 (s24: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000008887868588878685 (s26: -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000008786858487868584 (s28: -2.02406e-34) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000008988898889888988 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000008887888788878887 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (..., -2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x8b8a89888b8a89888b8a89888b8a8988 (..., -5.33626e-32, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000008c8c8c8c8c8c8c8c <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1e1c1a18000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1d1b1917000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xacaaa8a6a4a2a09e9c9a98969492908e <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x1700000000000000ff0000850002ff01 (6.68887e-198, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.56775e-159, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.70315e+18, -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.31369e+57, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.90391e+13, -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.92941e+52, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000000fffeff0002ff01 (..., 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000d6d5d4d3cecdcccb (..., -1.17555e+14, -1.72638e+09) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000dad9d8d7d2d1d0cf (..., -3.06592e+16, -4.50576e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000d5d4d3d2cdcccbca (..., -2.92508e+13, -4.29488e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000d9d8d7d6d1d0cfce (..., -7.62949e+15, -1.12105e+11) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e7e6e3e2dfdedbda <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e9e8e5e4e1e0dddc <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e6e5e2e1dedddad9 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e8e7e4e3e0dfdcdb <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x1b1a19180000000000fffeff0002ff01 (1.27467e-22, 0.00000, 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1700000000000000ff000085 (3.34819e-20, 4.13590e-25, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.53999e-36, -1.04669e+37, -1.54621e+32, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.06322e-34, 2.35095e-38, -4.02346e+34, -5.94046e+29) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.82047e-37, -2.60629e+36, -3.84962e+31, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.00825e-34, nan, -1.00179e+34, -1.47890e+29) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000171513110f0d0b09 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001513110f0d0b0907 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c1918000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a17000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3433302f2c2b28272423201f1c1b1817 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x363532312e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x33322f2e2b2a272623221f1e1b1a1716 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x353431302d2c2928252421201d1c1918 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x363532012e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1dff1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x4544434241403f3e363c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0706050403020100fffefdfcfb35f9f8 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c1918000000000000feff0036ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000003e3d3c3b3a393837 (d26: 6.80687e-09) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000464544434241403f (d27: 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x07060504fffefdfc3d3c3b3a39383736 (d25: 1.00298e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000004544434241403f3e (d26: 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xff01000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00020000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000474600003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xff01000049480000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c191800000000000046450036ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a1700000000004847ff000002 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xff00008500000000000046450036ff01 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000000000004c4b4a49 (s28: 5.32913e+07) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002ff0103020100fffefdfc504f4e4d (s29: 1.39121e+10) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.32570e+07, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.46117e+09, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x51515151515151515151515151515151 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 (d26: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000000000000000fffeff (d27: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000005857565554535251 (d14: 3.67814e+117) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0000000000000000605f5e5d5c5b5a59 (d15: 1.68234e+156) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000005756555453525150 (d23: 5.37096e+112) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000005f5e5d5c5b5a5958 (d24: 2.48489e+151) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x67666564636261606766656463626160 (1.24732e+190, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.76650e+228, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x666564636261605f666564636261605f (1.81795e+185, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.50866e+223, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000002ff010002ff01 (s26: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ff000085ff000085 (s27: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000007271706f7271706f (s22: 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000007675747376757473 (s23: 1.24460e+33) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x000000000000000071706f6e71706f6e (s2: 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000007574737275747372 (s3: 3.09878e+32) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007776777677767776 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000007978797879787978 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000007675767576757675 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000007877787778777877 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (..., 5.22300e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (..., -1.17085e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x7b7a79787b7a79787b7a79787b7a7978 (..., 1.30054e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (..., 3.38275e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000008181818181818181 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000007f7f7f7f7f7f7f7f <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x82818281828182818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x84838483848384838483848384838483 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x81808180818081808180818081808180 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x83828382838283828382838283828382 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2d2a2724211e1b1800000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x2e2b2825221f1c1900000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2f2c292623201d1a1700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xb0adaaa7a4a19e9b9895928f8c898683 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.56775e-159, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x27262524232221200000000000fffeff (4.28794e-120, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2f2e2d2c2b2a29281700000000000000 (1.98829e-81, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.07279e+90, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.47908e+129, -3.90391e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.10851e+168, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.30639e+86, -1.21867e-30) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.56908e+124, -5.62003e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.03668e+163, -2.82942e+47) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000001700000000fffeff (..., 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000f1f0efeee5e4e3e2 (..., -2.38613e+30, -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000f5f4f3f2e9e8e7e6 (..., -6.21029e+32, -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000f9f8f7f6edecebea (..., -1.61590e+35, -9.16546e+27) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000f0efeeede4e3e2e1 (..., -5.94046e+29, -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000f4f3f2f1e8e7e6e5 (..., -1.54621e+32, -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f7f6f5ecebeae9 (..., -4.02346e+34, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000000000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000c0b060500fffaf9 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000e0d08070201fcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000100f0a090403fefd <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000d0c07060100fbfa <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000f0e09080302fdfc <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x272625241b1a1918000000000002ff01 (2.30573e-15, 1.27467e-22, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.04532e-13, 3.34819e-20, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c232221201700000000fffeff (1.58413e-10, 8.78905e-18, 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x373635342b2a29281f1e1d1c13121110 (1.08604e-05, 6.04532e-13, 3.34819e-20, 1.84362e-27) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161514 (0.00284155, 1.58413e-10, 8.78905e-18, 4.84942e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3f3e3d3c33323130272625241b1a1918 (0.743122, 4.14886e-08, 2.30573e-15, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x363534332a2928271e1d1c1b1211100f (2.70015e-06, 1.50241e-13, 8.31732e-21, 4.57737e-28) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x3a3938372e2d2c2b2221201f16151413 (0.000706557, 3.93749e-11, 2.18366e-18, 1.20425e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x3e3d3c3b3231302f262524231a191817 (0.184800, 1.03137e-08, 5.72948e-16, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x000000000000000000000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x000000000000000000000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000001700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000005653504d4a474441 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000053504d4a4744413e <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2b2a25241f1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272621201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6e696863625d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a65645f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c676661605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x807f7a7974736e6d686762615c5b5655 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x82817c7b7675706f6a6964635e5d5857 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84837e7d787772716c6b6665605f5a59 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000001000000f5f4f3f2e9e8e7e6 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2b2a2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272602201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x82818281828186818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000087000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161586 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a696867ff0000850002ff01 (d16: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000474600000000000000fffeff (d17: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd2d1d0cfcecdcccb1700000000000000 (d18: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84837e7d787772718e8d8c8b8a898887 (d30: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000969594939291908f (d31: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (d0: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.09028e-243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x9594939291908f8e6a6964635e5d5857 (-1.02545e-204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.85140e-166, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6e6968ff015d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c008561605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x9f9e2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xa1a0272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xa3a2292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671709e9d00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e79787372a09f008561605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a696867a2a100850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0002ff01ff1e191800000000ff00ff01 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xff00008502201b1a00000000feff0084 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00fffeff23221d1c1700000000ff0085 (2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.14938e-15, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000aaa9a8a7969594939291908f (..., -3.01375e-13, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.89780e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a5a4a3a24744413e (..., -2.85603e-16, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.48978e-14, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.96304e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0xadadadadadadadadadadadadadadadad <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000b7b6b5b4b3b2b1b0 (d7: -2.60696e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000bfbebdbcbbbab9b8 (d8: -0.120083) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000c7c6c5c4c3c2c1c0 (d9: -6.05398e+37) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000b6b5b4b3b2b1b0af (d17: -3.80205e-45) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000bebdbcbbbab9b8b7 (d18: -1.77248e-06) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000c6c5c4c3c2c1c0bf (d19: -8.83040e+32) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.11344e+71, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.05087e+110, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.54613e+148, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.06516e+66, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.98548e+105, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.40766e+144, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000002ff010002ff01 (s10: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000ff000085ff000085 (s11: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000fffeff00fffeff (s12: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000e1e0dfdee1e0dfde (s0: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e5e4e3e2e5e4e3e2 (s1: -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e9e8e7e6e9e8e7e6 (s2: -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e0dfdedde0dfdedd (s23: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e4e3e2e1e4e3e2e1 (s24: -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e6e5e8e7e6e5 (s25: -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000eae9eae9eae9eae9 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000ecebecebecebeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000eeedeeedeeedeeed <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000e9e8e9e8e9e8e9e8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000ebeaebeaebeaebea <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000edecedecedecedec <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (..., -2.38613e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (..., -6.21029e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (..., -1.61590e+35, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (..., -5.94046e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (..., -1.54621e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (..., -4.02346e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000fbfbfbfbfbfbfbfb <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x3c3834302c2824201c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3d3935312d2925211d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3a36322e2a26221e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3f3b37332f2b27231f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3f3b37332f2b27231f1b17130f0b0703 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3b37332f2b27231f1b17130f0b0703ff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x2726252423222120ff0000850002ff01 (4.28794e-120, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.98829e-81, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x37363534333231301700000000000000 (9.95833e-43, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.000461414, 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x666564636261605f464544434241403f (1.81795e+185, 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.50866e+223, 1.57975e+69) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x767574737271706f565554535251504f (4.22243e+262, 7.82703e+107) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.97467e+301, 3.66628e+146) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x6564636261605f5e4544434241403f3e (2.64379e+180, 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.25402e+219, 2.32790e+64) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e5554535251504f4e (6.14144e+257, 1.13810e+103) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.91053e+296, 5.40301e+141) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000017000000ff000085 (..., 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001b1a191800fffeff (..., 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001f1e1d1c00000000 (..., 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x000000000000000091908f8e81807f7e (..., -2.28077e-28, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000009594939285848382 (..., -6.00095e-26, -1.24615e-35) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000009998979689888786 (..., -1.57777e-23, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000009d9c9b9a8d8c8b8a (..., -4.14537e-21, -8.66176e-31) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000908f8e8d807f7e7d (..., -5.66232e-29, -1.17085e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000009493929184838281 (..., -1.49010e-26, -3.09178e-36) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000009897969588878685 (..., -3.91846e-24, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009c9b9a998c8b8a89 (..., -1.02970e-21, -2.14997e-31) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x000000000000000019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000b6b5aeada6a59e9d <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000b8b7b0afa8a7a09f <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000bab9b2b1aaa9a2a1 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000bcbbb4b3acaba4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000b5b4adaca5a49d9c <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b7b6afaea7a69f9e <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000b9b8b1b0a9a8a1a0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000bbbab3b2abaaa3a2 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x3332313023222120000000000002ff01 (4.14886e-08, 8.78905e-18, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x373635342726252417000000ff000085 (1.08604e-05, 2.30573e-15, 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a39382b2a29281b1a191800fffeff (0.00284155, 6.04532e-13, 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.743122, 1.58413e-10, 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.47890e+29, -3.21185e+19, -6.93919e+09, -1.49017) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.84962e+31, -8.37048e+21, -1.81093e+12, -389.514) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.00179e+34, -2.18077e+24, -4.72428e+14, -101772.) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.60629e+36, -5.67986e+26, -1.23202e+17, -2.65799e+07) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.68172e+28, -7.99345e+18, -1.72638e+09, -0.370581) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.58428e+30, -2.08336e+21, -4.50576e+11, -96.8765) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.49430e+33, -5.42822e+23, -1.17555e+14, -25314.4) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.48966e+35, -1.41390e+26, -3.06592e+16, -6.61207e+06) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000001c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000001d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a16120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x000000000000000016120e0a0602fefa <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x393831302928212019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a33322b2a23221b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35342d2c25241d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x53524b4a43423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x55544d4c45443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x57564f4e47463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x59585150494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x52514a4942413a3932312a2922211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2b24231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d26251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f2827201f <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x52514a4942413a3932312a2901211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2bff231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d02251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f0027201f <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000fbfbfbfb59fbfbfb <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65a5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000001c1800005cff8501 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35342d2c25241d58000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f5917000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000195a110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a5b120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff0000850002ff011f5917000000ff00 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000fffeff195a110d090501fd (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17000000000000001a5b120e0a0602fe (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x636261605f5e5d5c1c1800005cff8501 (5.54935e+170, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6b6a6968676665641d19000000fe00ff (2.71346e+209, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7b7a7978777675741f1b17000000ff00 (6.29888e+286, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.00514e+165, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x6a696867666564631e1a000000ff0002 (3.98304e+204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x7a797877767574731f1e17000000ff00 (9.24687e+281, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x5352ff0143423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x5554000245443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x5756008547463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5958ff00494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5958ff00494841407c7b313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000007e7d0f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00007b7a00000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29281b1a191800fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000002ff010703fffb (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00007b7a00000000ff000085080400fc (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c0000000000fffeff090501fd (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x393831308584838219180000feffff01 (..., -1.24615e-35, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.28683e-33, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.66176e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.28077e-28, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x848382810000000000fffeff090501fd (-3.09178e-36, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x888786852b2a29280000000000fffeff (-8.15664e-34, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x908f8e8d00000000fafafafafafafafa (-5.66232e-29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x94949494949494949494949494949494 <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x90909090909090909090909090909090 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000ff0000850002ff01 (d8: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000fffeff (d9: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000001700000000000000 (d10: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000001f1e1d1c1b1a1918 (d11: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000009b9a999897969594 (d4: -1.05028e-175) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000a3a2a1a09f9e9d9c (d5: -5.00653e-137) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000abaaa9a8a7a6a5a4 (d6: -2.43801e-98) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000b3b2b1b0afaeadac (d7: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000009a99989796959493 (d26: -1.54211e-180) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000a2a1a09f9e9d9c9b (d27: -7.22772e-142) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000aaa9a8a7a6a5a4a3 (d28: -3.58004e-103) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000b2b1b0afaeadacab (d29: -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.31108e-26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.90391e+13, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.92941e+52, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.07279e+90, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.21867e-30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.62003e+08, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.82942e+47, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.30639e+86, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000002ff010002ff01 (s31: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000ff000085ff000085 (s0: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x000000000000000000fffeff00fffeff (s1: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000000 (s2: 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000d5d4d3d2d5d4d3d2 (s28: -2.92508e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000d9d8d7d6d9d8d7d6 (s29: -7.62949e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000dddcdbdadddcdbda (s30: -1.98932e+18) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000e1e0dfdee1e0dfde (s31: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000d4d3d2d1d4d3d2d1 (s11: -7.27820e+12) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000d8d7d6d5d8d7d6d5 (s12: -1.89854e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000dcdbdad9dcdbdad9 (s13: -4.95069e+17) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000e0dfdedde0dfdedd (s14: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000e2e1e2e1e2e1e2e1 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e4e3e4e3e4e3e4e3 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e6e5e6e5e6e5e6e5 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e8e7e8e7e8e7 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000e1e0e1e0e1e0e1e0 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000e3e2e3e2e3e2e3e2 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000e5e4e5e4e5e4e5e4 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e7e6e7e6e7e6e7e6 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (..., -5.67986e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xefeeedecefeeedecefeeedecefeeedec (..., -1.47890e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (..., -3.84962e+31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (..., -1.00179e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (..., -1.41390e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xeeedecebeeedecebeeedecebeeedeceb (..., -3.68172e+28, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (..., -9.58428e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (..., -2.49430e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f6f6f6f6f6f6f6f6 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x01000100010001000100010001000100 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002000200020002e73aed42f34af952
-#    v6: 0x0000000000000000dcbb11e0e6481e68
-#    v9: 0x00000000000000000000000000fffeff
-#    v5: 0x0000000000000000a4a2261ba09e2217
-#   v24: 0x000000000000000082b3330de36793c1
-#   v12: 0x00000000000000006f49f4f5e911f705
-#   v10: 0x00000000000000001700000000000000
-#    v3: 0x000000000000000035342d2c25221f1b
-#   v19: 0xfe070c07fe070c07fe070c07fe070c07
-#    v6: 0x0000000000000000dcbb11e0e6481e68
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
-#   v28: 0x00000000000000000100010001000100
-#    v2: 0x0000000000000000ac03d811ac03d811
-#   v18: 0x000000000000000000fffeff00fffeff
-#    v6: 0x00000000000000006347100f6cd41c97
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
-#   v26: 0x0000000000000000bd4365396d436539
-#   v10: 0x00000000000000008800000000000000
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000000000000000e3e2
-#   v26: 0x000000000000000000000000fe070c07
-#   v26: 0x0000000000000000d4d3d2d1d4d3d2d1
-#   v20: 0x0000000000000000f9f9f9f9f9f9f9f9
-#   v19: 0xfe070f07fe070c07fe070c07fe070c07
-#    v4: 0x00000000000000009b9a999897969594
-#   v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
-#    v3: 0x00000000000000000000000000000000
-#   v29: 0x000200020002ff00e73aed42f34af952
-#    v2: 0x0000000c00000000ac03d811ac03d811
-#   v22: 0x00000000000000000000000000000000
-#   v24: 0x000000000000000082b3330de36793c1
-#   v24: 0x000000000000000000ffff0000ffffff
-#   v29: 0x80808080808080808080808080808080
-#   v12: 0xffff00ff00ffff00ffff00ff00ffff00
-#   v12: 0x0000000000000000ec000000ec000000
-#   v10: 0x0000000000000000004cffff004cffff
-#   v26: 0x000000000000000000c000c000c000c0
-#   v24: 0x00980000009800000098000000980000
-#    v1: 0x00deffff00deffff00deffff00deffff
-#   v21: 0x00000000000000004d4d4d4d4d4d4d4d
-#   v29: 0x00690069006900690069006900690069
-#    v1: 0x4700008e4b00007a4700008e4b00007a
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
-#   v19: 0x00000000000000000000000000000000
-#   v29: 0x0000000000000000427957e1427957e1
-#    v2: 0x00000000000000000000000000000000
-#   v25: 0x000000000000000042ff40c042ff40c0
-#   v26: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x0000000000000000470049004b004d00
-#   v20: 0x48004a004c004e0048004a004c004e00
-#   v29: 0x00000000000000000000000000000000
-#   v13: 0xffffffffffffffffe03d1120e03d1120
-#   v28: 0x0000000000000000ffffffffffffffff
-#   v25: 0x0000000000000000ffff47ffffff47ff
-#   v17: 0x0000000000000000ff930000ff930000
-#   v29: 0x0000000000000000ffb7ffb7ffb7ffb7
-#   v20: 0xff85ffffff85ffffff85ffffff85ffff
-#    v0: 0xffffe100ffffe100ffffe100ffffe100
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
-#   v25: 0x0000000000000000b8ffb6ffb4ffb300
-#    v4: 0x00000000000000000000000000010201
-#   v11: 0x0000000000000000470049004b004d00
-#    v7: 0x0000000000000000ff000101ff000101
-#    v7: 0x00000000000000004648484a4a4c4c4e
-#   v17: 0x0000000000000000ff000101ff000101
-#   v20: 0x00000000000000000100ffff0100ffff
-#    v0: 0x0000000000000000b900b700b500b300
-#   v13: 0x003e003e003e003e473e493e4b3e4d3e
-#   v22: 0x0000000000000000ffffffffffffffff
-#   v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
-#    v8: 0x0000000000000000ff0000e70002ffe3
-#   v11: 0x0000000000000000d700df00df00df00
-#    v7: 0x000000ab000000ab464848eb4a4c4cef
-#    v8: 0x00000000000000000000000000010201
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
-#   v11: 0x000000000000000000a9a8a900a9a8a9
-#    v8: 0x00000000000000000030000000100000
-#   v24: 0x0000555555aa55550000555555aa5555
-#   v13: 0x00000000000000000000000000000000
-#   v22: 0x000000000000000000000000200feede
-#    v5: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000fdfdfdfd9da5d974
-#    v9: 0x00000000000000000000000000fffeff
-#   v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
-#    v0: 0x0000000046004a04b900b700b500b300
-#   v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
-#   v30: 0x00000000000000000000000000000000
-#   v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
-#    v5: 0x00000000000000000000000001020100
-#   v16: 0x0000000000000000a76e9d2f75fed8a5
-#   v20: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000ffffffffffffffff
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000075fed8a5a76e9d2f
-#    v7: 0x0000000000000000fefffefffefffeff
-#   v15: 0x0000000000000000d8a575fe9d2fa76e
-#   v25: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000009d2fa76ed8a575fe
-#   v18: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v3: 0x0000000063106d1d0000000000000000
-#    v0: 0x00000000dbffdc00b900b700b500b300
-#   v27: 0x000000003a5fb14bfffefffefffefffe
-#   v15: 0x00000000000000000000000000000000
-#   v23: 0x000000000000000000009cf000000000
-#    v6: 0x000000000000000000abaaab00abaaab
-#    v4: 0x00555655005556550000000000010201
-#    v1: 0x62e2129262e2af824700008e4b00007a
-#   v19: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000ffffffffffffffff
-#    v9: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000fffbfdfbfffbfdfb
-#   v29: 0x000000003a5fb14b75b7d85e58486286
-#   v20: 0x00000000000000001e3d11201e3d1120
-#   v27: 0x000000003a5fb14b0003020300030203
-#   v20: 0x00000000010001011e3d11201f3d1221
-#    v4: 0x005585f20055c4fc00005a290001058d
-#   v23: 0x001e003d0044003500369d8300430034
-#   v26: 0x00000000000000009d2fa76ed8a575fe
-#   v27: 0x000000003a5fb14b0003020300030203
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
-#    v0: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000100010101000101
-#   v17: 0x00000000000000002fa270ac5a23007a
-#    v7: 0x633798855327f7af62e26cbc52d33840
-#   v23: 0x0000000000000000632f596e285b7502
-#   v20: 0x000000000000000075ff275a589162d0
-#   v27: 0x00000000d8e139ed00000000ab639583
-#   v31: 0x000012d0000032140000303600001232
-#    v0: 0x007500010027005a00ad00d200cd004d
-#   v31: 0x00000000000000000000000063106d1d
-#   v26: 0x00000000000000000000271f000039ed
-#    v6: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000003000000010610c
-#   v12: 0x00000000000000002f9d6ea7a5d95f81
-#   v12: 0x00000000000000002f9d95c6a5d9996e
-#    v4: 0x0000000000000000004759b7004c0607
-#   v15: 0x00000000000000000100a14f01005b9e
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
-#    v5: 0xffffffffd6dfd5daffffffff7687b151
-#   v18: 0x00000100ffffa14f0000010000005b9e
-#   v15: 0x0063002f0059006e0028005b00750002
-#   v16: 0x0000000000000000ffffffffd8e139ed
-#    v6: 0x0000007500005556000055d1000055af
-#    v7: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffd8e139ec
-#   v18: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000004600000026
-#   v10: 0x00007574000012640000478e00004b7a
-#    v0: 0x0000000000000000ffe1ffcdffe1ffcd
-#   v12: 0x00000000000000000000000000000000
-#   v14: 0x0000000000000000000000000000fff8
-#   v30: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000000012cc
-#   v24: 0x00000000000000009d2fa76ed8a575fe
-#   v13: 0x00000000000055d100000000000055af
-#   v19: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000632f596e285b7502
-#   v15: 0x00000000000000000000000000000000
-#    v7: 0x000000000000000000232cdb00260303
-#   v29: 0x0000000000000000ce97d3b7ec52baff
-#   v31: 0x0000000000000000000023c700005094
-#   v21: 0x000000000000000000180000000839ec
-#   v14: 0x0000000000000000b5dae012cc3fc326
-#   v19: 0x00000000000000000997e764189b6c67
-#   v22: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000008000000000800000
-#    v2: 0x000000000000000036e00980c0e00000
-#    v4: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000ff00ff00ff00ff00
-#    v4: 0x0000000000000000c700000094000000
-#   v18: 0x00000000000000000000000000004830
-#    v0: 0x0000000000000000e9783b70c528aff0
-#    v5: 0x9d2fa76e00000000d8a575fe00000000
-#   v26: 0x75ff0000275a00005891000062d00000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x62e200001292000062e20000af820000
-#   v30: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000002e212926700008e4
-#   v29: 0x00000000000000000000000000000090
-#   v17: 0x00000000000000000000000000000024
-#    v5: 0x00000000000000002e212926700008e4
-#   v24: 0x317157c12580003d9d2fa76ed8a575fe
-#    v5: 0x00000000b5dacc3f2e212926700008e4
-#   v30: 0x31f1000009c90000ffd9d3c9c393c5ff
-#   v22: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000dc80ffb9da80ffc3
-#   v10: 0x0000000000000000ce805349ebda7605
-#    v6: 0x00000000000000000000ee1c0000d836
-#    v8: 0x0000000000000000ffe811e3fff8f7c4
-#   v19: 0x000000000000000000000000090b6c67
-#    v9: 0x317157c12580003d9d2fa76ed8a575fe
-#   v22: 0xc55f04960000f400be9dbb6295d7f800
-#   v11: 0x0000000000000000000fa76e000575fe
-#   v16: 0x0000000000000000000000000000000c
-#    v8: 0x0000000000000000c7e811e389f8f7c4
-#   v10: 0x0000000000000000ffd9d3c9c393c5ff
-#    v7: 0x0000000000000000ffe3ffdbffe6ffc3
-#   v18: 0x6200120062000000470011e34b00007a
-#   v30: 0x00000000000000004700008e700008e4
-#   v17: 0x000000000000000000000000090b6c67
-#    v1: 0x317157c12580003d000023c700005094
-#   v17: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x75ff0000275a00005891000062d00000
-#   v12: 0x00000000ffffffff00000000da123f26
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#   v10: 0x0000000000000000ffd9c5ff00000090
-#   v18: 0x00000000ffe6ffc375ff000062d00000
-#   v21: 0x000000000000000075006200787028f0
-#   v26: 0x00000000000000000000000011e3f7c4
-#    v4: 0x00000000000000000000000000000070
-#   v23: 0x00000000000000000000000000000078
-#    v6: 0x00000000000000000000000000003b70
-#   v24: 0x000000000000000000000000000011e3
-#    v3: 0x0000000000000000000000000000000c
-#   v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
-#   v29: 0x0000000000000000c7e811e389f8f7c4
-#    v6: 0x00000000000000005891000062d00000
-#   v24: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000000000000000000c
-#   v12: 0x0000000000000000ffd9c5ff00000090
-#   v13: 0x00000000ffffffff0000e6c3ff00d000
-#   v22: 0x000000000000000000000000ffffffff
-#   v15: 0x0000000000000000292608e4c5ff0000
-#   v15: 0x0000000000000000000000009d2fa76e
-#   v21: 0x00000000000000009100d000e080c000
-#   v21: 0x000000000000000000000000c5ff0000
-#    v8: 0x00000000000000000000000000000091
-#    v6: 0x000000000000000000000000000000d0
-#   v20: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000009d2f
-#   v21: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#    v7: 0x00000000000000000000000000009d2f
-#   v19: 0x0000000000000000000000000906ca9b
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#   v30: 0x00000000000000004700008e700008e4
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#   v17: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x75ff0000275a00005891000062d00000
-#   v30: 0x00000000000000004700008e700008e4
-#    v1: 0x317157c12580003d000023c700005094
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#    v0: 0x0000000000000000e9783b70c7c032a0
-#    v3: 0x0000000000000000000000000000000c
-#    v4: 0x000000000000000003c9f8c001c2e9f0
-#   v14: 0x0000000000000000b5dae012cc3fc326
-#   v15: 0x0000000000000000f9797b018bdbc6de
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#    v6: 0x000000000000000000000000000000d0
-#   v30: 0x00000000000000004700008e700008e4
-#    v4: 0x15a6d000c90fc48aedb876b6692ad888
-#   v30: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000042ae0
-#    v8: 0x185dc92015d7004009b45060e2e7be40
-#   v31: 0x00000000f3d5e78200000000249000d8
-#    v3: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000062d05891275a8a02
-#   v31: 0x00000000000000000000000000000001
-#    v8: 0x000000000000000000000000383fcd60
-#   v14: 0x0000000000000000000000000000632f
-#   v23: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000001687c490383fcd60
-#   v29: 0x000000000000000016793c70383f3360
-#   v17: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000060
-#    v2: 0x00000000000000000000000011e3f7c4
-#    v7: 0x00000000000000000000000000003360
-#   v11: 0x00000000000000000000000000003360
-#   v20: 0x000000000000000016793c70383f336c
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v8: 0x00000000000000000000000011e3f7c4
-#   v20: 0x0000000000000000ffd9c5ff00000090
-#   v14: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000016792233373f0360
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000060
-#   v14: 0x000000000000000000000000ffe772e8
-#   v30: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v8: 0x0672308605c005640fa6a0001322041c
-#    v1: 0x317157c12580003d000023c700005094
-#   v19: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000011e3f7c4
-#    v6: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000ffffffc0b8e63400
-#   v10: 0x0000000000000000ffffffc0b8e66400
-#   v30: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000000000000ff00d000
-#   v27: 0xffffffffece2ff800000004ffccf8000
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v22: 0x000000000000000000000000ffffffff
-#   v12: 0x0000000000000000ffd9c5ff00000090
-#   v20: 0x0000000000000000ffd9c5ff00000090
-#   v25: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000000000000000ff70
-#   v16: 0x00000000000000000000000000000391
-#    v1: 0x00000000000000000000000000000000
-#    v1: 0x0000000000000000000000000000018a
-#   v28: 0x0000000000000000000000000000003a
-#   v28: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000fffe0529
-#   v25: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000fff726ef1b546ce0
-#   v29: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000e59831500
-#   v18: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000060
-#   v24: 0x0000000000000000ffffffffffffffa0
-#   v29: 0x00000000000000000000000000000000
-#    v4: 0x000000000000000000000000ffffffa0
-#   v14: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000263a00ffffff70
-#   v28: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000010060
-#    v9: 0x00000000000000000000000000000000
-#   v20: 0x000000000000000001273b0100000070
-#   v27: 0x000000000000000000010040471a9c00
-#    v7: 0x0000000000000000000000000000ffda
-#   v14: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v22: 0x0000000000000000ffa408a4ff20b5ee
-#   v22: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v2: 0x0000000000000000000000000000fff1
-#   v16: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000007fffffffffffffff
-#   v28: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v19: 0x000000000000000000000000ed800048
-#   v19: 0x000000000000000000000000ed800048
-#   v29: 0x00000000000000007fffffffffffffff
-#   v12: 0x0000000000000040ffd9c5ff00000090
-#   v16: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000000000000e598315
-#   v31: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000000000000004ffff
-#   v24: 0x0000000000000000ffffffffffffffa0
-#   v22: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000000000000e598315
-#    v6: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000007fed000000000
-#   v20: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v6: 0x0000000000000000000000000e598315
-#    v0: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v24: 0x00000000000200000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#    v8: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v30: 0x00000000002000000000000000000000
-#    v1: 0x00000000000000000000000000000080
-#   v31: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v14: 0x0000000000077f7f0000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v31: 0x000000000000ffff0000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000000000000007ffff
-#   v10: 0x00000000000000000010000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v27: 0x00000001000000000000000000000000
-#   v23: 0x0000ffff000000000000000e59831500
-#   v19: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000010000000000000
-#    v8: 0x000000000000000000000000ffff000f
-#   v18: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000fff0000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000800000000e59831500
-#   v13: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v26: 0x000000000000000000000000ffff0000
-#    v7: 0x00000000000000000000000000000000
-#   v21: 0x000007ff000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000800000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000040
-#   v24: 0x00000000000000000000000000007ff9
-#    v6: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v23: 0x0000000000000080000000005f8f1000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000000000000000b0002
-#   v27: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000040
-#   v29: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000040
-#   v22: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000fe0000000000000000
-#   v20: 0x00000000000000000000000000000020
-#    v0: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v18: 0x00000000000000000000000000000000
-#   v21: 0x000000000000000000000000000000c0
-#   v31: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000000000000000b0002
-#   v23: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000020000000
-#   v11: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#    v3: 0x00000000000000000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#   v29: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000020
-#   v14: 0x00000000000000000000000000000001
-#   v18: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000040
-#   v13: 0x0000000000000000ffffffffffffffe1
-#    v5: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v21: 0x000000000000000000000000ffff8007
-#   v30: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007ff9
-#   v31: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v12: 0x0000000000000000ffffffffffffffc0
-#   v20: 0x00000000000000000000000000007ff9
-#    v8: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000000000000ffff8007
-#   v24: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000010180f9
-#   v20: 0x0000000000000000000100010001001f
-#    v5: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000ff0000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v20: 0x000000000000ffff000100010001001f
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000ffffffffffffffe1
-#    v0: 0x00000000000000000000000000000040
-#   v22: 0x00000000000000000000000000000000
-#   v24: 0x000000000000007f0000000000000000
-#   v26: 0x00000000000000000000000000000001
-#    v7: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000007fff7fff7fff7fff
-#    v4: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v31: 0x00000000000000000000000000000000
-#   v16: 0x0000000000010001000000000001001f
-#   v27: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000100000001
-#   v25: 0x00000000000000000000000000000000
-#   v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
-#    v3: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#    v6: 0x01010101010101010101010101010101
-#   v13: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#    v2: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000ff00ff0000000000
-#   v24: 0x00000000000000000000010100000101
-#    v2: 0x000000000000000000000000ff00ff00
-#   v25: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000001
-#    v9: 0x00000000000000000000000000000000
-#    v6: 0x01010101010101010101010100020001
-#   v16: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ff00ff0000000001
-#   v10: 0x00000000ff00ff000000000000000000
-#   v30: 0x0000ff000000ff00ff01fe000000c000
-#    v4: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#   v26: 0x00000000000000000000000000000001
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#   v18: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000001
-#   v20: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v9: 0x000000000000000000000000ff00ff01
-#   v14: 0x00000000000000000000000000000001
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ff00ff0000000001
-#    v1: 0x00000000000000000000000000000001
-#   v31: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v5: 0x00000000010101010000000001010101
-#    v1: 0x00000000000000000000010100000101
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x000000000000000000000000ff00ff01
-#   v26: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000010100000101
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000ff00ff
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000001
-#    v9: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000010100000101
-#   v18: 0x00000000010101010000000001010101
-#   v17: 0x0000000000000000ff00ff0000000001
-#   v29: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000008000800000000000800080
-#    v1: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v26: 0x00000000ff7f7f7f00000000ff7f7f7f
-#    v3: 0x0000000000000000000000007f007f00
-#   v25: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000ff00ff
-#   v20: 0x000000000000000000000000ff7f7f7f
-#    v0: 0x00000000000000000000000001010101
-#    v6: 0x00000000000000000000000000ff00ff
-#    v0: 0x000000000000000000000000ff7fff7f
-#    v4: 0x00000000000000000000000000000000
-#    v1: 0x0000000000000000000000000000ffff
-#   v19: 0x00000000000000000000000100000000
-#   v21: 0x00000000000000000000ff0100000000
-#    v9: 0x000000000000000000000000ff7f7f7f
-#   v13: 0x000000000000000000000000000000ff
-#   v19: 0x0000ff7f0000ff7f0000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v31: 0x0000000000000000000000000000ff00
-#   v15: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#   v22: 0x0000000000000000000000000000ff01
-#    v1: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v24: 0x000000000000000000000000000000ff
-#   v20: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v21: 0x0000000000000000000000000000ff7f
-#    v0: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007e81
-#   v17: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007e81
-#   v15: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#    v7: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#   v28: 0x00000000000000000000000000ff00ff
-#   v11: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v10: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000000000ff
-#   v27: 0x00000000000000000000000000007e81
-#    v7: 0x000000000000000000000000000000ff
-#   v28: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000000000000000ff7f
-#   v16: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x0000000000000000000000000000ff00
-#   v23: 0x0000000000000000000000007f007f00
-#   v17: 0x00000000000000000000000000007e81
-#   v10: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v10: 0x000000000000000000000000000000ff
-#    v9: 0x0000000000000000000000000000ff01
-#   v24: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000008
-#   v10: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000001fe0
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000400000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000200000000000000ff
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x000000000000000000000000000000ff
-#   v23: 0x00000000000000000000000000ff00ff
-#    v8: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000000000000000000ff
-#    v6: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000003fc0000
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000000000000ffffffff
-#   v28: 0x00000000000000000000000000000000
-#    v4: 0x0000000000000000000000000000fd02
-#    v9: 0x00000000000000000000000000007f80
-#   v18: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000008
-#   v26: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000ff00ff
-#   v14: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000007e81
-#   v10: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000001fe0
-#   v23: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v29: 0x000000000000ffff0000000000000000
-#   v13: 0x0000000000007e810000000000000000
-#   v28: 0x0000000000007e810000000000000000
-#   v23: 0x0000000000000000ffffffffffffffff
-#   v27: 0xffffffffffffffffffffffffffffffff
-#    v2: 0x80808080808080808080808080808080
-#   v15: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000007e81
-#    v2: 0x80000000800000008000000080000000
-#    v5: 0x00000000000000000000000000003f41
-#   v30: 0x40000000400000004000000040000000
-#    v4: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v14: 0x0000000000000000ffffffffffffffff
-#   v10: 0x00000000000000000000000000000008
-#   v15: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v30: 0xffffffffffffffffffffffffffffffff
-#    v4: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000010
-#    v4: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000ffffffffffffffff
-#   v28: 0xffffffffffffffffffffffffffffffff
-#   v27: 0x0000000000000000ffffffffffffffff
-#   v18: 0x00000000000000000000000000001010
-#   v26: 0x00000000000000400000000000000040
-#    v8: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v18: 0x00000000000000000008000800081018
-#   v31: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000008
-#   v14: 0x0000000000000000ffffffffffffffff
-#   v22: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000000000000007e8100
-#   v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
-#    v8: 0x000000000000000000000000007fff80
-#   v29: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000000000007f007f00
-#   v31: 0x00000000000000000000000000000000
-#    v8: 0x000000000000000000000000007fff80
-#   v18: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000000000007e007e00
-#   v12: 0x0000000000000000000000007e007e00
-#   v28: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000008
-#    v4: 0x0000000000000000000000000000003f
-#    v9: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v29: 0x0000000000000000000000007e007e00
-#   v29: 0x00000000000000000000000000000000
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
-#    v1: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v9: 0x0000000000000000ffffffffffffffff
-#   v20: 0x0000000000000000000000007e007e00
-#   v25: 0x000000000000000000000000007fff80
-#   v18: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v30: 0x000000000000008100000000ffffffff
-#    v7: 0x00000000000000000000000000000040
-#   v26: 0x0000000000000000000000007e007e00
-#   v14: 0x00000000000000000000000000000000
-#   v17: 0x00000081ffffffff0000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v17: 0xff01ff01ff01ff400000000000000000
-#    v8: 0x0000000000007e7e0000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v25: 0x000000000000000001fe01fe01fe01fe
-#   v31: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000ff01ff0100000000
-#   v17: 0x0000000000000000000000007e007e00
-#    v3: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000001010000
-#    v0: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
-#   v23: 0x000000000000000001fe01fe01fe01fe
-#   v26: 0x0000000000000000ffffffff00000000
-#    v1: 0x00000000000000000000ffff0040ffff
-#    v0: 0x000000000000000000000000ffffffff
-#   v30: 0x0000000000000000007e0000007e0000
-#   v17: 0x0000ff010000ff010000000000000000
-#   v23: 0x0100fe000100fe000100fe000100fe00
-#   v30: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v0: 0x0100fe00000000000100fe0000000000
-#   v25: 0x00000000000000000001000000fe0000
-#    v7: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000001000000fe0000
-#   v14: 0x000000000000000001fe01fe01fe01fe
-#    v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
-#    v1: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000001000000fe0000
-#   v18: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffffffffff
-#   v30: 0xffffffffffffffff0000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v22: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000100fe000100fe00
-#   v16: 0x01fe01fe01fe01feffffffffffffffff
-#   v27: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000000000000180fe00
-#   v21: 0x020e01fe01fe01fe0000000000000000
-#   v31: 0x000000000000000000000000ffffffff
-#   v13: 0x00000000000000000000000000000000
-#   v17: 0xffffffffffffffff0000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v24: 0x0000000000000000ffffffffffffffff
-#    v8: 0xffffffffffffffff0000000000000000
-#   v26: 0xffffffffffffffff0000000000000000
-#   v27: 0xffffffffffffffffffffffffffffffff
-#   v22: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffffffffff
-#   v29: 0x00000000000000000000000000000000
-#   v22: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v15: 0xffffffffffffffffffffffffffffffff
-#   v21: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v14: 0xffffffff00000000ffffffff00000000
-#   v13: 0x00000000000000000000000000000000
-#    v4: 0xffffffffffffffffffffffffffffffff
-#   v24: 0x0000000000000000ffffffff00000000
-#    v8: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v8: 0x37a0000000000000381fc00000000000
-#   v27: 0xffffe000ffffe0000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v24: 0x377f0000377f0000377f0000377f0000
-#    v9: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v8: 0x37a00000000000000000000000000000
-#   v24: 0x0000000000000000377f0000377f0000
-#    v4: 0x0000000000000000ffffffffffffffff
-#   v25: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v31: 0x000000000000000000000000ffffffff
-#   v19: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x7ff00000000000007ff8000000000000
-#   v12: 0x00000000000000007fc000007fc00000
-#   v19: 0xffffffffffffffffffffffffffffffff
-#   v19: 0x37a00000000000000000000000000000
-#   v25: 0x00000000000000007fc000007fc00000
-#    v6: 0x7ff00000000000007ff8000000000000
-#   v16: 0x37a0000000000000000000000180fe00
-#   v15: 0x00000000000000000000000000000000
-#   v23: 0x37a0000000000000000000000180fe00
-#    v6: 0x000000000000000037a0000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v8: 0x37a00000000000007fc000007fc00000
-#   v13: 0x0000000000000000ffffffff7fc00000
-#   v15: 0xffffffff000000000000000000000000
-#   v27: 0x00000000000000000000000037a00000
-#   v20: 0x0000000000000000ffffffff00000000
-#   v18: 0x00000000000000000000000000000000
-#    v9: 0x00000000ffffffff37a0000000000000
-#    v7: 0x0000000000000000ffffffffffffffff
-#   v18: 0x000000000000000000000000ffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v25: 0x0000000000000000000000007fc00000
-#   v23: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v17: 0xffffffffffffffff0000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000007fc000007fc00000
-#   v24: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000037a00000
-#   v27: 0x00000000000000000000000037a00000
-#   v21: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v18: 0x000000000000000000000000ffffffff
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007fffffff
-#   v27: 0x00000000000000000000000037a00000
-#   v26: 0x00000000000000007fffffff00000000
-#   v14: 0xbfd6000000000000bfd6000000000000
-#   v26: 0x00000000000000003f6800003f680000
-#   v31: 0xc0a00000c0a00000c0a00000c0a00000
-#   v28: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000ffffffff
-#   v25: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v11: 0x7fc000007fc000007fc000007fffffff
-#   v28: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v1: 0x80000000000000008000000000000000
-#   v14: 0x00000000000000008000000080000000
-#    v5: 0x80000000800000008000000080000000
-#   v18: 0x7ff00000000000007ff0000000000000
-#   v10: 0x00000000000000007f8000007f800000
-#    v5: 0x7f8000007f800000474c80007f800000
-#   v22: 0x40000000000000004000000000000000
-#   v31: 0x00000000000000004000000040000000
-#   v18: 0x40000000400000004000000040000000
-#   v26: 0x0000000000000000ffffffff7fc00000
-#   v15: 0x0000000000000000ffffffff7fc00000
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000007fc000007fc00000
-#   v15: 0x7fc000007fc000007fc000007fffffff
-#   v17: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000007fc000007fffffff
-#    v1: 0x0000000000000000ffffffff00000000
-#   v24: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v29: 0x7fc000007fc000007fc000007fffffff
-#   v10: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000004000000040000000
-#   v26: 0x00000000000000004000000040000000
-#   v24: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000007fc000007fc00000
-#   v20: 0x00000000000000000000000000000000
-#   v23: 0x7ff00000000000002006900000000000
-#    v9: 0x00000000000000007f8000007f800000
-#    v3: 0x7f8000007f8000000000000000000000
-#   v25: 0x3ff80000000000003ff8000000000000
-#    v9: 0x00000000000000003fc000003fc00000
-#    v5: 0x3fc000003fc000007fffffff3fc00000
-#    v6: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000003fb504f33fb504f3
-#   v31: 0x00000000000000007fc000007fffffff
-#   v11: 0x00000000000000007fc000007fc00000
-#   v16: 0x00000000000000007fc000007fffffff
-#   v25: 0x000000000000000043dff00000200000
-#   v10: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000004eff80004eff8000
-#   v18: 0x00000000000000000000000000000000
-#   v17: 0x4e7f00004e7f00004f0000004e7f0000
-#   v11: 0x00000000000000004287bfe03e000000
-#    v9: 0x43dfe000001fe0000000000000000000
-#   v26: 0x000000000000000040fff00000200000
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x7fc000007fc000000000000000000000
-#   v22: 0x4effe000000000004e001a4000000000
-#   v18: 0x4207bfc03d7f00000000000000000000
+#      z0<127:0>: 0x47e000017f03380147e000007f023800
+#    z0<255:128>: 0x47e000037f03380347e000027f023802
+#    z0<383:256>: 0x47e000057f07380547e000047f063804
+#    z0<511:384>: 0x47e000077f07380747e000067f063806
+#    z0<639:512>: 0x47e000097f0b380947e000087f0a3808
+#      z1<127:0>: 0x47f000017f833c0147f000007f823c00
+#    z1<255:128>: 0x47f000037f833c0347f000027f823c02
+#    z1<383:256>: 0x47f000057f873c0547f000047f863c04
+#    z1<511:384>: 0x47f000077f873c0747f000067f863c06
+#    z1<639:512>: 0x47f000097f8b3c0947f000087f8a3c08
+#      z2<127:0>: 0x48000001800340014800000080024000
+#    z2<255:128>: 0x48000003800340034800000280024002
+#    z2<383:256>: 0x48000005800740054800000480064004
+#    z2<511:384>: 0x48000007800740074800000680064006
+#    z2<639:512>: 0x48000009800b400948000008800a4008
+#      z3<127:0>: 0x48100001808344014810000080824400
+#    z3<255:128>: 0x48100003808344034810000280824402
+#    z3<383:256>: 0x48100005808744054810000480864404
+#    z3<511:384>: 0x48100007808744074810000680864406
+#    z3<639:512>: 0x48100009808b440948100008808a4408
+#      z4<127:0>: 0x48200001810348014820000081024800
+#    z4<255:128>: 0x48200003810348034820000281024802
+#    z4<383:256>: 0x48200005810748054820000481064804
+#    z4<511:384>: 0x48200007810748074820000681064806
+#    z4<639:512>: 0x48200009810b480948200008810a4808
+#      z5<127:0>: 0x4830000181834c014830000081824c00
+#    z5<255:128>: 0x4830000381834c034830000281824c02
+#    z5<383:256>: 0x4830000581874c054830000481864c04
+#    z5<511:384>: 0x4830000781874c074830000681864c06
+#    z5<639:512>: 0x48300009818b4c0948300008818a4c08
+#      z6<127:0>: 0x48400001820350014840000082025000
+#    z6<255:128>: 0x48400003820350034840000282025002
+#    z6<383:256>: 0x48400005820750054840000482065004
+#    z6<511:384>: 0x48400007820750074840000682065006
+#    z6<639:512>: 0x48400009820b500948400008820a5008
+#      z7<127:0>: 0x48500001828354014850000082825400
+#    z7<255:128>: 0x48500003828354034850000282825402
+#    z7<383:256>: 0x48500005828754054850000482865404
+#    z7<511:384>: 0x48500007828754074850000682865406
+#    z7<639:512>: 0x48500009828b540948500008828a5408
+#      z8<127:0>: 0x48600001830358014860000083025800
+#    z8<255:128>: 0x48600003830358034860000283025802
+#    z8<383:256>: 0x48600005830758054860000483065804
+#    z8<511:384>: 0x48600007830758074860000683065806
+#    z8<639:512>: 0x48600009830b580948600008830a5808
+#      z9<127:0>: 0x4870000183835c014870000083825c00
+#    z9<255:128>: 0x4870000383835c034870000283825c02
+#    z9<383:256>: 0x4870000583875c054870000483865c04
+#    z9<511:384>: 0x4870000783875c074870000683865c06
+#    z9<639:512>: 0x48700009838b5c0948700008838a5c08
+#     z10<127:0>: 0x48800001840360014880000084026000
+#   z10<255:128>: 0x48800003840360034880000284026002
+#   z10<383:256>: 0x48800005840760054880000484066004
+#   z10<511:384>: 0x48800007840760074880000684066006
+#   z10<639:512>: 0x48800009840b600948800008840a6008
+#     z11<127:0>: 0x48900001848364014890000084826400
+#   z11<255:128>: 0x48900003848364034890000284826402
+#   z11<383:256>: 0x48900005848764054890000484866404
+#   z11<511:384>: 0x48900007848764074890000684866406
+#   z11<639:512>: 0x48900009848b640948900008848a6408
+#     z12<127:0>: 0x48a000018503680148a0000085026800
+#   z12<255:128>: 0x48a000038503680348a0000285026802
+#   z12<383:256>: 0x48a000058507680548a0000485066804
+#   z12<511:384>: 0x48a000078507680748a0000685066806
+#   z12<639:512>: 0x48a00009850b680948a00008850a6808
+#     z13<127:0>: 0x48b0000185836c0148b0000085826c00
+#   z13<255:128>: 0x48b0000385836c0348b0000285826c02
+#   z13<383:256>: 0x48b0000585876c0548b0000485866c04
+#   z13<511:384>: 0x48b0000785876c0748b0000685866c06
+#   z13<639:512>: 0x48b00009858b6c0948b00008858a6c08
+#     z14<127:0>: 0x48c000018603700148c0000086027000
+#   z14<255:128>: 0x48c000038603700348c0000286027002
+#   z14<383:256>: 0x48c000058607700548c0000486067004
+#   z14<511:384>: 0x48c000078607700748c0000686067006
+#   z14<639:512>: 0x48c00009860b700948c00008860a7008
+#     z15<127:0>: 0x48d000018683740148d0000086827400
+#   z15<255:128>: 0x48d000038683740348d0000286827402
+#   z15<383:256>: 0x48d000058687740548d0000486867404
+#   z15<511:384>: 0x48d000078687740748d0000686867406
+#   z15<639:512>: 0x48d00009868b740948d00008868a7408
+#     z16<127:0>: 0x48e000018703780148e0000087027800
+#   z16<255:128>: 0x48e000038703780348e0000287027802
+#   z16<383:256>: 0x48e000058707780548e0000487067804
+#   z16<511:384>: 0x48e000078707780748e0000687067806
+#   z16<639:512>: 0x48e00009870b780948e00008870a7808
+#     z17<127:0>: 0x48f0000187837c0148f0000087827c00
+#   z17<255:128>: 0x48f0000387837c0348f0000287827c02
+#   z17<383:256>: 0x48f0000587877c0548f0000487867c04
+#   z17<511:384>: 0x48f0000787877c0748f0000687867c06
+#   z17<639:512>: 0x48f00009878b7c0948f00008878a7c08
+#     z18<127:0>: 0x49000001880380014900000088028000
+#   z18<255:128>: 0x49000003880380034900000288028002
+#   z18<383:256>: 0x49000005880780054900000488068004
+#   z18<511:384>: 0x49000007880780074900000688068006
+#   z18<639:512>: 0x49000009880b800949000008880a8008
+#     z19<127:0>: 0x49100001888384014910000088828400
+#   z19<255:128>: 0x49100003888384034910000288828402
+#   z19<383:256>: 0x49100005888784054910000488868404
+#   z19<511:384>: 0x49100007888784074910000688868406
+#   z19<639:512>: 0x49100009888b840949100008888a8408
+#     z20<127:0>: 0x49200001890388014920000089028800
+#   z20<255:128>: 0x49200003890388034920000289028802
+#   z20<383:256>: 0x49200005890788054920000489068804
+#   z20<511:384>: 0x49200007890788074920000689068806
+#   z20<639:512>: 0x49200009890b880949200008890a8808
+#     z21<127:0>: 0x4930000189838c014930000089828c00
+#   z21<255:128>: 0x4930000389838c034930000289828c02
+#   z21<383:256>: 0x4930000589878c054930000489868c04
+#   z21<511:384>: 0x4930000789878c074930000689868c06
+#   z21<639:512>: 0x49300009898b8c0949300008898a8c08
+#     z22<127:0>: 0x494000018a039001494000008a029000
+#   z22<255:128>: 0x494000038a039003494000028a029002
+#   z22<383:256>: 0x494000058a079005494000048a069004
+#   z22<511:384>: 0x494000078a079007494000068a069006
+#   z22<639:512>: 0x494000098a0b9009494000088a0a9008
+#     z23<127:0>: 0x495000018a839401495000008a829400
+#   z23<255:128>: 0x495000038a839403495000028a829402
+#   z23<383:256>: 0x495000058a879405495000048a869404
+#   z23<511:384>: 0x495000078a879407495000068a869406
+#   z23<639:512>: 0x495000098a8b9409495000088a8a9408
+#     z24<127:0>: 0x496000018b039801496000008b029800
+#   z24<255:128>: 0x496000038b039803496000028b029802
+#   z24<383:256>: 0x496000058b079805496000048b069804
+#   z24<511:384>: 0x496000078b079807496000068b069806
+#   z24<639:512>: 0x496000098b0b9809496000088b0a9808
+#     z25<127:0>: 0x497000018b839c01497000008b829c00
+#   z25<255:128>: 0x497000038b839c03497000028b829c02
+#   z25<383:256>: 0x497000058b879c05497000048b869c04
+#   z25<511:384>: 0x497000078b879c07497000068b869c06
+#   z25<639:512>: 0x497000098b8b9c09497000088b8a9c08
+#     z26<127:0>: 0x498000018c03a001498000008c02a000
+#   z26<255:128>: 0x498000038c03a003498000028c02a002
+#   z26<383:256>: 0x498000058c07a005498000048c06a004
+#   z26<511:384>: 0x498000078c07a007498000068c06a006
+#   z26<639:512>: 0x498000098c0ba009498000088c0aa008
+#     z27<127:0>: 0x499000018c83a401499000008c82a400
+#   z27<255:128>: 0x499000038c83a403499000028c82a402
+#   z27<383:256>: 0x499000058c87a405499000048c86a404
+#   z27<511:384>: 0x499000078c87a407499000068c86a406
+#   z27<639:512>: 0x499000098c8ba409499000088c8aa408
+#     z28<127:0>: 0x49a000018d03a80149a000008d02a800
+#   z28<255:128>: 0x49a000038d03a80349a000028d02a802
+#   z28<383:256>: 0x49a000058d07a80549a000048d06a804
+#   z28<511:384>: 0x49a000078d07a80749a000068d06a806
+#   z28<639:512>: 0x49a000098d0ba80949a000088d0aa808
+#     z29<127:0>: 0x49b000018d83ac0149b000008d82ac00
+#   z29<255:128>: 0x49b000038d83ac0349b000028d82ac02
+#   z29<383:256>: 0x49b000058d87ac0549b000048d86ac04
+#   z29<511:384>: 0x49b000078d87ac0749b000068d86ac06
+#   z29<639:512>: 0x49b000098d8bac0949b000088d8aac08
+#     z30<127:0>: 0x49c000018e03b00149c000008e02b000
+#   z30<255:128>: 0x49c000038e03b00349c000028e02b002
+#   z30<383:256>: 0x49c000058e07b00549c000048e06b004
+#   z30<511:384>: 0x49c000078e07b00749c000068e06b006
+#   z30<639:512>: 0x49c000098e0bb00949c000088e0ab008
+#     z31<127:0>: 0x49d000018e83b40149d000008e82b400
+#   z31<255:128>: 0x49d000038e83b40349d000028e82b402
+#   z31<383:256>: 0x49d000058e87b40549d000048e86b404
+#   z31<511:384>: 0x49d000078e87b40749d000068e86b406
+#   z31<639:512>: 0x49d000098e8bb40949d000088e8ab408
+#       p0<15:0>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<47:32>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<79:64>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#       p1<15:0>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<31:16>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#      p1<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p1<63:48>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<79:64>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#       p2<15:0>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<31:16>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<47:32>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p2<79:64>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#       p3<15:0>: 0b 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1
+#      p3<31:16>: 0b 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1
+#      p3<47:32>: 0b 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1
+#      p3<63:48>: 0b 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1
+#      p3<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#       p4<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<31:16>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#      p4<47:32>: 0b 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1
+#      p4<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<79:64>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#       p5<15:0>: 0b 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p5<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1
+#      p5<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1
+#      p5<63:48>: 0b 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0
+#      p5<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1
+#       p6<15:0>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<31:16>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<47:32>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<63:48>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<79:64>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p7<15:0>: 0b 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
+#      p7<31:16>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1
+#      p7<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1
+#      p7<63:48>: 0b 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p7<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p8<15:0>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#      p8<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p8<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1
+#      p8<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#       p9<15:0>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p9<47:32>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p9<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1
+#      p10<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p10<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p10<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p11<15:0>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p11<31:16>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p11<79:64>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      FFR<15:0>: 0b 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
+#     FFR<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#            v13: 0x0000000000000000490ffff1110487fe
+#             v8: 0x0000000000000000000000000e02aff8
+#             d1:                 0x47f000007f823c00 (3.403e+38)
+#            s25:                         0x02825400 (1.915e-37)
+#             v1: 0x0000000000000000ffffffffffffffff
+#             v4: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#            d13:                 0x494002008a13204c (7.140e+44)
+#            s27:                         0x0e029fa8 (1.610e-30)
+#            v19: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v27: 0x0000000000000000ffffffffffffffff
+#            v31: 0x0000000000000000ffffffffffffffff
+#            v31: 0x000000000000000000000000ffffffff
+#             v1: 0x000000000000000000000000ffffffff
+#            v18: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ffffffffffffffff
+#            v11: 0x000000000000000000000000ffffffff
+#            v17: 0x00000000000000000000000000000000
+#            v24: 0x0000000000000000ffffffffffffffff
+#            v11: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+#            d10:                 0x0000000000000000
+#            s22:                         0xffffffff
+#             d4:                 0xfffffc0000000000
+#            d11:                 0x0000000000000000
+#             h8:                             0x7c00
+#            h12:                             0xffff
+#            s12:                         0x00000000
+#            s27:                         0x42800000
+#            v28: 0x00000000000000007fffffffffffffff
+#             v3: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#            v27: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000007fffffffffffffff
+#            v10: 0x00000000000000000000000000000000
+#             v0: 0x0000000000000000ffffffffffffffff
+#             v6: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000001
+#            v29: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
+#            v12: 0x00000000000000000000000000000001
+#            v15: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             d6:                 0x7ff0000000000000 (inf)
+#            s26:                         0x00000000 (0.000)
+#            d18:                 0x7fffffffffffffff
+#            s13:                         0x00000000
+#            d12:                 0x0000000000000000 (0.000)
+#            s12:                         0x00000000 (0.000)
+#            d28:                 0x0000000000000000 (0.000)
+#             s6:                         0x00000000 (0.000)
+#            d20:                 0x7fffffffffffffff (nan)
+#             s7:                         0x87027800 (-9.815e-35)
+#            d19:                 0x0000000000000001 (4.941e-324)
+#             s0:                         0xffffffff (nan)
+#            d13:                 0x0000000000000000
+#             d2:                 0x0000000000000000
+#             d8:                 0xc004000000000000
+#             s5:                         0x00000000
+#            s25:                         0x00000001
+#            s21:                         0x40380000
+#            d20:                 0xffffffffffffffff
+#             s5:                         0x00000000
+#            d30:                 0x0000000000000000 (0.000)
+#            s25:                         0x00000000 (0.000)
+#             v4: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            d15:                 0x80000000ffffffff (-2.122e-314)
+#            s14:                         0x7fffffff (nan)
+#             d0:                 0x87c0000086f277ff
+#             s0:                         0x7fffffff
+#            d19:                 0x8000000040380000
+#            s29:                         0x7fffffff
+#            d31:                 0x0000000000000000 (0.000)
+#            s18:                         0x80000000 (-0.000)
+#             v7: 0x00000000000000007ff0000000000000
+#            v29: 0x0000000000000000000000007f800000
+#            v11: 0x00000000000000004000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+#            v15: 0x00000000000000007fe0000000000000
+#             v5: 0x0000000000000000000000007f000000
+#            d16:                 0x0000000000000000 (0.000)
+#             s1:                         0xffffffff (nan)
+#            d19:                 0x0000000000000000 (0.000)
+#            s14:                         0x40400000 (3.000)
+#            d20:                 0x0000000000000000 (0.000)
+#             s1:                         0x00000000 (0.000)
+#            d30:                 0x0000000000000000 (0.000)
+#            s24:                         0x00000000 (0.000)
+#             d4:                 0x0000000000000000 (0.000)
+#            s13:                         0x00000000 (0.000)
+#            d13:                 0x0000000000000000 (0.000)
+#            s17:                         0x00000000 (0.000)
+#             d0:                 0xc000000000000000 (-2.000)
+#            s15:                         0x7f800000 (inf)
+#            v21: 0x00000000000000007ff0000000000000
+#            v17: 0x0000000000000000000000007f800000
+#             v4: 0x00000000000000003ff8000000000000
+#            v14: 0x0000000000000000000000003fc00000
+#            d14:                 0x1f56954b41cd4293 (1.028e-157)
+#             s4:                         0x40a21722 (5.065)
+#            d13:                 0xfff0000000000000 (-inf)
+#             s3:                         0x00000000 (0.000)
+#            v31: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             d6:                 0x0000000000000000
+#             d5:                 0x3f90000000000000
+#            d16:                 0x0000000000000000
+#            d15:                 0x0000000000000000
+#             v7: 0x00000000000000007ff000004e81442e
+#             v8: 0x0000000000000000c004000000000000
+#            s29:                         0x00000000
+#            s15:                         0x49800000
+#            s27:                         0x00000000
+#            s26:                         0x3c7fffff
+#             v0: 0x000000000000000043d21c000020e097
+#             v5: 0x00000000000000003effffffffe00000
+#            d30:                 0x0000000000000000
+#             d3:                 0x0000000000000000
+#            d28:                 0x41dfffffffc00000
+#            d27:                 0x0000000000000000
+#            v11: 0x0000000000000000400000004f7fe000
+#             v0: 0x000000000000000043d21c00480a8294
+#            s20:                         0x00000000
+#            s21:                         0x00000000
+#             s6:                         0x5f000000
+#             s7:                         0x38ff0000
+#            v19: 0x000000000000000043d21c00480a8294
+#            v16: 0x0000000000000000400000004f7f2000
+#             v0: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000003e01010101200000
+#            v29: 0x00000000000000000010000000000000
+#            v10: 0x00000000000000003f0000007f600000
+#            v31: 0x495000018a83940149500000d3029400
+#            v10: 0x495000018a83940168a6954c14cfd693
+#            v15: 0x00000000000000006328b14b89d7c527
+#            v27: 0x0000000000000000495000000a029400
+#            v25: 0x000000000000000041efffffffc00000
+#            v13: 0x00000000000000000000000037feffff
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x000000000000000000000000827f4696
+#            v10: 0x00000000000000000000000000003c7f
+#            v31: 0x0000000000000000000000000000ffff
+#            v16: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v31: 0x000000000000b87f000000000000ffff
+#            v14: 0x000000000000000043d21c00480a8294
+#             v3: 0x0000000020febf0000000000c4000000
+#             v8: 0x000000007f8000003effffffffe00000
+#            v22: 0x00000000000000003c7fffff00000000
+#            v29: 0x00000000000000005fd2ca9e00000000
+#            v30: 0x0000000000000000000000003c7fffff
+#            v12: 0x0000000000000000000037000000bbfe
+#            v17: 0x000000003700bbfe00007f803efeffe0
+#            v27: 0x00000000000000000000000000000075
+#            v12: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000003c7e
+#            v19: 0x00000000000000000000000000002a70
+#            v14: 0x00000000000000000000000000003c7e
+#            v10: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v26: 0x0000000020febf0000000000c4000000
+#             v7: 0x000000000000000000000000381b0000
+#            v28: 0x000000000000000040dfdcffdcc00000
+#            v29: 0x00000000000000005fd2ca1200000000
+#            v12: 0x0000000000000000000000000000ffff
+#            v18: 0x000000000000000000000000ff67ff67
+#            v12: 0x00000000007ebf000000000000000000
+#             v2: 0x0000000000000000495000008a828000
+#             v8: 0x000000007f8000003effffffcc000000
+#             v5: 0x00000000000000000000000000000000
+#             v9: 0x0100000008009801010000000800dc00
+#            v14: 0x000000000000000000000000c4000000
+#            v29: 0x07070707070707070707070707070707
+#            v21: 0x00000000000000000000001f0000001f
+#             v1: 0x0000000000000000000f000f000f000f
+#            v27: 0x0000001f0000001f0000001f0000001f
+#            v19: 0x00000000000000000707070707070707
+#            v15: 0x000f000f000f000f000f000f0001000f
+#             v1: 0x08080808080808080808080808080808
+#            v27: 0x00000000000000000000001100000002
+#             v9: 0x00000000000000000007001000040000
+#            v31: 0x0000000c0000000c0000000c0000000f
+#            v14: 0x00000000000000000505050505050505
+#             v6: 0x00100010001000100001001000010000
+#            v18: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v19: 0xffffffff000000ff0000000000ffffff
+#            v15: 0xffffffffffffffffff00ff00ff00ffff
+#            v12: 0xffffffffffffffffffffffffffffffff
+#             v8: 0xffffffffffffffff0000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000ffff00000000
+#            v16: 0x0000000000000000ffffffff00000000
+#            v21: 0xffffffff000000000000000000000000
+#             v6: 0xffffffffffffffff0000000000000000
+#            v16: 0x0000000000000000ffffffff00000000
+#            v21: 0x000000000000000000000000ffffffff
+#            v20: 0xffffffffffffffff000000000000ffff
+#            v26: 0x0000000000000000ffffffffffffffff
+#            v16: 0x00000000000000000000000000000000
+#            v25: 0x0000000000000000ffffffffffffffff
+#            v17: 0x0000000000ffffffffff00ff00ffffff
+#            v22: 0xffffffffffffffffffffffffffff0000
+#            v28: 0x0000000000000000ffffffffffffffff
+#             v6: 0xffffffffffffffffffffffffffffffff
+#            v25: 0x000000000000000000000000ffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
+#            v16: 0x0000000000000000ffffffff0000ffff
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v7: 0xffffffffffffffff0000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000ff00ff00ffff0000
+#            v21: 0x0000000000000000ffffffffffffffff
+#             v2: 0x0000000000000000ffffffffffffffff
+#            v19: 0xffffffffffffffff000000000000ffff
+#             v6: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v5: 0x0000000000000000ffffffffffffffff
+#            v12: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000000ffff
+#            v22: 0x00000000000000000000000000000000
+#             v5: 0x0000000000000000ffffffffffffffff
+#            v13: 0x00000000000000000000000000000000
+#            v27: 0x0000000000000000000000ff000000ff
+#             v5: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x000000000000000000000000ffffffff
+#            v31: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v11: 0x0000000000000000ffffffff00000000
+#             v1: 0x00000000000000000000000000000000
+#            v21: 0xffffffffffffffffffffffffffffffff
+#             v8: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000ffffffffffffffff
+#            v19: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000000000000000ffff
+#            v30: 0x0000000000000000ffffffffffffffff
+#             v0: 0xffffffff00ffffffffffffffffffffff
+#             v2: 0xffffffffffffffffffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#             v9: 0x0000000000000000ffffffffffffffff
+#             v9: 0xffffffffffffffffffffffffffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
+#            v29: 0xffffffffffffffffffffffffffffffff
+#            v25: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#            v25: 0x00000000000000000000000000000000
+#             v0: 0x0000000000000000ffffffff00000000
+#            v24: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000ffffffff00000000
+#             v1: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
+#            v26: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v11: 0x0000000000000000ff00ff00ffff0000
+#             v0: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000008080808
+#            v28: 0x00000000000000000000000000000000
+#             v6: 0xffffffffffffffffffffffffffffffff
+#             v9: 0x01010101010101010101010101010101
+#            v12: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ffffff7dffffff7d
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000ffffffffffffffff
+#            v31: 0x00000000000000000101010101010101
+#            v28: 0xffffffffffffffffffffffffffffffff
+#             v2: 0x00000000000000000000000000000000
+#            v29: 0x0000000000000000ffffff7df7f7f775
+#             v3: 0x0000000000000000ffffffffffffffff
+#             v1: 0xff000000000000000000000000000000
+#             v2: 0x000000000000000000ffffffffffffff
+#            v21: 0x3f3e3d3c3b3a39383736353433323130
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0b0a09080706050403020100fffefdfc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfb <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xeb <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xdb <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0x0a09080706050403020100fffefdfcfb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xeb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3a393837363534333231302f2e2d2c2b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x2a292827262524232221201f1e1d1c1b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x1a191817161514131211100f0e0d0c0b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x393837363534333231302f2e2d2c2b2a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x292827262524232221201f1e1d1c1b1a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x191817161514131211100f0e0d0c0b0a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x595857565554535251504f4e4d4c4b4a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x494847464544434241403f3e3d3c3b3a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x49 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x5857565554535251504f4e4d4c4b4a49
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x49 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x4847464544434241403f3e3d3c3b3a39
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x6867666564636261605f5e5d5c5b5a59
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x68 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x67666564636261605f5e5d5c5b5a5958
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8786858483828180 (-2.082e-272)
+#                                                  ╙─ 0x8786858483828180 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x7f7e7d7c7b7a7978 (1.338e+306)
+#                                                  ╙─ 0x7f7e7d7c7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x7776757473727170 (2.897e+267)
+#                                                  ╙─ 0x7776757473727170 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x6f6e6d6c6b6a6968 (5.766e+228)
+#                                                  ╙─ 0x6f6e6d6c6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x868584838281807f (-3.035e-277)
+#                                                  ╙─ 0x868584838281807f <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x767574737271706f (4.222e+262)
+#                                                  ╙─ 0x767574737271706f <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x6e6d6c6b6a696867 (8.509e+223)
+#                                                  ╙─ 0x6e6d6c6b6a696867 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x9e9d9c9b9a999897 (-3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x969594939291908f (-7.048e-200)
+#                                                  ╙─ 0x969594939291908f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8e8d8c8b8a898887 (-1.418e-238)
+#                                                  ╙─ 0x8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9d9c9b9a99989796 (-4.851e-166)
+#                                                  ╙─ 0x9d9c9b9a99989796 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x9594939291908f8e (-1.025e-204)
+#                                                  ╙─ 0x9594939291908f8e <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x8d8c8b8a89888786 (-2.090e-243)
+#                                                  ╙─ 0x8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xadacabaaa9a8a7a6 (-1.126e-88)
+#                                                  ╙─ 0xadacabaaa9a8a7a6 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xa5a4a3a2a1a09f9e (-2.382e-127)
+#                                                  ╙─ 0xa5a4a3a2a1a09f9e <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xacabaaa9a8a7a6a5 (-1.658e-93)
+#                                                  ╙─ 0xacabaaa9a8a7a6a5 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xa4a3a2a1a09f9e9d (-3.458e-132)
+#                                                  ╙─ 0xa4a3a2a1a09f9e9d <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xb4b3b2b1b0afaead (-8.033e-55)
+#                                                  ╙─ 0xb4b3b2b1b0afaead <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x3f3e3d3c3b3a39383736353433323130 (0.0004614, 9.958e-43)
+#                                  ║               ╙─ 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.391e+250, -7.078e+211)
+#                                  ║               ╙─ 0xebeae9e8e7e6e5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.459e+173, -3.049e+134)
+#                                  ║               ╙─ 0xdbdad9d8d7d6d5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.281e+95, -1.314e+57)
+#                                  ║               ╙─ 0xcbcac9c8c7c6c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd3d2d1d0cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.703e+18, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.900e+245, -1.040e+207)
+#                                  ║               ╙─ 0xeae9e8e7e6e5e4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.109e+168, -4.479e+129)
+#                                  ║               ╙─ 0xdad9d8d7d6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.073e+90, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.904e+13, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2221201f1e1d1c1b1a19181716151413 (2.743e-144, 5.906e-183)
+#                                  ║               ╙─ 0x1a19181716151413 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1211100f0e0d0c0b0a09080706050403 (1.180e-221, 2.544e-260)
+#                                  ║               ╙─ 0x0a09080706050403 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.078e-299, -2.414e+284)
+#                                  ║               ╙─ 0xfaf9f8f7f6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x21201f1e1d1c1b1a1918171615141312 (3.940e-149, 8.651e-188)
+#                                  ║               ╙─ 0x1918171615141312 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x21201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x11100f0e0d0c0b0a0908070605040302 (1.695e-226, 3.726e-265)
+#                                  ║               ╙─ 0x0908070605040302 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x11100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.747e-304, -3.541e+279)
+#                                  ║               ╙─ 0xf9f8f7f6f5f4f3f2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0100fffefdfcfbfa <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x41403f3e3d3c3b3a3938373635343332 (2.130e+06, 4.664e-33)
+#                                  ║               ╙─ 0x3938373635343332 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x41403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x31302f2e2d2c2b2a2928272625242322 (9.160e-72, 2.009e-110)
+#                                  ║               ╙─ 0x2928272625242322 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x31302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x403f3e3d3c3b3a393837363534333231 (31.24, 6.821e-38)
+#                                  ║               ╙─ 0x3837363534333231 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x302f2e2d2c2b2a292827262524232221 (1.346e-76, 2.938e-115)
+#                                  ║               ╙─ 0x2827262524232221 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x302f2e2d2c2b2a29 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x504f4e4d4c4b4a494847464544434241 (7.250e+78, 1.584e+40)
+#                                  ║               ╙─ 0x4847464544434241 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x4f4e4d4c4b4a49484746454443424140 (1.071e+74, 2.313e+35)
+#                                  ║               ╙─ 0x4746454443424140 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x4f4e4d4c4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x1f1e1d1c1b1a1918 (3.348e-20, 1.275e-22)
+#                                          ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x6f6e6d6c6b6a6968 (7.379e+28, 2.834e+26)
+#                                          ║       ╙─ 0x6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x6766656463626160 (1.088e+24, 4.176e+21)
+#                                          ║       ╙─ 0x63626160 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x67666564 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0x5f5e5d5c5b5a5958 (1.602e+19, 6.146e+16)
+#                                          ║       ╙─ 0x5b5a5958 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x5756555453525150 (2.357e+14, 9.033e+11)
+#                                          ║       ╙─ 0x53525150 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x57565554 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x6e6d6c6b6a696867 (1.837e+28, 7.054e+25)
+#                                          ║       ╙─ 0x6a696867 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x666564636261605f (2.708e+23, 1.039e+21)
+#                                          ║       ╙─ 0x6261605f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x66656463 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x5e5d5c5b5a595857 (3.988e+18, 1.529e+16)
+#                                          ║       ╙─ 0x5a595857 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x565554535251504f (5.864e+13, 2.247e+11)
+#                                          ║       ╙─ 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x868584838281807f (-5.022e-35, -1.903e-37)
+#                                          ║       ╙─ 0x8281807f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x86858483 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (8.424e+37, 3.238e+35)
+#                                          ║       ╙─ 0x7a797877 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7e7d7c7b <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0x767574737271706f (1.245e+33, 4.782e+30)
+#                                          ║       ╙─ 0x7271706f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8584838281807f7e (-1.246e-35, -4.720e-38)
+#                                          ║       ╙─ 0x81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x85848382 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x7d7c7b7a79787776 (2.098e+37, 8.063e+34)
+#                                          ║       ╙─ 0x79787776 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7d7c7b7a <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x7574737271706f6e (3.099e+32, 1.191e+30)
+#                                          ║       ╙─ 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9594939291908f8e (-6.001e-26, -2.281e-28)
+#                                          ║       ╙─ 0x91908f8e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x95949392 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x8d8c8b8a89888786 (-8.662e-31, -3.287e-33)
+#                                          ║       ╙─ 0x89888786 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8d8c8b8a <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x94939291908f8e8d (-1.490e-26, -5.662e-29)
+#                                          ║       ╙─ 0x908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x94939291 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0x8c8b8a8988878685 (-2.150e-31, -8.157e-34)
+#                                          ║       ╙─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x9c9b9a9998979695 (-1.030e-21, -3.918e-24)
+#                                          ║       ╙─ 0x98979695 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9b9a999897969594 (-2.558e-22, -9.731e-25)
+#                                          ║       ╙─ 0x97969594 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9b9a9998 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1f1e1d1c1b1a1918 (0.006950, 0.004990, 0.003468, 0.002487)
+#                                      ║   ║   ║   ╙─ 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d16:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xbbbab9b8b7b6b5b4 (-0.9658, -0.7148, -0.4819, -0.3564)
+#                                      ║   ║   ║   ╙─ 0xb5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb7b6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb9b8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xb3b2b1b0afaeadac (-0.2405, -0.1777, -0.1200, -0.08862)
+#                                      ║   ║   ║   ╙─ 0xadac <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xafae <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb1b0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb3b2 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xabaaa9a8a7a6a5a4 (-0.05988, -0.04419, -0.02988, -0.02203)
+#                                      ║   ║   ║   ╙─ 0xa5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa7a6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa9a8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xabaa <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xa3a2a1a09f9e9d9c (-0.01491, -0.01099, -0.007439, -0.005478)
+#                                      ║   ║   ║   ╙─ 0x9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9f9e <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa1a0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa3a2 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3 (-0.8403, -0.5894, -0.4192, -0.2937)
+#                                      ║   ║   ║   ╙─ 0xb4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb6b5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb8b7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbab9 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab (-0.2091, -0.1464, -0.1043, -0.07294)
+#                                      ║   ║   ║   ╙─ 0xacab <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xaead <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb0af <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb2b1 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3 (-0.05203, -0.03635, -0.02596, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa8a7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xaaa9 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xa2a1a09f9e9d9c9b (-0.01295, -0.009026, -0.006458, -0.004498)
+#                                      ║   ║   ║   ╙─ 0x9c9b <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa09f <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa2a1 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xd2d1d0cfcecdcccb (-54.53, -38.47, -27.20, -19.17)
+#                                      ║   ║   ║   ╙─ 0xcccb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcecd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xcac9c8c7c6c5c4c3 (-13.57, -9.555, -6.770, -4.762)
+#                                      ║   ║   ║   ╙─ 0xc4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc6c5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc8c7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xcac9 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xc2c1c0bfbebdbcbb (-3.377, -2.373, -1.685, -1.183)
+#                                      ║   ║   ║   ╙─ 0xbcbb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbebd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc0bf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc2c1 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0xd1d0cfcecdcccbca (-46.50, -31.22, -23.19, -15.58)
+#                                      ║   ║   ║   ╙─ 0xcbca <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcdcc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xcfce <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xc9c8c7c6c5c4c3c2 (-11.56, -7.773, -5.766, -3.879)
+#                                      ║   ║   ║   ╙─ 0xc3c2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc7c6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc9c8 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xc1c0bfbebdbcbbba (-2.875, -1.936, -1.434, -0.9658)
+#                                      ║   ║   ║   ╙─ 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbdbc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xbfbe <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc1c0 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xe1e0dfdedddcdbda (-752.0, -503.5, -375.0, -251.2)
+#                                      ║   ║   ║   ╙─ 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xd9d8d7d6d5d4d3d2 (-187.0, -125.4, -93.25, -62.56)
+#                                      ║   ║   ║   ╙─ 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xe0dfdedddcdbdad9 (-623.5, -439.2, -310.8, -219.1)
+#                                      ║   ║   ║   ╙─ 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xd8d7d6d5d4d3d2d1 (-154.9, -109.3, -77.19, -54.53)
+#                                      ║   ║   ║   ╙─ 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe8e7e6e5e4e3e2e1 (-2510., -1765., -1251., -880.5)
+#                                      ║   ║   ║   ╙─ 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xe7e6e5e4e3e2e1e0 (-2022., -1508., -1009., -752.0)
+#                                      ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x3f3e3d3c3b3a39383736353433323130 (0.7431, 0.002842, 1.086e-05, 4.149e-08)
+#                          ║       ║       ║       ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x27262524232221201f1e1d1c1b1a1918 (2.306e-15, 8.789e-18, 3.348e-20, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x17161514131211100f0e0d0c0b0a0908 (4.849e-25, 1.844e-27, 7.004e-30, 2.658e-32)
+#                          ║       ║       ║       ╙─ 0x0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x17161514 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.008e-34, 3.820e-37, nan, -2.606e+36)
+#                          ║       ║       ║       ╙─ 0xfbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.002e+34, -3.850e+31, -1.479e+29, -5.680e+26)
+#                          ║       ║       ║       ╙─ 0xebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xefeeedec <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf7f6f5f4 <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x262524232221201f1e1d1c1b1a191817 (5.729e-16, 2.184e-18, 8.317e-21, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2221201f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x26252423 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x161514131211100f0e0d0c0b0a090807 (1.204e-25, 4.577e-28, 1.739e-30, 6.598e-33)
+#                          ║       ║       ║       ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x16151413 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.502e-35, 9.478e-38, -1.688e+38, -6.490e+35)
+#                          ║       ║       ║       ╙─ 0xfaf9f8f7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x020100ff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x06050403 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.494e+33, -9.584e+30, -3.682e+28, -1.414e+26)
+#                          ║       ║       ║       ╙─ 0xeae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf2f1f0ef <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x565554535251504f4e4d4c4b4a494847 (5.864e+13, 2.247e+11, 8.611e+08, 3.298e+06)
+#                          ║       ║       ║       ╙─ 0x4a494847 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4e4d4c4b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0x464544434241403f3e3d3c3b3a393837 (1.263e+04, 48.31, 0.1848, 0.0007066)
+#                          ║       ║       ║       ╙─ 0x3a393837 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3e3d3c3b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x4241403f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x46454443 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x363534333231302f2e2d2c2b2a292827 (2.700e-06, 1.031e-08, 3.937e-11, 1.502e-13)
+#                          ║       ║       ║       ╙─ 0x2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x36353433 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x5554535251504f4e4d4c4b4a49484746 (1.459e+13, 5.592e+10, 2.142e+08, 8.203e+05)
+#                          ║       ║       ║       ╙─ 0x49484746 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x51504f4e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x55545352 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e3d3c3b3a39383736 (3140., 12.02, 0.04595, 0.0001757)
+#                          ║       ║       ║       ╙─ 0x39383736 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x41403f3e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x45444342 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3534333231302f2e2d2c2b2a29282726 (6.713e-07, 2.564e-09, 9.787e-12, 3.734e-14)
+#                          ║       ║       ║       ╙─ 0x29282726 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x31302f2e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x35343332 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x7574737271706f6e6d6c6b6a69686766 (3.099e+32, 1.191e+30, 4.573e+27, 1.756e+25)
+#                          ║       ║       ║       ╙─ 0x69686766 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6d6c6b6a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x6564636261605f5e5d5c5b5a59585756 (6.741e+22, 2.587e+20, 9.924e+17, 3.806e+15)
+#                          ║       ║       ║       ╙─ 0x59585756 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5d5c5b5a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x61605f5e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x65646362 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x74737271706f6e6d6c6b6a6968676665 (7.715e+31, 2.964e+29, 1.138e+27, 4.371e+24)
+#                          ║       ║       ║       ╙─ 0x68676665 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6c6b6a69 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x706f6e6d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x74737271 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0x64636261605f5e5d5c5b5a5958575655 (1.678e+22, 6.438e+19, 2.470e+17, 9.471e+14)
+#                          ║       ║       ║       ╙─ 0x58575655 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x605f5e5d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x64636261 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.092e-36, -1.171e-38, 5.223e+36, 2.008e+34)
+#                          ║       ║       ║       ╙─ 0x78777675 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x84838281 <- 0x~~~~~~~~~~~~~~~~
+#             v0: 0x838281807f7e7d7c7b7a797877767574 (-7.670e-37, 3.383e+38, 1.301e+36, 4.999e+33)
+#                          ║       ║       ║       ╙─ 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x83828180 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x1f1e1d1c1b1a1918
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xa3a2a1a09f9e9d9c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x9b9a999897969594
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9b <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x939291908f8e8d8c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x93 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x8b8a898887868584
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8b <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa2a1a09f9e9d9c9b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9a99989796959493
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x93 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x9291908f8e8d8c8b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x8a89888786858483
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x83 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xba <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xaa <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xb9b8b7b6b5b4b3b2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0xb1b0afaeadacabaa
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xaa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa9a8a7a6a5a4a3a2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xc9c8c7c6c5c4c3c2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xc1c0bfbebdbcbbba
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xc8c7c6c5c4c3c2c1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xc0bfbebdbcbbbab9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xd0cfcecdcccbcac9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xcfcecdcccbcac9c8
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0x3f3e3d3c3b3a39383736353433323130 (1.811, 1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0f0e0d0c0b0a09080706050403020100 (0.0004306, 0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 (nan, nan, -6.534e+04, -4.890e+04, -3.261e+04, -2.438e+04, -1.627e+04, -1.216e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf1f0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf3f2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf5f4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf7f6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfbfa <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfdfc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 (-8120., -6064., -4052., -3024., -2022., -1508., -1009., -752.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe9e8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xebea <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xedec <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xefee <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 (-503.5, -375.0, -251.2, -187.0, -125.4, -93.25, -62.56, -46.50)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b0a09080706050403020100ff (0.0003693, 0.0002468, 0.0001842, 0.0001229, 9.185e-05, 6.121e-05, 3.058e-05, 1.520e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0201 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0605 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0807 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0a09 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0c0b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0e0d <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef (nan, nan, -5.712e+04, -4.067e+04, -2.850e+04, -2.027e+04, -1.422e+04, -1.010e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf0ef <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf2f1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf4f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf6f5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf8f7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfcfb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfefd <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df (-7092., -5036., -3538., -2510., -1765., -1251., -880.5, -623.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xeae9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xeceb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xeeed <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf (-439.2, -310.8, -219.1, -154.9, -109.3, -77.19, -54.53, -38.47)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3e3d3c3b3a393837363534333231302f (1.560, 1.058, 0.7778, 0.5269, 0.3879, 0.2625, 0.1935, 0.1307)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x302f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3433 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3635 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3837 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3c3b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2e2d2c2b2a292827262524232221201f (0.09650, 0.06512, 0.04813, 0.03244, 0.02400, 0.01616, 0.01197, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2e2d <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1e1d1c1b1a191817161514131211100f (0.005970, 0.004009, 0.002977, 0.001997, 0.001485, 0.0009947, 0.0007405, 0.0004954)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x100f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1211 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1413 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1615 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1e1d <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a393837363534333231302f2e (1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x5d5c5b5a595857565554535251504f4e (343.0, 235.2, 171.0, 117.4, 85.25, 58.56, 42.50, 29.22)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4f4e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5150 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5554 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5958 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5b5a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857565554535251504f4e4d (278.8, 203.1, 138.9, 101.3, 69.19, 50.53, 34.47, 25.20)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4e4d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x504f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5251 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5453 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5857 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5a59 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5c5b <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x4c4b4a494847464544434241403f3e3d (17.17, 12.57, 8.555, 6.270, 4.262, 3.127, 2.123, 1.560)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x403f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4443 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4645 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4c4b <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a696867666564636261605f5e5d (4524., 3282., 2254., 1637., 1123., 816.5, 559.5, 407.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5e5d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6463 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6665 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6a69 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6c6b <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x6b6a696867666564636261605f5e5d5c (3796., 2768., 1894., 1380., 945.0, 688.0, 471.5, 343.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6766 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6b6a <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a39383736353433323130012e
+#                                                ╙─── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef
+#                                            ╙─────── 0x6c <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a6b6867666564636261605f5e5d
+#                          ╙───────────────────────── 0x6b <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.487e+303, ...)
+#                                  ╙───────────────── 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x737271706f6e6d6c636261605f5e5d5c (1.290e+248, ...)
+#                                  ╙───────────────── 0x737271706f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x7271706f6e6d6c6b2726252423222120 (1.861e+243, ...)
+#                                  ╙───────────────── 0x7271706f6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3aff013736353433323130012e (..., nan, ...)
+#                              ╙───────────────────── 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d37473d0cf (..., 1.822e+04, ...)
+#                                              ╙───── 0x7473 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857737254535251504f4e4d (..., 1.525e+04, ...)
+#                                  ╙───────────────── 0x7372 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.751e-40, ...)
+#                                  ╙───────────────── 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.999e+33, ...)
+#                                  ╙───────────────── 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#             v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.245e+33, ...)
+#                                  ╙───────────────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x01010101010101010101010101010101
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x77777777777777777777777777777777
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x77 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x76767676767676767676767676767676
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x76 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x7d7c7b7a79787776 (2.911e+296)
+#                                                  ╙─ 0x7d7c7b7a79787776 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#                                  ╙───────────────╨─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8584838281807f7e8584838281807f7e (-4.414e-282, -4.414e-282)
+#                                  ╙───────────────╨─ 0x8584838281807f7e <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84838281807f7e7d84838281807f7e7d (-6.406e-287, -6.406e-287)
+#                                  ╙───────────────╨─ 0x84838281807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#                                          ╙───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x8887868588878685 (-8.157e-34, -8.157e-34)
+#                                          ╙───────╨─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x8786858487868584 (-2.024e-34, -2.024e-34)
+#                                          ╙───────╨─ 0x87868584 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8988898889888988 (-0.0001688, -0.0001688, -0.0001688, -0.0001688)
+#                                      ╙───╨───╨───╨─ 0x8988 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x8887888788878887 (-0.0001382, -0.0001382, -0.0001382, -0.0001382)
+#                                      ╙───╨───╨───╨─ 0x8887 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#                          ╙───────╨───────╨───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (-2.150e-31, -2.150e-31, -2.150e-31, -2.150e-31)
+#                          ╙───────╨───────╨───────╨─ 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0x8b8a89888b8a89888b8a89888b8a8988 (-5.336e-32, -5.336e-32, -5.336e-32, -5.336e-32)
+#                          ╙───────╨───────╨───────╨─ 0x8b8a8988 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x8c8c8c8c8c8c8c8c
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8b8b8b8b8b8b8b8b
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c (-0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8d8c <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b (-0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8c8b <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1e1c1a18000000000000ffff00850201
+#            v22: 0x1f1d1b1917000000000000feff0000ff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x17'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1b'1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f'1e <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#            v22: 0xacaaa8a6a4a2a09e9c9a98969492908e
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x92'91 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x98'97 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa4'a3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaa'a9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xac'ab <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c
+#            v13: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x8f'8e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x95'94 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa1'a0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa7'a6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xa9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xab'aa <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x1700000000000000ff0000850002ff01 (6.689e-198, -5.487e+303)
+#            v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.568e-159, 8.289e-317)
+#                                  ║               ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.703e+18, -1.163e-59)
+#             v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.314e+57, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4'b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcbcac9c8c7c6c5c4'c3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.904e+13, -1.680e-64)
+#            v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.929e+52, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3'b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00fffeff0002ff01 (2.351e-38, 2.751e-40)
+#            d28:                 0x00000000ff000085 (0.000, -1.701e+38)
+#                                          ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xd6d5d4d3cecdcccb (-1.176e+14, -1.726e+09)
+#             d3:                 0xdad9d8d7d2d1d0cf (-3.066e+16, -4.506e+11)
+#                                          ║       ╙─ 0xd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xdad9d8d7'd6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xd5d4d3d2cdcccbca (-2.925e+13, -4.295e+08)
+#            d13:                 0xd9d8d7d6d1d0cfce (-7.629e+15, -1.121e+11)
+#                                          ║       ╙─ 0xd1d0cfce'cdcccbca <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x0000feff0085ff01 (0.000, nan, 7.927e-06, nan)
+#            d10:                 0x000000ffff000002 (0.000, 1.520e-05, nan, 1.192e-07)
+#                                      ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe7e6e3e2dfdedbda (-2022., -1009., -503.5, -251.2)
+#            d24:                 0xe9e8e5e4e1e0dddc (-3024., -1508., -752.0, -375.0)
+#                                      ║   ║   ║   ╙─ 0xdddc'dbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe1e0'dfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe9e8'e7e6 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe6e5e2e1dedddad9 (-1765., -880.5, -439.2, -219.1)
+#             d2:                 0xe8e7e4e3e0dfdcdb (-2510., -1251., -623.5, -310.8)
+#                                      ║   ║   ║   ╙─ 0xdcdb'dad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe0df'dedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7'e6e5 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x1b1a19180000000000fffeff0002ff01 (1.275e-22, 0.000, 2.351e-38, 2.751e-40)
+#            v21: 0x1f1e1d1c1700000000000000ff000085 (3.348e-20, 4.136e-25, 0.000, -1.701e+38)
+#                          ║       ║       ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.540e-36, -1.047e+37, -1.546e+32, -2.282e+27)
+#            v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.063e-34, 2.351e-38, -4.023e+34, -5.940e+29)
+#                          ║       ║       ║       ╙─ 0xf0efeeed'ecebeae9 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf8f7f6f5'f4f3f2f1 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffefd'fcfbfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x08070605'04030201 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.820e-37, -2.606e+36, -3.850e+31, -5.680e+26)
+#            v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.008e-34, nan, -1.002e+34, -1.479e+29)
+#                          ║       ║       ║       ╙─ 0xefeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf7f6f5f4'f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xfffefdfc'fbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504'03020100 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000ffff00850201
+#            d18:                 0x000000feff0000ff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x161412100e0c0a08
+#            d14:                 0x171513110f0d0b09
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x09'08 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x11'10 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'16 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1513110f0d0b0907
+#             d8:                 0x161412100e0c0a08
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0a'09 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0e'0d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x16'15 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c1918000000000000feff0085ff01 (0.004990, 0.002487, 0.000, 0.000, 0.000, nan, 7.927e-06, nan)
+#            v31: 0x1f1e1b1a17000000000000ffff000002 (0.006950, 0.003468, 0.001709, 0.000, 0.000, 1.520e-05, nan, 1.192e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1700'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x3433302f2c2b28272423201f1c1b1817 (0.2625, 0.1307, 0.06512, 0.03244, 0.01616, 0.008049, 0.004009, 0.001997)
+#             v5: 0x363532312e2d2a29262522211e1d1a19 (0.3879, 0.1935, 0.09650, 0.04813, 0.02400, 0.01197, 0.005970, 0.002977)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1a19'1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1e1d'1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2221'201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625'2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2a29'2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2e2d'2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3231'302f <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3635'3433 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x33322f2e2b2a272623221f1e1b1a1716 (0.2249, 0.1122, 0.05597, 0.02792, 0.01393, 0.006950, 0.003468, 0.001730)
+#            v14: 0x353431302d2c2928252421201d1c1918 (0.3252, 0.1621, 0.08081, 0.04028, 0.02008, 0.01001, 0.004990, 0.002487)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928'2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x363532012e2d2a29262522211e1d1a19
+#             v6: 0x1f1e1dff1b1a19181700000000000000
+#                          ╙───────────────────────── 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e363c3b3a39383736
+#            v17: 0x00000000000000003700ffff00850201
+#                                    ╙─────────────── 0x37'36 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfb35f9f8
+#            v30: 0x1d1c1918000000000000feff0036ff01
+#                                              ╙───── 0x36'35 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.487e+303, ...)
+#            v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.289e-317, ...)
+#                                  ╙───────────────── 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x00000000000000003e3d3c3b3a393837 (..., 6.807e-09)
+#            v27: 0x0000000000000000464544434241403f (..., 3.370e+30)
+#                                                  ╙─ 0x464544434241403f'3e3d3c3b3a393837 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x07060504fffefdfc3d3c3b3a39383736 (..., 1.003e-13)
+#            v26: 0x00000000000000004544434241403f3e (..., 4.899e+25)
+#                                                  ╙─ 0x4544434241403f3e'3d3c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0xff01000000000000000000feff0000ff (nan, ...)
+#            v19: 0x00020000000000008b8b8b8b8b8b8b8b (1.192e-07, ...)
+#                      ╙───────────────────────────── 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x00000000474600003700ffff00850201 (..., 7.273, ...)
+#            v18: 0xff01000049480000000000feff0000ff (..., 10.56, ...)
+#                              ╙───────────────────── 0x4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c191800000000000046450036ff01 (..., 6.270, ...)
+#            v31: 0x1f1e1b1a1700000000004847ff000002 (..., 8.555, ...)
+#                                          ╙───────── 0x4847'4645 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.751e-40, ...)
+#            v30: 0xff00008500000000000046450036ff01 (-1.701e+38, ...)
+#                          ╙───────────────────────── 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000000000000000004c4b4a49 (..., 5.329e+07)
+#            v29: 0x0002ff0103020100fffefdfc504f4e4d (..., 1.391e+10)
+#                                                  ╙─ 0x504f4e4d'4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.326e+07, ...)
+#             v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.461e+09, ...)
+#                                          ╙───────── 0x4f4e4d4c'4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x01010101010101010101010101010101
+#            v27: 0xffffffffffffffffffffffffffffffff
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x50505050505050505050505050505050
+#            v22: 0x51515151515151515151515151515151
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x51'50 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f
+#             v6: 0x50505050505050505050505050505050
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x50'4f <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-5.487e+303)
+#            d27:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x5857565554535251 (3.678e+117)
+#            d15:                 0x605f5e5d5c5b5a59 (1.682e+156)
+#                                                  ╙─ 0x605f5e5d5c5b5a59'5857565554535251 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x5756555453525150 (5.371e+112)
+#            d24:                 0x5f5e5d5c5b5a5958 (2.485e+151)
+#                                                  ╙─ 0x5f5e5d5c5b5a5958'5756555453525150 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v12: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#                                  ╙───────────────╨─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x67666564636261606766656463626160 (1.247e+190, 1.247e+190)
+#            v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.766e+228, 5.766e+228)
+#                                  ╙───────────────╨─ 0x6f6e6d6c6b6a6968'6766656463626160 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x666564636261605f666564636261605f (1.818e+185, 1.818e+185)
+#            v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.509e+223, 8.509e+223)
+#                                  ╙───────────────╨─ 0x6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d27:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#                                          ╙───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x7271706f7271706f (4.782e+30, 4.782e+30)
+#            d23:                 0x7675747376757473 (1.245e+33, 1.245e+33)
+#                                          ╙───────╨─ 0x76757473'7271706f <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x71706f6e71706f6e (1.191e+30, 1.191e+30)
+#             d3:                 0x7574737275747372 (3.099e+32, 3.099e+32)
+#                                          ╙───────╨─ 0x75747372'71706f6e <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#             d3:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                                      ╙───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7776777677767776 (3.056e+04, 3.056e+04, 3.056e+04, 3.056e+04)
+#            d10:                 0x7978797879787978 (4.480e+04, 4.480e+04, 4.480e+04, 4.480e+04)
+#                                      ╙───╨───╨───╨─ 0x7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x7675767576757675 (2.645e+04, 2.645e+04, 2.645e+04, 2.645e+04)
+#             d7:                 0x7877787778777877 (3.658e+04, 3.658e+04, 3.658e+04, 3.658e+04)
+#                                      ╙───╨───╨───╨─ 0x7877'7675 <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#             v8: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#                          ╙───────╨───────╨───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (5.223e+36, 5.223e+36, 5.223e+36, 5.223e+36)
+#            v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (-1.171e-38, -1.171e-38, -1.171e-38, -1.171e-38)
+#                          ╙───────╨───────╨───────╨─ 0x807f7e7d'7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x7b7a79787b7a79787b7a79787b7a7978 (1.301e+36, 1.301e+36, 1.301e+36, 1.301e+36)
+#            v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (3.383e+38, 3.383e+38, 3.383e+38, 3.383e+38)
+#                          ╙───────╨───────╨───────╨─ 0x7f7e7d7c'7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#            d27:                 0xffffffffffffffff
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8080808080808080
+#            d21:                 0x8181818181818181
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x81'80 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x7f7f7f7f7f7f7f7f
+#            d12:                 0x8080808080808080
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x80'7f <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v13: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x82818281828182818281828182818281 (-3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05)
+#             v7: 0x84838483848384838483848384838483 (-6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8483'8281 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x81808180818081808180818081808180 (-2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05)
+#            v26: 0x83828382838283828382838283828382 (-5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2d2a2724211e1b1800000000fe000001
+#            v21: 0x2e2b2825221f1c1900000000ffff85ff
+#            v22: 0x2f2c292623201d1a1700000000ff0002
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x20'1f'1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x23'22'21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2c'2b'2a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f'2e'2d <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v29: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#            v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x89'88'87 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8c'8b'8a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8f'8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x95'94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x98'97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa1'a0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa4'a3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa7'a6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xaa'a9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xad'ac'ab <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb3'b2'b1 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0xb0adaaa7a4a19e9b9895928f8c898683
+#            v21: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v22: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x85'84'83 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x88'87'86 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8b'8a'89 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8e'8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x91'90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x94'93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x97'96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9a'99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa3'a2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa6'a5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa9'a8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xac'ab'aa <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb2'b1'b0 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.568e-159, -5.487e+303)
+#            v22: 0x27262524232221200000000000fffeff (4.288e-120, 8.289e-317)
+#            v23: 0x2f2e2d2c2b2a29281700000000000000 (1.988e-81, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928'2726252423222120'1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.073e+90, -8.311e-26)
+#            v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.479e+129, -3.904e+13)
+#            v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.109e+168, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb'dad9d8d7d6d5d4d3'd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.306e+86, -1.219e-30)
+#            v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.569e+124, -5.620e+08)
+#            v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.037e+163, -2.829e+47)
+#                                  ║               ╙─ 0xc9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe1e0dfdedddcdbda'd9d8d7d6d5d4d3d2'd1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x000000000002ff01 (0.000, 2.751e-40)
+#             d8:                 0x00000000ff000085 (0.000, -1.701e+38)
+#             d9:                 0x1700000000fffeff (4.136e-25, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xf1f0efeee5e4e3e2 (-2.386e+30, -1.351e+23)
+#            d21:                 0xf5f4f3f2e9e8e7e6 (-6.210e+32, -3.520e+25)
+#            d22:                 0xf9f8f7f6edecebea (-1.616e+35, -9.165e+27)
+#                                          ║       ╙─ 0xedecebea'e9e8e7e6'e5e4e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xf0efeeede4e3e2e1 (-5.940e+29, -3.363e+22)
+#            d27:                 0xf4f3f2f1e8e7e6e5 (-1.546e+32, -8.761e+24)
+#            d28:                 0xf8f7f6f5ecebeae9 (-4.023e+34, -2.282e+27)
+#                                          ║       ╙─ 0xecebeae9'e8e7e6e5'e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00000000ff00ff01 (0.000, 0.000, nan, nan)
+#            d28:                 0x00000000feff0002 (0.000, 0.000, nan, 1.192e-07)
+#            d29:                 0x1700000000ff0085 (0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                                      ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x0c0b060500fffaf9 (0.0002468, 9.185e-05, 1.520e-05, -5.712e+04)
+#            d29:                 0x0e0d08070201fcfb (0.0003693, 0.0001229, 3.058e-05, nan)
+#            d30:                 0x100f0a090403fefd (0.0004954, 0.0001842, 6.121e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0403'0201'00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0a09'0807'0605 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x100f'0e0d'0c0b <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x0b0a0504fffef9f8 (0.0002148, 7.653e-05, nan, -4.890e+04)
+#             d8:                 0x0d0c07060100fbfa (0.0003080, 0.0001072, 1.526e-05, -6.534e+04)
+#             d9:                 0x0f0e09080302fdfc (0.0004306, 0.0001535, 4.590e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfdfc'fbfa'f9f8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0302'0100'fffe <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0908'0706'0504 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0f0e'0d0c'0b0a <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x272625241b1a1918000000000002ff01 (2.306e-15, 1.275e-22, 0.000, 2.751e-40)
+#             v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.045e-13, 3.348e-20, 0.000, -1.701e+38)
+#             v4: 0x2f2e2d2c232221201700000000fffeff (1.584e-10, 8.789e-18, 4.136e-25, 2.351e-38)
+#                          ║       ║       ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120'1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c'2b2a2928'27262524 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x373635342b2a29281f1e1d1c13121110 (1.086e-05, 6.045e-13, 3.348e-20, 1.844e-27)
+#            v25: 0x3b3a39382f2e2d2c2322212017161514 (0.002842, 1.584e-10, 8.789e-18, 4.849e-25)
+#            v26: 0x3f3e3d3c33323130272625241b1a1918 (0.7431, 4.149e-08, 2.306e-15, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918'17161514'13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x33323130'2f2e2d2c'2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0x363534332a2928271e1d1c1b1211100f (2.700e-06, 1.502e-13, 8.317e-21, 4.577e-28)
+#            v12: 0x3a3938372e2d2c2b2221201f16151413 (0.0007066, 3.937e-11, 2.184e-18, 1.204e-25)
+#            v13: 0x3e3d3c3b3231302f262524231a191817 (0.1848, 1.031e-08, 5.729e-16, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817'16151413'1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x26252423'2221201f'1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f'2e2d2c2b'2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3e3d3c3b'3a393837'36353433 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x00000000fe000001
+#            d30:                 0x00000000ffff85ff
+#            d31:                 0x1700000000ff0002
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x54514e4b4845423f
+#             d2:                 0x55524f4c49464340
+#             d3:                 0x5653504d4a474441
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x41'40'3f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x44'43'42 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x47'46'45 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x4a'49'48 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4d'4c'4b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x50'4f'4e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x53'52'51 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x56'55'54 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x53504d4a4744413e
+#            d13:                 0x54514e4b4845423f
+#            d14:                 0x55524f4c49464340
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40'3f'3e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x43'42'41 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x46'45'44 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x49'48'47 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4c'4b'4a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x4f'4e'4d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x52'51'50 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x55'54'53 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x2b2a25241f1e191800000000ff00ff01 (0.05597, 0.02008, 0.006950, 0.002487, 0.000, 0.000, nan, nan)
+#            v23: 0x2d2c272621201b1a00000000feff0002 (0.08081, 0.02792, 0.01001, 0.003468, 0.000, 0.000, nan, 1.192e-07)
+#            v24: 0x2f2e292823221d1c1700000000ff0085 (0.1122, 0.04028, 0.01393, 0.004990, 0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2322'2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2928'2726'2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e696863625d5c5756 (-2.289e-05, 6.125e+04, 2.234e+04, 7608., 2768., 945.0, 343.0, 117.4)
+#            v14: 0x83827d7c777671706b6a65645f5e5958 (-5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5, 171.0)
+#            v15: 0x85847f7e797873726d6c676661605b5a (-8.416e-05, nan, 4.480e+04, 1.525e+04, 5552., 1894., 688.0, 235.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5b5a'5958'5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6160'5f5e'5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6766'6564'6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6d6c'6b6a'6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7372'7170'6f6e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7978'7776'7574 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8584'8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x807f7a7974736e6d686762615c5b5655 (-7.570e-06, 5.302e+04, 1.822e+04, 6580., 2254., 816.5, 278.8, 101.3)
+#            v29: 0x82817c7b7675706f6a6964635e5d5857 (-3.821e-05, nan, 2.645e+04, 9080., 3282., 1123., 407.2, 138.9)
+#            v30: 0x84837e7d787772716c6b6665605f5a59 (-6.884e-05, nan, 3.658e+04, 1.319e+04, 4524., 1637., 559.5, 203.1)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5a59'5857'5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f'5e5d'5c5b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6665'6463'6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6c6b'6a69'6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7271'706f'6e6d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7877'7675'7473 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7e7d'7c7b'7a79 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8483'8281'807f <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x0000000001000000f5f4f3f2e9e8e7e6
+#            v22: 0x2b2a2524ff1e191800000000ff00ff01
+#            v23: 0x2d2c272602201b1a00000000feff0002
+#                            ╙─────────────────────── 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f
+#             v6: 0x82818281828186818281828182818281
+#             v7: 0x00000000000087000b0a0504fffef9f8
+#                                ╙─────────────────── 0x87'86'85 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0x2d2c272602201b1a00000000feff0084
+#            v24: 0x2f2e292823221d1c1700000000ff0085
+#            v25: 0x3b3a39382f2e2d2c2322212017161586
+#                                                  ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6e6d6c6b6a696867ff0000850002ff01 (..., -5.487e+303)
+#            v17: 0x00000000474600000000000000fffeff (..., 8.289e-317)
+#            v18: 0xd2d1d0cfcecdcccb1700000000000000 (..., 6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84837e7d787772718e8d8c8b8a898887 (..., -1.418e-238)
+#            v31: 0x0000000000000000969594939291908f (..., -7.048e-200)
+#             v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (..., -3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897'969594939291908f'8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.090e-243, ...)
+#            v29: 0x9594939291908f8e6a6964635e5d5857 (-1.025e-204, ...)
+#            v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.851e-166, ...)
+#                                  ╙───────────────── 0x9d9c9b9a99989796'9594939291908f8e'8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e6968ff015d5c5756 (..., nan, ...)
+#            v14: 0x83827d7c777671706b6a00025f5e5958 (..., 1.192e-07, ...)
+#            v15: 0x85847f7e797873726d6c008561605b5a (..., 7.927e-06, ...)
+#                                          ╙───────── 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x9f9e2524ff1e191800000000ff00ff01 (-0.007439, ...)
+#            v23: 0xa1a0272602201b1a00000000feff0084 (-0.01099, ...)
+#            v24: 0xa3a2292823221d1c1700000000ff0085 (-0.01491, ...)
+#                      ╙───────────────────────────── 0xa3a2'a1a0'9f9e <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x83827d7c777671709e9d00025f5e5958 (..., -0.006458, ...)
+#            v15: 0x85847f7e79787372a09f008561605b5a (..., -0.009026, ...)
+#            v16: 0x6e6d6c6b6a696867a2a100850002ff01 (..., -0.01295, ...)
+#                                      ╙───────────── 0xa2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x0002ff01ff1e191800000000ff00ff01 (2.751e-40, ...)
+#            v23: 0xff00008502201b1a00000000feff0084 (-1.701e+38, ...)
+#            v24: 0x00fffeff23221d1c1700000000ff0085 (2.351e-38, ...)
+#                          ╙───────────────────────── 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.149e-15, ...)
+#            v31: 0x00000000aaa9a8a7969594939291908f (..., -3.014e-13, ...)
+#             v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.898e-11, ...)
+#                                  ╙───────────────── 0xaeadacab'aaa9a8a7'a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000a5a4a3a24744413e (..., -2.856e-16, ...)
+#            v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.490e-14, ...)
+#            v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.963e-11, ...)
+#                                          ╙───────── 0xadacabaa'a9a8a7a6'a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x01010101010101010101010101010101
+#            v25: 0xffffffffffffffffffffffffffffffff
+#            v26: 0x02020202020202020202020202020202
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#            v25: 0xafafafafafafafafafafafafafafafaf
+#            v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0xadadadadadadadadadadadadadadadad
+#             v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#             v5: 0xafafafafafafafafafafafafafafafaf
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xb7b6b5b4b3b2b1b0 (-2.607e-40)
+#             d8:                 0xbfbebdbcbbbab9b8 (-0.1201)
+#             d9:                 0xc7c6c5c4c3c2c1c0 (-6.054e+37)
+#                                                  ╙─ 0xc7c6c5c4c3c2c1c0'bfbebdbcbbbab9b8'b7b6b5b4b3b2b1b0 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xb6b5b4b3b2b1b0af (-3.802e-45)
+#            d18:                 0xbebdbcbbbab9b8b7 (-1.772e-06)
+#            d19:                 0xc6c5c4c3c2c1c0bf (-8.830e+32)
+#                                                  ╙─ 0xc6c5c4c3c2c1c0bf'bebdbcbbbab9b8b7'b6b5b4b3b2b1b0af <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v17: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v18: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#                                  ╙───────────────╨─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.113e+71, -4.113e+71)
+#            v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.051e+110, -2.051e+110)
+#            v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.546e+148, -9.546e+148)
+#                                  ╙───────────────╨─ 0xdedddcdbdad9d8d7'd6d5d4d3d2d1d0cf'cecdcccbcac9c8c7 <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.065e+66, -6.065e+66)
+#            v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.985e+105, -2.985e+105)
+#            v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.408e+144, -1.408e+144)
+#                                  ╙───────────────╨─ 0xdddcdbdad9d8d7d6'd5d4d3d2d1d0cfce'cdcccbcac9c8c7c6 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d11:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#            d12:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#                                          ╙───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#             d1:                 0xe5e4e3e2e5e4e3e2 (-1.351e+23, -1.351e+23)
+#             d2:                 0xe9e8e7e6e9e8e7e6 (-3.520e+25, -3.520e+25)
+#                                          ╙───────╨─ 0xe9e8e7e6'e5e4e3e2'e1e0dfde <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#            d24:                 0xe4e3e2e1e4e3e2e1 (-3.363e+22, -3.363e+22)
+#            d25:                 0xe8e7e6e5e8e7e6e5 (-8.761e+24, -8.761e+24)
+#                                          ╙───────╨─ 0xe8e7e6e5'e4e3e2e1'e0dfdedd <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d23:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d24:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                                      ╙───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0xeae9eae9eae9eae9 (-3538., -3538., -3538., -3538.)
+#             d7:                 0xecebecebecebeceb (-5036., -5036., -5036., -5036.)
+#             d8:                 0xeeedeeedeeedeeed (-7092., -7092., -7092., -7092.)
+#                                      ╙───╨───╨───╨─ 0xeeed'eceb'eae9 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xe9e8e9e8e9e8e9e8 (-3024., -3024., -3024., -3024.)
+#             d8:                 0xebeaebeaebeaebea (-4052., -4052., -4052., -4052.)
+#             d9:                 0xedecedecedecedec (-6064., -6064., -6064., -6064.)
+#                                      ╙───╨───╨───╨─ 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v27: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v28: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#                          ╙───────╨───────╨───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (-2.386e+30, -2.386e+30, -2.386e+30, -2.386e+30)
+#             v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (-6.210e+32, -6.210e+32, -6.210e+32, -6.210e+32)
+#             v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (-1.616e+35, -1.616e+35, -1.616e+35, -1.616e+35)
+#                          ╙───────╨───────╨───────╨─ 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (-5.940e+29, -5.940e+29, -5.940e+29, -5.940e+29)
+#            v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (-1.546e+32, -1.546e+32, -1.546e+32, -1.546e+32)
+#             v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (-4.023e+34, -4.023e+34, -4.023e+34, -4.023e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x0101010101010101
+#             d3:                 0xffffffffffffffff
+#             d4:                 0x0202020202020202
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xf9f9f9f9f9f9f9f9
+#            d11:                 0xfafafafafafafafa
+#            d12:                 0xfbfbfbfbfbfbfbfb
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfb'fa'f9 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v7: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#             v8: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#             v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v9: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xfffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x3c3834302c2824201c18000000ff8501
+#             v4: 0x3d3935312d2925211d19000000fe00ff
+#             v5: 0x3e3a36322e2a26221e1a000000ff0002
+#             v6: 0x3f3b37332f2b27231f1b17000000ff00
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x3c3834302c2824201c1814100c080400
+#             v3: 0x3d3935312d2925211d1915110d090501
+#             v4: 0x3e3a36322e2a26221e1a16120e0a0602
+#             v5: 0x3f3b37332f2b27231f1b17130f0b0703
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x03'02'01'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x07'06'05'04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0b'0a'09'08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0f'0e'0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x13'12'11'10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'16'15'14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3b37332f2b27231f1b17130f0b0703ff
+#             v6: 0x3c3834302c2824201c1814100c080400
+#             v7: 0x3d3935312d2925211d1915110d090501
+#             v8: 0x3e3a36322e2a26221e1a16120e0a0602
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1e'1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22'21'20'1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x26'25'24'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a'29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2e'2d'2c'2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x32'31'30'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x36'35'34'33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3a'39'38'37 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3e'3d'3c'3b <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2726252423222120ff0000850002ff01 (4.288e-120, -5.487e+303)
+#            v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.988e-81, 8.289e-317)
+#            v20: 0x37363534333231301700000000000000 (9.958e-43, 6.689e-198)
+#            v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.0004614, 8.568e-159)
+#                                  ║               ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938'3736353433323130'2f2e2d2c2b2a2928'2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x666564636261605f464544434241403f (1.818e+185, 3.370e+30)
+#             v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.509e+223, 1.580e+69)
+#             v6: 0x767574737271706f565554535251504f (4.222e+262, 7.827e+107)
+#             v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.975e+301, 3.666e+146)
+#                                  ║               ╙─ 0x5e5d5c5b5a595857'565554535251504f'4e4d4c4b4a494847'464544434241403f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7e7d7c7b7a797877'767574737271706f'6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x6564636261605f5e4544434241403f3e (2.644e+180, 4.899e+25)
+#            v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.254e+219, 2.328e+64)
+#            v31: 0x7574737271706f6e5554535251504f4e (6.141e+257, 1.138e+103)
+#             v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.911e+296, 5.403e+141)
+#                                  ║               ╙─ 0x5d5c5b5a59585756'5554535251504f4e'4d4c4b4a49484746'4544434241403f3e <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7d7c7b7a79787776'7574737271706f6e'6d6c6b6a69686766'6564636261605f5e <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x000000000002ff01 (0.000, 2.751e-40)
+#            d28:                 0x17000000ff000085 (4.136e-25, -1.701e+38)
+#            d29:                 0x1b1a191800fffeff (1.275e-22, 2.351e-38)
+#            d30:                 0x1f1e1d1c00000000 (3.348e-20, 0.000)
+#                                          ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x91908f8e81807f7e (-2.281e-28, -4.720e-38)
+#            d25:                 0x9594939285848382 (-6.001e-26, -1.246e-35)
+#            d26:                 0x9998979689888786 (-1.578e-23, -3.287e-33)
+#            d27:                 0x9d9c9b9a8d8c8b8a (-4.145e-21, -8.662e-31)
+#                                          ║       ╙─ 0x8d8c8b8a'89888786'85848382'81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9d9c9b9a'99989796'95949392'91908f8e <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x908f8e8d807f7e7d (-5.662e-29, -1.171e-38)
+#             d5:                 0x9493929184838281 (-1.490e-26, -3.092e-36)
+#             d6:                 0x9897969588878685 (-3.918e-24, -8.157e-34)
+#             d7:                 0x9c9b9a998c8b8a89 (-1.030e-21, -2.150e-31)
+#                                          ║       ╙─ 0x8c8b8a89'88878685'84838281'807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99'98979695'94939291'908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#            d16:                 0x19180000feffff01 (0.002487, 0.000, nan, nan)
+#            d17:                 0x1b1a000000ff0002 (0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            d18:                 0x1d1c000000000085 (0.004990, 0.000, 0.000, 7.927e-06)
+#            d19:                 0x1f1e17000000ff00 (0.006950, 0.001709, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xb6b5aeada6a59e9d (-0.4192, -0.1043, -0.02596, -0.006458)
+#            d24:                 0xb8b7b0afa8a7a09f (-0.5894, -0.1464, -0.03635, -0.009026)
+#            d25:                 0xbab9b2b1aaa9a2a1 (-0.8403, -0.2091, -0.05203, -0.01295)
+#            d26:                 0xbcbbb4b3acaba4a3 (-1.183, -0.2937, -0.07294, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3'a2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xacab'aaa9'a8a7'a6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb4b3'b2b1'b0af'aead <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbcbb'bab9'b8b7'b6b5 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xb5b4adaca5a49d9c (-0.3564, -0.08862, -0.02203, -0.005478)
+#             d3:                 0xb7b6afaea7a69f9e (-0.4819, -0.1200, -0.02988, -0.007439)
+#             d4:                 0xb9b8b1b0a9a8a1a0 (-0.7148, -0.1777, -0.04419, -0.01099)
+#             d5:                 0xbbbab3b2abaaa3a2 (-0.9658, -0.2405, -0.05988, -0.01491)
+#                                      ║   ║   ║   ╙─ 0xa3a2'a1a0'9f9e'9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xabaa'a9a8'a7a6'a5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb3b2'b1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba'b9b8'b7b6'b5b4 <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x3332313023222120000000000002ff01 (4.149e-08, 8.789e-18, 0.000, 2.751e-40)
+#             v8: 0x373635342726252417000000ff000085 (1.086e-05, 2.306e-15, 4.136e-25, -1.701e+38)
+#             v9: 0x3b3a39382b2a29281b1a191800fffeff (0.002842, 6.045e-13, 1.275e-22, 2.351e-38)
+#            v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.7431, 1.584e-10, 3.348e-20, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2f2e2d2c'2b2a2928'27262524'23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534'33323130 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#            v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.850e+31, -8.370e+21, -1.811e+12, -389.5)
+#            v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.002e+34, -2.181e+24, -4.724e+14, -1.018e+05)
+#            v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.606e+36, -5.680e+26, -1.232e+17, -2.658e+07)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.682e+28, -7.993e+18, -1.726e+09, -0.3706)
+#            v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.584e+30, -2.083e+21, -4.506e+11, -96.88)
+#            v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.494e+33, -5.428e+23, -1.176e+14, -2.531e+04)
+#             v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.490e+35, -1.414e+26, -3.066e+16, -6.612e+06)
+#                          ║       ║       ║       ╙─ 0xcac9c8c7'c6c5c4c3'c2c1c0bf'bebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdad9d8d7'd6d5d4d3'd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xeae9e8e7'e6e5e4e3'e2e1e0df'dedddcdb <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfaf9f8f7'f6f5f4f3'f2f1f0ef'eeedeceb <- 0x~~~~~~~~~~~~~~~~
+#            d15:                 0x1c18000000ff8501
+#            d16:                 0x1d19000000fe00ff
+#            d17:                 0x1e1a000000ff0002
+#            d18:                 0x1f1b17000000ff00
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x17130f0b0703fffb
+#            d28:                 0x1814100c080400fc
+#            d29:                 0x1915110d090501fd
+#            d30:                 0x1a16120e0a0602fe
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfe'fd'fc'fb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x16120e0a0602fefa
+#             d6:                 0x17130f0b0703fffb
+#             d7:                 0x1814100c080400fc
+#             d8:                 0x1915110d090501fd
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfd'fc'fb'fa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x01'00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x05'04'03'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x09'08'07'06 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0d'0c'0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x11'10'0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14'13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x19'18'17'16 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831302928212019180000feffff01 (0.6523, 0.1621, 0.04028, 0.01001, 0.002487, 0.000, nan, nan)
+#            v26: 0x3b3a33322b2a23221b1a000000ff0002 (0.9033, 0.2249, 0.05597, 0.01393, 0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            v27: 0x3d3c35342d2c25241d1c000000000085 (1.309, 0.3252, 0.08081, 0.02008, 0.004990, 0.000, 0.000, 7.927e-06)
+#            v28: 0x3f3e37362f2e27261f1e17000000ff00 (1.811, 0.4507, 0.1122, 0.02792, 0.006950, 0.001709, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726'2524'2322'2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2f2e'2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3736'3534'3332'3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e'3d3c'3b3a'3938 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x53524b4a43423b3a33322b2a23221b1a (58.56, 14.58, 3.629, 0.9033, 0.2249, 0.05597, 0.01393, 0.003468)
+#             v3: 0x55544d4c45443d3c35342d2c25241d1c (85.25, 21.19, 5.266, 1.309, 0.3252, 0.08081, 0.02008, 0.004990)
+#             v4: 0x57564f4e47463f3e37362f2e27261f1e (117.4, 29.22, 7.273, 1.811, 0.4507, 0.1122, 0.02792, 0.006950)
+#             v5: 0x59585150494841403938313029282120 (171.0, 42.50, 10.56, 2.625, 0.6523, 0.1621, 0.04028, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120'1f1e'1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2928'2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3130'2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3938'3736'3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4140'3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948'4746'4544'4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5150'4f4e'4d4c'4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5958'5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2922211a19 (50.53, 12.57, 3.127, 0.7778, 0.1935, 0.04813, 0.01197, 0.002977)
+#            v21: 0x54534c4b44433c3b34332c2b24231c1b (69.19, 17.17, 4.262, 1.058, 0.2625, 0.06512, 0.01616, 0.004009)
+#            v22: 0x56554e4d46453e3d36352e2d26251e1d (101.3, 25.20, 6.270, 1.560, 0.3879, 0.09650, 0.02400, 0.005970)
+#            v23: 0x5857504f4847403f3837302f2827201f (138.9, 34.47, 8.555, 2.123, 0.5269, 0.1307, 0.03244, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f'1e1d'1c1b'1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2827'2625'2423'2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x302f'2e2d'2c2b'2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3837'3635'3433'3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x403f'3e3d'3c3b'3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847'4645'4443'4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x504f'4e4d'4c4b'4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5857'5655'5453'5251 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2901211a19
+#            v21: 0x54534c4b44433c3b34332c2bff231c1b
+#            v22: 0x56554e4d46453e3d36352e2d02251e1d
+#            v23: 0x5857504f4847403f3837302f0027201f
+#                                            ╙─────── 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000fbfbfbfb59fbfbfb
+#            v13: 0x81807b7a75746f6ea9a8a7a65a5c5756
+#            v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6
+#            v15: 0x00000000000000001c1800005cff8501
+#                                            ╙─────── 0x5c'5b'5a'59 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x3d3c35342d2c25241d58000000000085
+#            v28: 0x3f3e37362f2e27261f5917000000ff00
+#            v29: 0x0000000000000000195a110d090501fd
+#            v30: 0x00000000000000001a5b120e0a0602fe
+#                                      ╙───────────── 0x5b'5a'59'58 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff0000850002ff011f5917000000ff00 (-5.487e+303, ...)
+#            v29: 0x0000000000fffeff195a110d090501fd (8.289e-317, ...)
+#            v30: 0x17000000000000001a5b120e0a0602fe (6.689e-198, ...)
+#            v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.568e-159, ...)
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x636261605f5e5d5c1c1800005cff8501 (5.549e+170, ...)
+#            v16: 0x6b6a6968676665641d19000000fe00ff (2.713e+209, ...)
+#            v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.290e+248, ...)
+#            v18: 0x7b7a7978777675741f1b17000000ff00 (6.299e+286, ...)
+#                                  ╙───────────────── 0x7b7a797877767574'737271706f6e6d6c'6b6a696867666564'636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.005e+165, ...)
+#            v17: 0x6a696867666564631e1a000000ff0002 (3.983e+204, ...)
+#            v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.861e+243, ...)
+#            v19: 0x7a797877767574731f1e17000000ff00 (9.247e+281, ...)
+#                                  ╙───────────────── 0x7a79787776757473'7271706f6e6d6c6b'6a69686766656463'6261605f5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x5352ff0143423b3a33322b2a23221b1a (..., nan, ...)
+#             v3: 0x5554000245443d3c35342d2c25241d1c (..., 1.192e-07, ...)
+#             v4: 0x5756008547463f3e37362f2e27261f1e (..., 7.927e-06, ...)
+#             v5: 0x5958ff00494841403938313029282120 (..., nan, ...)
+#                          ╙───────────────────────── 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5958ff00494841407c7b313029282120 (..., nan, ...)
+#             v6: 0x00000000000000007e7d0f0b0703fffb (..., nan, ...)
+#             v7: 0x0000000000000000807f100c080400fc (..., -7.570e-06, ...)
+#             v8: 0x00000000000000008281110d090501fd (..., -3.821e-05, ...)
+#                                      ╙───────────── 0x8281'807f'7e7d'7c7b <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x00007b7a00000000807f100c080400fc (..., 6.125e+04, ...)
+#             v8: 0x00007d7c000000008281110d090501fd (..., nan, ...)
+#             v9: 0x3b3a7f7e2b2a29281b1a191800fffeff (..., nan, ...)
+#            v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 (..., -2.289e-05, ...)
+#                          ╙───────────────────────── 0x8180'7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x00000000000000000002ff010703fffb (..., 2.751e-40, ...)
+#             v7: 0x00007b7a00000000ff000085080400fc (..., -1.701e+38, ...)
+#             v8: 0x00007d7c0000000000fffeff090501fd (..., 2.351e-38, ...)
+#             v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831308584838219180000feffff01 (..., -1.246e-35, ...)
+#            v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.287e-33, ...)
+#            v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.662e-31, ...)
+#            v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.281e-28, ...)
+#                                  ╙───────────────── 0x91908f8e'8d8c8b8a'89888786'85848382 <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0x848382810000000000fffeff090501fd (-3.092e-36, ...)
+#             v9: 0x888786852b2a29280000000000fffeff (-8.157e-34, ...)
+#            v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.150e-31, ...)
+#            v11: 0x908f8e8d00000000fafafafafafafafa (-5.662e-29, ...)
+#                          ╙───────────────────────── 0x908f8e8d'8c8b8a89'88878685'84838281 <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x01010101010101010101010101010101
+#            v15: 0xffffffffffffffffffffffffffffffff
+#            v16: 0x02020202020202020202020202020202
+#            v17: 0x00000000000000000000000000000000
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x91919191919191919191919191919191
+#            v14: 0x92929292929292929292929292929292
+#            v15: 0x93939393939393939393939393939393
+#            v16: 0x94949494949494949494949494949494
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x94'93'92'91 <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0x90909090909090909090909090909090
+#            v10: 0x91919191919191919191919191919191
+#            v11: 0x92929292929292929292929292929292
+#            v12: 0x93939393939393939393939393939393
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x93'92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xff0000850002ff01 (-5.487e+303)
+#             d9:                 0x0000000000fffeff (8.289e-317)
+#            d10:                 0x1700000000000000 (6.689e-198)
+#            d11:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x9b9a999897969594 (-1.050e-175)
+#             d5:                 0xa3a2a1a09f9e9d9c (-5.007e-137)
+#             d6:                 0xabaaa9a8a7a6a5a4 (-2.438e-98)
+#             d7:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac'abaaa9a8a7a6a5a4'a3a2a1a09f9e9d9c'9b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x9a99989796959493 (-1.542e-180)
+#            d27:                 0xa2a1a09f9e9d9c9b (-7.228e-142)
+#            d28:                 0xaaa9a8a7a6a5a4a3 (-3.580e-103)
+#            d29:                 0xb2b1b0afaeadacab (-1.680e-64)
+#                                                  ╙─ 0xb2b1b0afaeadacab'aaa9a8a7a6a5a4a3'a2a1a09f9e9d9c9b'9a99989796959493 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v20: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v21: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#            v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.568e-159, 8.568e-159)
+#                                  ╙───────────────╨─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.311e-26, -8.311e-26)
+#            v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.904e+13, -3.904e+13)
+#            v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.929e+52, -1.929e+52)
+#            v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.073e+90, -9.073e+90)
+#                                  ╙───────────────╨─ 0xd2d1d0cfcecdcccb'cac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.219e-30, -1.219e-30)
+#            v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.620e+08, -5.620e+08)
+#            v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.829e+47, -2.829e+47)
+#            v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.306e+86, -1.306e+86)
+#                                  ╙───────────────╨─ 0xd1d0cfcecdcccbca'c9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#             d0:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#             d1:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#             d2:                 0x0000000000000000 (0.000, 0.000)
+#                                          ╙───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xd5d4d3d2d5d4d3d2 (-2.925e+13, -2.925e+13)
+#            d29:                 0xd9d8d7d6d9d8d7d6 (-7.629e+15, -7.629e+15)
+#            d30:                 0xdddcdbdadddcdbda (-1.989e+18, -1.989e+18)
+#            d31:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#                                          ╙───────╨─ 0xe1e0dfde'dddcdbda'd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xd4d3d2d1d4d3d2d1 (-7.278e+12, -7.278e+12)
+#            d12:                 0xd8d7d6d5d8d7d6d5 (-1.899e+15, -1.899e+15)
+#            d13:                 0xdcdbdad9dcdbdad9 (-4.951e+17, -4.951e+17)
+#            d14:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#                                          ╙───────╨─ 0xe0dfdedd'dcdbdad9'd8d7d6d5'd4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d20:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d21:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            d22:                 0xff00ff00ff00ff00 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xe2e1e2e1e2e1e2e1 (-880.5, -880.5, -880.5, -880.5)
+#            d23:                 0xe4e3e4e3e4e3e4e3 (-1251., -1251., -1251., -1251.)
+#            d24:                 0xe6e5e6e5e6e5e6e5 (-1765., -1765., -1765., -1765.)
+#            d25:                 0xe8e7e8e7e8e7e8e7 (-2510., -2510., -2510., -2510.)
+#                                      ╙───╨───╨───╨─ 0xe8e7'e6e5'e4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xe1e0e1e0e1e0e1e0 (-752.0, -752.0, -752.0, -752.0)
+#            d21:                 0xe3e2e3e2e3e2e3e2 (-1009., -1009., -1009., -1009.)
+#            d22:                 0xe5e4e5e4e5e4e5e4 (-1508., -1508., -1508., -1508.)
+#            d23:                 0xe7e6e7e6e7e6e7e6 (-2022., -2022., -2022., -2022.)
+#                                      ╙───╨───╨───╨─ 0xe7e6'e5e4'e3e2'e1e0 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v17: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v18: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#            v19: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ╙───────╨───────╨───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (-5.680e+26, -5.680e+26, -5.680e+26, -5.680e+26)
+#            v26: 0xefeeedecefeeedecefeeedecefeeedec (-1.479e+29, -1.479e+29, -1.479e+29, -1.479e+29)
+#            v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (-3.850e+31, -3.850e+31, -3.850e+31, -3.850e+31)
+#            v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (-1.002e+34, -1.002e+34, -1.002e+34, -1.002e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf7f6f5f4'f3f2f1f0'efeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (-1.414e+26, -1.414e+26, -1.414e+26, -1.414e+26)
+#            v24: 0xeeedecebeeedecebeeedecebeeedeceb (-3.682e+28, -3.682e+28, -3.682e+28, -3.682e+28)
+#            v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (-9.584e+30, -9.584e+30, -9.584e+30, -9.584e+30)
+#            v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (-2.494e+33, -2.494e+33, -2.494e+33, -2.494e+33)
+#                          ╙───────╨───────╨───────╨─ 0xf6f5f4f3'f2f1f0ef'eeedeceb'eae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x0101010101010101
+#            d23:                 0xffffffffffffffff
+#            d24:                 0x0202020202020202
+#            d25:                 0x0000000000000000
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xf7f7f7f7f7f7f7f7
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8'f7 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xf6f6f6f6f6f6f6f6
+#            d30:                 0xf7f7f7f7f7f7f7f7
+#            d31:                 0xf8f8f8f8f8f8f8f8
+#             d0:                 0xf9f9f9f9f9f9f9f9
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xf9'f8'f7'f6 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v29: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            v30: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#            v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v27: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v28: 0x01000100010001000100010001000100 (1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0100'fffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 (-5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04)
+#            v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0002000200020002e73aed42f34af952
+#             v6: 0x0000000000000000dcbb11e0e6481e68
+#             v9: 0x00000000000000000000000000fffeff
+#             v5: 0x0000000000000000a4a2261ba09e2217
+#            v24: 0x000000000000000082b3330de36793c1
+#            v12: 0x00000000000000006f49f4f5e911f705
+#            v10: 0x00000000000000001700000000000000
+#             v3: 0x000000000000000035342d2c25221f1b
+#            v19: 0xfe070c07fe070c07fe070c07fe070c07
+#             v6: 0x0000000000000000dcbb11e0e6481e68
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v28: 0x00000000000000000100010001000100
+#             v2: 0x0000000000000000ac03d811ac03d811
+#            v18: 0x000000000000000000fffeff00fffeff
+#             v6: 0x00000000000000006347100f6cd41c97
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v26: 0x0000000000000000bd4365396d436539
+#            v10: 0x00000000000000008800000000000000
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000000000000000e3e2
+#            v26: 0x000000000000000000000000fe070c07
+#            v26: 0x0000000000000000d4d3d2d1d4d3d2d1
+#            v20: 0x0000000000000000f9f9f9f9f9f9f9f9
+#            v19: 0xfe070f07fe070c07fe070c07fe070c07
+#             v4: 0x00000000000000009b9a999897969594
+#            v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
+#             v3: 0x00000000000000000000000000000000
+#            v29: 0x000200020002ff00e73aed42f34af952
+#             v2: 0x0000ffff00000000ac03d811ac03d811
+#            v22: 0x00000000000000000000000000000000
+#            v24: 0x000000000000000082b3330de36793c1
+#            v24: 0x000000000000000000ffff0000ffffff
+#            v29: 0x80808080808080808080808080808080
+#            v12: 0xffff00ff00ffff00ffff00ff00ffff00
+#            v12: 0x0000000000000000ec000000ec000000
+#            v10: 0x0000000000000000004cffff004cffff
+#            v26: 0x000000000000000000c000c000c000c0
+#            v24: 0x00980000009800000098000000980000
+#             v1: 0x00deffff00deffff00deffff00deffff
+#            v21: 0x00000000000000004d4d4d4d4d4d4d4d
+#            v29: 0x00690069006900690069006900690069
+#             v1: 0x4700008e4b00007a4700008e4b00007a
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
+#            v19: 0x00000000000000000000000000000000
+#            v29: 0x0000000000000000427957e1427957e1
+#             v2: 0x00000000000000000000000000000000
+#            v25: 0x000000000000000042ff40c042ff40c0
+#            v26: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x0000000000000000470049004b004d00
+#            v20: 0x48004a004c004e0048004a004c004e00
+#            v29: 0x00000000000000000000000000000000
+#            v13: 0xffffffffffffffffe03d1120e03d1120
+#            v28: 0x0000000000000000ffffffffffffffff
+#            v25: 0x0000000000000000ffff47ffffff47ff
+#            v17: 0x0000000000000000ff930000ff930000
+#            v29: 0x0000000000000000ffb7ffb7ffb7ffb7
+#            v20: 0xff85ffffff85ffffff85ffffff85ffff
+#             v0: 0xffffe100ffffe100ffffe100ffffe100
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v25: 0x0000000000000000b8ffb6ffb4ffb300
+#             v4: 0x00000000000000000000000000010201
+#            v11: 0x0000000000000000470049004b004d00
+#             v7: 0x0000000000000000ff000101ff000101
+#             v7: 0x00000000000000004648484a4a4c4c4e
+#            v17: 0x0000000000000000ff000101ff000101
+#            v20: 0x00000000000000000100ffff0100ffff
+#             v0: 0x0000000000000000b900b700b500b300
+#            v13: 0x003e003e003e003e473e493e4b3e4d3e
+#            v22: 0x0000000000000000ffffffffffffffff
+#            v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
+#             v8: 0x0000000000000000ff0000e70002ffe3
+#            v11: 0x0000000000000000d700df00df00df00
+#             v7: 0x000000ab000000ab464848eb4a4c4cef
+#             v8: 0x00000000000000000000000000010201
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v11: 0x000000000000000000a9a8a900a9a8a9
+#             v8: 0x00000000000000000030000000100000
+#            v24: 0x0000555555aa55550000555555aa5555
+#            v13: 0x00000000000000000000000000000000
+#            v22: 0x000000000000000000000000200feede
+#             v5: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000fdfdfdfd9da5d974
+#             v9: 0x00000000000000000000000000fffeff
+#            v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
+#             v0: 0x0000000046004a04b900b700b500b300
+#            v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
+#            v30: 0x00000000000000000000000000000000
+#            v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
+#             v5: 0x00000000000000000000000001020100
+#            v16: 0x0000000000000000a76e9d2f75fed8a5
+#            v20: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000ffffffffffffffff
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000075fed8a5a76e9d2f
+#             v7: 0x0000000000000000fefffefffefffeff
+#            v15: 0x0000000000000000d8a575fe9d2fa76e
+#            v25: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000009d2fa76ed8a575fe
+#            v18: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v3: 0x0000000063106d1d0000000000000000
+#             v0: 0x00000000dbffdc00b900b700b500b300
+#            v27: 0x000000003a5fb14bfffefffefffefffe
+#            v15: 0x00000000000000000000000000000000
+#            v23: 0x000000000000000000009cf000000000
+#             v6: 0x000000000000000000abaaab00abaaab
+#             v4: 0x00555655005556550000000000010201
+#             v1: 0x62e2129262e2af824700008e4b00007a
+#            v19: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000ffffffffffffffff
+#             v9: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000fffbfdfbfffbfdfb
+#            v29: 0x000000003a5fb14b75b7d85e58486286
+#            v20: 0x00000000000000001e3d11201e3d1120
+#            v27: 0x000000003a5fb14b0003020300030203
+#            v20: 0x00000000010001011e3d11201f3d1221
+#             v4: 0x005585f20055c4fc00005a290001058d
+#            v23: 0x001e003d0044003500369d8300430034
+#            v26: 0x00000000000000009d2fa76ed8a575fe
+#            v27: 0x000000003a5fb14b0003020300030203
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
+#             v0: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000100010101000101
+#            v17: 0x00000000000000002fa270ac5a23007a
+#             v7: 0x633798855327f7af62e26cbc52d33840
+#            v23: 0x0000000000000000632f596e285b7502
+#            v20: 0x000000000000000075ff275a589162d0
+#            v27: 0x00000000d8e139ed00000000ab639583
+#            v31: 0x000012d0000032140000303600001232
+#             v0: 0x007500010027005a00ad00d200cd004d
+#            v31: 0x00000000000000000000000063106d1d
+#            v26: 0x00000000000000000000271f000039ed
+#             v6: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000003000000010610c
+#            v12: 0x00000000000000002f9d6ea7a5d95f81
+#            v12: 0x00000000000000002f9d95c6a5d9996e
+#             v4: 0x0000000000000000004759b7004c0607
+#            v15: 0x00000000000000000100a14f01005b9e
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
+#             v5: 0xffffffffd6dfd5daffffffff7687b151
+#            v18: 0x00000100ffffa14f0000010000005b9e
+#            v15: 0x0063002f0059006e0028005b00750002
+#            v16: 0x0000000000000000ffffffffd8e139ed
+#             v6: 0x0000007500005556000055d1000055af
+#             v7: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffd8e139ec
+#            v18: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000004600000026
+#            v10: 0x00007574000012640000478e00004b7a
+#             v0: 0x0000000000000000ffe1ffcdffe1ffcd
+#            v12: 0x00000000000000000000000000000000
+#            v14: 0x0000000000000000000000000000fff8
+#            v30: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v16: 0x000000000000000000000000000012cc
+#            v24: 0x00000000000000009d2fa76ed8a575fe
+#            v13: 0x00000000000055d100000000000055af
+#            v19: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000632f596e285b7502
+#            v15: 0x00000000000000000000000000000000
+#             v7: 0x000000000000000000232cdb00260303
+#            v29: 0x0000000000000000ce97d3b7ec52baff
+#            v31: 0x0000000000000000000023c700005094
+#            v21: 0x000000000000000000180000000839ec
+#            v14: 0x0000000000000000b5dae012cc3fc326
+#            v19: 0x00000000000000000997e764189b6c67
+#            v22: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000008000000000800000
+#             v2: 0x000000000000000036e00980c0e00000
+#             v4: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ff00ff00ff00ff00
+#             v4: 0x0000000000000000c700000094000000
+#            v18: 0x00000000000000000000000000004830
+#             v0: 0x0000000000000000e9783b70c528aff0
+#             v5: 0x9d2fa76e00000000d8a575fe00000000
+#            v26: 0x75ff0000275a00005891000062d00000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x62e200001292000062e20000af820000
+#            v30: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000002e212926700008e4
+#            v29: 0x00000000000000000000000000000090
+#            v17: 0x00000000000000000000000000000024
+#             v5: 0x00000000000000002e212926700008e4
+#            v24: 0x317157c12580003d9d2fa76ed8a575fe
+#             v5: 0x00000000b5dacc3f2e212926700008e4
+#            v30: 0x31f1000009c90000ffd9d3c9c393c5ff
+#            v22: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000dc80ffb9da80ffc3
+#            v10: 0x0000000000000000ce805349ebda7605
+#             v6: 0x00000000000000000000ee1c0000d836
+#             v8: 0x0000000000000000ffe811e3fff8f7c4
+#            v19: 0x000000000000000000000000090b6c67
+#             v9: 0x317157c12580003d9d2fa76ed8a575fe
+#            v22: 0xc55f04960000f400be9dbb6295d7f800
+#            v11: 0x0000000000000000000fa76e000575fe
+#            v16: 0x0000000000000000000000000000000c
+#             v8: 0x0000000000000000c7e811e389f8f7c4
+#            v10: 0x0000000000000000ffd9d3c9c393c5ff
+#             v7: 0x0000000000000000ffe3ffdbffe6ffc3
+#            v18: 0x6200120062000000470011e34b00007a
+#            v30: 0x00000000000000004700008e700008e4
+#            v17: 0x000000000000000000000000090b6c67
+#             v1: 0x317157c12580003d000023c700005094
+#            v17: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x75ff0000275a00005891000062d00000
+#            v12: 0x00000000ffffffff00000000da123f26
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#            v10: 0x0000000000000000ffd9c5ff00000090
+#            v18: 0x00000000ffe6ffc375ff000062d00000
+#            v21: 0x000000000000000075006200787028f0
+#            v26: 0x00000000000000000000000011e3f7c4
+#             v4: 0x00000000000000000000000000000070
+#            v23: 0x00000000000000000000000000000078
+#             v6: 0x00000000000000000000000000003b70
+#            v24: 0x000000000000000000000000000011e3
+#             v3: 0x0000000000000000000000000000000c
+#            v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
+#            v29: 0x0000000000000000c7e811e389f8f7c4
+#             v6: 0x00000000000000005891000062d00000
+#            v24: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000000000000000000c
+#            v12: 0x0000000000000000ffd9c5ff00000090
+#            v13: 0x00000000ffffffff0000e6c3ff00d000
+#            v22: 0x000000000000000000000000ffffffff
+#            v15: 0x0000000000000000292608e4c5ff0000
+#            v15: 0x0000000000000000000000009d2fa76e
+#            v21: 0x00000000000000009100d000e080c000
+#            v21: 0x000000000000000000000000c5ff0000
+#             v8: 0x00000000000000000000000000000091
+#             v6: 0x000000000000000000000000000000d0
+#            v20: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000009d2f
+#            v21: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#             v7: 0x00000000000000000000000000009d2f
+#            v19: 0x0000000000000000000000000906ca9b
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#            v30: 0x00000000000000004700008e700008e4
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#            v17: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x75ff0000275a00005891000062d00000
+#            v30: 0x00000000000000004700008e700008e4
+#             v1: 0x317157c12580003d000023c700005094
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#             v0: 0x0000000000000000e9783b70c7c032a0
+#             v3: 0x0000000000000000000000000000000c
+#             v4: 0x000000000000000003c9f8c001c2e9f0
+#            v14: 0x0000000000000000b5dae012cc3fc326
+#            v15: 0x0000000000000000f9797b018bdbc6de
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#             v6: 0x000000000000000000000000000000d0
+#            v30: 0x00000000000000004700008e700008e4
+#             v4: 0x15a6d000c90fc48aedb876b6692ad888
+#            v30: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000042ae0
+#             v8: 0x185dc92015d7004009b45060e2e7be40
+#            v31: 0x00000000f3d5e78200000000249000d8
+#             v3: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v14: 0x000000000000000062d05891275a8a02
+#            v31: 0x00000000000000000000000000000001
+#             v8: 0x000000000000000000000000383fcd60
+#            v14: 0x0000000000000000000000000000632f
+#            v23: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000001687c490383fcd60
+#            v29: 0x000000000000000016793c70383f3360
+#            v17: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000060
+#             v2: 0x00000000000000000000000011e3f7c4
+#             v7: 0x00000000000000000000000000003360
+#            v11: 0x00000000000000000000000000003360
+#            v20: 0x000000000000000016793c70383f336c
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v8: 0x00000000000000000000000011e3f7c4
+#            v20: 0x0000000000000000ffd9c5ff00000090
+#            v14: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000016792233373f0360
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000060
+#            v14: 0x000000000000000000000000ffe772e8
+#            v30: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v8: 0x0672308605c005640fa6a0001322041c
+#             v1: 0x317157c12580003d000023c700005094
+#            v19: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000011e3f7c4
+#             v6: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000ffffffc0b8e63400
+#            v10: 0x0000000000000000ffffffc0b8e66400
+#            v30: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000000000000ff00d000
+#            v27: 0xffffffffece2ff800000004ffccf8000
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v22: 0x000000000000000000000000ffffffff
+#            v12: 0x0000000000000000ffd9c5ff00000090
+#            v20: 0x0000000000000000ffd9c5ff00000090
+#            v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000000000000000ff70
+#            v16: 0x00000000000000000000000000000391
+#             v1: 0x00000000000000000000000000000000
+#             v1: 0x0000000000000000000000000000018a
+#            v28: 0x0000000000000000000000000000003a
+#            v28: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000fffe0529
+#            v25: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000fff726ef1b546ce0
+#            v29: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000e59831500
+#            v18: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000060
+#            v24: 0x0000000000000000ffffffffffffffa0
+#            v29: 0x00000000000000000000000000000000
+#             v4: 0x000000000000000000000000ffffffa0
+#            v14: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000263a00ffffff70
+#            v28: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000010060
+#             v9: 0x00000000000000000000000000000000
+#            v20: 0x000000000000000001273b0100000070
+#            v27: 0x000000000000000000010040471a9c00
+#             v7: 0x0000000000000000000000000000ffda
+#            v14: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v22: 0x0000000000000000ffa408a4ff20b5ee
+#            v22: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v2: 0x0000000000000000000000000000fff1
+#            v16: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000007fffffffffffffff
+#            v28: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v19: 0x000000000000000000000000ed800048
+#            v19: 0x000000000000000000000000ed800048
+#            v29: 0x00000000000000007fffffffffffffff
+#            v12: 0x0000000000000040ffd9c5ff00000090
+#            v16: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000e598315
+#            v31: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000000000000004ffff
+#            v24: 0x0000000000000000ffffffffffffffa0
+#            v22: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000e598315
+#             v6: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000007fed000000000
+#            v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x0000000000000000000000000e598315
+#             v0: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v24: 0x00000000000200000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#             v8: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v30: 0x00000000002000000000000000000000
+#             v1: 0x00000000000000000000000000000080
+#            v31: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v14: 0x0000000000077f7f0000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v31: 0x000000000000ffff0000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000000000000007ffff
+#            v10: 0x00000000000000000010000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v27: 0x00000001000000000000000000000000
+#            v23: 0x0000ffff000000000000000e59831500
+#            v19: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000010000000000000
+#             v8: 0x000000000000000000000000ffff000f
+#            v18: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000fff0000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000800000000e59831500
+#            v13: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v26: 0x000000000000000000000000ffff0000
+#             v7: 0x00000000000000000000000000000000
+#            v21: 0x000007ff000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000800000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000040
+#            v24: 0x00000000000000000000000000007ff9
+#             v6: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v23: 0x0000000000000080000000005f8f1000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000000000000000b0002
+#            v27: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000040
+#            v29: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000040
+#            v22: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000fe0000000000000000
+#            v20: 0x00000000000000000000000000000020
+#             v0: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v18: 0x00000000000000000000000000000000
+#            v21: 0x000000000000000000000000000000c0
+#            v31: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000000000000000b0002
+#            v23: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000020000000
+#            v11: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#             v3: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#            v29: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000020
+#            v14: 0x00000000000000000000000000000001
+#            v18: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000040
+#            v13: 0x0000000000000000ffffffffffffffe1
+#             v5: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v21: 0x000000000000000000000000ffff8007
+#            v30: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007ff9
+#            v31: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v12: 0x0000000000000000ffffffffffffffc0
+#            v20: 0x00000000000000000000000000007ff9
+#             v8: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000000000000ffff8007
+#            v24: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v16: 0x000000000000000000000000010180f9
+#            v20: 0x0000000000000000000100010001001f
+#             v5: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000ff0000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v20: 0x000000000000ffff000100010001001f
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000ffffffffffffffe1
+#             v0: 0x00000000000000000000000000000040
+#            v22: 0x00000000000000000000000000000000
+#            v24: 0x000000000000007f0000000000000000
+#            v26: 0x00000000000000000000000000000001
+#             v7: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000007fff7fff7fff7fff
+#             v4: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v31: 0x00000000000000000000000000000000
+#            v16: 0x0000000000010001000000000001001f
+#            v27: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000100000001
+#            v25: 0x00000000000000000000000000000000
+#            v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
+#             v3: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#             v6: 0x01010101010101010101010101010101
+#            v13: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#             v2: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000ff00ff0000000000
+#            v24: 0x00000000000000000000010100000101
+#             v2: 0x000000000000000000000000ff00ff00
+#            v25: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000001
+#             v9: 0x00000000000000000000000000000000
+#             v6: 0x01010101010101010101010100020001
+#            v16: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ff00ff0000000001
+#            v10: 0x00000000ff00ff000000000000000000
+#            v30: 0x0000ff000000ff00ff01fe000000c000
+#             v4: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#            v26: 0x00000000000000000000000000000001
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#            v18: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000001
+#            v20: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v9: 0x000000000000000000000000ff00ff01
+#            v14: 0x00000000000000000000000000000001
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ff00ff0000000001
+#             v1: 0x00000000000000000000000000000001
+#            v31: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v5: 0x00000000010101010000000001010101
+#             v1: 0x00000000000000000000010100000101
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x000000000000000000000000ff00ff01
+#            v26: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000010100000101
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000ff00ff
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000001
+#             v9: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000010100000101
+#            v18: 0x00000000010101010000000001010101
+#            v17: 0x0000000000000000ff00ff0000000001
+#            v29: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000008000800000000000800080
+#             v1: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v26: 0x00000000ff7f7f7f00000000ff7f7f7f
+#             v3: 0x0000000000000000000000007f007f00
+#            v25: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000ff00ff
+#            v20: 0x000000000000000000000000ff7f7f7f
+#             v0: 0x00000000000000000000000001010101
+#             v6: 0x00000000000000000000000000ff00ff
+#             v0: 0x000000000000000000000000ff7fff7f
+#             v4: 0x00000000000000000000000000000000
+#             v1: 0x0000000000000000000000000000ffff
+#            v19: 0x00000000000000000000000100000000
+#            v21: 0x00000000000000000000ff0100000000
+#             v9: 0x000000000000000000000000ff7f7f7f
+#            v13: 0x000000000000000000000000000000ff
+#            v19: 0x0000ff7f0000ff7f0000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v31: 0x0000000000000000000000000000ff00
+#            v15: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#            v22: 0x0000000000000000000000000000ff01
+#             v1: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v24: 0x000000000000000000000000000000ff
+#            v20: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v21: 0x0000000000000000000000000000ff7f
+#             v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007e81
+#            v17: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007e81
+#            v15: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#             v7: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#            v28: 0x00000000000000000000000000ff00ff
+#            v11: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v10: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000000000ff
+#            v27: 0x00000000000000000000000000007e81
+#             v7: 0x000000000000000000000000000000ff
+#            v28: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000000000000000ff7f
+#            v16: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x0000000000000000000000000000ff00
+#            v23: 0x0000000000000000000000007f007f00
+#            v17: 0x00000000000000000000000000007e81
+#            v10: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v10: 0x000000000000000000000000000000ff
+#             v9: 0x0000000000000000000000000000ff01
+#            v24: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000008
+#            v10: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000001fe0
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000400000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000200000000000000ff
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x000000000000000000000000000000ff
+#            v23: 0x00000000000000000000000000ff00ff
+#             v8: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v14: 0x000000000000000000000000000000ff
+#             v6: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000003fc0000
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000000000000ffffffff
+#            v28: 0x00000000000000000000000000000000
+#             v4: 0x0000000000000000000000000000fd02
+#             v9: 0x00000000000000000000000000007f80
+#            v18: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000008
+#            v26: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000ff00ff
+#            v14: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000007e81
+#            v10: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000001fe0
+#            v23: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v29: 0x000000000000ffff0000000000000000
+#            v13: 0x0000000000007e810000000000000000
+#            v28: 0x0000000000007e810000000000000000
+#            v23: 0x0000000000000000ffffffffffffffff
+#            v27: 0xffffffffffffffffffffffffffffffff
+#             v2: 0x80808080808080808080808080808080
+#            v15: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000007e81
+#             v2: 0x80000000800000008000000080000000
+#             v5: 0x00000000000000000000000000003f41
+#            v30: 0x40000000400000004000000040000000
+#             v4: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v14: 0x0000000000000000ffffffffffffffff
+#            v10: 0x00000000000000000000000000000008
+#            v15: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v30: 0xffffffffffffffffffffffffffffffff
+#             v4: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000010
+#             v4: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000ffffffffffffffff
+#            v28: 0xffffffffffffffffffffffffffffffff
+#            v27: 0x0000000000000000ffffffffffffffff
+#            v18: 0x00000000000000000000000000001010
+#            v26: 0x00000000000000400000000000000040
+#             v8: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v18: 0x00000000000000000008000800081018
+#            v31: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000008
+#            v14: 0x0000000000000000ffffffffffffffff
+#            v22: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000000000000007e8100
+#            v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
+#             v8: 0x000000000000000000000000007fff80
+#            v29: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x0000000000000000000000007f007f00
+#            v31: 0x00000000000000000000000000000000
+#             v8: 0x000000000000000000000000007fff80
+#            v18: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v16: 0x0000000000000000000000007e007e00
+#            v12: 0x0000000000000000000000007e007e00
+#            v28: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000008
+#             v4: 0x0000000000000000000000000000003f
+#             v9: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v29: 0x0000000000000000000000007e007e00
+#            v29: 0x00000000000000000000000000000000
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
+#             v1: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v9: 0x0000000000000000ffffffffffffffff
+#            v20: 0x0000000000000000000000007e007e00
+#            v25: 0x000000000000000000000000007fff80
+#            v18: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v30: 0x000000000000008100000000ffffffff
+#             v7: 0x00000000000000000000000000000040
+#            v26: 0x0000000000000000000000007e007e00
+#            v14: 0x00000000000000000000000000000000
+#            v17: 0x00000081ffffffff0000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v17: 0xff01ff01ff01ff400000000000000000
+#             v8: 0x0000000000007e7e0000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v25: 0x000000000000000001fe01fe01fe01fe
+#            v31: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000ff01ff0100000000
+#            v17: 0x0000000000000000000000007e007e00
+#             v3: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000001010000
+#             v0: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
+#            v23: 0x000000000000000001fe01fe01fe01fe
+#            v26: 0x0000000000000000ffffffff00000000
+#             v1: 0x00000000000000000000ffff0040ffff
+#             v0: 0x000000000000000000000000ffffffff
+#            v30: 0x0000000000000000007e0000007e0000
+#            v17: 0x0000ff010000ff010000000000000000
+#            v23: 0x0100fe000100fe000100fe000100fe00
+#            v30: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v0: 0x0100fe00000000000100fe0000000000
+#            v25: 0x00000000000000000001000000fe0000
+#             v7: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000001000000fe0000
+#            v14: 0x000000000000000001fe01fe01fe01fe
+#             v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
+#             v1: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000001000000fe0000
+#            v18: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffffffffff
+#            v30: 0xffffffffffffffff0000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v22: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000100fe000100fe00
+#            v16: 0x01fe01fe01fe01feffffffffffffffff
+#            v27: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000000000000180fe00
+#            v21: 0x020e01fe01fe01fe0000000000000000
+#            v31: 0x000000000000000000000000ffffffff
+#            v13: 0x00000000000000000000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v24: 0x0000000000000000ffffffffffffffff
+#             v8: 0xffffffffffffffff0000000000000000
+#            v26: 0xffffffffffffffff0000000000000000
+#            v27: 0xffffffffffffffffffffffffffffffff
+#            v22: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffffffffff
+#            v29: 0x00000000000000000000000000000000
+#            v22: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v15: 0xffffffffffffffffffffffffffffffff
+#            v21: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v14: 0xffffffff00000000ffffffff00000000
+#            v13: 0x00000000000000000000000000000000
+#             v4: 0xffffffffffffffffffffffffffffffff
+#            v24: 0x0000000000000000ffffffff00000000
+#             v8: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v8: 0x37a0000000000000381fc00000000000
+#            v27: 0xffffe000ffffe0000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v24: 0x377f0000377f0000377f0000377f0000
+#             v9: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v8: 0x37a00000000000000000000000000000
+#            v24: 0x0000000000000000377f0000377f0000
+#             v4: 0x0000000000000000ffffffffffffffff
+#            v25: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v31: 0x000000000000000000000000ffffffff
+#            v19: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x7ff00000000000007ff8000000000000
+#            v12: 0x00000000000000007fc000007fc00000
+#            v19: 0xffffffffffffffffffffffffffffffff
+#            v19: 0x37a00000000000000000000000000000
+#            v25: 0x00000000000000007fc000007fc00000
+#             v6: 0x7ff00000000000007ff8000000000000
+#            v16: 0x37a0000000000000000000000180fe00
+#            v15: 0x00000000000000000000000000000000
+#            v23: 0x37a0000000000000000000000180fe00
+#             v6: 0x000000000000000037a0000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v8: 0x37a00000000000007fc000007fc00000
+#            v13: 0x0000000000000000ffffffff7fc00000
+#            v15: 0xffffffff000000000000000000000000
+#            v27: 0x00000000000000000000000037a00000
+#            v20: 0x0000000000000000ffffffff00000000
+#            v18: 0x00000000000000000000000000000000
+#             v9: 0x00000000ffffffff37a0000000000000
+#             v7: 0x0000000000000000ffffffffffffffff
+#            v18: 0x000000000000000000000000ffffffff
+#            v31: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v25: 0x0000000000000000000000007fc00000
+#            v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000007fc000007fc00000
+#            v24: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
+#            v21: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007fffffff
+#            v27: 0x00000000000000000000000037a00000
+#            v26: 0x00000000000000007fffffff00000000
+#            v14: 0xbfd6000000000000bfd6000000000000
+#            v26: 0x00000000000000003f6800003f680000
+#            v31: 0xc0a00000c0a00000c0a00000c0a00000
+#            v28: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000ffffffff
+#            v25: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v11: 0x7fc000007fc000007fc000007fffffff
+#            v28: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v1: 0x80000000000000008000000000000000
+#            v14: 0x00000000000000008000000080000000
+#             v5: 0x80000000800000008000000080000000
+#            v18: 0x7ff00000000000007ff0000000000000
+#            v10: 0x00000000000000007f8000007f800000
+#             v5: 0x7f8000007f800000474c80007f800000
+#            v22: 0x40000000000000004000000000000000
+#            v31: 0x00000000000000004000000040000000
+#            v18: 0x40000000400000004000000040000000
+#            v26: 0x0000000000000000ffffffff7fc00000
+#            v15: 0x0000000000000000ffffffff7fc00000
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000007fc000007fc00000
+#            v15: 0x7fc000007fc000007fc000007fffffff
+#            v17: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000007fc000007fffffff
+#             v1: 0x0000000000000000ffffffff00000000
+#            v24: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v29: 0x7fc000007fc000007fc000007fffffff
+#            v10: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000004000000040000000
+#            v26: 0x00000000000000004000000040000000
+#            v24: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000007fc000007fc00000
+#            v20: 0x00000000000000000000000000000000
+#            v23: 0x7ff00000000000002006900000000000
+#             v9: 0x00000000000000007f8000007f800000
+#             v3: 0x7f8000007f8000000000000000000000
+#            v25: 0x3ff80000000000003ff8000000000000
+#             v9: 0x00000000000000003fc000003fc00000
+#             v5: 0x3fc000003fc000007fffffff3fc00000
+#             v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000003fb504f33fb504f3
+#            v31: 0x00000000000000007fc000007fffffff
+#            v11: 0x00000000000000007fc000007fc00000
+#            v16: 0x00000000000000007fc000007fffffff
+#            v25: 0x000000000000000043dff00000200000
+#            v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000004eff80004eff8000
+#            v18: 0x00000000000000000000000000000000
+#            v17: 0x4e7f00004e7f00004f0000004e7f0000
+#            v11: 0x00000000000000004287bfe03e000000
+#             v9: 0x43dfe000001fe0000000000000000000
+#            v26: 0x000000000000000040fff00000200000
+#            v11: 0x00000000000000000000000000000000
+#            v29: 0x7fc000007fc000000000000000000000
+#            v22: 0x4effe000000000004e001a4000000000
+#            v18: 0x4207bfc03d7f00000000000000000000
+#       p8<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#       p9<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p9<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p10<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p10<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p11<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x7f000000008000000000000000000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x80 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x7f <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x2f000000000029000000000023000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x0d0c0b0a09080706050403020100fffe (0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (...)
+#
+#   z21<639:512>: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x7f800000000000000000000000000000 (inf, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z22<511:384>: 0x2f2e0000000000000000000023220000 (1.583e-10, ..., 0.000, 8.782e-18)
+#                          ║               ║       ╙─ 0x23220000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e0000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z23<511:384>: 0x00000000000000000000000023220000 (..., 2.912e-315)
+#                                                  ╙─ 0x0000000023220000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#                          ║   ║       ║   ║       ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000230022000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x0000000000000000000000000000007f
+#                                  ║               ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x000000000000002f0000290000230000
+#   z21<255:128>: 0x00000000000000002e00000000002200
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x22'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x2e'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x0000007f007f00000000000000000000
+#   z21<383:256>: 0x00000000800000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x80'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     z22<127:0>: 0x000000007f807f800000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#     z23<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'7f800000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#     z24<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z24<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x0000000000000000000000ff00000000
+#     z25<127:0>: 0xa000000000000000000000ffc0000000
+#     z26<127:0>: 0x3700000000000000000000007f000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x7f'c0'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'ff'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x37'a0'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<639:512>: 0x00000000000000000000000000000000
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z25<127:0>: 0x292823221d1c17160000000000000000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z26<127:0>: 0x2b2a25241f1e191813120d0c07060100 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z27<127:0>: 0x2d2c272621201b1a1514000009080000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0100'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0908'0706'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0d0c'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514'1312'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1b1a'1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2120'1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x595853524d4c474641403b3a35342f2e (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z26<255:128>: 0x5b5a55544f4e494843423d3c37363130 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z27<255:128>: 0x5d5c575651504b4a45443f3e39383332 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3332'3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3938'3736'3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544'4342'4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4b4a'4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5150'4f4e'4d4c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c'5b5a'5958 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x898883827d7c777671706b6a65645f5e (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z26<383:256>: 0x8b8a85847f7e797873726d6c67666160 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z27<383:256>: 0x8d8c878681807b7a75746f6e69686362 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x6362'6160'5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6968'6766'6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6f6e'6d6c'6b6a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x7574'7372'7170 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7b7a'7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x8180'7f7e'7d7c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x8786'8584'8382 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8d8c'8b8a'8988 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0xb9b8b3b2adaca7a6a1a09b9a95948f8e (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z26<511:384>: 0xbbbab5b4afaea9a8a3a29d9c97969190 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z27<511:384>: 0xbdbcb7b6b1b0abaaa5a49f9e99989392 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x9392'9190'8f8e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x9998'9796'9594 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x9f9e'9d9c'9b9a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xa5a4'a3a2'a1a0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xabaa'a9a8'a7a6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xb1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xb7b6'b5b4'b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xbdbc'bbba'b9b8 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0xe9e8e3e2dddcd7d6d1d0cbcac5c4bfbe (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z26<639:512>: 0xebeae5e4dfded9d8d3d2cdccc7c6c1c0 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z27<639:512>: 0xedece7e6e1e0dbdad5d4cfcec9c8c3c2 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xc3c2'c1c0'bfbe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xc9c8'c7c6'c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xcfce'cdcc'cbca <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd5d4'd3d2'd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xdbda'd9d8'd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xe1e0'dfde'dddc <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xe7e6'e5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+#     z26<127:0>: 0x00000000000000000000ffff00000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z27<127:0>: 0x00000000000000007fff000000000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z28<127:0>: 0x37a0000000000000000000007fc00000 (0.000, 0.000, 9.183e-41, 0.000)
+#                          ║       ║       ║       ╙─ 0x7fc00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'7fff0000'0000ffff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z27<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000ffff7fc00000 (0.000, 0.000)
+#     z29<127:0>: 0x37a0000000000000000000007fff0000 (0.000, 0.000)
+#                                  ║               ╙─ 0x000000007fff0000'0000ffff7fc00000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x37a0000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z25<127:0>: 0x0000000000000000000000f300000000
+#     z26<127:0>: 0x00000000000000000000000400000000
+#     z27<127:0>: 0x0080000000800000000000ff00000000
+#     z28<127:0>: 0x007f0000007f0000000000ff00000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0xff'ff'04'f3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#   z27<255:128>: 0x00000000000000000000000000000000
+#   z28<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#   z27<383:256>: 0x00000000000000000000000000000000
+#   z28<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#   z27<511:384>: 0x00000000000000000000000000000000
+#   z28<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#   z27<639:512>: 0x00000000000000000000000000000000
+#   z28<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z26<127:0>: 0x00000000000000003fb504f300000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z27<127:0>: 0x7f8000007f800000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#     z27<127:0>: 0x2f2e2d2c000000000000000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z28<127:0>: 0x33323130000000007f80000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000007060504 (1.584e-10, 0.000, 0.000, 0.000)
+#     z30<127:0>: 0x00000000000000007f8000000b0a0908 (1.584e-10, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7f800000'00000000'7f800000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000005756555400000000 (0.000, 0.000, 0.000, 0.000)
+#   z30<255:128>: 0x00000000000000005b5a595800000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5b5a5958'57565554'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0xafaeadac9f9e9d9c8f8e8d8c7f7e7d7c (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z28<383:256>: 0xb3b2b1b0a3a2a1a09392919083828180 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z29<383:256>: 0xb7b6b5b4a7a6a5a49796959487868584 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z30<383:256>: 0xbbbab9b8abaaa9a89b9a99988b8a8988 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#                          ║       ║       ║       ╙─ 0x8b8a8988'87868584'83828180'7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x9b9a9998'97969594'93929190'8f8e8d8c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xabaaa9a8'a7a6a5a4'a3a2a1a0'9f9e9d9c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xbbbab9b8'b7b6b5b4'b3b2b1b0'afaeadac <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z28<511:384>: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z29<511:384>: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z30<511:384>: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x2f2e2d2c1f1e1d1c0f0e0d0cfffefdfc (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z28<639:512>: 0x33323130232221201312111003020100 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z29<639:512>: 0x37363534272625241716151407060504 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z30<639:512>: 0x3b3a39382b2a29281b1a19180b0a0908 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'03020100'fffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1b1a1918'17161514'13121110'0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928'27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3b3a3938'37363534'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z29<127:0>: 0x000000007f8000000000000000000000 (0.000, 0.000)
+#     z30<127:0>: 0x000000000000000000000000ffff04f3 (0.000, 0.000)
+#     z31<127:0>: 0x000000007f80000000000000ffff3fb5 (0.000, 0.000)
+#                                  ║               ╙─ 0x00000000ffff3fb5'00000000ffff04f3'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x000000007f800000'0000000000000000'000000007f800000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z30<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z31<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
diff --git a/test/test-trace-reference/log-vregs-colour b/test/test-trace-reference/log-vregs-colour
index 0b71fc9..31d1c24 100644
--- a/test/test-trace-reference/log-vregs-colour
+++ b/test/test-trace-reference/log-vregs-colour
@@ -1,2304 +1,5371 @@
-#    v0: 0x00055555005555550000000000000000
-#    v1: 0x3ff0d2c63fcb514c3ff587933f9e0419
-#    v2: 0x4000d2c6404b514c40058793401e0419
-#    v3: 0x401570fb40385373401025ae406d0626
-#    v4: 0x4010d2c640cb514c40158793409e0419
-#    v5: 0x401fbc2d4090d04a401ae97840c5851f
-#    v6: 0x402570fb40b85373402025ae40ed0626
-#    v7: 0x402783f4415f16c34022d6a1410a4396
-#    v8: 0x4020d2c6414b514c40258793411e0419
-#    v9: 0x402d6dd3416491c9402838864131c49c
-#   v10: 0x402fbc2d4110d04a402ae9784145851f
-#   v11: 0x4028cf3e410c10f7402d9a6b415945a2
-#   v12: 0x403570fb41385373403025ae416d0626
-#   v13: 0x40342b7d41d5360140317e2841806354
-#   v14: 0x403783f441df16c34032d6a1418a4396
-#   v15: 0x40317a4f41c1768240342f1a419423d7
-#   v16: 0x4030d2c641cb514c40358793419e0419
-#   v17: 0x4033b55841f2b10e4036e00d41a7e45b
-#   v18: 0x403d6dd341e491c94038388641b1c49c
-#   v19: 0x403cc5aa41eef18b403990ff41bba4de
-#   v20: 0x403fbc2d4190d04a403ae97841c5851f
-#   v21: 0x403914a7419a3034403c41f241cf6561
-#   v22: 0x4038cf3e418c10f7403d9a6b41d945a2
-#   v23: 0x403ba7b141b670b1403ef2e441e325e4
-#   v24: 0x404570fb41b85373404025ae41ed0626
-#   v25: 0x404584be41a3b3324040d1eb41f6e667
-#   v26: 0x40442b7d4255360140417e2842006354
-#   v27: 0x40477f314250062040422a6442055375
-#   v28: 0x404783f4425f16c34042d6a1420a4396
-#   v29: 0x4046d78b425a66e2404382de420f33b7
-#   v30: 0x40417a4f4241768240442f1a421423d7
-#   v31: 0x40418e02424c46ad4044db57421913f8
-#   v13: 0x00000000000000004036e00cd9b7e45b
-#    v8: 0x00000000000000000000000041c5851e
-#    v1: 0x00000000000000003ff587933f9e0419 (d1: 1.34560)
-#   v25: 0x000000000000000000000000410a4396 (s25: 8.64150)
-#    v1: 0x0000000000000000ffffffffffffffff
-#    v4: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#   v13: 0x0000000000000000404633d07142f43a (d13: 44.4048)
-#   v27: 0x000000000000000000000000424094fe (s27: 48.1455)
-#   v19: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v27: 0x0000000000000000ffffffffffffffff
-#   v31: 0x0000000000000000ffffffffffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v1: 0x000000000000000000000000ffffffff
-#   v18: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v11: 0x000000000000000000000000ffffffff
-#   v17: 0x000000000000000000000000ffffffff
-#   v24: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000 (d10: 0.00000)
-#   v22: 0x00000000000000000000000000000000 (s22: 0.00000)
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
-#   v11: 0x00000000000000000000000000000000 (d11: 0.00000)
-#    v8: 0x00000000000000000000000000004a0e
-#   v12: 0x0000000000000000000000000000ffff
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
-#   v27: 0x0000000000000000000000004072c000 (s27: 3.79297)
-#   v28: 0x00000000000000000000000000000016
-#    v3: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000012
-#   v27: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000014
-#   v10: 0x00000000000000000000000000000000
-#    v0: 0x0000000000000000000000000000001c
-#    v6: 0x00000000000000000000000000000009
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000019
-#   v24: 0x00000000000000000000000000000001
-#   v14: 0x00000000000000000000000000000001
-#   v12: 0x00000000000000000000000000000001
-#   v15: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000007ff0000000000000 (d6: inf)
-#   v26: 0x00000000000000000000000000000000 (s26: 0.00000)
-#   v18: 0x00000000000000000000000000000014 (d18: 9.88131e-323)
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
-#   v12: 0x00000000000000000000000000000000 (d12: 0.00000)
-#   v12: 0x00000000000000000000000000000000 (s12: 0.00000)
-#   v28: 0x00000000000000000000000000000000 (d28: 0.00000)
-#    v6: 0x00000000000000000000000000000000 (s6: 0.00000)
-#   v20: 0x00000000000000000000000000000014 (d20: 9.88131e-323)
-#    v7: 0x00000000000000000000000000000000 (s7: 0.00000)
-#   v19: 0x00000000000000000000000000000001 (d19: 4.94066e-324)
-#    v0: 0x000000000000000000000000ffffffff (s0: nan)
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
-#    v2: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000c004000000000000 (d8: -2.50000)
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
-#   v25: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000040380000 (s21: 2.87500)
-#   v20: 0x00000000000000000000000000000001 (d20: 4.94066e-324)
-#    v5: 0x00000000000000000000000000000000 (s5: 0.00000)
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
-#   v25: 0x000000000000000000000000ffffffff (s25: nan)
-#    v4: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000000000000ffffffff
-#   v15: 0x000000000000000080000000ffffffff (d15: -2.12200e-314)
-#   v14: 0x0000000000000000000000007fffffff (s14: nan)
-#    v0: 0x00000000000000008000000000000000 (d0: -0.00000)
-#    v0: 0x00000000000000000000000080000014 (s0: -2.80260e-44)
-#   v19: 0x00000000000000008000000040380000 (d19: -5.32312e-315)
-#   v29: 0x00000000000000000000000080000000 (s29: -0.00000)
-#   v31: 0x00000000000000000000000000000000 (d31: 0.00000)
-#   v18: 0x0000000000000000000000007fffffff (s18: nan)
-#    v7: 0x00000000000000007ff0000000000000
-#   v29: 0x000000000000000000000000ffffffff
-#   v11: 0x00000000000000004000000000000000
-#   v18: 0x000000000000000000000000ffffffff
-#   v15: 0x00000000000000007fe0000000000000
-#    v5: 0x0000000000000000000000007f000000
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
-#   v19: 0x00000000000000000000000000000000 (d19: 0.00000)
-#   v14: 0x00000000000000000000000040400000 (s14: 3.00000)
-#   v20: 0x00000000000000000000000000000000 (d20: 0.00000)
-#    v1: 0x00000000000000000000000000000000 (s1: 0.00000)
-#   v30: 0x00000000000000000000000000000000 (d30: 0.00000)
-#   v24: 0x00000000000000000000000000000000 (s24: 0.00000)
-#    v4: 0x00000000000000000000000000000000 (d4: 0.00000)
-#   v13: 0x00000000000000000000000000000000 (s13: 0.00000)
-#   v13: 0x00000000000000000000000000000000 (d13: 0.00000)
-#   v17: 0x00000000000000000000000000000000 (s17: 0.00000)
-#    v0: 0x0000000000000000c000000000000000 (d0: -2.00000)
-#   v15: 0x000000000000000000000000ffffffff (s15: nan)
-#   v21: 0x00000000000000007ff0000000000000
-#   v17: 0x000000000000000000000000ffffffff
-#    v4: 0x00000000000000003ff8000000000000
-#   v14: 0x0000000000000000000000003fc00000
-#   v14: 0x00000000000000001f5ffffffff00000 (d14: 1.45671e-157)
-#    v4: 0x000000000000000000000000fff00000 (s4: nan)
-#   v13: 0x0000000000000000fff0000000000000 (d13: -inf)
-#    v3: 0x00000000000000000000000000000000 (s3: 0.00000)
-#   v31: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000004022000000000000 (d6: 9.00000)
-#    v5: 0x00000000000000003f90000000000000 (d5: 0.0156250)
-#   v16: 0x00000000000000000000000000000000 (d16: 0.00000)
-#   v15: 0x00000000000000000000000000000000 (d15: 0.00000)
-#    v7: 0x00000000000000007ff00000c9800000
-#    v8: 0x0000000000000000c004000000000000
-#   v29: 0x00000000000000000000000000000000 (s29: 0.00000)
-#   v15: 0x0000000000000000000000003c200000 (s15: 0.00976562)
-#   v27: 0x0000000000000000000000003f800000 (s27: 1.00000)
-#   v26: 0x0000000000000000000000003c7fffff (s26: 0.0156250)
-#    v0: 0x000000000000000043d00a0e21904c71
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000003ff0000000000000 (d30: 1.00000)
-#    v3: 0x00000000000000000000000000000000 (d3: 0.00000)
-#   v28: 0x00000000000000004034000000000000 (d28: 20.0000)
-#   v27: 0x00000000000000000000000000000000 (d27: 0.00000)
-#   v11: 0x00000000000000004000000000000000
-#    v0: 0x000000000000000043d00a0e4783c64c
-#   v20: 0x00000000000000000000000000000000 (s20: 0.00000)
-#   v21: 0x00000000000000000000000046160000 (s21: 9600.00)
-#    v6: 0x00000000000000000000000041d80000 (s6: 27.0000)
-#    v7: 0x00000000000000000000000038ff0000 (s7: 0.000121593)
-#   v19: 0x000000000000000043d00a0e4783c64c
-#   v16: 0x00000000000000004000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000000000001
-#   v16: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000010000000000000
-#   v10: 0x000000000000000000000000ffffffff
-#   v31: 0x403ba7b141b670b1403ef2e47d0325e4
-#   v10: 0x403ba7b141b670b15f9ef2e47cf325e4
-#   v15: 0x000000000000000063300a0d4773c64c
-#   v27: 0x0000000000000000403ef2e441e225e3
-#   v25: 0x00000000000000004044000000000000
-#   v13: 0x00000000000000000000000037feffff
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000082900a0d
-#   v10: 0x0000000000000000000000003ff03c7f
-#   v31: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v31: 0x00000000000038fe0000000000000000
-#   v14: 0x000000000000000043d00a0e4783c64c
-#    v3: 0x000000007400000000000000c4000000
-#    v8: 0x00000000ffffffff0000000000000000
-#   v22: 0x00000000000000003c7fffff3ff00000
-#   v29: 0x00000000000000004dde0dcf00000000
-#   v30: 0x0000000000000000000000003c7fffff
-#   v12: 0x0000000000000000000037000000bbfe
-#   v17: 0x000000003700bbfe0000fffe00000000
-#   v27: 0x0000000000000000000000000000006c
-#   v12: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000003c7e
-#   v19: 0x00000000000000000000000000005bad
-#   v14: 0x00000000000000000000000000003c7e
-#   v10: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v26: 0x000000007400000000000000c4000000
-#    v7: 0x000000000000000000000000381b0000
-#   v28: 0x00000000000000004034000000000000
-#   v29: 0x00000000000000004dde0d4300000000
-#   v12: 0x00000000000000000000000000000000
-#   v18: 0x000000000000000000000000ff67ff67
-#   v12: 0x000000000000000000000000c4000000
-#    v2: 0x0000000000000000403ef2e441e30180
-#    v8: 0x00000000ffffffff0000000004000000
-#    v5: 0x00000000000000000000000000000000
-#    v9: 0x00128220009270f80016c26000c22160
-#   v14: 0x000000000000000000000000c4000000
-#   v29: 0x07070707070707070707070707070707
-#   v21: 0x00000000000000000000001f0000001f
-#    v1: 0x0000000000000000000f000f0001000f
-#   v27: 0x0000001f0000001f0000001f0000001f
-#   v19: 0x00000000000000000707070707070707
-#   v15: 0x000f000f000f000f000f000f0001000f
-#    v1: 0x08080808080808080808080808080808
-#   v27: 0x00000000000000000000001000000020
-#    v9: 0x0000000000000000000b000000080002
-#   v31: 0x0000000c0000000c0000000c0000000f
-#   v14: 0x00000000000000000505050505050505
-#    v6: 0x00100010001000100001001000100010
-#   v18: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v19: 0xffffffff00ffffff000000000000ffff
-#   v15: 0xffffffffffffffffff00ffffff00ff00
-#   v12: 0xffffffffffffffffffffffffffffffff
-#    v8: 0xffffffffffffffff0000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000ffffffff
-#    v6: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000ffffffff00000000
-#   v21: 0xffffffff0000000000000000ffffffff
-#    v6: 0xffffffffffffffff00000000ffffffff
-#   v16: 0x0000000000000000ffffffff00000000
-#   v21: 0x000000000000000000000000ffffffff
-#   v20: 0xffffffffffffffff0000ffff0000ffff
-#   v26: 0x0000000000000000ffffffffffffffff
-#   v16: 0x00000000000000000000000000000000
-#   v25: 0x0000000000000000ffffffffffffffff
-#   v17: 0x000000000000ffffffffffffffff0000
-#   v22: 0xffffffffffffffffffffffffffff0000
-#   v28: 0x0000000000000000ffffffffffffffff
-#    v6: 0xffffffffffffffffffffffffffffffff
-#   v25: 0x000000000000000000000000ffffffff
-#   v21: 0x0000000000000000ffffffffffffffff
-#   v16: 0x0000000000000000ffffffff0000ffff
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v7: 0xffffffffffffffff00000000ffffffff
-#    v0: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000ff00ffffffff0000
-#   v21: 0x0000000000000000ffffffffffffffff
-#    v2: 0x0000000000000000ffffffffffffffff
-#   v19: 0xffffffffffffffff000000000000ffff
-#    v6: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v5: 0x0000000000000000ffffffffffffffff
-#   v12: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v5: 0x0000000000000000ffffffff00000000
-#   v13: 0x00000000000000000000000000000000
-#   v27: 0x0000000000000000000000ffffffffff
-#    v5: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x000000000000000000000000ffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v11: 0x0000000000000000ffffffff00000000
-#    v1: 0x00000000000000000000000000000000
-#   v21: 0xffffffffffffffffffffffffffffffff
-#    v8: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000ffffffffffffffff
-#   v19: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000ffffffffffffffff
-#    v0: 0xffffffff00ffffffffffffffffffffff
-#    v2: 0xffffffffffffffffffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#    v9: 0x0000000000000000ffffffffffffffff
-#    v9: 0xffffffffffffffffffffffffffffffff
-#   v21: 0x0000000000000000ffffffffffffffff
-#   v29: 0xffffffffffffffffffffffffffffffff
-#   v25: 0x0000000000000000ffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#    v7: 0x0000000000000000ffffffffffffffff
-#   v25: 0x00000000000000000000000000000000
-#    v0: 0x0000000000000000ffffffff00000000
-#   v24: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000ffffffff00000000
-#    v1: 0x0000000000000000ffffffffffffffff
-#   v28: 0x0000000000000000ffffffffffffffff
-#   v26: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v11: 0x0000000000000000ff00ffffffff0000
-#    v0: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000008080808
-#   v28: 0x00000000000000000000000000000000
-#    v6: 0xffffffffffffffffffffffffffffffff
-#    v9: 0x01010101010101010101010101010101
-#   v12: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000ffffff7dffffff7d
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v10: 0x00000018000000180000001800000018
-#   v30: 0x0000000000000000ffffffffffffffff
-#   v31: 0x00000000000000000101010101010101
-#   v28: 0xffffffffffffffffffffffffffffffff
-#    v2: 0x00000000000000000000000000000000
-#   v29: 0x0000000000000000ffffff7df7f7f775
-#    v3: 0x0000000000000000ffffffffffffffff
-#    v1: 0xff000000000000000000000000000000
-#    v2: 0x000000000000000000ffffffffffffff
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0b0a09080706050403020100fffefdfc <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0a09080706050403020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x1a191817161514131211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x2a292827262524232221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x3a393837363534333231302f2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x191817161514131211100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x292827262524232221201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x393837363534333231302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x494847464544434241403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x595857565554535251504f4e4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x4847464544434241403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x5857565554535251504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x6867666564636261605f5e5d5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x67666564636261605f5e5d5c5b5a5958 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001f1e1d1c1b1a1918 (d7: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000006f6e6d6c6b6a6968 (d17: 5.76650e+228) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000007776757473727170 (d18: 2.89670e+267) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000007f7e7d7c7b7a7978 (d19: 1.33818e+306) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000008786858483828180 (d20: -2.08158e-272) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000006e6d6c6b6a696867 (d28: 8.50866e+223) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000767574737271706f (d29: 4.22243e+262) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000007e7d7c7b7a797877 (d30: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000868584838281807f (d31: -3.03465e-277) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000ff0000850002ff01 (d20: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000000000000fffeff (d21: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000001700000000000000 (d22: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000008e8d8c8b8a898887 (d19: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000969594939291908f (d20: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000009e9d9c9b9a999897 (d21: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000008d8c8b8a89888786 (d12: -2.09028e-243) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000009594939291908f8e (d13: -1.02545e-204) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009d9c9b9a99989796 (d14: -4.85140e-166) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000ff0000850002ff01 (d29: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000fffeff (d30: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000a5a4a3a2a1a09f9e (d31: -2.38202e-127) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000adacabaaa9a8a7a6 (d0: -1.12597e-88) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000a4a3a2a1a09f9e9d (d3: -3.45787e-132) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000acabaaa9a8a7a6a5 (d4: -1.65794e-93) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000ff0000850002ff01 (d28: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000b4b3b2b1b0afaead (d11: -8.03348e-55) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000b3b2b1b0afaeadac (d29: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x3f3e3d3c3b3a39383736353433323130 (0.000461414, 9.95833e-43) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.70315e+18, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.28100e+95, -1.31369e+57) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.45943e+173, -3.04943e+134) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.39104e+250, -7.07849e+211) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.90391e+13, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.07279e+90, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.10851e+168, -4.47908e+129) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.90012e+245, -1.03980e+207) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.98829e-81, 4.28794e-120) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.07812e-299, -2.41385e+284) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1211100f0e0d0c0b0a09080706050403 (1.18008e-221, 2.54377e-260) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2221201f1e1d1c1b1a19181716151413 (2.74293e-144, 5.90574e-183) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.74681e-304, -3.54087e+279) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x11100f0e0d0c0b0a0908070605040302 (1.69471e-226, 3.72581e-265) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x21201f1e1d1c1b1a1918171615141312 (3.94003e-149, 8.65093e-188) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x1f1e1d1c1b1a19181700000000000000 (8.56775e-159, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x31302f2e2d2c2b2a2928272625242322 (9.15999e-72, 2.00864e-110) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x41403f3e3d3c3b3a3938373635343332 (2.12953e+06, 4.66377e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x302f2e2d2c2b2a292827262524232221 (1.34639e-76, 2.93754e-115) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x403f3e3d3c3b3a393837363534333231 (31.2431, 6.82132e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000fffeffff0000850002ff01 (8.28892e-317, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x504f4e4d4c4b4a494847464544434241 (7.24994e+78, 1.58398e+40) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x4f4e4d4c4b4a49484746454443424140 (1.07078e+74, 2.31271e+35) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000001f1e1d1c1b1a1918 (..., 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000005756555453525150 (..., 2.35662e+14, 9.03307e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000005f5e5d5c5b5a5958 (..., 1.60231e+19, 6.14598e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000006766656463626160 (..., 1.08801e+24, 4.17598e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000006f6e6d6c6b6a6968 (..., 7.37897e+28, 2.83386e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000565554535251504f (..., 5.86395e+13, 2.24749e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000005e5d5c5b5a595857 (..., 3.98768e+18, 1.52943e+16) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000666564636261605f (..., 2.70818e+23, 1.03937e+21) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000006e6d6c6b6a696867 (..., 1.83698e+28, 7.05432e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000001700000000000000 (..., 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000767574737271706f (..., 1.24460e+33, 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007e7d7c7b7a797877 (..., 8.42353e+37, 3.23831e+35) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000868584838281807f (..., -5.02237e-35, -1.90286e-37) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000007574737271706f6e (..., 3.09878e+32, 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000007d7c7b7a79787776 (..., 2.09754e+37, 8.06320e+34) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000008584838281807f7e (..., -1.24615e-35, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000fffeff (..., 0.00000, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00000000000000008d8c8b8a89888786 (..., -8.66176e-31, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000009594939291908f8e (..., -6.00095e-26, -2.28077e-28) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000008c8b8a8988878685 (..., -2.14997e-31, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x000000000000000094939291908f8e8d (..., -1.49010e-26, -5.66232e-29) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 (..., -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000009c9b9a9998979695 (..., -1.02970e-21, -3.91846e-24) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000009b9a999897969594 (..., -2.55764e-22, -9.73128e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000abaaa9a8a7a6a5a4 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000bbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000cac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000d2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000d1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000d9d8d7d6d5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000e1e0dfdedddcdbda <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000d8d7d6d5d4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e0dfdedddcdbdad9 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e8e7e6e5e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x3f3e3d3c3b3a39383736353433323130 (0.743122, 0.00284155, 1.08604e-05, 4.14886e-08) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.00179e+34, -3.84962e+31, -1.47890e+29, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.00825e-34, 3.82047e-37, nan, -2.60629e+36) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17161514131211100f0e0d0c0b0a0908 (4.84942e-25, 1.84362e-27, 7.00365e-30, 2.65846e-32) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x27262524232221201f1e1d1c1b1a1918 (2.30573e-15, 8.78905e-18, 3.34819e-20, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.49430e+33, -9.58428e+30, -3.68172e+28, -1.41390e+26) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.50175e-35, 9.47771e-38, -1.68804e+38, -6.48966e+35) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x161514131211100f0e0d0c0b0a090807 (1.20425e-25, 4.57737e-28, 1.73854e-30, 6.59782e-33) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x262524232221201f1e1d1c1b1a191817 (5.72948e-16, 2.18366e-18, 8.31732e-21, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c2b2a29282726252423222120 (1.58413e-10, 6.04532e-13, 2.30573e-15, 8.78905e-18) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x363534333231302f2e2d2c2b2a292827 (2.70015e-06, 1.03137e-08, 3.93749e-11, 1.50241e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x464544434241403f3e3d3c3b3a393837 (12625.1, 48.3127, 0.184800, 0.000706557) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x565554535251504f4e4d4c4b4a494847 (5.86395e+13, 2.24749e+11, 8.61082e+08, 3.29781e+06) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x3534333231302f2e2d2c2b2a29282726 (6.71297e-07, 2.56382e-09, 9.78665e-12, 3.73374e-14) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x4544434241403f3e3d3c3b3a39383736 (3140.20, 12.0154, 0.0459549, 0.000175682) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x5554535251504f4e4d4c4b4a49484746 (1.45909e+13, 5.59177e+10, 2.14218e+08, 820340.) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1b1a19181700000000000000 (3.34819e-20, 1.27467e-22, 4.13590e-25, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6564636261605f5e5d5c5b5a59585756 (6.74083e+22, 2.58684e+20, 9.92399e+17, 3.80591e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e6d6c6b6a69686766 (3.09878e+32, 1.19058e+30, 4.57302e+27, 1.75599e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x64636261605f5e5d5c5b5a5958575655 (1.67780e+22, 6.43816e+19, 2.46969e+17, 9.47063e+14) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x74737271706f6e6d6c6b6a6968676665 (7.71514e+31, 2.96402e+29, 1.13840e+27, 4.37102e+24) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0000000000fffeffff0000850002ff01 (0.00000, 2.35095e-38, -1.70144e+38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.09178e-36, -1.17085e-38, 5.22300e+36, 2.00766e+34) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x838281807f7e7d7c7b7a797877767574 (-7.67045e-37, 3.38275e+38, 1.30054e+36, 4.99878e+33) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000001f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000008b8a898887868584 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000939291908f8e8d8c <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000a3a2a1a09f9e9d9c <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000008a89888786858483 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000009291908f8e8d8c8b <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000009a99989796959493 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a2a1a09f9e9d9c9b <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000aaa9a8a7a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a9a8a7a6a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000b1b0afaeadacabaa <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000c1c0bfbebdbcbbba <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000c9c8c7c6c5c4c3c2 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000c0bfbebdbcbbbab9 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000c8c7c6c5c4c3c2c1 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000d0cfcecdcccbcac9 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000cfcecdcccbcac9c8 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3f3e3d3c3b3a39383736353433323130 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0f0e0d0c0b0a09080706050403020100 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0e0d0c0b0a09080706050403020100ff <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x2f2e2d2c2b2a29282726252423222120 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x1e1d1c1b1a191817161514131211100f <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2e2d2c2b2a292827262524232221201f <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3d3c3b3a393837363534333231302f <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x1d1c1b1a191817161514131211100f0e <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x2d2c2b2a292827262524232221201f1e <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3a393837363534333231302f2e <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x1f1e1d1c1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x4d4c4b4a494847464544434241403f3e <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x5d5c5b5a595857565554535251504f4e <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x4c4b4a494847464544434241403f3e3d <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5c5b5a595857565554535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000fffeffff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x6c6b6a696867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x6b6a696867666564636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3a39383736353433323130012e <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x6c6b6a6b6867666564636261605f5e5d <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x737271706f6e6d6c636261605f5e5d5c (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x7271706f6e6d6c6b2726252423222120 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x3d3c3b3aff013736353433323130012e <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0xff0000850002ff01d6d5d4d37473d0cf <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5c5b5a595857737254535251504f4e4d <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.99878e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.24460e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x77777777777777777777777777777777 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x76767676767676767676767676767676 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000ff0000850002ff01 (d25: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007e7d7c7b7a797877 (d9: 1.97467e+301) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000007d7c7b7a79787776 (d23: 2.91053e+296) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x8584838281807f7e8584838281807f7e (-4.41447e-282, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84838281807f7e7d84838281807f7e7d (-6.40629e-287, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000002ff010002ff01 (s24: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000008887868588878685 (s26: -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000008786858487868584 (s28: -2.02406e-34) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000008988898889888988 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000008887888788878887 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (..., -2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x8b8a89888b8a89888b8a89888b8a8988 (..., -5.33626e-32, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000008c8c8c8c8c8c8c8c <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1e1c1a18000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1d1b1917000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xacaaa8a6a4a2a09e9c9a98969492908e <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xaba9a7a5a3a19f9d9b99979593918f8d <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x1700000000000000ff0000850002ff01 (6.68887e-198, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.56775e-159, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.70315e+18, -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.31369e+57, -5.65934e-21) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.90391e+13, -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.92941e+52, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000000fffeff0002ff01 (..., 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000d6d5d4d3cecdcccb (..., -1.17555e+14, -1.72638e+09) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000dad9d8d7d2d1d0cf (..., -3.06592e+16, -4.50576e+11) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000d5d4d3d2cdcccbca (..., -2.92508e+13, -4.29488e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000d9d8d7d6d1d0cfce (..., -7.62949e+15, -1.12105e+11) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e7e6e3e2dfdedbda <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e9e8e5e4e1e0dddc <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e6e5e2e1dedddad9 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e8e7e4e3e0dfdcdb <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x1b1a19180000000000fffeff0002ff01 (1.27467e-22, 0.00000, 2.35095e-38, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1700000000000000ff000085 (3.34819e-20, 4.13590e-25, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.53999e-36, -1.04669e+37, -1.54621e+32, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.06322e-34, 2.35095e-38, -4.02346e+34, -5.94046e+29) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.82047e-37, -2.60629e+36, -3.84962e+31, -5.67986e+26) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.00825e-34, nan, -1.00179e+34, -1.47890e+29) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000171513110f0d0b09 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001513110f0d0b0907 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000161412100e0c0a08 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c1918000000000000feff0085ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a17000000000000ffff000002 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3433302f2c2b28272423201f1c1b1817 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x363532312e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x33322f2e2b2a272623221f1e1b1a1716 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x353431302d2c2928252421201d1c1918 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x363532012e2d2a29262522211e1d1a19 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1dff1b1a19181700000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x4544434241403f3e363c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0706050403020100fffefdfcfb35f9f8 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c1918000000000000feff0036ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000003e3d3c3b3a393837 (d26: 6.80687e-09) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000464544434241403f (d27: 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x07060504fffefdfc3d3c3b3a39383736 (d25: 1.00298e-13) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000004544434241403f3e (d26: 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xff01000000000000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00020000000000008b8b8b8b8b8b8b8b <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000474600003700ffff00850201 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xff01000049480000000000feff0000ff <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x1d1c191800000000000046450036ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1b1a1700000000004847ff000002 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xff00008500000000000046450036ff01 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000000000004c4b4a49 (s28: 5.32913e+07) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002ff0103020100fffefdfc504f4e4d (s29: 1.39121e+10) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.32570e+07, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.46117e+09, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x51515151515151515151515151515151 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x50505050505050505050505050505050 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000ff0000850002ff01 (d26: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000000000000000fffeff (d27: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000005857565554535251 (d14: 3.67814e+117) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x0000000000000000605f5e5d5c5b5a59 (d15: 1.68234e+156) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000005756555453525150 (d23: 5.37096e+112) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000005f5e5d5c5b5a5958 (d24: 2.48489e+151) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x67666564636261606766656463626160 (1.24732e+190, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.76650e+228, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x666564636261605f666564636261605f (1.81795e+185, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.50866e+223, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000002ff010002ff01 (s26: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ff000085ff000085 (s27: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000007271706f7271706f (s22: 4.78220e+30) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000007675747376757473 (s23: 1.24460e+33) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x000000000000000071706f6e71706f6e (s2: 1.19058e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000007574737275747372 (s3: 3.09878e+32) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000007776777677767776 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000007978797879787978 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000007675767576757675 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000007877787778777877 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (..., 5.22300e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (..., -1.17085e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x7b7a79787b7a79787b7a79787b7a7978 (..., 1.30054e+36, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (..., 3.38275e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000008181818181818181 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000007f7f7f7f7f7f7f7f <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x00000000000000008080808080808080 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x82818281828182818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x84838483848384838483848384838483 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x81808180818081808180818081808180 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x83828382838283828382838283828382 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x2d2a2724211e1b1800000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x2e2b2825221f1c1900000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2f2c292623201d1a1700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xb0adaaa7a4a19e9b9895928f8c898683 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xb1aeaba8a5a29f9c999693908d8a8784 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xb2afaca9a6a3a09d9a9794918e8b8885 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.56775e-159, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x27262524232221200000000000fffeff (4.28794e-120, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2f2e2d2c2b2a29281700000000000000 (1.98829e-81, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.07279e+90, -8.31108e-26) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.47908e+129, -3.90391e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.10851e+168, -1.92941e+52) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.30639e+86, -1.21867e-30) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.56908e+124, -5.62003e+08) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.03668e+163, -2.82942e+47) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x000000000000000000000000ff000085 (..., 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000001700000000fffeff (..., 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000f1f0efeee5e4e3e2 (..., -2.38613e+30, -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000f5f4f3f2e9e8e7e6 (..., -6.21029e+32, -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000f9f8f7f6edecebea (..., -1.61590e+35, -9.16546e+27) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000f0efeeede4e3e2e1 (..., -5.94046e+29, -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000f4f3f2f1e8e7e6e5 (..., -1.54621e+32, -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f7f6f5ecebeae9 (..., -4.02346e+34, -2.28166e+27) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000000000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000000000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000c0b060500fffaf9 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000e0d08070201fcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000100f0a090403fefd <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000d0c07060100fbfa <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000f0e09080302fdfc <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x272625241b1a1918000000000002ff01 (2.30573e-15, 1.27467e-22, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.04532e-13, 3.34819e-20, 0.00000, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x2f2e2d2c232221201700000000fffeff (1.58413e-10, 8.78905e-18, 4.13590e-25, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x373635342b2a29281f1e1d1c13121110 (1.08604e-05, 6.04532e-13, 3.34819e-20, 1.84362e-27) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161514 (0.00284155, 1.58413e-10, 8.78905e-18, 4.84942e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3f3e3d3c33323130272625241b1a1918 (0.743122, 4.14886e-08, 2.30573e-15, 1.27467e-22) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x363534332a2928271e1d1c1b1211100f (2.70015e-06, 1.50241e-13, 8.31732e-21, 4.57737e-28) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x3a3938372e2d2c2b2221201f16151413 (0.000706557, 3.93749e-11, 2.18366e-18, 1.20425e-25) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x3e3d3c3b3231302f262524231a191817 (0.184800, 1.03137e-08, 5.72948e-16, 3.16591e-23) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x000000000000000000000000fe000001 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x000000000000000000000000ffff85ff <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000001700000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000005653504d4a474441 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000053504d4a4744413e <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x000000000000000054514e4b4845423f <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x000000000000000055524f4c49464340 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2b2a25241f1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272621201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6e696863625d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a65645f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c676661605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x807f7a7974736e6d686762615c5b5655 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x82817c7b7675706f6a6964635e5d5857 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84837e7d787772716c6b6665605f5a59 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000001000000f5f4f3f2e9e8e7e6 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x2b2a2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272602201b1a00000000feff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x82818281828186818281828182818281 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000087000b0a0504fffef9f8 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x2d2c272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x2f2e292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x3b3a39382f2e2d2c2322212017161586 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a696867ff0000850002ff01 (d16: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000474600000000000000fffeff (d17: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd2d1d0cfcecdcccb1700000000000000 (d18: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x84837e7d787772718e8d8c8b8a898887 (d30: -1.41807e-238) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000969594939291908f (d31: -7.04826e-200) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (d0: -3.29099e-161) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.09028e-243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x9594939291908f8e6a6964635e5d5857 (-1.02545e-204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.85140e-166, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6e6968ff015d5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671706b6a00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e797873726d6c008561605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x9f9e2524ff1e191800000000ff00ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xa1a0272602201b1a00000000feff0084 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xa3a2292823221d1c1700000000ff0085 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c777671709e9d00025f5e5958 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x85847f7e79787372a09f008561605b5a <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6e6d6c6b6a696867a2a100850002ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0002ff01ff1e191800000000ff00ff01 (2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xff00008502201b1a00000000feff0084 (-1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00fffeff23221d1c1700000000ff0085 (2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.14938e-15, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000aaa9a8a7969594939291908f (..., -3.01375e-13, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.89780e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000a5a4a3a24744413e (..., -2.85603e-16, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.48978e-14, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.96304e-11, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0xadadadadadadadadadadadadadadadad <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0xafafafafafafafafafafafafafafafaf <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000ff0000850002ff01 (d4: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000fffeff (d5: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000001700000000000000 (d6: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000b7b6b5b4b3b2b1b0 (d7: -2.60696e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000bfbebdbcbbbab9b8 (d8: -0.120083) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000c7c6c5c4c3c2c1c0 (d9: -6.05398e+37) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000b6b5b4b3b2b1b0af (d17: -3.80205e-45) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000bebdbcbbbab9b8b7 (d18: -1.77248e-06) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000c6c5c4c3c2c1c0bf (d19: -8.83040e+32) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.11344e+71, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.05087e+110, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.54613e+148, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.06516e+66, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.98548e+105, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.40766e+144, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000002ff010002ff01 (s10: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000ff000085ff000085 (s11: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000fffeff00fffeff (s12: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000e1e0dfdee1e0dfde (s0: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000e5e4e3e2e5e4e3e2 (s1: -1.35113e+23) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000e9e8e7e6e9e8e7e6 (s2: -3.51957e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e0dfdedde0dfdedd (s23: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e4e3e2e1e4e3e2e1 (s24: -3.36301e+22) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e6e5e8e7e6e5 (s25: -8.76101e+24) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000eae9eae9eae9eae9 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000ecebecebecebeceb <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000eeedeeedeeedeeed <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000e9e8e9e8e9e8e9e8 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000ebeaebeaebeaebea <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x0000000000000000edecedecedecedec <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (..., -2.38613e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (..., -6.21029e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (..., -1.61590e+35, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (..., -5.94046e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (..., -1.54621e+32, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (..., -4.02346e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000fbfbfbfbfbfbfbfb <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x3c3834302c2824201c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3d3935312d2925211d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3e3a36322e2a26221e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3f3b37332f2b27231f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3f3b37332f2b27231f1b17130f0b0703 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x3b37332f2b27231f1b17130f0b0703ff <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x3c3834302c2824201c1814100c080400 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x3d3935312d2925211d1915110d090501 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x3e3a36322e2a26221e1a16120e0a0602 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x2726252423222120ff0000850002ff01 (4.28794e-120, -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.98829e-81, 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x37363534333231301700000000000000 (9.95833e-43, 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.000461414, 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x666564636261605f464544434241403f (1.81795e+185, 3.36984e+30) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.50866e+223, 1.57975e+69) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x767574737271706f565554535251504f (4.22243e+262, 7.82703e+107) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.97467e+301, 3.66628e+146) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x6564636261605f5e4544434241403f3e (2.64379e+180, 4.89923e+25) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.25402e+219, 2.32790e+64) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x7574737271706f6e5554535251504f4e (6.14144e+257, 1.13810e+103) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.91053e+296, 5.40301e+141) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000000000000002ff01 (..., 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x000000000000000017000000ff000085 (..., 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001b1a191800fffeff (..., 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001f1e1d1c00000000 (..., 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x000000000000000091908f8e81807f7e (..., -2.28077e-28, -4.72027e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000009594939285848382 (..., -6.00095e-26, -1.24615e-35) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000009998979689888786 (..., -1.57777e-23, -3.28683e-33) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000009d9c9b9a8d8c8b8a (..., -4.14537e-21, -8.66176e-31) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000908f8e8d807f7e7d (..., -5.66232e-29, -1.17085e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000009493929184838281 (..., -1.49010e-26, -3.09178e-36) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000009897969588878685 (..., -3.91846e-24, -8.15664e-34) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000009c9b9a998c8b8a89 (..., -1.02970e-21, -2.14997e-31) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x000000000000000019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000001f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000b6b5aeada6a59e9d <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000b8b7b0afa8a7a09f <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000bab9b2b1aaa9a2a1 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x0000000000000000bcbbb4b3acaba4a3 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000b5b4adaca5a49d9c <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000b7b6afaea7a69f9e <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000b9b8b1b0a9a8a1a0 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000bbbab3b2abaaa3a2 <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x3332313023222120000000000002ff01 (4.14886e-08, 8.78905e-18, 0.00000, 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x373635342726252417000000ff000085 (1.08604e-05, 2.30573e-15, 4.13590e-25, -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a39382b2a29281b1a191800fffeff (0.00284155, 6.04532e-13, 1.27467e-22, 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.743122, 1.58413e-10, 3.34819e-20, 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.47890e+29, -3.21185e+19, -6.93919e+09, -1.49017) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.84962e+31, -8.37048e+21, -1.81093e+12, -389.514) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.00179e+34, -2.18077e+24, -4.72428e+14, -101772.) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.60629e+36, -5.67986e+26, -1.23202e+17, -2.65799e+07) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.68172e+28, -7.99345e+18, -1.72638e+09, -0.370581) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.58428e+30, -2.08336e+21, -4.50576e+11, -96.8765) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.49430e+33, -5.42822e+23, -1.17555e+14, -25314.4) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.48966e+35, -1.41390e+26, -3.06592e+16, -6.61207e+06) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000001c18000000ff8501 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000001d19000000fe00ff <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000001e1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000001f1b17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a16120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x000000000000000016120e0a0602fefa <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x000000000000000017130f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000001814100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000001915110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x393831302928212019180000feffff01 <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a33322b2a23221b1a000000ff0002 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35342d2c25241d1c000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f1e17000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x53524b4a43423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x55544d4c45443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x57564f4e47463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x59585150494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x52514a4942413a3932312a2922211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2b24231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d26251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f2827201f <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x52514a4942413a3932312a2901211a19 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x54534c4b44433c3b34332c2bff231c1b <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x56554e4d46453e3d36352e2d02251e1d <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x5857504f4847403f3837302f0027201f <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000fbfbfbfb59fbfbfb <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x81807b7a75746f6ea9a8a7a65a5c5756 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000001c1800005cff8501 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35342d2c25241d58000000000085 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x3f3e37362f2e27261f5917000000ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000195a110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000001a5b120e0a0602fe <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff0000850002ff011f5917000000ff00 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000fffeff195a110d090501fd (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x17000000000000001a5b120e0a0602fe (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x636261605f5e5d5c1c1800005cff8501 (5.54935e+170, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6b6a6968676665641d19000000fe00ff (2.71346e+209, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.28953e+248, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7b7a7978777675741f1b17000000ff00 (6.29888e+286, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.00514e+165, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x6a696867666564631e1a000000ff0002 (3.98304e+204, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.86056e+243, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x7a797877767574731f1e17000000ff00 (9.24687e+281, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x5352ff0143423b3a33322b2a23221b1a <- 0x~~~~~~~~~~~~~~~~
-#    v3: 0x5554000245443d3c35342d2c25241d1c <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x5756008547463f3e37362f2e27261f1e <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5958ff00494841403938313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x5958ff00494841407c7b313029282120 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000007e7d0f0b0703fffb <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00007b7a00000000807f100c080400fc <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c000000008281110d090501fd <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29281b1a191800fffeff <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000002ff010703fffb (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00007b7a00000000ff000085080400fc (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00007d7c0000000000fffeff090501fd (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x393831308584838219180000feffff01 (..., -1.24615e-35, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.28683e-33, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.66176e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.28077e-28, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x848382810000000000fffeff090501fd (-3.09178e-36, ...) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x888786852b2a29280000000000fffeff (-8.15664e-34, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.14997e-31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x908f8e8d00000000fafafafafafafafa (-5.66232e-29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x01010101010101010101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xffffffffffffffffffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x02020202020202020202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x94949494949494949494949494949494 <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x90909090909090909090909090909090 <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x91919191919191919191919191919191 <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x92929292929292929292929292929292 <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x93939393939393939393939393939393 <- 0x~~~~~~~~~~~~~~~~
-#    v8: 0x0000000000000000ff0000850002ff01 (d8: -5.48682e+303) <- 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000fffeff (d9: 8.28892e-317) <- 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000001700000000000000 (d10: 6.68887e-198) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000001f1e1d1c1b1a1918 (d11: 8.56775e-159) <- 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000009b9a999897969594 (d4: -1.05028e-175) <- 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000a3a2a1a09f9e9d9c (d5: -5.00653e-137) <- 0x~~~~~~~~~~~~~~~~
-#    v6: 0x0000000000000000abaaa9a8a7a6a5a4 (d6: -2.43801e-98) <- 0x~~~~~~~~~~~~~~~~
-#    v7: 0x0000000000000000b3b2b1b0afaeadac (d7: -1.16334e-59) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000009a99989796959493 (d26: -1.54211e-180) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000a2a1a09f9e9d9c9b (d27: -7.22772e-142) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000aaa9a8a7a6a5a4a3 (d28: -3.58004e-103) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000b2b1b0afaeadacab (d29: -1.67978e-64) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0xff0000850002ff01ff0000850002ff01 (-5.48682e+303, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000fffeff0000000000fffeff (8.28892e-317, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x17000000000000001700000000000000 (6.68887e-198, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.56775e-159, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.31108e-26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.90391e+13, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.92941e+52, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.07279e+90, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.21867e-30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.62003e+08, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.82942e+47, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.30639e+86, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000002ff010002ff01 (s31: 2.75149e-40) <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000ff000085ff000085 (s0: -1.70144e+38) <- 0x~~~~~~~~~~~~~~~~
-#    v1: 0x000000000000000000fffeff00fffeff (s1: 2.35095e-38) <- 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000000 (s2: 0.00000) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000d5d4d3d2d5d4d3d2 (s28: -2.92508e+13) <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000d9d8d7d6d9d8d7d6 (s29: -7.62949e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000dddcdbdadddcdbda (s30: -1.98932e+18) <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000e1e0dfdee1e0dfde (s31: -5.18525e+20) <- 0x~~~~~~~~~~~~~~~~
-#   v11: 0x0000000000000000d4d3d2d1d4d3d2d1 (s11: -7.27820e+12) <- 0x~~~~~~~~~~~~~~~~
-#   v12: 0x0000000000000000d8d7d6d5d8d7d6d5 (s12: -1.89854e+15) <- 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000dcdbdad9dcdbdad9 (s13: -4.95069e+17) <- 0x~~~~~~~~~~~~~~~~
-#   v14: 0x0000000000000000e0dfdedde0dfdedd (s14: -1.29053e+20) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x0000000000000000ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x00000000000000000085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000e2e1e2e1e2e1e2e1 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e4e3e4e3e4e3e4e3 <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x0000000000000000e6e5e6e5e6e5e6e5 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x0000000000000000e8e7e8e7e8e7e8e7 <- 0x~~~~~~~~~~~~~~~~
-#   v20: 0x0000000000000000e1e0e1e0e1e0e1e0 <- 0x~~~~~~~~~~~~~~~~
-#   v21: 0x0000000000000000e3e2e3e2e3e2e3e2 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x0000000000000000e5e4e5e4e5e4e5e4 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000e7e6e7e6e7e6e7e6 <- 0x~~~~~~~~~~~~~~~~
-#   v16: 0x0002ff010002ff010002ff010002ff01 (..., 2.75149e-40, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v17: 0xff000085ff000085ff000085ff000085 (..., -1.70144e+38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00fffeff00fffeff00fffeff00fffeff (..., 2.35095e-38, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (..., 0.00000, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (..., -5.67986e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xefeeedecefeeedecefeeedecefeeedec (..., -1.47890e+29, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (..., -3.84962e+31, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (..., -1.00179e+34, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (..., -1.41390e+26, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xeeedecebeeedecebeeedecebeeedeceb (..., -3.68172e+28, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (..., -9.58428e+30, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (..., -2.49430e+33, ...) <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000101010101010101 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0x0000000000000000ffffffffffffffff <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000202020202020202 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000fafafafafafafafa <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0000000000000000f6f6f6f6f6f6f6f6 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x0000000000000000f7f7f7f7f7f7f7f7 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000f8f8f8f8f8f8f8f8 <- 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000f9f9f9f9f9f9f9f9 <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00020002000200020002000200020002 <- 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00850085008500850085008500850085 <- 0x~~~~~~~~~~~~~~~~
-#   v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa <- 0x~~~~~~~~~~~~~~~~
-#   v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc <- 0x~~~~~~~~~~~~~~~~
-#   v27: 0xfffefffefffefffefffefffefffefffe <- 0x~~~~~~~~~~~~~~~~
-#   v28: 0x01000100010001000100010001000100 <- 0x~~~~~~~~~~~~~~~~
-#   v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 <- 0x~~~~~~~~~~~~~~~~
-#   v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb <- 0x~~~~~~~~~~~~~~~~
-#   v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd <- 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff <- 0x~~~~~~~~~~~~~~~~
-#   v29: 0x0002000200020002e73aed42f34af952
-#    v6: 0x0000000000000000dcbb11e0e6481e68
-#    v9: 0x00000000000000000000000000fffeff
-#    v5: 0x0000000000000000a4a2261ba09e2217
-#   v24: 0x000000000000000082b3330de36793c1
-#   v12: 0x00000000000000006f49f4f5e911f705
-#   v10: 0x00000000000000001700000000000000
-#    v3: 0x000000000000000035342d2c25221f1b
-#   v19: 0xfe070c07fe070c07fe070c07fe070c07
-#    v6: 0x0000000000000000dcbb11e0e6481e68
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
-#   v28: 0x00000000000000000100010001000100
-#    v2: 0x0000000000000000ac03d811ac03d811
-#   v18: 0x000000000000000000fffeff00fffeff
-#    v6: 0x00000000000000006347100f6cd41c97
-#   v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
-#   v26: 0x0000000000000000bd4365396d436539
-#   v10: 0x00000000000000008800000000000000
-#   v14: 0x0000000000000000d8e1d7ddd8e1d7dd
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v26: 0x0000000000000000000000000000e3e2
-#   v26: 0x000000000000000000000000fe070c07
-#   v26: 0x0000000000000000d4d3d2d1d4d3d2d1
-#   v20: 0x0000000000000000f9f9f9f9f9f9f9f9
-#   v19: 0xfe070f07fe070c07fe070c07fe070c07
-#    v4: 0x00000000000000009b9a999897969594
-#   v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
-#    v3: 0x00000000000000000000000000000000
-#   v29: 0x000200020002ff00e73aed42f34af952
-#    v2: 0x0000000c00000000ac03d811ac03d811
-#   v22: 0x00000000000000000000000000000000
-#   v24: 0x000000000000000082b3330de36793c1
-#   v24: 0x000000000000000000ffff0000ffffff
-#   v29: 0x80808080808080808080808080808080
-#   v12: 0xffff00ff00ffff00ffff00ff00ffff00
-#   v12: 0x0000000000000000ec000000ec000000
-#   v10: 0x0000000000000000004cffff004cffff
-#   v26: 0x000000000000000000c000c000c000c0
-#   v24: 0x00980000009800000098000000980000
-#    v1: 0x00deffff00deffff00deffff00deffff
-#   v21: 0x00000000000000004d4d4d4d4d4d4d4d
-#   v29: 0x00690069006900690069006900690069
-#    v1: 0x4700008e4b00007a4700008e4b00007a
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
-#   v19: 0x00000000000000000000000000000000
-#   v29: 0x0000000000000000427957e1427957e1
-#    v2: 0x00000000000000000000000000000000
-#   v25: 0x000000000000000042ff40c042ff40c0
-#   v26: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x0000000000000000470049004b004d00
-#   v20: 0x48004a004c004e0048004a004c004e00
-#   v29: 0x00000000000000000000000000000000
-#   v13: 0xffffffffffffffffe03d1120e03d1120
-#   v28: 0x0000000000000000ffffffffffffffff
-#   v25: 0x0000000000000000ffff47ffffff47ff
-#   v17: 0x0000000000000000ff930000ff930000
-#   v29: 0x0000000000000000ffb7ffb7ffb7ffb7
-#   v20: 0xff85ffffff85ffffff85ffffff85ffff
-#    v0: 0xffffe100ffffe100ffffe100ffffe100
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
-#   v25: 0x0000000000000000b8ffb6ffb4ffb300
-#    v4: 0x00000000000000000000000000010201
-#   v11: 0x0000000000000000470049004b004d00
-#    v7: 0x0000000000000000ff000101ff000101
-#    v7: 0x00000000000000004648484a4a4c4c4e
-#   v17: 0x0000000000000000ff000101ff000101
-#   v20: 0x00000000000000000100ffff0100ffff
-#    v0: 0x0000000000000000b900b700b500b300
-#   v13: 0x003e003e003e003e473e493e4b3e4d3e
-#   v22: 0x0000000000000000ffffffffffffffff
-#   v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
-#    v8: 0x0000000000000000ff0000e70002ffe3
-#   v11: 0x0000000000000000d700df00df00df00
-#    v7: 0x000000ab000000ab464848eb4a4c4cef
-#    v8: 0x00000000000000000000000000010201
-#   v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
-#   v11: 0x000000000000000000a9a8a900a9a8a9
-#    v8: 0x00000000000000000030000000100000
-#   v24: 0x0000555555aa55550000555555aa5555
-#   v13: 0x00000000000000000000000000000000
-#   v22: 0x000000000000000000000000200feede
-#    v5: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000fdfdfdfd9da5d974
-#    v9: 0x00000000000000000000000000fffeff
-#   v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
-#    v0: 0x0000000046004a04b900b700b500b300
-#   v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
-#   v30: 0x00000000000000000000000000000000
-#   v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
-#    v5: 0x00000000000000000000000001020100
-#   v16: 0x0000000000000000a76e9d2f75fed8a5
-#   v20: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000ffffffffffffffff
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000075fed8a5a76e9d2f
-#    v7: 0x0000000000000000fefffefffefffeff
-#   v15: 0x0000000000000000d8a575fe9d2fa76e
-#   v25: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000009d2fa76ed8a575fe
-#   v18: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v3: 0x0000000063106d1d0000000000000000
-#    v0: 0x00000000dbffdc00b900b700b500b300
-#   v27: 0x000000003a5fb14bfffefffefffefffe
-#   v15: 0x00000000000000000000000000000000
-#   v23: 0x000000000000000000009cf000000000
-#    v6: 0x000000000000000000abaaab00abaaab
-#    v4: 0x00555655005556550000000000010201
-#    v1: 0x62e2129262e2af824700008e4b00007a
-#   v19: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000ffffffffffffffff
-#    v9: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000fffbfdfbfffbfdfb
-#   v29: 0x000000003a5fb14b75b7d85e58486286
-#   v20: 0x00000000000000001e3d11201e3d1120
-#   v27: 0x000000003a5fb14b0003020300030203
-#   v20: 0x00000000010001011e3d11201f3d1221
-#    v4: 0x005585f20055c4fc00005a290001058d
-#   v23: 0x001e003d0044003500369d8300430034
-#   v26: 0x00000000000000009d2fa76ed8a575fe
-#   v27: 0x000000003a5fb14b0003020300030203
-#   v12: 0x00000000000000002f9d6ea7a5d8fe75
-#    v0: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000100010101000101
-#   v17: 0x00000000000000002fa270ac5a23007a
-#    v7: 0x633798855327f7af62e26cbc52d33840
-#   v23: 0x0000000000000000632f596e285b7502
-#   v20: 0x000000000000000075ff275a589162d0
-#   v27: 0x00000000d8e139ed00000000ab639583
-#   v31: 0x000012d0000032140000303600001232
-#    v0: 0x007500010027005a00ad00d200cd004d
-#   v31: 0x00000000000000000000000063106d1d
-#   v26: 0x00000000000000000000271f000039ed
-#    v6: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000003000000010610c
-#   v12: 0x00000000000000002f9d6ea7a5d95f81
-#   v12: 0x00000000000000002f9d95c6a5d9996e
-#    v4: 0x0000000000000000004759b7004c0607
-#   v15: 0x00000000000000000100a14f01005b9e
-#   v21: 0x00000000000000001fc2eedf1fc2eedf
-#    v5: 0xffffffffd6dfd5daffffffff7687b151
-#   v18: 0x00000100ffffa14f0000010000005b9e
-#   v15: 0x0063002f0059006e0028005b00750002
-#   v16: 0x0000000000000000ffffffffd8e139ed
-#    v6: 0x0000007500005556000055d1000055af
-#    v7: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffd8e139ec
-#   v18: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000004600000026
-#   v10: 0x00007574000012640000478e00004b7a
-#    v0: 0x0000000000000000ffe1ffcdffe1ffcd
-#   v12: 0x00000000000000000000000000000000
-#   v14: 0x0000000000000000000000000000fff8
-#   v30: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000000012cc
-#   v24: 0x00000000000000009d2fa76ed8a575fe
-#   v13: 0x00000000000055d100000000000055af
-#   v19: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000632f596e285b7502
-#   v15: 0x00000000000000000000000000000000
-#    v7: 0x000000000000000000232cdb00260303
-#   v29: 0x0000000000000000ce97d3b7ec52baff
-#   v31: 0x0000000000000000000023c700005094
-#   v21: 0x000000000000000000180000000839ec
-#   v14: 0x0000000000000000b5dae012cc3fc326
-#   v19: 0x00000000000000000997e764189b6c67
-#   v22: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000008000000000800000
-#    v2: 0x000000000000000036e00980c0e00000
-#    v4: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000ff00ff00ff00ff00
-#    v4: 0x0000000000000000c700000094000000
-#   v18: 0x00000000000000000000000000004830
-#    v0: 0x0000000000000000e9783b70c528aff0
-#    v5: 0x9d2fa76e00000000d8a575fe00000000
-#   v26: 0x75ff0000275a00005891000062d00000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x62e200001292000062e20000af820000
-#   v30: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000002e212926700008e4
-#   v29: 0x00000000000000000000000000000090
-#   v17: 0x00000000000000000000000000000024
-#    v5: 0x00000000000000002e212926700008e4
-#   v24: 0x317157c12580003d9d2fa76ed8a575fe
-#    v5: 0x00000000b5dacc3f2e212926700008e4
-#   v30: 0x31f1000009c90000ffd9d3c9c393c5ff
-#   v22: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000dc80ffb9da80ffc3
-#   v10: 0x0000000000000000ce805349ebda7605
-#    v6: 0x00000000000000000000ee1c0000d836
-#    v8: 0x0000000000000000ffe811e3fff8f7c4
-#   v19: 0x000000000000000000000000090b6c67
-#    v9: 0x317157c12580003d9d2fa76ed8a575fe
-#   v22: 0xc55f04960000f400be9dbb6295d7f800
-#   v11: 0x0000000000000000000fa76e000575fe
-#   v16: 0x0000000000000000000000000000000c
-#    v8: 0x0000000000000000c7e811e389f8f7c4
-#   v10: 0x0000000000000000ffd9d3c9c393c5ff
-#    v7: 0x0000000000000000ffe3ffdbffe6ffc3
-#   v18: 0x6200120062000000470011e34b00007a
-#   v30: 0x00000000000000004700008e700008e4
-#   v17: 0x000000000000000000000000090b6c67
-#    v1: 0x317157c12580003d000023c700005094
-#   v17: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x75ff0000275a00005891000062d00000
-#   v12: 0x00000000ffffffff00000000da123f26
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#   v10: 0x0000000000000000ffd9c5ff00000090
-#   v18: 0x00000000ffe6ffc375ff000062d00000
-#   v21: 0x000000000000000075006200787028f0
-#   v26: 0x00000000000000000000000011e3f7c4
-#    v4: 0x00000000000000000000000000000070
-#   v23: 0x00000000000000000000000000000078
-#    v6: 0x00000000000000000000000000003b70
-#   v24: 0x000000000000000000000000000011e3
-#    v3: 0x0000000000000000000000000000000c
-#   v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
-#   v29: 0x0000000000000000c7e811e389f8f7c4
-#    v6: 0x00000000000000005891000062d00000
-#   v24: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000000000000000000c
-#   v12: 0x0000000000000000ffd9c5ff00000090
-#   v13: 0x00000000ffffffff0000e6c3ff00d000
-#   v22: 0x000000000000000000000000ffffffff
-#   v15: 0x0000000000000000292608e4c5ff0000
-#   v15: 0x0000000000000000000000009d2fa76e
-#   v21: 0x00000000000000009100d000e080c000
-#   v21: 0x000000000000000000000000c5ff0000
-#    v8: 0x00000000000000000000000000000091
-#    v6: 0x000000000000000000000000000000d0
-#   v20: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000009d2f
-#   v21: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#    v7: 0x00000000000000000000000000009d2f
-#   v19: 0x0000000000000000000000000906ca9b
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#   v30: 0x00000000000000004700008e700008e4
-#   v31: 0x00000000000000000000ee1cd8a575fe
-#   v17: 0x00000000000000009d2fa76ed8a575fe
-#   v11: 0x75ff0000275a00005891000062d00000
-#   v30: 0x00000000000000004700008e700008e4
-#    v1: 0x317157c12580003d000023c700005094
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#    v0: 0x0000000000000000e9783b70c7c032a0
-#    v3: 0x0000000000000000000000000000000c
-#    v4: 0x000000000000000003c9f8c001c2e9f0
-#   v14: 0x0000000000000000b5dae012cc3fc326
-#   v15: 0x0000000000000000f9797b018bdbc6de
-#   v29: 0x00000000fba0fbfec7e811e376e8e7bc
-#    v6: 0x000000000000000000000000000000d0
-#   v30: 0x00000000000000004700008e700008e4
-#    v4: 0x15a6d000c90fc48aedb876b6692ad888
-#   v30: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000042ae0
-#    v8: 0x185dc92015d7004009b45060e2e7be40
-#   v31: 0x00000000f3d5e78200000000249000d8
-#    v3: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000062d05891275a8a02
-#   v31: 0x00000000000000000000000000000001
-#    v8: 0x000000000000000000000000383fcd60
-#   v14: 0x0000000000000000000000000000632f
-#   v23: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000001687c490383fcd60
-#   v29: 0x000000000000000016793c70383f3360
-#   v17: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000060
-#    v2: 0x00000000000000000000000011e3f7c4
-#    v7: 0x00000000000000000000000000003360
-#   v11: 0x00000000000000000000000000003360
-#   v20: 0x000000000000000016793c70383f336c
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v8: 0x00000000000000000000000011e3f7c4
-#   v20: 0x0000000000000000ffd9c5ff00000090
-#   v14: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000016792233373f0360
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000060
-#   v14: 0x000000000000000000000000ffe772e8
-#   v30: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v8: 0x0672308605c005640fa6a0001322041c
-#    v1: 0x317157c12580003d000023c700005094
-#   v19: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000011e3f7c4
-#    v6: 0x00000000000000000000000000000000
-#   v10: 0x0000000000000000ffffffc0b8e63400
-#   v10: 0x0000000000000000ffffffc0b8e66400
-#   v30: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000000000000ff00d000
-#   v27: 0xffffffffece2ff800000004ffccf8000
-#   v23: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v22: 0x000000000000000000000000ffffffff
-#   v12: 0x0000000000000000ffd9c5ff00000090
-#   v20: 0x0000000000000000ffd9c5ff00000090
-#   v25: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000000000000000ff70
-#   v16: 0x00000000000000000000000000000391
-#    v1: 0x00000000000000000000000000000000
-#    v1: 0x0000000000000000000000000000018a
-#   v28: 0x0000000000000000000000000000003a
-#   v28: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000fffe0529
-#   v25: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000fff726ef1b546ce0
-#   v29: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000e59831500
-#   v18: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000060
-#   v24: 0x0000000000000000ffffffffffffffa0
-#   v29: 0x00000000000000000000000000000000
-#    v4: 0x000000000000000000000000ffffffa0
-#   v14: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000263a00ffffff70
-#   v28: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000010060
-#    v9: 0x00000000000000000000000000000000
-#   v20: 0x000000000000000001273b0100000070
-#   v27: 0x000000000000000000010040471a9c00
-#    v7: 0x0000000000000000000000000000ffda
-#   v14: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v22: 0x0000000000000000ffa408a4ff20b5ee
-#   v22: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v2: 0x0000000000000000000000000000fff1
-#   v16: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000007fffffffffffffff
-#   v28: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v19: 0x000000000000000000000000ed800048
-#   v19: 0x000000000000000000000000ed800048
-#   v29: 0x00000000000000007fffffffffffffff
-#   v12: 0x0000000000000040ffd9c5ff00000090
-#   v16: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000000000000e598315
-#   v31: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000000000000004ffff
-#   v24: 0x0000000000000000ffffffffffffffa0
-#   v22: 0x00000000000000000000000000000000
-#   v28: 0x0000000000000000000000000e598315
-#    v6: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000007fed000000000
-#   v20: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v6: 0x0000000000000000000000000e598315
-#    v0: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v24: 0x00000000000200000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#    v8: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v30: 0x00000000002000000000000000000000
-#    v1: 0x00000000000000000000000000000080
-#   v31: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v14: 0x0000000000077f7f0000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v31: 0x000000000000ffff0000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000000000000007ffff
-#   v10: 0x00000000000000000010000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v27: 0x00000001000000000000000000000000
-#   v23: 0x0000ffff000000000000000e59831500
-#   v19: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000010000000000000
-#    v8: 0x000000000000000000000000ffff000f
-#   v18: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v17: 0x0000000000000000fff0000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000800000000e59831500
-#   v13: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v26: 0x000000000000000000000000ffff0000
-#    v7: 0x00000000000000000000000000000000
-#   v21: 0x000007ff000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000800000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000040
-#   v24: 0x00000000000000000000000000007ff9
-#    v6: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v23: 0x0000000000000080000000005f8f1000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000000000000000b0002
-#   v27: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000040
-#   v29: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000040
-#   v22: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v21: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000fe0000000000000000
-#   v20: 0x00000000000000000000000000000020
-#    v0: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v18: 0x00000000000000000000000000000000
-#   v21: 0x000000000000000000000000000000c0
-#   v31: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v5: 0x000000000000000000000000000b0002
-#   v23: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000020000000
-#   v11: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#    v3: 0x00000000000000000000000000000000
-#   v12: 0x000000000000000000000000ffffffff
-#   v29: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000020
-#   v14: 0x00000000000000000000000000000001
-#   v18: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000040
-#   v13: 0x0000000000000000ffffffffffffffe1
-#    v5: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v21: 0x000000000000000000000000ffff8007
-#   v30: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007ff9
-#   v31: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v12: 0x0000000000000000ffffffffffffffc0
-#   v20: 0x00000000000000000000000000007ff9
-#    v8: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000000000000ffff8007
-#   v24: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v16: 0x000000000000000000000000010180f9
-#   v20: 0x0000000000000000000100010001001f
-#    v5: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000ff0000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v20: 0x000000000000ffff000100010001001f
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x0000000000000000ffffffffffffffe1
-#    v0: 0x00000000000000000000000000000040
-#   v22: 0x00000000000000000000000000000000
-#   v24: 0x000000000000007f0000000000000000
-#   v26: 0x00000000000000000000000000000001
-#    v7: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000007fff7fff7fff7fff
-#    v4: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000001
-#   v31: 0x00000000000000000000000000000000
-#   v16: 0x0000000000010001000000000001001f
-#   v27: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000100000001
-#   v25: 0x00000000000000000000000000000000
-#   v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
-#    v3: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#    v6: 0x01010101010101010101010101010101
-#   v13: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#    v2: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v30: 0x0000000000000000ff00ff0000000000
-#   v24: 0x00000000000000000000010100000101
-#    v2: 0x000000000000000000000000ff00ff00
-#   v25: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000001
-#    v9: 0x00000000000000000000000000000000
-#    v6: 0x01010101010101010101010100020001
-#   v16: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ff00ff0000000001
-#   v10: 0x00000000ff00ff000000000000000000
-#   v30: 0x0000ff000000ff00ff01fe000000c000
-#    v4: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#   v26: 0x00000000000000000000000000000001
-#   v19: 0x0000000000000000ff00ff00ff00c000
-#   v18: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000001
-#   v20: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v9: 0x000000000000000000000000ff00ff01
-#   v14: 0x00000000000000000000000000000001
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ff00ff0000000001
-#    v1: 0x00000000000000000000000000000001
-#   v31: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v5: 0x00000000010101010000000001010101
-#    v1: 0x00000000000000000000010100000101
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x000000000000000000000000ff00ff01
-#   v26: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000010100000101
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000ff00ff
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000001
-#    v9: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000010100000101
-#   v18: 0x00000000010101010000000001010101
-#   v17: 0x0000000000000000ff00ff0000000001
-#   v29: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000008000800000000000800080
-#    v1: 0x00000000000000000000000000000000
-#   v14: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v26: 0x00000000ff7f7f7f00000000ff7f7f7f
-#    v3: 0x0000000000000000000000007f007f00
-#   v25: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000ff00ff
-#   v20: 0x000000000000000000000000ff7f7f7f
-#    v0: 0x00000000000000000000000001010101
-#    v6: 0x00000000000000000000000000ff00ff
-#    v0: 0x000000000000000000000000ff7fff7f
-#    v4: 0x00000000000000000000000000000000
-#    v1: 0x0000000000000000000000000000ffff
-#   v19: 0x00000000000000000000000100000000
-#   v21: 0x00000000000000000000ff0100000000
-#    v9: 0x000000000000000000000000ff7f7f7f
-#   v13: 0x000000000000000000000000000000ff
-#   v19: 0x0000ff7f0000ff7f0000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v31: 0x0000000000000000000000000000ff00
-#   v15: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#   v22: 0x0000000000000000000000000000ff01
-#    v1: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v24: 0x000000000000000000000000000000ff
-#   v20: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v21: 0x0000000000000000000000000000ff7f
-#    v0: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007e81
-#   v17: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000007e81
-#   v15: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#    v7: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v18: 0x0000000000000000000000000000ff01
-#   v28: 0x00000000000000000000000000ff00ff
-#   v11: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v10: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000000000ff
-#   v27: 0x00000000000000000000000000007e81
-#    v7: 0x000000000000000000000000000000ff
-#   v28: 0x00000000000000000000000000000000
-#   v19: 0x0000000000000000000000000000ff7f
-#   v16: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x0000000000000000000000000000ff00
-#   v23: 0x0000000000000000000000007f007f00
-#   v17: 0x00000000000000000000000000007e81
-#   v10: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v10: 0x000000000000000000000000000000ff
-#    v9: 0x0000000000000000000000000000ff01
-#   v24: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000008
-#   v10: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000001fe0
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000400000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000200000000000000ff
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x000000000000000000000000000000ff
-#   v23: 0x00000000000000000000000000ff00ff
-#    v8: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v14: 0x000000000000000000000000000000ff
-#    v6: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000003fc0000
-#   v25: 0x00000000000000000000000000000000
-#   v13: 0x000000000000000000000000ffffffff
-#   v28: 0x00000000000000000000000000000000
-#    v4: 0x0000000000000000000000000000fd02
-#    v9: 0x00000000000000000000000000007f80
-#   v18: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000008
-#   v26: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000ff00ff
-#   v14: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000007e81
-#   v10: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000001fe0
-#   v23: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v29: 0x000000000000ffff0000000000000000
-#   v13: 0x0000000000007e810000000000000000
-#   v28: 0x0000000000007e810000000000000000
-#   v23: 0x0000000000000000ffffffffffffffff
-#   v27: 0xffffffffffffffffffffffffffffffff
-#    v2: 0x80808080808080808080808080808080
-#   v15: 0x00000000000000000000000000000000
-#   v17: 0x00000000000000000000000000007e81
-#    v2: 0x80000000800000008000000080000000
-#    v5: 0x00000000000000000000000000003f41
-#   v30: 0x40000000400000004000000040000000
-#    v4: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v14: 0x0000000000000000ffffffffffffffff
-#   v10: 0x00000000000000000000000000000008
-#   v15: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v30: 0xffffffffffffffffffffffffffffffff
-#    v4: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000010
-#    v4: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000ffffffffffffffff
-#   v28: 0xffffffffffffffffffffffffffffffff
-#   v27: 0x0000000000000000ffffffffffffffff
-#   v18: 0x00000000000000000000000000001010
-#   v26: 0x00000000000000400000000000000040
-#    v8: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v18: 0x00000000000000000008000800081018
-#   v31: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000008
-#   v14: 0x0000000000000000ffffffffffffffff
-#   v22: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v2: 0x000000000000000000000000007e8100
-#   v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
-#    v8: 0x000000000000000000000000007fff80
-#   v29: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000000000007f007f00
-#   v31: 0x00000000000000000000000000000000
-#    v8: 0x000000000000000000000000007fff80
-#   v18: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v16: 0x0000000000000000000000007e007e00
-#   v12: 0x0000000000000000000000007e007e00
-#   v28: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000008
-#    v4: 0x0000000000000000000000000000003f
-#    v9: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007f007f00
-#   v29: 0x0000000000000000000000007e007e00
-#   v29: 0x00000000000000000000000000000000
-#   v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
-#    v1: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#    v9: 0x0000000000000000ffffffffffffffff
-#   v20: 0x0000000000000000000000007e007e00
-#   v25: 0x000000000000000000000000007fff80
-#   v18: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v30: 0x000000000000008100000000ffffffff
-#    v7: 0x00000000000000000000000000000040
-#   v26: 0x0000000000000000000000007e007e00
-#   v14: 0x00000000000000000000000000000000
-#   v17: 0x00000081ffffffff0000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v17: 0xff01ff01ff01ff400000000000000000
-#    v8: 0x0000000000007e7e0000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v20: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v25: 0x000000000000000001fe01fe01fe01fe
-#   v31: 0x00000000000000000000000000000000
-#    v8: 0x0000000000000000ff01ff0100000000
-#   v17: 0x0000000000000000000000007e007e00
-#    v3: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000001010000
-#    v0: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
-#   v23: 0x000000000000000001fe01fe01fe01fe
-#   v26: 0x0000000000000000ffffffff00000000
-#    v1: 0x00000000000000000000ffff0040ffff
-#    v0: 0x000000000000000000000000ffffffff
-#   v30: 0x0000000000000000007e0000007e0000
-#   v17: 0x0000ff010000ff010000000000000000
-#   v23: 0x0100fe000100fe000100fe000100fe00
-#   v30: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v0: 0x0100fe00000000000100fe0000000000
-#   v25: 0x00000000000000000001000000fe0000
-#    v7: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000001000000fe0000
-#   v14: 0x000000000000000001fe01fe01fe01fe
-#    v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
-#    v1: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000001000000fe0000
-#   v18: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffffffffff
-#   v30: 0xffffffffffffffff0000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#   v22: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000100fe000100fe00
-#   v16: 0x01fe01fe01fe01feffffffffffffffff
-#   v27: 0x00000000000000000000000000000000
-#   v20: 0x0000000000000000000000000180fe00
-#   v21: 0x020e01fe01fe01fe0000000000000000
-#   v31: 0x000000000000000000000000ffffffff
-#   v13: 0x00000000000000000000000000000000
-#   v17: 0xffffffffffffffff0000000000000000
-#   v24: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v24: 0x0000000000000000ffffffffffffffff
-#    v8: 0xffffffffffffffff0000000000000000
-#   v26: 0xffffffffffffffff0000000000000000
-#   v27: 0xffffffffffffffffffffffffffffffff
-#   v22: 0x0000000000000000ffffffffffffffff
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x0000000000000000ffffffffffffffff
-#   v29: 0x00000000000000000000000000000000
-#   v22: 0xffffffffffffffffffffffffffffffff
-#    v1: 0x00000000000000000000000000000000
-#   v15: 0xffffffffffffffffffffffffffffffff
-#   v21: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v14: 0xffffffff00000000ffffffff00000000
-#   v13: 0x00000000000000000000000000000000
-#    v4: 0xffffffffffffffffffffffffffffffff
-#   v24: 0x0000000000000000ffffffff00000000
-#    v8: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v8: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v8: 0x37a0000000000000381fc00000000000
-#   v27: 0xffffe000ffffe0000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#   v24: 0x377f0000377f0000377f0000377f0000
-#    v9: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#    v8: 0x37a00000000000000000000000000000
-#   v24: 0x0000000000000000377f0000377f0000
-#    v4: 0x0000000000000000ffffffffffffffff
-#   v25: 0x00000000000000000000000000000000
-#    v4: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v11: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#   v31: 0x000000000000000000000000ffffffff
-#   v19: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#   v13: 0x00000000000000000000000000000000
-#   v28: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x7ff00000000000007ff8000000000000
-#   v12: 0x00000000000000007fc000007fc00000
-#   v19: 0xffffffffffffffffffffffffffffffff
-#   v19: 0x37a00000000000000000000000000000
-#   v25: 0x00000000000000007fc000007fc00000
-#    v6: 0x7ff00000000000007ff8000000000000
-#   v16: 0x37a0000000000000000000000180fe00
-#   v15: 0x00000000000000000000000000000000
-#   v23: 0x37a0000000000000000000000180fe00
-#    v6: 0x000000000000000037a0000000000000
-#   v27: 0x00000000000000000000000000000000
-#    v8: 0x37a00000000000007fc000007fc00000
-#   v13: 0x0000000000000000ffffffff7fc00000
-#   v15: 0xffffffff000000000000000000000000
-#   v27: 0x00000000000000000000000037a00000
-#   v20: 0x0000000000000000ffffffff00000000
-#   v18: 0x00000000000000000000000000000000
-#    v9: 0x00000000ffffffff37a0000000000000
-#    v7: 0x0000000000000000ffffffffffffffff
-#   v18: 0x000000000000000000000000ffffffff
-#   v31: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v22: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v21: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v26: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#   v24: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v29: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000000000000000000000
-#   v25: 0x0000000000000000000000007fc00000
-#   v23: 0x00000000000000000000000000000000
-#   v23: 0x00000000000000000000000000000000
-#   v17: 0xffffffffffffffff0000000000000000
-#   v30: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000007fc000007fc00000
-#   v24: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#   v27: 0x00000000000000000000000037a00000
-#   v27: 0x00000000000000000000000037a00000
-#   v21: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v18: 0x000000000000000000000000ffffffff
-#    v5: 0x00000000000000000000000000000000
-#    v3: 0x0000000000000000000000007fffffff
-#   v27: 0x00000000000000000000000037a00000
-#   v26: 0x00000000000000007fffffff00000000
-#   v14: 0xbfd6000000000000bfd6000000000000
-#   v26: 0x00000000000000003f6800003f680000
-#   v31: 0xc0a00000c0a00000c0a00000c0a00000
-#   v28: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v30: 0x000000000000000000000000ffffffff
-#   v25: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#    v1: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000000000000000000000
-#   v11: 0x7fc000007fc000007fc000007fffffff
-#   v28: 0x00000000000000000000000000000000
-#   v25: 0x00000000000000000000000000000000
-#   v31: 0x00000000000000000000000000000000
-#    v3: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#   v16: 0x00000000000000000000000000000000
-#    v2: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#    v1: 0x80000000000000008000000000000000
-#   v14: 0x00000000000000008000000080000000
-#    v5: 0x80000000800000008000000080000000
-#   v18: 0x7ff00000000000007ff0000000000000
-#   v10: 0x00000000000000007f8000007f800000
-#    v5: 0x7f8000007f800000474c80007f800000
-#   v22: 0x40000000000000004000000000000000
-#   v31: 0x00000000000000004000000040000000
-#   v18: 0x40000000400000004000000040000000
-#   v26: 0x0000000000000000ffffffff7fc00000
-#   v15: 0x0000000000000000ffffffff7fc00000
-#   v13: 0x00000000000000000000000000000000
-#    v9: 0x00000000000000000000000000000000
-#    v5: 0x00000000000000007fc000007fc00000
-#   v15: 0x7fc000007fc000007fc000007fffffff
-#   v17: 0x00000000000000000000000000000000
-#   v30: 0x00000000000000007fc000007fffffff
-#    v1: 0x0000000000000000ffffffff00000000
-#   v24: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000000000000000000000
-#   v29: 0x7fc000007fc000007fc000007fffffff
-#   v10: 0x00000000000000000000000000000000
-#   v12: 0x00000000000000004000000040000000
-#   v26: 0x00000000000000004000000040000000
-#   v24: 0x00000000000000000000000000000000
-#    v7: 0x00000000000000000000000000000000
-#   v18: 0x00000000000000000000000000000000
-#   v19: 0x00000000000000000000000000000000
-#   v15: 0x00000000000000007fc000007fc00000
-#   v20: 0x00000000000000000000000000000000
-#   v23: 0x7ff00000000000002006900000000000
-#    v9: 0x00000000000000007f8000007f800000
-#    v3: 0x7f8000007f8000000000000000000000
-#   v25: 0x3ff80000000000003ff8000000000000
-#    v9: 0x00000000000000003fc000003fc00000
-#    v5: 0x3fc000003fc000007fffffff3fc00000
-#    v6: 0x00000000000000000000000000000000
-#    v6: 0x00000000000000000000000000000000
-#    v0: 0x00000000000000003fb504f33fb504f3
-#   v31: 0x00000000000000007fc000007fffffff
-#   v11: 0x00000000000000007fc000007fc00000
-#   v16: 0x00000000000000007fc000007fffffff
-#   v25: 0x000000000000000043dff00000200000
-#   v10: 0x00000000000000000000000000000000
-#   v10: 0x00000000000000004eff80004eff8000
-#   v18: 0x00000000000000000000000000000000
-#   v17: 0x4e7f00004e7f00004f0000004e7f0000
-#   v11: 0x00000000000000004287bfe03e000000
-#    v9: 0x43dfe000001fe0000000000000000000
-#   v26: 0x000000000000000040fff00000200000
-#   v11: 0x00000000000000000000000000000000
-#   v29: 0x7fc000007fc000000000000000000000
-#   v22: 0x4effe000000000004e001a4000000000
-#   v18: 0x4207bfc03d7f00000000000000000000
+#      z0<127:0>: 0x47e000017f03380147e000007f023800
+#    z0<255:128>: 0x47e000037f03380347e000027f023802
+#    z0<383:256>: 0x47e000057f07380547e000047f063804
+#    z0<511:384>: 0x47e000077f07380747e000067f063806
+#    z0<639:512>: 0x47e000097f0b380947e000087f0a3808
+#      z1<127:0>: 0x47f000017f833c0147f000007f823c00
+#    z1<255:128>: 0x47f000037f833c0347f000027f823c02
+#    z1<383:256>: 0x47f000057f873c0547f000047f863c04
+#    z1<511:384>: 0x47f000077f873c0747f000067f863c06
+#    z1<639:512>: 0x47f000097f8b3c0947f000087f8a3c08
+#      z2<127:0>: 0x48000001800340014800000080024000
+#    z2<255:128>: 0x48000003800340034800000280024002
+#    z2<383:256>: 0x48000005800740054800000480064004
+#    z2<511:384>: 0x48000007800740074800000680064006
+#    z2<639:512>: 0x48000009800b400948000008800a4008
+#      z3<127:0>: 0x48100001808344014810000080824400
+#    z3<255:128>: 0x48100003808344034810000280824402
+#    z3<383:256>: 0x48100005808744054810000480864404
+#    z3<511:384>: 0x48100007808744074810000680864406
+#    z3<639:512>: 0x48100009808b440948100008808a4408
+#      z4<127:0>: 0x48200001810348014820000081024800
+#    z4<255:128>: 0x48200003810348034820000281024802
+#    z4<383:256>: 0x48200005810748054820000481064804
+#    z4<511:384>: 0x48200007810748074820000681064806
+#    z4<639:512>: 0x48200009810b480948200008810a4808
+#      z5<127:0>: 0x4830000181834c014830000081824c00
+#    z5<255:128>: 0x4830000381834c034830000281824c02
+#    z5<383:256>: 0x4830000581874c054830000481864c04
+#    z5<511:384>: 0x4830000781874c074830000681864c06
+#    z5<639:512>: 0x48300009818b4c0948300008818a4c08
+#      z6<127:0>: 0x48400001820350014840000082025000
+#    z6<255:128>: 0x48400003820350034840000282025002
+#    z6<383:256>: 0x48400005820750054840000482065004
+#    z6<511:384>: 0x48400007820750074840000682065006
+#    z6<639:512>: 0x48400009820b500948400008820a5008
+#      z7<127:0>: 0x48500001828354014850000082825400
+#    z7<255:128>: 0x48500003828354034850000282825402
+#    z7<383:256>: 0x48500005828754054850000482865404
+#    z7<511:384>: 0x48500007828754074850000682865406
+#    z7<639:512>: 0x48500009828b540948500008828a5408
+#      z8<127:0>: 0x48600001830358014860000083025800
+#    z8<255:128>: 0x48600003830358034860000283025802
+#    z8<383:256>: 0x48600005830758054860000483065804
+#    z8<511:384>: 0x48600007830758074860000683065806
+#    z8<639:512>: 0x48600009830b580948600008830a5808
+#      z9<127:0>: 0x4870000183835c014870000083825c00
+#    z9<255:128>: 0x4870000383835c034870000283825c02
+#    z9<383:256>: 0x4870000583875c054870000483865c04
+#    z9<511:384>: 0x4870000783875c074870000683865c06
+#    z9<639:512>: 0x48700009838b5c0948700008838a5c08
+#     z10<127:0>: 0x48800001840360014880000084026000
+#   z10<255:128>: 0x48800003840360034880000284026002
+#   z10<383:256>: 0x48800005840760054880000484066004
+#   z10<511:384>: 0x48800007840760074880000684066006
+#   z10<639:512>: 0x48800009840b600948800008840a6008
+#     z11<127:0>: 0x48900001848364014890000084826400
+#   z11<255:128>: 0x48900003848364034890000284826402
+#   z11<383:256>: 0x48900005848764054890000484866404
+#   z11<511:384>: 0x48900007848764074890000684866406
+#   z11<639:512>: 0x48900009848b640948900008848a6408
+#     z12<127:0>: 0x48a000018503680148a0000085026800
+#   z12<255:128>: 0x48a000038503680348a0000285026802
+#   z12<383:256>: 0x48a000058507680548a0000485066804
+#   z12<511:384>: 0x48a000078507680748a0000685066806
+#   z12<639:512>: 0x48a00009850b680948a00008850a6808
+#     z13<127:0>: 0x48b0000185836c0148b0000085826c00
+#   z13<255:128>: 0x48b0000385836c0348b0000285826c02
+#   z13<383:256>: 0x48b0000585876c0548b0000485866c04
+#   z13<511:384>: 0x48b0000785876c0748b0000685866c06
+#   z13<639:512>: 0x48b00009858b6c0948b00008858a6c08
+#     z14<127:0>: 0x48c000018603700148c0000086027000
+#   z14<255:128>: 0x48c000038603700348c0000286027002
+#   z14<383:256>: 0x48c000058607700548c0000486067004
+#   z14<511:384>: 0x48c000078607700748c0000686067006
+#   z14<639:512>: 0x48c00009860b700948c00008860a7008
+#     z15<127:0>: 0x48d000018683740148d0000086827400
+#   z15<255:128>: 0x48d000038683740348d0000286827402
+#   z15<383:256>: 0x48d000058687740548d0000486867404
+#   z15<511:384>: 0x48d000078687740748d0000686867406
+#   z15<639:512>: 0x48d00009868b740948d00008868a7408
+#     z16<127:0>: 0x48e000018703780148e0000087027800
+#   z16<255:128>: 0x48e000038703780348e0000287027802
+#   z16<383:256>: 0x48e000058707780548e0000487067804
+#   z16<511:384>: 0x48e000078707780748e0000687067806
+#   z16<639:512>: 0x48e00009870b780948e00008870a7808
+#     z17<127:0>: 0x48f0000187837c0148f0000087827c00
+#   z17<255:128>: 0x48f0000387837c0348f0000287827c02
+#   z17<383:256>: 0x48f0000587877c0548f0000487867c04
+#   z17<511:384>: 0x48f0000787877c0748f0000687867c06
+#   z17<639:512>: 0x48f00009878b7c0948f00008878a7c08
+#     z18<127:0>: 0x49000001880380014900000088028000
+#   z18<255:128>: 0x49000003880380034900000288028002
+#   z18<383:256>: 0x49000005880780054900000488068004
+#   z18<511:384>: 0x49000007880780074900000688068006
+#   z18<639:512>: 0x49000009880b800949000008880a8008
+#     z19<127:0>: 0x49100001888384014910000088828400
+#   z19<255:128>: 0x49100003888384034910000288828402
+#   z19<383:256>: 0x49100005888784054910000488868404
+#   z19<511:384>: 0x49100007888784074910000688868406
+#   z19<639:512>: 0x49100009888b840949100008888a8408
+#     z20<127:0>: 0x49200001890388014920000089028800
+#   z20<255:128>: 0x49200003890388034920000289028802
+#   z20<383:256>: 0x49200005890788054920000489068804
+#   z20<511:384>: 0x49200007890788074920000689068806
+#   z20<639:512>: 0x49200009890b880949200008890a8808
+#     z21<127:0>: 0x4930000189838c014930000089828c00
+#   z21<255:128>: 0x4930000389838c034930000289828c02
+#   z21<383:256>: 0x4930000589878c054930000489868c04
+#   z21<511:384>: 0x4930000789878c074930000689868c06
+#   z21<639:512>: 0x49300009898b8c0949300008898a8c08
+#     z22<127:0>: 0x494000018a039001494000008a029000
+#   z22<255:128>: 0x494000038a039003494000028a029002
+#   z22<383:256>: 0x494000058a079005494000048a069004
+#   z22<511:384>: 0x494000078a079007494000068a069006
+#   z22<639:512>: 0x494000098a0b9009494000088a0a9008
+#     z23<127:0>: 0x495000018a839401495000008a829400
+#   z23<255:128>: 0x495000038a839403495000028a829402
+#   z23<383:256>: 0x495000058a879405495000048a869404
+#   z23<511:384>: 0x495000078a879407495000068a869406
+#   z23<639:512>: 0x495000098a8b9409495000088a8a9408
+#     z24<127:0>: 0x496000018b039801496000008b029800
+#   z24<255:128>: 0x496000038b039803496000028b029802
+#   z24<383:256>: 0x496000058b079805496000048b069804
+#   z24<511:384>: 0x496000078b079807496000068b069806
+#   z24<639:512>: 0x496000098b0b9809496000088b0a9808
+#     z25<127:0>: 0x497000018b839c01497000008b829c00
+#   z25<255:128>: 0x497000038b839c03497000028b829c02
+#   z25<383:256>: 0x497000058b879c05497000048b869c04
+#   z25<511:384>: 0x497000078b879c07497000068b869c06
+#   z25<639:512>: 0x497000098b8b9c09497000088b8a9c08
+#     z26<127:0>: 0x498000018c03a001498000008c02a000
+#   z26<255:128>: 0x498000038c03a003498000028c02a002
+#   z26<383:256>: 0x498000058c07a005498000048c06a004
+#   z26<511:384>: 0x498000078c07a007498000068c06a006
+#   z26<639:512>: 0x498000098c0ba009498000088c0aa008
+#     z27<127:0>: 0x499000018c83a401499000008c82a400
+#   z27<255:128>: 0x499000038c83a403499000028c82a402
+#   z27<383:256>: 0x499000058c87a405499000048c86a404
+#   z27<511:384>: 0x499000078c87a407499000068c86a406
+#   z27<639:512>: 0x499000098c8ba409499000088c8aa408
+#     z28<127:0>: 0x49a000018d03a80149a000008d02a800
+#   z28<255:128>: 0x49a000038d03a80349a000028d02a802
+#   z28<383:256>: 0x49a000058d07a80549a000048d06a804
+#   z28<511:384>: 0x49a000078d07a80749a000068d06a806
+#   z28<639:512>: 0x49a000098d0ba80949a000088d0aa808
+#     z29<127:0>: 0x49b000018d83ac0149b000008d82ac00
+#   z29<255:128>: 0x49b000038d83ac0349b000028d82ac02
+#   z29<383:256>: 0x49b000058d87ac0549b000048d86ac04
+#   z29<511:384>: 0x49b000078d87ac0749b000068d86ac06
+#   z29<639:512>: 0x49b000098d8bac0949b000088d8aac08
+#     z30<127:0>: 0x49c000018e03b00149c000008e02b000
+#   z30<255:128>: 0x49c000038e03b00349c000028e02b002
+#   z30<383:256>: 0x49c000058e07b00549c000048e06b004
+#   z30<511:384>: 0x49c000078e07b00749c000068e06b006
+#   z30<639:512>: 0x49c000098e0bb00949c000088e0ab008
+#     z31<127:0>: 0x49d000018e83b40149d000008e82b400
+#   z31<255:128>: 0x49d000038e83b40349d000028e82b402
+#   z31<383:256>: 0x49d000058e87b40549d000048e86b404
+#   z31<511:384>: 0x49d000078e87b40749d000068e86b406
+#   z31<639:512>: 0x49d000098e8bb40949d000088e8ab408
+#       p0<15:0>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<47:32>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#      p0<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p0<79:64>: 0b 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
+#       p1<15:0>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<31:16>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#      p1<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p1<63:48>: 0b 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
+#      p1<79:64>: 0b 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
+#       p2<15:0>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<31:16>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<47:32>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#      p2<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#      p2<79:64>: 0b 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+#       p3<15:0>: 0b 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1
+#      p3<31:16>: 0b 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1
+#      p3<47:32>: 0b 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1
+#      p3<63:48>: 0b 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1
+#      p3<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#       p4<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<31:16>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#      p4<47:32>: 0b 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1
+#      p4<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
+#      p4<79:64>: 0b 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1
+#       p5<15:0>: 0b 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p5<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1
+#      p5<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1
+#      p5<63:48>: 0b 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0
+#      p5<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1
+#       p6<15:0>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<31:16>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<47:32>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<63:48>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p6<79:64>: 0b 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p7<15:0>: 0b 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
+#      p7<31:16>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1
+#      p7<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1
+#      p7<63:48>: 0b 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p7<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#       p8<15:0>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#      p8<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p8<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1
+#      p8<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#       p9<15:0>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p9<47:32>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#      p9<79:64>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1
+#      p10<15:0>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p10<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p10<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#      p11<15:0>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p11<31:16>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#     p11<79:64>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+#      FFR<15:0>: 0b 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
+#     FFR<31:16>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<47:32>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<63:48>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#     FFR<79:64>: 0b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+#            v13: 0x0000000000000000490ffff1110487fe
+#             v8: 0x0000000000000000000000000e02aff8
+#             d1:                 0x47f000007f823c00 (3.403e+38)
+#            s25:                         0x02825400 (1.915e-37)
+#             v1: 0x0000000000000000ffffffffffffffff
+#             v4: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#            d13:                 0x494002008a13204c (7.140e+44)
+#            s27:                         0x0e029fa8 (1.610e-30)
+#            v19: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v27: 0x0000000000000000ffffffffffffffff
+#            v31: 0x0000000000000000ffffffffffffffff
+#            v31: 0x000000000000000000000000ffffffff
+#             v1: 0x000000000000000000000000ffffffff
+#            v18: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ffffffffffffffff
+#            v11: 0x000000000000000000000000ffffffff
+#            v17: 0x00000000000000000000000000000000
+#            v24: 0x0000000000000000ffffffffffffffff
+#            v11: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+#            d10:                 0x0000000000000000
+#            s22:                         0xffffffff
+#             d4:                 0xfffffc0000000000
+#            d11:                 0x0000000000000000
+#             h8:                             0x7c00
+#            h12:                             0xffff
+#            s12:                         0x00000000
+#            s27:                         0x42800000
+#            v28: 0x00000000000000007fffffffffffffff
+#             v3: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#            v27: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000007fffffffffffffff
+#            v10: 0x00000000000000000000000000000000
+#             v0: 0x0000000000000000ffffffffffffffff
+#             v6: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000001
+#            v29: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000001
+#            v14: 0x00000000000000000000000000000001
+#            v12: 0x00000000000000000000000000000001
+#            v15: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             d6:                 0x7ff0000000000000 (inf)
+#            s26:                         0x00000000 (0.000)
+#            d18:                 0x7fffffffffffffff
+#            s13:                         0x00000000
+#            d12:                 0x0000000000000000 (0.000)
+#            s12:                         0x00000000 (0.000)
+#            d28:                 0x0000000000000000 (0.000)
+#             s6:                         0x00000000 (0.000)
+#            d20:                 0x7fffffffffffffff (nan)
+#             s7:                         0x87027800 (-9.815e-35)
+#            d19:                 0x0000000000000001 (4.941e-324)
+#             s0:                         0xffffffff (nan)
+#            d13:                 0x0000000000000000
+#             d2:                 0x0000000000000000
+#             d8:                 0xc004000000000000
+#             s5:                         0x00000000
+#            s25:                         0x00000001
+#            s21:                         0x40380000
+#            d20:                 0xffffffffffffffff
+#             s5:                         0x00000000
+#            d30:                 0x0000000000000000 (0.000)
+#            s25:                         0x00000000 (0.000)
+#             v4: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            d15:                 0x80000000ffffffff (-2.122e-314)
+#            s14:                         0x7fffffff (nan)
+#             d0:                 0x87c0000086f277ff
+#             s0:                         0x7fffffff
+#            d19:                 0x8000000040380000
+#            s29:                         0x7fffffff
+#            d31:                 0x0000000000000000 (0.000)
+#            s18:                         0x80000000 (-0.000)
+#             v7: 0x00000000000000007ff0000000000000
+#            v29: 0x0000000000000000000000007f800000
+#            v11: 0x00000000000000004000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+#            v15: 0x00000000000000007fe0000000000000
+#             v5: 0x0000000000000000000000007f000000
+#            d16:                 0x0000000000000000 (0.000)
+#             s1:                         0xffffffff (nan)
+#            d19:                 0x0000000000000000 (0.000)
+#            s14:                         0x40400000 (3.000)
+#            d20:                 0x0000000000000000 (0.000)
+#             s1:                         0x00000000 (0.000)
+#            d30:                 0x0000000000000000 (0.000)
+#            s24:                         0x00000000 (0.000)
+#             d4:                 0x0000000000000000 (0.000)
+#            s13:                         0x00000000 (0.000)
+#            d13:                 0x0000000000000000 (0.000)
+#            s17:                         0x00000000 (0.000)
+#             d0:                 0xc000000000000000 (-2.000)
+#            s15:                         0x7f800000 (inf)
+#            v21: 0x00000000000000007ff0000000000000
+#            v17: 0x0000000000000000000000007f800000
+#             v4: 0x00000000000000003ff8000000000000
+#            v14: 0x0000000000000000000000003fc00000
+#            d14:                 0x1f56954b41cd4293 (1.028e-157)
+#             s4:                         0x40a21722 (5.065)
+#            d13:                 0xfff0000000000000 (-inf)
+#             s3:                         0x00000000 (0.000)
+#            v31: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             d6:                 0x0000000000000000
+#             d5:                 0x3f90000000000000
+#            d16:                 0x0000000000000000
+#            d15:                 0x0000000000000000
+#             v7: 0x00000000000000007ff000004e81442e
+#             v8: 0x0000000000000000c004000000000000
+#            s29:                         0x00000000
+#            s15:                         0x49800000
+#            s27:                         0x00000000
+#            s26:                         0x3c7fffff
+#             v0: 0x000000000000000043d21c000020e097
+#             v5: 0x00000000000000003effffffffe00000
+#            d30:                 0x0000000000000000
+#             d3:                 0x0000000000000000
+#            d28:                 0x41dfffffffc00000
+#            d27:                 0x0000000000000000
+#            v11: 0x0000000000000000400000004f7fe000
+#             v0: 0x000000000000000043d21c00480a8294
+#            s20:                         0x00000000
+#            s21:                         0x00000000
+#             s6:                         0x5f000000
+#             s7:                         0x38ff0000
+#            v19: 0x000000000000000043d21c00480a8294
+#            v16: 0x0000000000000000400000004f7f2000
+#             v0: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000003e01010101200000
+#            v29: 0x00000000000000000010000000000000
+#            v10: 0x00000000000000003f0000007f600000
+#            v31: 0x495000018a83940149500000d3029400
+#            v10: 0x495000018a83940168a6954c14cfd693
+#            v15: 0x00000000000000006328b14b89d7c527
+#            v27: 0x0000000000000000495000000a029400
+#            v25: 0x000000000000000041efffffffc00000
+#            v13: 0x00000000000000000000000037feffff
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x000000000000000000000000827f4696
+#            v10: 0x00000000000000000000000000003c7f
+#            v31: 0x0000000000000000000000000000ffff
+#            v16: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v31: 0x000000000000b87f000000000000ffff
+#            v14: 0x000000000000000043d21c00480a8294
+#             v3: 0x0000000020febf0000000000c4000000
+#             v8: 0x000000007f8000003effffffffe00000
+#            v22: 0x00000000000000003c7fffff00000000
+#            v29: 0x00000000000000005fd2ca9e00000000
+#            v30: 0x0000000000000000000000003c7fffff
+#            v12: 0x0000000000000000000037000000bbfe
+#            v17: 0x000000003700bbfe00007f803efeffe0
+#            v27: 0x00000000000000000000000000000075
+#            v12: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000003c7e
+#            v19: 0x00000000000000000000000000002a70
+#            v14: 0x00000000000000000000000000003c7e
+#            v10: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v26: 0x0000000020febf0000000000c4000000
+#             v7: 0x000000000000000000000000381b0000
+#            v28: 0x000000000000000040dfdcffdcc00000
+#            v29: 0x00000000000000005fd2ca1200000000
+#            v12: 0x0000000000000000000000000000ffff
+#            v18: 0x000000000000000000000000ff67ff67
+#            v12: 0x00000000007ebf000000000000000000
+#             v2: 0x0000000000000000495000008a828000
+#             v8: 0x000000007f8000003effffffcc000000
+#             v5: 0x00000000000000000000000000000000
+#             v9: 0x0100000008009801010000000800dc00
+#            v14: 0x000000000000000000000000c4000000
+#            v29: 0x07070707070707070707070707070707
+#            v21: 0x00000000000000000000001f0000001f
+#             v1: 0x0000000000000000000f000f000f000f
+#            v27: 0x0000001f0000001f0000001f0000001f
+#            v19: 0x00000000000000000707070707070707
+#            v15: 0x000f000f000f000f000f000f0001000f
+#             v1: 0x08080808080808080808080808080808
+#            v27: 0x00000000000000000000001100000002
+#             v9: 0x00000000000000000007001000040000
+#            v31: 0x0000000c0000000c0000000c0000000f
+#            v14: 0x00000000000000000505050505050505
+#             v6: 0x00100010001000100001001000010000
+#            v18: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v19: 0xffffffff000000ff0000000000ffffff
+#            v15: 0xffffffffffffffffff00ff00ff00ffff
+#            v12: 0xffffffffffffffffffffffffffffffff
+#             v8: 0xffffffffffffffff0000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000ffff00000000
+#            v16: 0x0000000000000000ffffffff00000000
+#            v21: 0xffffffff000000000000000000000000
+#             v6: 0xffffffffffffffff0000000000000000
+#            v16: 0x0000000000000000ffffffff00000000
+#            v21: 0x000000000000000000000000ffffffff
+#            v20: 0xffffffffffffffff000000000000ffff
+#            v26: 0x0000000000000000ffffffffffffffff
+#            v16: 0x00000000000000000000000000000000
+#            v25: 0x0000000000000000ffffffffffffffff
+#            v17: 0x0000000000ffffffffff00ff00ffffff
+#            v22: 0xffffffffffffffffffffffffffff0000
+#            v28: 0x0000000000000000ffffffffffffffff
+#             v6: 0xffffffffffffffffffffffffffffffff
+#            v25: 0x000000000000000000000000ffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
+#            v16: 0x0000000000000000ffffffff0000ffff
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v7: 0xffffffffffffffff0000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000ff00ff00ffff0000
+#            v21: 0x0000000000000000ffffffffffffffff
+#             v2: 0x0000000000000000ffffffffffffffff
+#            v19: 0xffffffffffffffff000000000000ffff
+#             v6: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v5: 0x0000000000000000ffffffffffffffff
+#            v12: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000000ffff
+#            v22: 0x00000000000000000000000000000000
+#             v5: 0x0000000000000000ffffffffffffffff
+#            v13: 0x00000000000000000000000000000000
+#            v27: 0x0000000000000000000000ff000000ff
+#             v5: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x000000000000000000000000ffffffff
+#            v31: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v11: 0x0000000000000000ffffffff00000000
+#             v1: 0x00000000000000000000000000000000
+#            v21: 0xffffffffffffffffffffffffffffffff
+#             v8: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000ffffffffffffffff
+#            v19: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000000000000000ffff
+#            v30: 0x0000000000000000ffffffffffffffff
+#             v0: 0xffffffff00ffffffffffffffffffffff
+#             v2: 0xffffffffffffffffffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#             v9: 0x0000000000000000ffffffffffffffff
+#             v9: 0xffffffffffffffffffffffffffffffff
+#            v21: 0x0000000000000000ffffffffffffffff
+#            v29: 0xffffffffffffffffffffffffffffffff
+#            v25: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#             v7: 0x0000000000000000ffffffffffffffff
+#            v25: 0x00000000000000000000000000000000
+#             v0: 0x0000000000000000ffffffff00000000
+#            v24: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000ffffffff00000000
+#             v1: 0x0000000000000000ffffffffffffffff
+#            v28: 0x0000000000000000ffffffffffffffff
+#            v26: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v11: 0x0000000000000000ff00ff00ffff0000
+#             v0: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000008080808
+#            v28: 0x00000000000000000000000000000000
+#             v6: 0xffffffffffffffffffffffffffffffff
+#             v9: 0x01010101010101010101010101010101
+#            v12: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ffffff7dffffff7d
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000ffffffffffffffff
+#            v31: 0x00000000000000000101010101010101
+#            v28: 0xffffffffffffffffffffffffffffffff
+#             v2: 0x00000000000000000000000000000000
+#            v29: 0x0000000000000000ffffff7df7f7f775
+#             v3: 0x0000000000000000ffffffffffffffff
+#             v1: 0xff000000000000000000000000000000
+#             v2: 0x000000000000000000ffffffffffffff
+#            v21: 0x3f3e3d3c3b3a39383736353433323130
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0b0a09080706050403020100fffefdfc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfaf9f8f7f6f5f4f3f2f1f0efeeedec
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfb <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0xebeae9e8e7e6e5e4e3e2e1e0dfdedddc
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xeb <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0xdbdad9d8d7d6d5d4d3d2d1d0cfce0001
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xdb <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0x0a09080706050403020100fffefdfcfb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xfc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xfd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x05 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x06 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x09 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x0a <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfaf9f8f7f6f5f4f3f2f1f0efeeedeceb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xeb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xec <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xed <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xee <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xef <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xf0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xf1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xf2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xf3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xf4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xf5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xf6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xf7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xf8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xf9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xfa <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0xeae9e8e7e6e5e4e3e2e1e0dfdedddcdb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xdb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xdc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xdd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xde <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xdf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xe0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xe1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xe2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xe3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xe4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xe5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xe6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xe7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xe8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xe9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xea <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0xdad9d8d7d6d5d4d3d2d1d0cfcecdcccb
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xd1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xd2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xd3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xd4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xd5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xd6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xd7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xd8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xd9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xda <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2f2e2d2c2b2a29282726252423222120
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3a393837363534333231302f2e2d2c2b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x2a292827262524232221201f1e1d1c1b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x1a191817161514131211100f0e0d0c0b
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x393837363534333231302f2e2d2c2b2a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x2a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x2d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x2e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x31 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x32 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x35 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x36 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x39 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x292827262524232221201f1e1d1c1b1a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x25 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x28 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x191817161514131211100f0e0d0c0b0a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x0a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x0e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x11 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x12 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x15 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x16 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x1f1e1d1c1b1a19181700000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x595857565554535251504f4e4d4c4b4a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x494847464544434241403f3e3d3c3b3a
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x49 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x5857565554535251504f4e4d4c4b4a49
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x49 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x4a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x4b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x4c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x4d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x4e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x4f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x50 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x51 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x52 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x53 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x54 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x55 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x56 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x57 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x58 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x4847464544434241403f3e3d3c3b3a39
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x39 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x3a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x3b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x3c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x3d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x3e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x3f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x40 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x41 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x42 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x43 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x44 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x45 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x46 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x47 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x48 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0000000000fffeffff0000850002ff01
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x6867666564636261605f5e5d5c5b5a59
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x68 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x67666564636261605f5e5d5c5b5a5958
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x58 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x59 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x5a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x5b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x5c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x5d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x5e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x5f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x60 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x61 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x62 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x63 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x64 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x65 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x66 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x67 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8786858483828180 (-2.082e-272)
+#                                                  ╙─ 0x8786858483828180 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x7f7e7d7c7b7a7978 (1.338e+306)
+#                                                  ╙─ 0x7f7e7d7c7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x7776757473727170 (2.897e+267)
+#                                                  ╙─ 0x7776757473727170 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x6f6e6d6c6b6a6968 (5.766e+228)
+#                                                  ╙─ 0x6f6e6d6c6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x868584838281807f (-3.035e-277)
+#                                                  ╙─ 0x868584838281807f <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x767574737271706f (4.222e+262)
+#                                                  ╙─ 0x767574737271706f <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x6e6d6c6b6a696867 (8.509e+223)
+#                                                  ╙─ 0x6e6d6c6b6a696867 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x9e9d9c9b9a999897 (-3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x969594939291908f (-7.048e-200)
+#                                                  ╙─ 0x969594939291908f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8e8d8c8b8a898887 (-1.418e-238)
+#                                                  ╙─ 0x8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9d9c9b9a99989796 (-4.851e-166)
+#                                                  ╙─ 0x9d9c9b9a99989796 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x9594939291908f8e (-1.025e-204)
+#                                                  ╙─ 0x9594939291908f8e <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x8d8c8b8a89888786 (-2.090e-243)
+#                                                  ╙─ 0x8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xadacabaaa9a8a7a6 (-1.126e-88)
+#                                                  ╙─ 0xadacabaaa9a8a7a6 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xa5a4a3a2a1a09f9e (-2.382e-127)
+#                                                  ╙─ 0xa5a4a3a2a1a09f9e <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xacabaaa9a8a7a6a5 (-1.658e-93)
+#                                                  ╙─ 0xacabaaa9a8a7a6a5 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xa4a3a2a1a09f9e9d (-3.458e-132)
+#                                                  ╙─ 0xa4a3a2a1a09f9e9d <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xb4b3b2b1b0afaead (-8.033e-55)
+#                                                  ╙─ 0xb4b3b2b1b0afaead <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x3f3e3d3c3b3a39383736353433323130 (0.0004614, 9.958e-43)
+#                                  ║               ╙─ 0x3736353433323130 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xf3f2f1f0efeeedecebeae9e8e7e6e5e4 (-3.391e+250, -7.078e+211)
+#                                  ║               ╙─ 0xebeae9e8e7e6e5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf3f2f1f0efeeedec <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xe3e2e1e0dfdedddcdbdad9d8d7d6d5d4 (-1.459e+173, -3.049e+134)
+#                                  ║               ╙─ 0xdbdad9d8d7d6d5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe3e2e1e0dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0xd3d2d1d0cfcecdcccbcac9c8c7c6c5c4 (-6.281e+95, -1.314e+57)
+#                                  ║               ╙─ 0xcbcac9c8c7c6c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd3d2d1d0cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0xc3c2c1c0bfbebdbcbbbab9b8b7b6b5b4 (-2.703e+18, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0xf2f1f0efeeedecebeae9e8e7e6e5e4e3 (-4.900e+245, -1.040e+207)
+#                                  ║               ╙─ 0xeae9e8e7e6e5e4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xf2f1f0efeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0xe2e1e0dfdedddcdbdad9d8d7d6d5d4d3 (-2.109e+168, -4.479e+129)
+#                                  ║               ╙─ 0xdad9d8d7d6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0xd2d1d0cfcecdcccbcac9c8c7c6c5c4c3 (-9.073e+90, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0xc2c1c0bfbebdbcbbbab9b8b7b6b5b4b3 (-3.904e+13, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xc2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.988e-81, 4.288e-120)
+#                                  ║               ╙─ 0x2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2221201f1e1d1c1b1a19181716151413 (2.743e-144, 5.906e-183)
+#                                  ║               ╙─ 0x1a19181716151413 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2221201f1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1211100f0e0d0c0b0a09080706050403 (1.180e-221, 2.544e-260)
+#                                  ║               ╙─ 0x0a09080706050403 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1211100f0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x020100fffefdfcfbfaf9f8f7f6f5f4f3 (5.078e-299, -2.414e+284)
+#                                  ║               ╙─ 0xfaf9f8f7f6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x020100fffefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x21201f1e1d1c1b1a1918171615141312 (3.940e-149, 8.651e-188)
+#                                  ║               ╙─ 0x1918171615141312 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x21201f1e1d1c1b1a <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x11100f0e0d0c0b0a0908070605040302 (1.695e-226, 3.726e-265)
+#                                  ║               ╙─ 0x0908070605040302 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x11100f0e0d0c0b0a <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0100fffefdfcfbfaf9f8f7f6f5f4f3f2 (7.747e-304, -3.541e+279)
+#                                  ║               ╙─ 0xf9f8f7f6f5f4f3f2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0100fffefdfcfbfa <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x1f1e1d1c1b1a19181700000000000000 (8.568e-159, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x41403f3e3d3c3b3a3938373635343332 (2.130e+06, 4.664e-33)
+#                                  ║               ╙─ 0x3938373635343332 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x41403f3e3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x31302f2e2d2c2b2a2928272625242322 (9.160e-72, 2.009e-110)
+#                                  ║               ╙─ 0x2928272625242322 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x31302f2e2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x403f3e3d3c3b3a393837363534333231 (31.24, 6.821e-38)
+#                                  ║               ╙─ 0x3837363534333231 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x403f3e3d3c3b3a39 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x302f2e2d2c2b2a292827262524232221 (1.346e-76, 2.938e-115)
+#                                  ║               ╙─ 0x2827262524232221 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x302f2e2d2c2b2a29 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (8.289e-317, -5.487e+303)
+#                                  ║               ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000fffeff <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x504f4e4d4c4b4a494847464544434241 (7.250e+78, 1.584e+40)
+#                                  ║               ╙─ 0x4847464544434241 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x504f4e4d4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x4f4e4d4c4b4a49484746454443424140 (1.071e+74, 2.313e+35)
+#                                  ║               ╙─ 0x4746454443424140 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x4f4e4d4c4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x1f1e1d1c1b1a1918 (3.348e-20, 1.275e-22)
+#                                          ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x6f6e6d6c6b6a6968 (7.379e+28, 2.834e+26)
+#                                          ║       ╙─ 0x6b6a6968 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x6766656463626160 (1.088e+24, 4.176e+21)
+#                                          ║       ╙─ 0x63626160 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x67666564 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0x5f5e5d5c5b5a5958 (1.602e+19, 6.146e+16)
+#                                          ║       ╙─ 0x5b5a5958 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x5756555453525150 (2.357e+14, 9.033e+11)
+#                                          ║       ╙─ 0x53525150 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x57565554 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0x6e6d6c6b6a696867 (1.837e+28, 7.054e+25)
+#                                          ║       ╙─ 0x6a696867 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x666564636261605f (2.708e+23, 1.039e+21)
+#                                          ║       ╙─ 0x6261605f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x66656463 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x5e5d5c5b5a595857 (3.988e+18, 1.529e+16)
+#                                          ║       ╙─ 0x5a595857 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x565554535251504f (5.864e+13, 2.247e+11)
+#                                          ║       ╙─ 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x1700000000000000 (4.136e-25, 0.000)
+#                                          ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x868584838281807f (-5.022e-35, -1.903e-37)
+#                                          ║       ╙─ 0x8281807f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x86858483 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (8.424e+37, 3.238e+35)
+#                                          ║       ╙─ 0x7a797877 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7e7d7c7b <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0x767574737271706f (1.245e+33, 4.782e+30)
+#                                          ║       ╙─ 0x7271706f <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8584838281807f7e (-1.246e-35, -4.720e-38)
+#                                          ║       ╙─ 0x81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x85848382 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x7d7c7b7a79787776 (2.098e+37, 8.063e+34)
+#                                          ║       ╙─ 0x79787776 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x7d7c7b7a <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x7574737271706f6e (3.099e+32, 1.191e+30)
+#                                          ║       ╙─ 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x0000000000fffeff (0.000, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x9594939291908f8e (-6.001e-26, -2.281e-28)
+#                                          ║       ╙─ 0x91908f8e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x95949392 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x8d8c8b8a89888786 (-8.662e-31, -3.287e-33)
+#                                          ║       ╙─ 0x89888786 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8d8c8b8a <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x94939291908f8e8d (-1.490e-26, -5.662e-29)
+#                                          ║       ╙─ 0x908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x94939291 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0x8c8b8a8988878685 (-2.150e-31, -8.157e-34)
+#                                          ║       ╙─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-1.701e+38, 2.751e-40)
+#                                          ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x9c9b9a9998979695 (-1.030e-21, -3.918e-24)
+#                                          ║       ╙─ 0x98979695 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9b9a999897969594 (-2.558e-22, -9.731e-25)
+#                                          ║       ╙─ 0x97969594 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9b9a9998 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1f1e1d1c1b1a1918 (0.006950, 0.004990, 0.003468, 0.002487)
+#                                      ║   ║   ║   ╙─ 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d16:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xbbbab9b8b7b6b5b4 (-0.9658, -0.7148, -0.4819, -0.3564)
+#                                      ║   ║   ║   ╙─ 0xb5b4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb7b6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb9b8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xb3b2b1b0afaeadac (-0.2405, -0.1777, -0.1200, -0.08862)
+#                                      ║   ║   ║   ╙─ 0xadac <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xafae <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb1b0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb3b2 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xabaaa9a8a7a6a5a4 (-0.05988, -0.04419, -0.02988, -0.02203)
+#                                      ║   ║   ║   ╙─ 0xa5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa7a6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa9a8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xabaa <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xa3a2a1a09f9e9d9c (-0.01491, -0.01099, -0.007439, -0.005478)
+#                                      ║   ║   ║   ╙─ 0x9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9f9e <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa1a0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa3a2 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3 (-0.8403, -0.5894, -0.4192, -0.2937)
+#                                      ║   ║   ║   ╙─ 0xb4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xb6b5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb8b7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbab9 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab (-0.2091, -0.1464, -0.1043, -0.07294)
+#                                      ║   ║   ║   ╙─ 0xacab <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xaead <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb0af <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xb2b1 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3 (-0.05203, -0.03635, -0.02596, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xa6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa8a7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xaaa9 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xa2a1a09f9e9d9c9b (-0.01295, -0.009026, -0.006458, -0.004498)
+#                                      ║   ║   ║   ╙─ 0x9c9b <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xa09f <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xa2a1 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0x1700000000000000 (0.001709, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            d30:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xd2d1d0cfcecdcccb (-54.53, -38.47, -27.20, -19.17)
+#                                      ║   ║   ║   ╙─ 0xcccb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcecd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xcac9c8c7c6c5c4c3 (-13.57, -9.555, -6.770, -4.762)
+#                                      ║   ║   ║   ╙─ 0xc4c3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc6c5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc8c7 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xcac9 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xc2c1c0bfbebdbcbb (-3.377, -2.373, -1.685, -1.183)
+#                                      ║   ║   ║   ╙─ 0xbcbb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbebd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc0bf <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc2c1 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0xd1d0cfcecdcccbca (-46.50, -31.22, -23.19, -15.58)
+#                                      ║   ║   ║   ╙─ 0xcbca <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xcdcc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xcfce <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xc9c8c7c6c5c4c3c2 (-11.56, -7.773, -5.766, -3.879)
+#                                      ║   ║   ║   ╙─ 0xc3c2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xc5c4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xc7c6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc9c8 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xc1c0bfbebdbcbbba (-2.875, -1.936, -1.434, -0.9658)
+#                                      ║   ║   ║   ╙─ 0xbbba <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xbdbc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xbfbe <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xc1c0 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x0000000000fffeff (0.000, 0.000, 1.520e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xe1e0dfdedddcdbda (-752.0, -503.5, -375.0, -251.2)
+#                                      ║   ║   ║   ╙─ 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xd9d8d7d6d5d4d3d2 (-187.0, -125.4, -93.25, -62.56)
+#                                      ║   ║   ║   ╙─ 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0xe0dfdedddcdbdad9 (-623.5, -439.2, -310.8, -219.1)
+#                                      ║   ║   ║   ╙─ 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xd8d7d6d5d4d3d2d1 (-154.9, -109.3, -77.19, -54.53)
+#                                      ║   ║   ║   ╙─ 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (nan, 7.927e-06, 1.192e-07, nan)
+#                                      ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe8e7e6e5e4e3e2e1 (-2510., -1765., -1251., -880.5)
+#                                      ║   ║   ║   ╙─ 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xe7e6e5e4e3e2e1e0 (-2022., -1508., -1009., -752.0)
+#                                      ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x3f3e3d3c3b3a39383736353433323130 (0.7431, 0.002842, 1.086e-05, 4.149e-08)
+#                          ║       ║       ║       ╙─ 0x33323130 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x37363534 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3b3a3938 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x27262524232221201f1e1d1c1b1a1918 (2.306e-15, 8.789e-18, 3.348e-20, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x17161514131211100f0e0d0c0b0a0908 (4.849e-25, 1.844e-27, 7.004e-30, 2.658e-32)
+#                          ║       ║       ║       ╙─ 0x0b0a0908 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x17161514 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfbfaf9f8 (1.008e-34, 3.820e-37, nan, -2.606e+36)
+#                          ║       ║       ║       ╙─ 0xfbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x03020100 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xf7f6f5f4f3f2f1f0efeeedecebeae9e8 (-1.002e+34, -3.850e+31, -1.479e+29, -5.680e+26)
+#                          ║       ║       ║       ╙─ 0xebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xefeeedec <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf7f6f5f4 <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x262524232221201f1e1d1c1b1a191817 (5.729e-16, 2.184e-18, 8.317e-21, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2221201f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x26252423 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x161514131211100f0e0d0c0b0a090807 (1.204e-25, 4.577e-28, 1.739e-30, 6.598e-33)
+#                          ║       ║       ║       ╙─ 0x0a090807 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0e0d0c0b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x16151413 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x06050403020100fffefdfcfbfaf9f8f7 (2.502e-35, 9.478e-38, -1.688e+38, -6.490e+35)
+#                          ║       ║       ║       ╙─ 0xfaf9f8f7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xfefdfcfb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x020100ff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x06050403 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xf6f5f4f3f2f1f0efeeedecebeae9e8e7 (-2.494e+33, -9.584e+30, -3.682e+28, -1.414e+26)
+#                          ║       ║       ║       ╙─ 0xeae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xeeedeceb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xf2f1f0ef <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xf6f5f4f3 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2f2e2d2c2b2a29282726252423222120 (1.584e-10, 6.045e-13, 2.306e-15, 8.789e-18)
+#                          ║       ║       ║       ╙─ 0x23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x565554535251504f4e4d4c4b4a494847 (5.864e+13, 2.247e+11, 8.611e+08, 3.298e+06)
+#                          ║       ║       ║       ╙─ 0x4a494847 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4e4d4c4b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x5251504f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x56555453 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0x464544434241403f3e3d3c3b3a393837 (1.263e+04, 48.31, 0.1848, 0.0007066)
+#                          ║       ║       ║       ╙─ 0x3a393837 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3e3d3c3b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x4241403f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x46454443 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x363534333231302f2e2d2c2b2a292827 (2.700e-06, 1.031e-08, 3.937e-11, 1.502e-13)
+#                          ║       ║       ║       ╙─ 0x2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2e2d2c2b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x36353433 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x5554535251504f4e4d4c4b4a49484746 (1.459e+13, 5.592e+10, 2.142e+08, 8.203e+05)
+#                          ║       ║       ║       ╙─ 0x49484746 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x4d4c4b4a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x51504f4e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x55545352 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e3d3c3b3a39383736 (3140., 12.02, 0.04595, 0.0001757)
+#                          ║       ║       ║       ╙─ 0x39383736 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x3d3c3b3a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x41403f3e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x45444342 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x3534333231302f2e2d2c2b2a29282726 (6.713e-07, 2.564e-09, 9.787e-12, 3.734e-14)
+#                          ║       ║       ║       ╙─ 0x29282726 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x2d2c2b2a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x31302f2e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x35343332 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a19181700000000000000 (3.348e-20, 1.275e-22, 4.136e-25, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v31: 0x7574737271706f6e6d6c6b6a69686766 (3.099e+32, 1.191e+30, 4.573e+27, 1.756e+25)
+#                          ║       ║       ║       ╙─ 0x69686766 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6d6c6b6a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x71706f6e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x75747372 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x6564636261605f5e5d5c5b5a59585756 (6.741e+22, 2.587e+20, 9.924e+17, 3.806e+15)
+#                          ║       ║       ║       ╙─ 0x59585756 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5d5c5b5a <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x61605f5e <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x65646362 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x74737271706f6e6d6c6b6a6968676665 (7.715e+31, 2.964e+29, 1.138e+27, 4.371e+24)
+#                          ║       ║       ║       ╙─ 0x68676665 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x6c6b6a69 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x706f6e6d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x74737271 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0x64636261605f5e5d5c5b5a5958575655 (1.678e+22, 6.438e+19, 2.470e+17, 9.471e+14)
+#                          ║       ║       ║       ╙─ 0x58575655 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5c5b5a59 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x605f5e5d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x64636261 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0000000000fffeffff0000850002ff01 (0.000, 2.351e-38, -1.701e+38, 2.751e-40)
+#                          ║       ║       ║       ╙─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xff000085 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x84838281807f7e7d7c7b7a7978777675 (-3.092e-36, -1.171e-38, 5.223e+36, 2.008e+34)
+#                          ║       ║       ║       ╙─ 0x78777675 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x84838281 <- 0x~~~~~~~~~~~~~~~~
+#             v0: 0x838281807f7e7d7c7b7a797877767574 (-7.670e-37, 3.383e+38, 1.301e+36, 4.999e+33)
+#                          ║       ║       ║       ╙─ 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x83828180 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x1f1e1d1c1b1a1918
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x19 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x1a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x1b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x1c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x1d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1e <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#            d18:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xa3a2a1a09f9e9d9c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x9b9a999897969594
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9b <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x939291908f8e8d8c
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x93 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x8b8a898887868584
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8b <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa2a1a09f9e9d9c9b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x9b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x9c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x9d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x9e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x9f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x9a99989796959493
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x93 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x94 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x95 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x96 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x97 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x98 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x99 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x9a <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x9291908f8e8d8c8b
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x8c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x8d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x8e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x8f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x90 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x91 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x92 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x8a89888786858483
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x83 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x84 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x86 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x87 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x88 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x89 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x8a <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x1700000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xbab9b8b7b6b5b4b3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xba <- 0x~~~~~~~~~~~~~~~~
+#             d3:                 0xb2b1b0afaeadacab
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xaaa9a8a7a6a5a4a3
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xaa <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0xb9b8b7b6b5b4b3b2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xb3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xb4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xb5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xb6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xb7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0xb1b0afaeadacabaa
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xaa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xab <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xac <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xad <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xae <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xaf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xb0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xb1 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xa9a8a7a6a5a4a3a2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xa2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xa3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xa4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xa5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xa6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xa7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xa8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xa9 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x0000000000fffeff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xfe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xc9c8c7c6c5c4c3c2
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xc1c0bfbebdbcbbba
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xc8c7c6c5c4c3c2c1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc1 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc2 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xc3 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xc4 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xc5 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xc6 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xc7 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xc0bfbebdbcbbbab9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xb9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xba <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xbb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xbc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xbd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xbe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xbf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xc0 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0xff0000850002ff01
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xd0cfcecdcccbcac9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xd0 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xcfcecdcccbcac9c8
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xc8 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xc9 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xca <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xcb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xcc <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xcd <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xce <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xcf <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0x3f3e3d3c3b3a39383736353433323130 (1.811, 1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x0f0e0d0c0b0a09080706050403020100 (0.0004306, 0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0xfffefdfcfbfaf9f8f7f6f5f4f3f2f1f0 (nan, nan, -6.534e+04, -4.890e+04, -3.261e+04, -2.438e+04, -1.627e+04, -1.216e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf1f0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf3f2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf5f4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf7f6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfbfa <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfdfc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0xefeeedecebeae9e8e7e6e5e4e3e2e1e0 (-8120., -6064., -4052., -3024., -2022., -1508., -1009., -752.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe1e0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe5e4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe7e6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe9e8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xebea <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xedec <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xefee <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0xdfdedddcdbdad9d8d7d6d5d4d3d2d1d0 (-503.5, -375.0, -251.2, -187.0, -125.4, -93.25, -62.56, -46.50)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd3d2 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd5d4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd9d8 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdbda <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdddc <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdfde <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b0a09080706050403020100ff (0.0003693, 0.0002468, 0.0001842, 0.0001229, 9.185e-05, 6.121e-05, 3.058e-05, 1.520e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0201 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0403 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0605 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0807 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0a09 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0c0b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0e0d <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f3f2f1f0ef (nan, nan, -5.712e+04, -4.067e+04, -2.850e+04, -2.027e+04, -1.422e+04, -1.010e+04)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xf0ef <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xf2f1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xf4f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xf6f5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xf8f7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xfcfb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xfefd <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xeeedecebeae9e8e7e6e5e4e3e2e1e0df (-7092., -5036., -3538., -2510., -1765., -1251., -880.5, -623.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xe0df <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xe2e1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xe4e3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xe6e5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xe8e7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xeae9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xeceb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xeeed <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xdedddcdbdad9d8d7d6d5d4d3d2d1d0cf (-439.2, -310.8, -219.1, -154.9, -109.3, -77.19, -54.53, -38.47)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xd0cf <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xd2d1 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xd4d3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd6d5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xd8d7 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xdad9 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xdcdb <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xdedd <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x2f2e2d2c2b2a29282726252423222120 (0.1122, 0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3e3d3c3b3a393837363534333231302f (1.560, 1.058, 0.7778, 0.5269, 0.3879, 0.2625, 0.1935, 0.1307)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x302f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3433 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3635 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3837 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3c3b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x2e2d2c2b2a292827262524232221201f (0.09650, 0.06512, 0.04813, 0.03244, 0.02400, 0.01616, 0.01197, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2e2d <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x1e1d1c1b1a191817161514131211100f (0.005970, 0.004009, 0.002977, 0.001997, 0.001485, 0.0009947, 0.0007405, 0.0004954)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x100f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1211 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1413 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1615 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1e1d <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a393837363534333231302f2e (1.309, 0.9033, 0.6523, 0.4507, 0.3252, 0.2249, 0.1621, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x3736 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x3938 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3d3c <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x1f1e1d1c1b1a19181700000000000000 (0.006950, 0.004990, 0.003468, 0.002487, 0.001709, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x5d5c5b5a595857565554535251504f4e (343.0, 235.2, 171.0, 117.4, 85.25, 58.56, 42.50, 29.22)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4f4e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5150 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5554 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5958 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5b5a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857565554535251504f4e4d (278.8, 203.1, 138.9, 101.3, 69.19, 50.53, 34.47, 25.20)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x4e4d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x504f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x5251 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x5453 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5857 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5a59 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5c5b <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x4c4b4a494847464544434241403f3e3d (17.17, 12.57, 8.555, 6.270, 4.262, 3.127, 2.123, 1.560)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3e3d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x403f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4443 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4645 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4c4b <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0x0000000000fffeffff0000850002ff01 (0.000, 0.000, 1.520e-05, nan, nan, 7.927e-06, 1.192e-07, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0002 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xfeff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x00ff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a696867666564636261605f5e5d (4524., 3282., 2254., 1637., 1123., 816.5, 559.5, 407.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5e5d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6463 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6665 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6a69 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6c6b <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x6b6a696867666564636261605f5e5d5c (3796., 2768., 1894., 1380., 945.0, 688.0, 471.5, 343.0)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6160 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x6766 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x6b6a <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3a39383736353433323130012e
+#                                                ╙─── 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xfefdfcfbfaf9f8f7f6f5f4f36cf1f0ef
+#                                            ╙─────── 0x6c <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x6c6b6a6b6867666564636261605f5e5d
+#                          ╙───────────────────────── 0x6b <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d3d2d1d0cf (-5.487e+303, ...)
+#                                  ╙───────────────── 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x737271706f6e6d6c636261605f5e5d5c (1.290e+248, ...)
+#                                  ╙───────────────── 0x737271706f6e6d6c <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x7271706f6e6d6c6b2726252423222120 (1.861e+243, ...)
+#                                  ╙───────────────── 0x7271706f6e6d6c6b <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x3d3c3b3aff013736353433323130012e (..., nan, ...)
+#                              ╙───────────────────── 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0xff0000850002ff01d6d5d4d37473d0cf (..., 1.822e+04, ...)
+#                                              ╙───── 0x7473 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5c5b5a595857737254535251504f4e4d (..., 1.525e+04, ...)
+#                                  ╙───────────────── 0x7372 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x4d4c4b4a0002ff014544434241403f3e (..., 2.751e-40, ...)
+#                                  ╙───────────────── 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x0e0d0c0b7776757406050403020100ff (..., 4.999e+33, ...)
+#                                  ╙───────────────── 0x77767574 <- 0x~~~~~~~~~~~~~~~~
+#             v1: 0x0000000076757473e8e7e6e5e4e3e2e1 (..., 1.245e+33, ...)
+#                                  ╙───────────────── 0x76757473 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x01010101010101010101010101010101
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x77777777777777777777777777777777
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x77 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x76767676767676767676767676767676
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x76 <- 0x~~~~~~~~~~~~~~~~
+#            d25:                 0xff0000850002ff01 (-5.487e+303)
+#                                                  ╙─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7e7d7c7b7a797877 (1.975e+301)
+#                                                  ╙─ 0x7e7d7c7b7a797877 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x7d7c7b7a79787776 (2.911e+296)
+#                                                  ╙─ 0x7d7c7b7a79787776 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#                                  ╙───────────────╨─ 0xff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8584838281807f7e8584838281807f7e (-4.414e-282, -4.414e-282)
+#                                  ╙───────────────╨─ 0x8584838281807f7e <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84838281807f7e7d84838281807f7e7d (-6.406e-287, -6.406e-287)
+#                                  ╙───────────────╨─ 0x84838281807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#                                          ╙───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x8887868588878685 (-8.157e-34, -8.157e-34)
+#                                          ╙───────╨─ 0x88878685 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x8786858487868584 (-2.024e-34, -2.024e-34)
+#                                          ╙───────╨─ 0x87868584 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x8988898889888988 (-0.0001688, -0.0001688, -0.0001688, -0.0001688)
+#                                      ╙───╨───╨───╨─ 0x8988 <- 0x~~~~~~~~~~~~~~~~
+#            d21:                 0x8887888788878887 (-0.0001382, -0.0001382, -0.0001382, -0.0001382)
+#                                      ╙───╨───╨───╨─ 0x8887 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#                          ╙───────╨───────╨───────╨─ 0x0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x8c8b8a898c8b8a898c8b8a898c8b8a89 (-2.150e-31, -2.150e-31, -2.150e-31, -2.150e-31)
+#                          ╙───────╨───────╨───────╨─ 0x8c8b8a89 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0x8b8a89888b8a89888b8a89888b8a8988 (-5.336e-32, -5.336e-32, -5.336e-32, -5.336e-32)
+#                          ╙───────╨───────╨───────╨─ 0x8b8a8988 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x01 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x8c8c8c8c8c8c8c8c
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8c <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0x8b8b8b8b8b8b8b8b
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x8b <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x8d8c8d8c8d8c8d8c8d8c8d8c8d8c8d8c (-0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386, -0.0003386)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8d8c <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x8c8b8c8b8c8b8c8b8c8b8c8b8c8b8c8b (-0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773, -0.0002773)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8c8b <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1e1c1a18000000000000ffff00850201
+#            v22: 0x1f1d1b1917000000000000feff0000ff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x17'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x1b'1a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x1f'1e <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#            v22: 0xacaaa8a6a4a2a09e9c9a98969492908e
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x92'91 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x98'97 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa4'a3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaa'a9 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xac'ab <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xaaa8a6a4a2a09e9c9a98969492908e8c
+#            v13: 0xaba9a7a5a3a19f9d9b99979593918f8d
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x8f'8e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x95'94 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa1'a0 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xa7'a6 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xa9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xab'aa <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x1700000000000000ff0000850002ff01 (6.689e-198, -5.487e+303)
+#            v15: 0x1f1e1d1c1b1a19180000000000fffeff (8.568e-159, 8.289e-317)
+#                                  ║               ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000 <- 0x~~~~~~~~~~~~~~~~
+#             v0: 0xc3c2c1c0bfbebdbcb3b2b1b0afaeadac (-2.703e+18, -1.163e-59)
+#             v1: 0xcbcac9c8c7c6c5c4bbbab9b8b7b6b5b4 (-1.314e+57, -5.659e-21)
+#                                  ║               ╙─ 0xbbbab9b8b7b6b5b4'b3b2b1b0afaeadac <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcbcac9c8c7c6c5c4'c3c2c1c0bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xc2c1c0bfbebdbcbbb2b1b0afaeadacab (-3.904e+13, -1.680e-64)
+#            v13: 0xcac9c8c7c6c5c4c3bab9b8b7b6b5b4b3 (-1.929e+52, -8.311e-26)
+#                                  ║               ╙─ 0xbab9b8b7b6b5b4b3'b2b1b0afaeadacab <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00fffeff0002ff01 (2.351e-38, 2.751e-40)
+#            d28:                 0x00000000ff000085 (0.000, -1.701e+38)
+#                                          ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xd6d5d4d3cecdcccb (-1.176e+14, -1.726e+09)
+#             d3:                 0xdad9d8d7d2d1d0cf (-3.066e+16, -4.506e+11)
+#                                          ║       ╙─ 0xd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xdad9d8d7'd6d5d4d3 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0xd5d4d3d2cdcccbca (-2.925e+13, -4.295e+08)
+#            d13:                 0xd9d8d7d6d1d0cfce (-7.629e+15, -1.121e+11)
+#                                          ║       ╙─ 0xd1d0cfce'cdcccbca <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x0000feff0085ff01 (0.000, nan, 7.927e-06, nan)
+#            d10:                 0x000000ffff000002 (0.000, 1.520e-05, nan, 1.192e-07)
+#                                      ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe7e6e3e2dfdedbda (-2022., -1009., -503.5, -251.2)
+#            d24:                 0xe9e8e5e4e1e0dddc (-3024., -1508., -752.0, -375.0)
+#                                      ║   ║   ║   ╙─ 0xdddc'dbda <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe1e0'dfde <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe9e8'e7e6 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0xe6e5e2e1dedddad9 (-1765., -880.5, -439.2, -219.1)
+#             d2:                 0xe8e7e4e3e0dfdcdb (-2510., -1251., -623.5, -310.8)
+#                                      ║   ║   ║   ╙─ 0xdcdb'dad9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xe0df'dedd <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xe4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xe8e7'e6e5 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x1b1a19180000000000fffeff0002ff01 (1.275e-22, 0.000, 2.351e-38, 2.751e-40)
+#            v21: 0x1f1e1d1c1700000000000000ff000085 (3.348e-20, 4.136e-25, 0.000, -1.701e+38)
+#                          ║       ║       ║       ╙─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00fffeff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v10: 0x04030201fcfbfaf9f4f3f2f1ecebeae9 (1.540e-36, -1.047e+37, -1.546e+32, -2.282e+27)
+#            v11: 0x0807060500fffefdf8f7f6f5f0efeeed (4.063e-34, 2.351e-38, -4.023e+34, -5.940e+29)
+#                          ║       ║       ║       ╙─ 0xf0efeeed'ecebeae9 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf8f7f6f5'f4f3f2f1 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00fffefd'fcfbfaf9 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x08070605'04030201 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x03020100fbfaf9f8f3f2f1f0ebeae9e8 (3.820e-37, -2.606e+36, -3.850e+31, -5.680e+26)
+#            v25: 0x07060504fffefdfcf7f6f5f4efeeedec (1.008e-34, nan, -1.002e+34, -1.479e+29)
+#                          ║       ║       ║       ╙─ 0xefeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xf7f6f5f4'f3f2f1f0 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xfffefdfc'fbfaf9f8 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x07060504'03020100 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0x0000ffff00850201
+#            d18:                 0x000000feff0000ff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xfe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#            d13:                 0x161412100e0c0a08
+#            d14:                 0x171513110f0d0b09
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x09'08 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x11'10 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'16 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x1513110f0d0b0907
+#             d8:                 0x161412100e0c0a08
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x0a'09 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0e'0d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x16'15 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c1918000000000000feff0085ff01 (0.004990, 0.002487, 0.000, 0.000, 0.000, nan, 7.927e-06, nan)
+#            v31: 0x1f1e1b1a17000000000000ffff000002 (0.006950, 0.003468, 0.001709, 0.000, 0.000, 1.520e-05, nan, 1.192e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xff00'0085 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1700'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x3433302f2c2b28272423201f1c1b1817 (0.2625, 0.1307, 0.06512, 0.03244, 0.01616, 0.008049, 0.004009, 0.001997)
+#             v5: 0x363532312e2d2a29262522211e1d1a19 (0.3879, 0.1935, 0.09650, 0.04813, 0.02400, 0.01197, 0.005970, 0.002977)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1a19'1817 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1e1d'1c1b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2221'201f <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2625'2423 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2a29'2827 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2e2d'2c2b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3231'302f <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3635'3433 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x33322f2e2b2a272623221f1e1b1a1716 (0.2249, 0.1122, 0.05597, 0.02792, 0.01393, 0.006950, 0.003468, 0.001730)
+#            v14: 0x353431302d2c2928252421201d1c1918 (0.3252, 0.1621, 0.08081, 0.04028, 0.02008, 0.01001, 0.004990, 0.002487)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2928'2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x363532012e2d2a29262522211e1d1a19
+#             v6: 0x1f1e1dff1b1a19181700000000000000
+#                          ╙───────────────────────── 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x4544434241403f3e363c3b3a39383736
+#            v17: 0x00000000000000003700ffff00850201
+#                                    ╙─────────────── 0x37'36 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0706050403020100fffefdfcfb35f9f8
+#            v30: 0x1d1c1918000000000000feff0036ff01
+#                                              ╙───── 0x36'35 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01f8f7f6f5f0efeeed (-5.487e+303, ...)
+#            v12: 0x0000000000fffeffd5d4d3d2cdcccbca (8.289e-317, ...)
+#                                  ╙───────────────── 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x00000000000000003e3d3c3b3a393837 (..., 6.807e-09)
+#            v27: 0x0000000000000000464544434241403f (..., 3.370e+30)
+#                                                  ╙─ 0x464544434241403f'3e3d3c3b3a393837 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x07060504fffefdfc3d3c3b3a39383736 (..., 1.003e-13)
+#            v26: 0x00000000000000004544434241403f3e (..., 4.899e+25)
+#                                                  ╙─ 0x4544434241403f3e'3d3c3b3a39383736 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0xff01000000000000000000feff0000ff (nan, ...)
+#            v19: 0x00020000000000008b8b8b8b8b8b8b8b (1.192e-07, ...)
+#                      ╙───────────────────────────── 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v17: 0x00000000474600003700ffff00850201 (..., 7.273, ...)
+#            v18: 0xff01000049480000000000feff0000ff (..., 10.56, ...)
+#                              ╙───────────────────── 0x4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x1d1c191800000000000046450036ff01 (..., 6.270, ...)
+#            v31: 0x1f1e1b1a1700000000004847ff000002 (..., 8.555, ...)
+#                                          ╙───────── 0x4847'4645 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0002ff0103020100fffefdfcfb35f9f8 (2.751e-40, ...)
+#            v30: 0xff00008500000000000046450036ff01 (-1.701e+38, ...)
+#                          ╙───────────────────────── 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x0000000000000000000000004c4b4a49 (..., 5.329e+07)
+#            v29: 0x0002ff0103020100fffefdfc504f4e4d (..., 1.391e+10)
+#                                                  ╙─ 0x504f4e4d'4c4b4a49 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x1f1e1dff1b1a19184b4a494800000000 (..., 1.326e+07, ...)
+#             v7: 0x00000000000000004f4e4d4c0d0b0907 (..., 3.461e+09, ...)
+#                                          ╙───────── 0x4f4e4d4c'4b4a4948 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x01010101010101010101010101010101
+#            v27: 0xffffffffffffffffffffffffffffffff
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x50505050505050505050505050505050
+#            v22: 0x51515151515151515151515151515151
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x51'50 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f
+#             v6: 0x50505050505050505050505050505050
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x50'4f <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xff0000850002ff01 (-5.487e+303)
+#            d27:                 0x0000000000fffeff (8.289e-317)
+#                                                  ╙─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d14:                 0x5857565554535251 (3.678e+117)
+#            d15:                 0x605f5e5d5c5b5a59 (1.682e+156)
+#                                                  ╙─ 0x605f5e5d5c5b5a59'5857565554535251 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0x5756555453525150 (5.371e+112)
+#            d24:                 0x5f5e5d5c5b5a5958 (2.485e+151)
+#                                                  ╙─ 0x5f5e5d5c5b5a5958'5756555453525150 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v12: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#                                  ╙───────────────╨─ 0x0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x67666564636261606766656463626160 (1.247e+190, 1.247e+190)
+#            v30: 0x6f6e6d6c6b6a69686f6e6d6c6b6a6968 (5.766e+228, 5.766e+228)
+#                                  ╙───────────────╨─ 0x6f6e6d6c6b6a6968'6766656463626160 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x666564636261605f666564636261605f (1.818e+185, 1.818e+185)
+#            v16: 0x6e6d6c6b6a6968676e6d6c6b6a696867 (8.509e+223, 8.509e+223)
+#                                  ╙───────────────╨─ 0x6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d27:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#                                          ╙───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x7271706f7271706f (4.782e+30, 4.782e+30)
+#            d23:                 0x7675747376757473 (1.245e+33, 1.245e+33)
+#                                          ╙───────╨─ 0x76757473'7271706f <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x71706f6e71706f6e (1.191e+30, 1.191e+30)
+#             d3:                 0x7574737275747372 (3.099e+32, 3.099e+32)
+#                                          ╙───────╨─ 0x75747372'71706f6e <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#             d3:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                                      ╙───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d9:                 0x7776777677767776 (3.056e+04, 3.056e+04, 3.056e+04, 3.056e+04)
+#            d10:                 0x7978797879787978 (4.480e+04, 4.480e+04, 4.480e+04, 4.480e+04)
+#                                      ╙───╨───╨───╨─ 0x7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0x7675767576757675 (2.645e+04, 2.645e+04, 2.645e+04, 2.645e+04)
+#             d7:                 0x7877787778777877 (3.658e+04, 3.658e+04, 3.658e+04, 3.658e+04)
+#                                      ╙───╨───╨───╨─ 0x7877'7675 <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#             v8: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#                          ╙───────╨───────╨───────╨─ 0xff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0x7c7b7a797c7b7a797c7b7a797c7b7a79 (5.223e+36, 5.223e+36, 5.223e+36, 5.223e+36)
+#            v20: 0x807f7e7d807f7e7d807f7e7d807f7e7d (-1.171e-38, -1.171e-38, -1.171e-38, -1.171e-38)
+#                          ╙───────╨───────╨───────╨─ 0x807f7e7d'7c7b7a79 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x7b7a79787b7a79787b7a79787b7a7978 (1.301e+36, 1.301e+36, 1.301e+36, 1.301e+36)
+#            v22: 0x7f7e7d7c7f7e7d7c7f7e7d7c7f7e7d7c (3.383e+38, 3.383e+38, 3.383e+38, 3.383e+38)
+#                          ╙───────╨───────╨───────╨─ 0x7f7e7d7c'7b7a7978 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x0101010101010101
+#            d27:                 0xffffffffffffffff
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0x8080808080808080
+#            d21:                 0x8181818181818181
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x81'80 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0x7f7f7f7f7f7f7f7f
+#            d12:                 0x8080808080808080
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x80'7f <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v13: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x82818281828182818281828182818281 (-3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05, -3.821e-05)
+#             v7: 0x84838483848384838483848384838483 (-6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05, -6.884e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8483'8281 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x81808180818081808180818081808180 (-2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05, -2.289e-05)
+#            v26: 0x83828382838283828382838283828382 (-5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05, -5.352e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x2d2a2724211e1b1800000000fe000001
+#            v21: 0x2e2b2825221f1c1900000000ffff85ff
+#            v22: 0x2f2c292623201d1a1700000000ff0002
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x20'1f'1e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x23'22'21 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x2c'2b'2a <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f'2e'2d <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v29: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#            v30: 0xb3b0adaaa7a4a19e9b9895928f8c8986
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x89'88'87 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8c'8b'8a <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8f'8e'8d <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x95'94'93 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x98'97'96 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9b'9a'99 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9e'9d'9c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa1'a0'9f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa4'a3'a2 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa7'a6'a5 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xaa'a9'a8 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xad'ac'ab <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb3'b2'b1 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0xb0adaaa7a4a19e9b9895928f8c898683
+#            v21: 0xb1aeaba8a5a29f9c999693908d8a8784
+#            v22: 0xb2afaca9a6a3a09d9a9794918e8b8885
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x85'84'83 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x88'87'86 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x8b'8a'89 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x8e'8d'8c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x91'90'8f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x94'93'92 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x97'96'95 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x9a'99'98 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x9d'9c'9b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0xa0'9f'9e <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0xa3'a2'a1 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0xa6'a5'a4 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0xa9'a8'a7 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0xac'ab'aa <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0xb2'b1'b0 <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x1f1e1d1c1b1a1918ff0000850002ff01 (8.568e-159, -5.487e+303)
+#            v22: 0x27262524232221200000000000fffeff (4.288e-120, 8.289e-317)
+#            v23: 0x2f2e2d2c2b2a29281700000000000000 (1.988e-81, 6.689e-198)
+#                                  ║               ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x2f2e2d2c2b2a2928'2726252423222120'1f1e1d1c1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0xd2d1d0cfcecdcccbbab9b8b7b6b5b4b3 (-9.073e+90, -8.311e-26)
+#            v19: 0xdad9d8d7d6d5d4d3c2c1c0bfbebdbcbb (-4.479e+129, -3.904e+13)
+#            v20: 0xe2e1e0dfdedddcdbcac9c8c7c6c5c4c3 (-2.109e+168, -1.929e+52)
+#                                  ║               ╙─ 0xcac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe2e1e0dfdedddcdb'dad9d8d7d6d5d4d3'd2d1d0cfcecdcccb <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0xd1d0cfcecdcccbcab9b8b7b6b5b4b3b2 (-1.306e+86, -1.219e-30)
+#            v28: 0xd9d8d7d6d5d4d3d2c1c0bfbebdbcbbba (-6.569e+124, -5.620e+08)
+#            v29: 0xe1e0dfdedddcdbdac9c8c7c6c5c4c3c2 (-3.037e+163, -2.829e+47)
+#                                  ║               ╙─ 0xc9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0xe1e0dfdedddcdbda'd9d8d7d6d5d4d3d2'd1d0cfcecdcccbca <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x000000000002ff01 (0.000, 2.751e-40)
+#             d8:                 0x00000000ff000085 (0.000, -1.701e+38)
+#             d9:                 0x1700000000fffeff (4.136e-25, 2.351e-38)
+#                                          ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xf1f0efeee5e4e3e2 (-2.386e+30, -1.351e+23)
+#            d21:                 0xf5f4f3f2e9e8e7e6 (-6.210e+32, -3.520e+25)
+#            d22:                 0xf9f8f7f6edecebea (-1.616e+35, -9.165e+27)
+#                                          ║       ╙─ 0xedecebea'e9e8e7e6'e5e4e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0xf0efeeede4e3e2e1 (-5.940e+29, -3.363e+22)
+#            d27:                 0xf4f3f2f1e8e7e6e5 (-1.546e+32, -8.761e+24)
+#            d28:                 0xf8f7f6f5ecebeae9 (-4.023e+34, -2.282e+27)
+#                                          ║       ╙─ 0xecebeae9'e8e7e6e5'e4e3e2e1 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x00000000ff00ff01 (0.000, 0.000, nan, nan)
+#            d28:                 0x00000000feff0002 (0.000, 0.000, nan, 1.192e-07)
+#            d29:                 0x1700000000ff0085 (0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                                      ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0x0c0b060500fffaf9 (0.0002468, 9.185e-05, 1.520e-05, -5.712e+04)
+#            d29:                 0x0e0d08070201fcfb (0.0003693, 0.0001229, 3.058e-05, nan)
+#            d30:                 0x100f0a090403fefd (0.0004954, 0.0001842, 6.121e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0403'0201'00ff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0a09'0807'0605 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x100f'0e0d'0c0b <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0x0b0a0504fffef9f8 (0.0002148, 7.653e-05, nan, -4.890e+04)
+#             d8:                 0x0d0c07060100fbfa (0.0003080, 0.0001072, 1.526e-05, -6.534e+04)
+#             d9:                 0x0f0e09080302fdfc (0.0004306, 0.0001535, 4.590e-05, nan)
+#                                      ║   ║   ║   ╙─ 0xfdfc'fbfa'f9f8 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0302'0100'fffe <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0908'0706'0504 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0f0e'0d0c'0b0a <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x272625241b1a1918000000000002ff01 (2.306e-15, 1.275e-22, 0.000, 2.751e-40)
+#             v3: 0x2b2a29281f1e1d1c00000000ff000085 (6.045e-13, 3.348e-20, 0.000, -1.701e+38)
+#             v4: 0x2f2e2d2c232221201700000000fffeff (1.584e-10, 8.789e-18, 4.136e-25, 2.351e-38)
+#                          ║       ║       ║       ╙─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x17000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x23222120'1f1e1d1c'1b1a1918 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e2d2c'2b2a2928'27262524 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x373635342b2a29281f1e1d1c13121110 (1.086e-05, 6.045e-13, 3.348e-20, 1.844e-27)
+#            v25: 0x3b3a39382f2e2d2c2322212017161514 (0.002842, 1.584e-10, 8.789e-18, 4.849e-25)
+#            v26: 0x3f3e3d3c33323130272625241b1a1918 (0.7431, 4.149e-08, 2.306e-15, 1.275e-22)
+#                          ║       ║       ║       ╙─ 0x1b1a1918'17161514'13121110 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x33323130'2f2e2d2c'2b2a2928 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534 <- 0x~~~~~~~~~~~~~~~~
+#            v11: 0x363534332a2928271e1d1c1b1211100f (2.700e-06, 1.502e-13, 8.317e-21, 4.577e-28)
+#            v12: 0x3a3938372e2d2c2b2221201f16151413 (0.0007066, 3.937e-11, 2.184e-18, 1.204e-25)
+#            v13: 0x3e3d3c3b3231302f262524231a191817 (0.1848, 1.031e-08, 5.729e-16, 3.166e-23)
+#                          ║       ║       ║       ╙─ 0x1a191817'16151413'1211100f <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x26252423'2221201f'1e1d1c1b <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x3231302f'2e2d2c2b'2a292827 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3e3d3c3b'3a393837'36353433 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0x00000000fe000001
+#            d30:                 0x00000000ffff85ff
+#            d31:                 0x1700000000ff0002
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'85'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff'ff'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x17'00'00 <- 0x~~~~~~~~~~~~~~~~
+#             d1:                 0x54514e4b4845423f
+#             d2:                 0x55524f4c49464340
+#             d3:                 0x5653504d4a474441
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x41'40'3f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x44'43'42 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x47'46'45 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x4a'49'48 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4d'4c'4b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x50'4f'4e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x53'52'51 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x56'55'54 <- 0x~~~~~~~~~~~~~~~~
+#            d12:                 0x53504d4a4744413e
+#            d13:                 0x54514e4b4845423f
+#            d14:                 0x55524f4c49464340
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40'3f'3e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x43'42'41 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x46'45'44 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x49'48'47 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x4c'4b'4a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x4f'4e'4d <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x52'51'50 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x55'54'53 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x2b2a25241f1e191800000000ff00ff01 (0.05597, 0.02008, 0.006950, 0.002487, 0.000, 0.000, nan, nan)
+#            v23: 0x2d2c272621201b1a00000000feff0002 (0.08081, 0.02792, 0.01001, 0.003468, 0.000, 0.000, nan, 1.192e-07)
+#            v24: 0x2f2e292823221d1c1700000000ff0085 (0.1122, 0.04028, 0.01393, 0.004990, 0.001709, 0.000, 1.520e-05, 7.927e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x00ff'feff'ff00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1700'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2322'2120'1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2928'2726'2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e696863625d5c5756 (-2.289e-05, 6.125e+04, 2.234e+04, 7608., 2768., 945.0, 343.0, 117.4)
+#            v14: 0x83827d7c777671706b6a65645f5e5958 (-5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5, 171.0)
+#            v15: 0x85847f7e797873726d6c676661605b5a (-8.416e-05, nan, 4.480e+04, 1.525e+04, 5552., 1894., 688.0, 235.2)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5b5a'5958'5756 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6160'5f5e'5d5c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6766'6564'6362 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6d6c'6b6a'6968 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7372'7170'6f6e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7978'7776'7574 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8584'8382'8180 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x807f7a7974736e6d686762615c5b5655 (-7.570e-06, 5.302e+04, 1.822e+04, 6580., 2254., 816.5, 278.8, 101.3)
+#            v29: 0x82817c7b7675706f6a6964635e5d5857 (-3.821e-05, nan, 2.645e+04, 9080., 3282., 1123., 407.2, 138.9)
+#            v30: 0x84837e7d787772716c6b6665605f5a59 (-6.884e-05, nan, 3.658e+04, 1.319e+04, 4524., 1637., 559.5, 203.1)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x5a59'5857'5655 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x605f'5e5d'5c5b <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6665'6463'6261 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x6c6b'6a69'6867 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7271'706f'6e6d <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7877'7675'7473 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x7e7d'7c7b'7a79 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8483'8281'807f <- 0x~~~~~~~~~~~~~~~~
+#            v21: 0x0000000001000000f5f4f3f2e9e8e7e6
+#            v22: 0x2b2a2524ff1e191800000000ff00ff01
+#            v23: 0x2d2c272602201b1a00000000feff0002
+#                            ╙─────────────────────── 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x4f4f4f4f4f4f854f4f4f4f4f4f4f4f4f
+#             v6: 0x82818281828186818281828182818281
+#             v7: 0x00000000000087000b0a0504fffef9f8
+#                                ╙─────────────────── 0x87'86'85 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0x2d2c272602201b1a00000000feff0084
+#            v24: 0x2f2e292823221d1c1700000000ff0085
+#            v25: 0x3b3a39382f2e2d2c2322212017161586
+#                                                  ╙─ 0x86'85'84 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6e6d6c6b6a696867ff0000850002ff01 (..., -5.487e+303)
+#            v17: 0x00000000474600000000000000fffeff (..., 8.289e-317)
+#            v18: 0xd2d1d0cfcecdcccb1700000000000000 (..., 6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x84837e7d787772718e8d8c8b8a898887 (..., -1.418e-238)
+#            v31: 0x0000000000000000969594939291908f (..., -7.048e-200)
+#             v0: 0xc3c2c1c0bfbebdbc9e9d9c9b9a999897 (..., -3.291e-161)
+#                                                  ╙─ 0x9e9d9c9b9a999897'969594939291908f'8e8d8c8b8a898887 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0x8d8c8b8a89888786686762615c5b5655 (-2.090e-243, ...)
+#            v29: 0x9594939291908f8e6a6964635e5d5857 (-1.025e-204, ...)
+#            v30: 0x9d9c9b9a999897968e8d8c8b8a898887 (-4.851e-166, ...)
+#                                  ╙───────────────── 0x9d9c9b9a99989796'9594939291908f8e'8d8c8b8a89888786 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x81807b7a75746f6e6968ff015d5c5756 (..., nan, ...)
+#            v14: 0x83827d7c777671706b6a00025f5e5958 (..., 1.192e-07, ...)
+#            v15: 0x85847f7e797873726d6c008561605b5a (..., 7.927e-06, ...)
+#                                          ╙───────── 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x9f9e2524ff1e191800000000ff00ff01 (-0.007439, ...)
+#            v23: 0xa1a0272602201b1a00000000feff0084 (-0.01099, ...)
+#            v24: 0xa3a2292823221d1c1700000000ff0085 (-0.01491, ...)
+#                      ╙───────────────────────────── 0xa3a2'a1a0'9f9e <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x83827d7c777671709e9d00025f5e5958 (..., -0.006458, ...)
+#            v15: 0x85847f7e79787372a09f008561605b5a (..., -0.009026, ...)
+#            v16: 0x6e6d6c6b6a696867a2a100850002ff01 (..., -0.01295, ...)
+#                                      ╙───────────── 0xa2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0x0002ff01ff1e191800000000ff00ff01 (2.751e-40, ...)
+#            v23: 0xff00008502201b1a00000000feff0084 (-1.701e+38, ...)
+#            v24: 0x00fffeff23221d1c1700000000ff0085 (2.351e-38, ...)
+#                          ╙───────────────────────── 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0x9d9c9b9aa6a5a4a38e8d8c8b8a898887 (..., -1.149e-15, ...)
+#            v31: 0x00000000aaa9a8a7969594939291908f (..., -3.014e-13, ...)
+#             v0: 0xc3c2c1c0aeadacab9e9d9c9b9a999897 (..., -7.898e-11, ...)
+#                                  ╙───────────────── 0xaeadacab'aaa9a8a7'a6a5a4a3 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000a5a4a3a24744413e (..., -2.856e-16, ...)
+#            v13: 0x81807b7a75746f6ea9a8a7a65d5c5756 (..., -7.490e-14, ...)
+#            v14: 0x83827d7c77767170adacabaa5f5e5958 (..., -1.963e-11, ...)
+#                                          ╙───────── 0xadacabaa'a9a8a7a6'a5a4a3a2 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0x01010101010101010101010101010101
+#            v25: 0xffffffffffffffffffffffffffffffff
+#            v26: 0x02020202020202020202020202020202
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v24: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#            v25: 0xafafafafafafafafafafafafafafafaf
+#            v26: 0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xb0'af'ae <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0xadadadadadadadadadadadadadadadad
+#             v4: 0xaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+#             v5: 0xafafafafafafafafafafafafafafafaf
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0xaf'ae'ad <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0xff0000850002ff01 (-5.487e+303)
+#             d5:                 0x0000000000fffeff (8.289e-317)
+#             d6:                 0x1700000000000000 (6.689e-198)
+#                                                  ╙─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xb7b6b5b4b3b2b1b0 (-2.607e-40)
+#             d8:                 0xbfbebdbcbbbab9b8 (-0.1201)
+#             d9:                 0xc7c6c5c4c3c2c1c0 (-6.054e+37)
+#                                                  ╙─ 0xc7c6c5c4c3c2c1c0'bfbebdbcbbbab9b8'b7b6b5b4b3b2b1b0 <- 0x~~~~~~~~~~~~~~~~
+#            d17:                 0xb6b5b4b3b2b1b0af (-3.802e-45)
+#            d18:                 0xbebdbcbbbab9b8b7 (-1.772e-06)
+#            d19:                 0xc6c5c4c3c2c1c0bf (-8.830e+32)
+#                                                  ╙─ 0xc6c5c4c3c2c1c0bf'bebdbcbbbab9b8b7'b6b5b4b3b2b1b0af <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v17: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v18: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#                                  ╙───────────────╨─ 0x1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0xcecdcccbcac9c8c7cecdcccbcac9c8c7 (-4.113e+71, -4.113e+71)
+#            v21: 0xd6d5d4d3d2d1d0cfd6d5d4d3d2d1d0cf (-2.051e+110, -2.051e+110)
+#            v22: 0xdedddcdbdad9d8d7dedddcdbdad9d8d7 (-9.546e+148, -9.546e+148)
+#                                  ╙───────────────╨─ 0xdedddcdbdad9d8d7'd6d5d4d3d2d1d0cf'cecdcccbcac9c8c7 <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0xcdcccbcac9c8c7c6cdcccbcac9c8c7c6 (-6.065e+66, -6.065e+66)
+#            v15: 0xd5d4d3d2d1d0cfced5d4d3d2d1d0cfce (-2.985e+105, -2.985e+105)
+#            v16: 0xdddcdbdad9d8d7d6dddcdbdad9d8d7d6 (-1.408e+144, -1.408e+144)
+#                                  ╙───────────────╨─ 0xdddcdbdad9d8d7d6'd5d4d3d2d1d0cfce'cdcccbcac9c8c7c6 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#            d11:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#            d12:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#                                          ╙───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d0:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#             d1:                 0xe5e4e3e2e5e4e3e2 (-1.351e+23, -1.351e+23)
+#             d2:                 0xe9e8e7e6e9e8e7e6 (-3.520e+25, -3.520e+25)
+#                                          ╙───────╨─ 0xe9e8e7e6'e5e4e3e2'e1e0dfde <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#            d24:                 0xe4e3e2e1e4e3e2e1 (-3.363e+22, -3.363e+22)
+#            d25:                 0xe8e7e6e5e8e7e6e5 (-8.761e+24, -8.761e+24)
+#                                          ╙───────╨─ 0xe8e7e6e5'e4e3e2e1'e0dfdedd <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d23:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d24:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                                      ╙───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d6:                 0xeae9eae9eae9eae9 (-3538., -3538., -3538., -3538.)
+#             d7:                 0xecebecebecebeceb (-5036., -5036., -5036., -5036.)
+#             d8:                 0xeeedeeedeeedeeed (-7092., -7092., -7092., -7092.)
+#                                      ╙───╨───╨───╨─ 0xeeed'eceb'eae9 <- 0x~~~~~~~~~~~~~~~~
+#             d7:                 0xe9e8e9e8e9e8e9e8 (-3024., -3024., -3024., -3024.)
+#             d8:                 0xebeaebeaebeaebea (-4052., -4052., -4052., -4052.)
+#             d9:                 0xedecedecedecedec (-6064., -6064., -6064., -6064.)
+#                                      ╙───╨───╨───╨─ 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+#            v26: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v27: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v28: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#                          ╙───────╨───────╨───────╨─ 0x00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v0: 0xf1f0efeef1f0efeef1f0efeef1f0efee (-2.386e+30, -2.386e+30, -2.386e+30, -2.386e+30)
+#             v1: 0xf5f4f3f2f5f4f3f2f5f4f3f2f5f4f3f2 (-6.210e+32, -6.210e+32, -6.210e+32, -6.210e+32)
+#             v2: 0xf9f8f7f6f9f8f7f6f9f8f7f6f9f8f7f6 (-1.616e+35, -1.616e+35, -1.616e+35, -1.616e+35)
+#                          ╙───────╨───────╨───────╨─ 0xf9f8f7f6'f5f4f3f2'f1f0efee <- 0x~~~~~~~~~~~~~~~~
+#            v30: 0xf0efeeedf0efeeedf0efeeedf0efeeed (-5.940e+29, -5.940e+29, -5.940e+29, -5.940e+29)
+#            v31: 0xf4f3f2f1f4f3f2f1f4f3f2f1f4f3f2f1 (-1.546e+32, -1.546e+32, -1.546e+32, -1.546e+32)
+#             v0: 0xf8f7f6f5f8f7f6f5f8f7f6f5f8f7f6f5 (-4.023e+34, -4.023e+34, -4.023e+34, -4.023e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf8f7f6f5'f4f3f2f1'f0efeeed <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0x0101010101010101
+#             d3:                 0xffffffffffffffff
+#             d4:                 0x0202020202020202
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d10:                 0xf9f9f9f9f9f9f9f9
+#            d11:                 0xfafafafafafafafa
+#            d12:                 0xfbfbfbfbfbfbfbfb
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfb'fa'f9 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8 <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v7: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#             v8: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v30: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v31: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#             v8: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#             v9: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xfffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#             v3: 0x3c3834302c2824201c18000000ff8501
+#             v4: 0x3d3935312d2925211d19000000fe00ff
+#             v5: 0x3e3a36322e2a26221e1a000000ff0002
+#             v6: 0x3f3b37332f2b27231f1b17000000ff00
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x3c3834302c2824201c1814100c080400
+#             v3: 0x3d3935312d2925211d1915110d090501
+#             v4: 0x3e3a36322e2a26221e1a16120e0a0602
+#             v5: 0x3f3b37332f2b27231f1b17130f0b0703
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x03'02'01'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x07'06'05'04 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0b'0a'09'08 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0f'0e'0d'0c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x13'12'11'10 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x17'16'15'14 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x23'22'21'20 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x27'26'25'24 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2b'2a'29'28 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2f'2e'2d'2c <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x33'32'31'30 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x37'36'35'34 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3b'3a'39'38 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3f'3e'3d'3c <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x3b37332f2b27231f1b17130f0b0703ff
+#             v6: 0x3c3834302c2824201c1814100c080400
+#             v7: 0x3d3935312d2925211d1915110d090501
+#             v8: 0x3e3a36322e2a26221e1a16120e0a0602
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x1e'1d'1c'1b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x22'21'20'1f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x26'25'24'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x2a'29'28'27 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x2e'2d'2c'2b <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x32'31'30'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x36'35'34'33 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x3a'39'38'37 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x3e'3d'3c'3b <- 0x~~~~~~~~~~~~~~~~
+#            v18: 0x2726252423222120ff0000850002ff01 (4.288e-120, -5.487e+303)
+#            v19: 0x2f2e2d2c2b2a29280000000000fffeff (1.988e-81, 8.289e-317)
+#            v20: 0x37363534333231301700000000000000 (9.958e-43, 6.689e-198)
+#            v21: 0x3f3e3d3c3b3a39381f1e1d1c1b1a1918 (0.0004614, 8.568e-159)
+#                                  ║               ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3f3e3d3c3b3a3938'3736353433323130'2f2e2d2c2b2a2928'2726252423222120 <- 0x~~~~~~~~~~~~~~~~
+#             v4: 0x666564636261605f464544434241403f (1.818e+185, 3.370e+30)
+#             v5: 0x6e6d6c6b6a6968674e4d4c4b4a494847 (8.509e+223, 1.580e+69)
+#             v6: 0x767574737271706f565554535251504f (4.222e+262, 7.827e+107)
+#             v7: 0x7e7d7c7b7a7978775e5d5c5b5a595857 (1.975e+301, 3.666e+146)
+#                                  ║               ╙─ 0x5e5d5c5b5a595857'565554535251504f'4e4d4c4b4a494847'464544434241403f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7e7d7c7b7a797877'767574737271706f'6e6d6c6b6a696867'666564636261605f <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x6564636261605f5e4544434241403f3e (2.644e+180, 4.899e+25)
+#            v30: 0x6d6c6b6a696867664d4c4b4a49484746 (1.254e+219, 2.328e+64)
+#            v31: 0x7574737271706f6e5554535251504f4e (6.141e+257, 1.138e+103)
+#             v0: 0x7d7c7b7a797877765d5c5b5a59585756 (2.911e+296, 5.403e+141)
+#                                  ║               ╙─ 0x5d5c5b5a59585756'5554535251504f4e'4d4c4b4a49484746'4544434241403f3e <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7d7c7b7a79787776'7574737271706f6e'6d6c6b6a69686766'6564636261605f5e <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x000000000002ff01 (0.000, 2.751e-40)
+#            d28:                 0x17000000ff000085 (4.136e-25, -1.701e+38)
+#            d29:                 0x1b1a191800fffeff (1.275e-22, 2.351e-38)
+#            d30:                 0x1f1e1d1c00000000 (3.348e-20, 0.000)
+#                                          ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#            d24:                 0x91908f8e81807f7e (-2.281e-28, -4.720e-38)
+#            d25:                 0x9594939285848382 (-6.001e-26, -1.246e-35)
+#            d26:                 0x9998979689888786 (-1.578e-23, -3.287e-33)
+#            d27:                 0x9d9c9b9a8d8c8b8a (-4.145e-21, -8.662e-31)
+#                                          ║       ╙─ 0x8d8c8b8a'89888786'85848382'81807f7e <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9d9c9b9a'99989796'95949392'91908f8e <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x908f8e8d807f7e7d (-5.662e-29, -1.171e-38)
+#             d5:                 0x9493929184838281 (-1.490e-26, -3.092e-36)
+#             d6:                 0x9897969588878685 (-3.918e-24, -8.157e-34)
+#             d7:                 0x9c9b9a998c8b8a89 (-1.030e-21, -2.150e-31)
+#                                          ║       ╙─ 0x8c8b8a89'88878685'84838281'807f7e7d <- 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x9c9b9a99'98979695'94939291'908f8e8d <- 0x~~~~~~~~~~~~~~~~
+#            d16:                 0x19180000feffff01 (0.002487, 0.000, nan, nan)
+#            d17:                 0x1b1a000000ff0002 (0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            d18:                 0x1d1c000000000085 (0.004990, 0.000, 0.000, 7.927e-06)
+#            d19:                 0x1f1e17000000ff00 (0.006950, 0.001709, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#            d23:                 0xb6b5aeada6a59e9d (-0.4192, -0.1043, -0.02596, -0.006458)
+#            d24:                 0xb8b7b0afa8a7a09f (-0.5894, -0.1464, -0.03635, -0.009026)
+#            d25:                 0xbab9b2b1aaa9a2a1 (-0.8403, -0.2091, -0.05203, -0.01295)
+#            d26:                 0xbcbbb4b3acaba4a3 (-1.183, -0.2937, -0.07294, -0.01811)
+#                                      ║   ║   ║   ╙─ 0xa4a3'a2a1'a09f'9e9d <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xacab'aaa9'a8a7'a6a5 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb4b3'b2b1'b0af'aead <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbcbb'bab9'b8b7'b6b5 <- 0x~~~~~~~~~~~~~~~~
+#             d2:                 0xb5b4adaca5a49d9c (-0.3564, -0.08862, -0.02203, -0.005478)
+#             d3:                 0xb7b6afaea7a69f9e (-0.4819, -0.1200, -0.02988, -0.007439)
+#             d4:                 0xb9b8b1b0a9a8a1a0 (-0.7148, -0.1777, -0.04419, -0.01099)
+#             d5:                 0xbbbab3b2abaaa3a2 (-0.9658, -0.2405, -0.05988, -0.01491)
+#                                      ║   ║   ║   ╙─ 0xa3a2'a1a0'9f9e'9d9c <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xabaa'a9a8'a7a6'a5a4 <- 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xb3b2'b1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xbbba'b9b8'b7b6'b5b4 <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x3332313023222120000000000002ff01 (4.149e-08, 8.789e-18, 0.000, 2.751e-40)
+#             v8: 0x373635342726252417000000ff000085 (1.086e-05, 2.306e-15, 4.136e-25, -1.701e+38)
+#             v9: 0x3b3a39382b2a29281b1a191800fffeff (0.002842, 6.045e-13, 1.275e-22, 2.351e-38)
+#            v10: 0x3f3e3d3c2f2e2d2c1f1e1d1c00000000 (0.7431, 1.584e-10, 3.348e-20, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1f1e1d1c'1b1a1918'17000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2f2e2d2c'2b2a2928'27262524'23222120 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3f3e3d3c'3b3a3938'37363534'33323130 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#            v29: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-3.850e+31, -8.370e+21, -1.811e+12, -389.5)
+#            v30: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.002e+34, -2.181e+24, -4.724e+14, -1.018e+05)
+#            v31: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-2.606e+36, -5.680e+26, -1.232e+17, -2.658e+07)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0xeeedecebdedddcdbcecdcccbbebdbcbb (-3.682e+28, -7.993e+18, -1.726e+09, -0.3706)
+#            v30: 0xf2f1f0efe2e1e0dfd2d1d0cfc2c1c0bf (-9.584e+30, -2.083e+21, -4.506e+11, -96.88)
+#            v31: 0xf6f5f4f3e6e5e4e3d6d5d4d3c6c5c4c3 (-2.494e+33, -5.428e+23, -1.176e+14, -2.531e+04)
+#             v0: 0xfaf9f8f7eae9e8e7dad9d8d7cac9c8c7 (-6.490e+35, -1.414e+26, -3.066e+16, -6.612e+06)
+#                          ║       ║       ║       ╙─ 0xcac9c8c7'c6c5c4c3'c2c1c0bf'bebdbcbb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdad9d8d7'd6d5d4d3'd2d1d0cf'cecdcccb <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xeae9e8e7'e6e5e4e3'e2e1e0df'dedddcdb <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfaf9f8f7'f6f5f4f3'f2f1f0ef'eeedeceb <- 0x~~~~~~~~~~~~~~~~
+#            d15:                 0x1c18000000ff8501
+#            d16:                 0x1d19000000fe00ff
+#            d17:                 0x1e1a000000ff0002
+#            d18:                 0x1f1b17000000ff00
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff'00'00'85 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'fe'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x17'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x1b'1a'19'18 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1f'1e'1d'1c <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0x17130f0b0703fffb
+#            d28:                 0x1814100c080400fc
+#            d29:                 0x1915110d090501fd
+#            d30:                 0x1a16120e0a0602fe
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfe'fd'fc'fb <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x02'01'00'ff <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x06'05'04'03 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x0a'09'08'07 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0e'0d'0c'0b <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x12'11'10'0f <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x16'15'14'13 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x1a'19'18'17 <- 0x~~~~~~~~~~~~~~~~
+#             d5:                 0x16120e0a0602fefa
+#             d6:                 0x17130f0b0703fffb
+#             d7:                 0x1814100c080400fc
+#             d8:                 0x1915110d090501fd
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xfd'fc'fb'fa <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x01'00'ff'fe <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x05'04'03'02 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x09'08'07'06 <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x0d'0c'0b'0a <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x11'10'0f'0e <- 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x15'14'13'12 <- 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x19'18'17'16 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831302928212019180000feffff01 (0.6523, 0.1621, 0.04028, 0.01001, 0.002487, 0.000, nan, nan)
+#            v26: 0x3b3a33322b2a23221b1a000000ff0002 (0.9033, 0.2249, 0.05597, 0.01393, 0.003468, 0.000, 1.520e-05, 1.192e-07)
+#            v27: 0x3d3c35342d2c25241d1c000000000085 (1.309, 0.3252, 0.08081, 0.02008, 0.004990, 0.000, 0.000, 7.927e-06)
+#            v28: 0x3f3e37362f2e27261f1e17000000ff00 (1.811, 0.4507, 0.1122, 0.02792, 0.006950, 0.001709, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'00ff'feff <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1700'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1f1e'1d1c'1b1a'1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726'2524'2322'2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2f2e'2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x3736'3534'3332'3130 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x3f3e'3d3c'3b3a'3938 <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x53524b4a43423b3a33322b2a23221b1a (58.56, 14.58, 3.629, 0.9033, 0.2249, 0.05597, 0.01393, 0.003468)
+#             v3: 0x55544d4c45443d3c35342d2c25241d1c (85.25, 21.19, 5.266, 1.309, 0.3252, 0.08081, 0.02008, 0.004990)
+#             v4: 0x57564f4e47463f3e37362f2e27261f1e (117.4, 29.22, 7.273, 1.811, 0.4507, 0.1122, 0.02792, 0.006950)
+#             v5: 0x59585150494841403938313029282120 (171.0, 42.50, 10.56, 2.625, 0.6523, 0.1621, 0.04028, 0.01001)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x2120'1f1e'1d1c'1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2928'2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3130'2f2e'2d2c'2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3938'3736'3534'3332 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4140'3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948'4746'4544'4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5150'4f4e'4d4c'4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5958'5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2922211a19 (50.53, 12.57, 3.127, 0.7778, 0.1935, 0.04813, 0.01197, 0.002977)
+#            v21: 0x54534c4b44433c3b34332c2b24231c1b (69.19, 17.17, 4.262, 1.058, 0.2625, 0.06512, 0.01616, 0.004009)
+#            v22: 0x56554e4d46453e3d36352e2d26251e1d (101.3, 25.20, 6.270, 1.560, 0.3879, 0.09650, 0.02400, 0.005970)
+#            v23: 0x5857504f4847403f3837302f2827201f (138.9, 34.47, 8.555, 2.123, 0.5269, 0.1307, 0.03244, 0.008049)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x201f'1e1d'1c1b'1a19 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2827'2625'2423'2221 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x302f'2e2d'2c2b'2a29 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x3837'3635'3433'3231 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x403f'3e3d'3c3b'3a39 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4847'4645'4443'4241 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x504f'4e4d'4c4b'4a49 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5857'5655'5453'5251 <- 0x~~~~~~~~~~~~~~~~
+#            v20: 0x52514a4942413a3932312a2901211a19
+#            v21: 0x54534c4b44433c3b34332c2bff231c1b
+#            v22: 0x56554e4d46453e3d36352e2d02251e1d
+#            v23: 0x5857504f4847403f3837302f0027201f
+#                                            ╙─────── 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v12: 0x0000000000000000fbfbfbfb59fbfbfb
+#            v13: 0x81807b7a75746f6ea9a8a7a65a5c5756
+#            v14: 0xcdcccbcac9c8c7c6cdcccbca5bc8c7c6
+#            v15: 0x00000000000000001c1800005cff8501
+#                                            ╙─────── 0x5c'5b'5a'59 <- 0x~~~~~~~~~~~~~~~~
+#            v27: 0x3d3c35342d2c25241d58000000000085
+#            v28: 0x3f3e37362f2e27261f5917000000ff00
+#            v29: 0x0000000000000000195a110d090501fd
+#            v30: 0x00000000000000001a5b120e0a0602fe
+#                                      ╙───────────── 0x5b'5a'59'58 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff0000850002ff011f5917000000ff00 (-5.487e+303, ...)
+#            v29: 0x0000000000fffeff195a110d090501fd (8.289e-317, ...)
+#            v30: 0x17000000000000001a5b120e0a0602fe (6.689e-198, ...)
+#            v31: 0x1f1e1d1c1b1a1918d6d5d4d3c6c5c4c3 (8.568e-159, ...)
+#                                  ╙───────────────── 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0x636261605f5e5d5c1c1800005cff8501 (5.549e+170, ...)
+#            v16: 0x6b6a6968676665641d19000000fe00ff (2.713e+209, ...)
+#            v17: 0x737271706f6e6d6c1e1a000000ff0002 (1.290e+248, ...)
+#            v18: 0x7b7a7978777675741f1b17000000ff00 (6.299e+286, ...)
+#                                  ╙───────────────── 0x7b7a797877767574'737271706f6e6d6c'6b6a696867666564'636261605f5e5d5c <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x6261605f5e5d5c5b1d19000000fe00ff (8.005e+165, ...)
+#            v17: 0x6a696867666564631e1a000000ff0002 (3.983e+204, ...)
+#            v18: 0x7271706f6e6d6c6b1f1b17000000ff00 (1.861e+243, ...)
+#            v19: 0x7a797877767574731f1e17000000ff00 (9.247e+281, ...)
+#                                  ╙───────────────── 0x7a79787776757473'7271706f6e6d6c6b'6a69686766656463'6261605f5e5d5c5b <- 0x~~~~~~~~~~~~~~~~
+#             v2: 0x5352ff0143423b3a33322b2a23221b1a (..., nan, ...)
+#             v3: 0x5554000245443d3c35342d2c25241d1c (..., 1.192e-07, ...)
+#             v4: 0x5756008547463f3e37362f2e27261f1e (..., 7.927e-06, ...)
+#             v5: 0x5958ff00494841403938313029282120 (..., nan, ...)
+#                          ╙───────────────────────── 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#             v5: 0x5958ff00494841407c7b313029282120 (..., nan, ...)
+#             v6: 0x00000000000000007e7d0f0b0703fffb (..., nan, ...)
+#             v7: 0x0000000000000000807f100c080400fc (..., -7.570e-06, ...)
+#             v8: 0x00000000000000008281110d090501fd (..., -3.821e-05, ...)
+#                                      ╙───────────── 0x8281'807f'7e7d'7c7b <- 0x~~~~~~~~~~~~~~~~
+#             v7: 0x00007b7a00000000807f100c080400fc (..., 6.125e+04, ...)
+#             v8: 0x00007d7c000000008281110d090501fd (..., nan, ...)
+#             v9: 0x3b3a7f7e2b2a29281b1a191800fffeff (..., nan, ...)
+#            v10: 0x3f3e81802f2e2d2c1f1e1d1c00000000 (..., -2.289e-05, ...)
+#                          ╙───────────────────────── 0x8180'7f7e'7d7c'7b7a <- 0x~~~~~~~~~~~~~~~~
+#             v6: 0x00000000000000000002ff010703fffb (..., 2.751e-40, ...)
+#             v7: 0x00007b7a00000000ff000085080400fc (..., -1.701e+38, ...)
+#             v8: 0x00007d7c0000000000fffeff090501fd (..., 2.351e-38, ...)
+#             v9: 0x3b3a7f7e2b2a29280000000000fffeff (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0x393831308584838219180000feffff01 (..., -1.246e-35, ...)
+#            v26: 0x3b3a3332898887861b1a000000ff0002 (..., -3.287e-33, ...)
+#            v27: 0x3d3c35348d8c8b8a1d58000000000085 (..., -8.662e-31, ...)
+#            v28: 0xff00008591908f8e1f5917000000ff00 (..., -2.281e-28, ...)
+#                                  ╙───────────────── 0x91908f8e'8d8c8b8a'89888786'85848382 <- 0x~~~~~~~~~~~~~~~~
+#             v8: 0x848382810000000000fffeff090501fd (-3.092e-36, ...)
+#             v9: 0x888786852b2a29280000000000fffeff (-8.157e-34, ...)
+#            v10: 0x8c8b8a892f2e2d2c1f1e1d1c00000000 (-2.150e-31, ...)
+#            v11: 0x908f8e8d00000000fafafafafafafafa (-5.662e-29, ...)
+#                          ╙───────────────────────── 0x908f8e8d'8c8b8a89'88878685'84838281 <- 0x~~~~~~~~~~~~~~~~
+#            v14: 0x01010101010101010101010101010101
+#            v15: 0xffffffffffffffffffffffffffffffff
+#            v16: 0x02020202020202020202020202020202
+#            v17: 0x00000000000000000000000000000000
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            v13: 0x91919191919191919191919191919191
+#            v14: 0x92929292929292929292929292929292
+#            v15: 0x93939393939393939393939393939393
+#            v16: 0x94949494949494949494949494949494
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x94'93'92'91 <- 0x~~~~~~~~~~~~~~~~
+#             v9: 0x90909090909090909090909090909090
+#            v10: 0x91919191919191919191919191919191
+#            v11: 0x92929292929292929292929292929292
+#            v12: 0x93939393939393939393939393939393
+#                    ╙─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─╨─ 0x93'92'91'90 <- 0x~~~~~~~~~~~~~~~~
+#             d8:                 0xff0000850002ff01 (-5.487e+303)
+#             d9:                 0x0000000000fffeff (8.289e-317)
+#            d10:                 0x1700000000000000 (6.689e-198)
+#            d11:                 0x1f1e1d1c1b1a1918 (8.568e-159)
+#                                                  ╙─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#             d4:                 0x9b9a999897969594 (-1.050e-175)
+#             d5:                 0xa3a2a1a09f9e9d9c (-5.007e-137)
+#             d6:                 0xabaaa9a8a7a6a5a4 (-2.438e-98)
+#             d7:                 0xb3b2b1b0afaeadac (-1.163e-59)
+#                                                  ╙─ 0xb3b2b1b0afaeadac'abaaa9a8a7a6a5a4'a3a2a1a09f9e9d9c'9b9a999897969594 <- 0x~~~~~~~~~~~~~~~~
+#            d26:                 0x9a99989796959493 (-1.542e-180)
+#            d27:                 0xa2a1a09f9e9d9c9b (-7.228e-142)
+#            d28:                 0xaaa9a8a7a6a5a4a3 (-3.580e-103)
+#            d29:                 0xb2b1b0afaeadacab (-1.680e-64)
+#                                                  ╙─ 0xb2b1b0afaeadacab'aaa9a8a7a6a5a4a3'a2a1a09f9e9d9c9b'9a99989796959493 <- 0x~~~~~~~~~~~~~~~~
+#            v19: 0xff0000850002ff01ff0000850002ff01 (-5.487e+303, -5.487e+303)
+#            v20: 0x0000000000fffeff0000000000fffeff (8.289e-317, 8.289e-317)
+#            v21: 0x17000000000000001700000000000000 (6.689e-198, 6.689e-198)
+#            v22: 0x1f1e1d1c1b1a19181f1e1d1c1b1a1918 (8.568e-159, 8.568e-159)
+#                                  ╙───────────────╨─ 0x1f1e1d1c1b1a1918'1700000000000000'0000000000fffeff'ff0000850002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xbab9b8b7b6b5b4b3bab9b8b7b6b5b4b3 (-8.311e-26, -8.311e-26)
+#            v29: 0xc2c1c0bfbebdbcbbc2c1c0bfbebdbcbb (-3.904e+13, -3.904e+13)
+#            v30: 0xcac9c8c7c6c5c4c3cac9c8c7c6c5c4c3 (-1.929e+52, -1.929e+52)
+#            v31: 0xd2d1d0cfcecdcccbd2d1d0cfcecdcccb (-9.073e+90, -9.073e+90)
+#                                  ╙───────────────╨─ 0xd2d1d0cfcecdcccb'cac9c8c7c6c5c4c3'c2c1c0bfbebdbcbb'bab9b8b7b6b5b4b3 <- 0x~~~~~~~~~~~~~~~~
+#            v15: 0xb9b8b7b6b5b4b3b2b9b8b7b6b5b4b3b2 (-1.219e-30, -1.219e-30)
+#            v16: 0xc1c0bfbebdbcbbbac1c0bfbebdbcbbba (-5.620e+08, -5.620e+08)
+#            v17: 0xc9c8c7c6c5c4c3c2c9c8c7c6c5c4c3c2 (-2.829e+47, -2.829e+47)
+#            v18: 0xd1d0cfcecdcccbcad1d0cfcecdcccbca (-1.306e+86, -1.306e+86)
+#                                  ╙───────────────╨─ 0xd1d0cfcecdcccbca'c9c8c7c6c5c4c3c2'c1c0bfbebdbcbbba'b9b8b7b6b5b4b3b2 <- 0x~~~~~~~~~~~~~~~~
+#            d31:                 0x0002ff010002ff01 (2.751e-40, 2.751e-40)
+#             d0:                 0xff000085ff000085 (-1.701e+38, -1.701e+38)
+#             d1:                 0x00fffeff00fffeff (2.351e-38, 2.351e-38)
+#             d2:                 0x0000000000000000 (0.000, 0.000)
+#                                          ╙───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d28:                 0xd5d4d3d2d5d4d3d2 (-2.925e+13, -2.925e+13)
+#            d29:                 0xd9d8d7d6d9d8d7d6 (-7.629e+15, -7.629e+15)
+#            d30:                 0xdddcdbdadddcdbda (-1.989e+18, -1.989e+18)
+#            d31:                 0xe1e0dfdee1e0dfde (-5.185e+20, -5.185e+20)
+#                                          ╙───────╨─ 0xe1e0dfde'dddcdbda'd9d8d7d6'd5d4d3d2 <- 0x~~~~~~~~~~~~~~~~
+#            d11:                 0xd4d3d2d1d4d3d2d1 (-7.278e+12, -7.278e+12)
+#            d12:                 0xd8d7d6d5d8d7d6d5 (-1.899e+15, -1.899e+15)
+#            d13:                 0xdcdbdad9dcdbdad9 (-4.951e+17, -4.951e+17)
+#            d14:                 0xe0dfdedde0dfdedd (-1.291e+20, -1.291e+20)
+#                                          ╙───────╨─ 0xe0dfdedd'dcdbdad9'd8d7d6d5'd4d3d2d1 <- 0x~~~~~~~~~~~~~~~~
+#            d19:                 0xff01ff01ff01ff01 (nan, nan, nan, nan)
+#            d20:                 0x0002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            d21:                 0x0085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            d22:                 0xff00ff00ff00ff00 (nan, nan, nan, nan)
+#                                      ╙───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0xe2e1e2e1e2e1e2e1 (-880.5, -880.5, -880.5, -880.5)
+#            d23:                 0xe4e3e4e3e4e3e4e3 (-1251., -1251., -1251., -1251.)
+#            d24:                 0xe6e5e6e5e6e5e6e5 (-1765., -1765., -1765., -1765.)
+#            d25:                 0xe8e7e8e7e8e7e8e7 (-2510., -2510., -2510., -2510.)
+#                                      ╙───╨───╨───╨─ 0xe8e7'e6e5'e4e3'e2e1 <- 0x~~~~~~~~~~~~~~~~
+#            d20:                 0xe1e0e1e0e1e0e1e0 (-752.0, -752.0, -752.0, -752.0)
+#            d21:                 0xe3e2e3e2e3e2e3e2 (-1009., -1009., -1009., -1009.)
+#            d22:                 0xe5e4e5e4e5e4e5e4 (-1508., -1508., -1508., -1508.)
+#            d23:                 0xe7e6e7e6e7e6e7e6 (-2022., -2022., -2022., -2022.)
+#                                      ╙───╨───╨───╨─ 0xe7e6'e5e4'e3e2'e1e0 <- 0x~~~~~~~~~~~~~~~~
+#            v16: 0x0002ff010002ff010002ff010002ff01 (2.751e-40, 2.751e-40, 2.751e-40, 2.751e-40)
+#            v17: 0xff000085ff000085ff000085ff000085 (-1.701e+38, -1.701e+38, -1.701e+38, -1.701e+38)
+#            v18: 0x00fffeff00fffeff00fffeff00fffeff (2.351e-38, 2.351e-38, 2.351e-38, 2.351e-38)
+#            v19: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ╙───────╨───────╨───────╨─ 0x00000000'00fffeff'ff000085'0002ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xebeae9e8ebeae9e8ebeae9e8ebeae9e8 (-5.680e+26, -5.680e+26, -5.680e+26, -5.680e+26)
+#            v26: 0xefeeedecefeeedecefeeedecefeeedec (-1.479e+29, -1.479e+29, -1.479e+29, -1.479e+29)
+#            v27: 0xf3f2f1f0f3f2f1f0f3f2f1f0f3f2f1f0 (-3.850e+31, -3.850e+31, -3.850e+31, -3.850e+31)
+#            v28: 0xf7f6f5f4f7f6f5f4f7f6f5f4f7f6f5f4 (-1.002e+34, -1.002e+34, -1.002e+34, -1.002e+34)
+#                          ╙───────╨───────╨───────╨─ 0xf7f6f5f4'f3f2f1f0'efeeedec'ebeae9e8 <- 0x~~~~~~~~~~~~~~~~
+#            v23: 0xeae9e8e7eae9e8e7eae9e8e7eae9e8e7 (-1.414e+26, -1.414e+26, -1.414e+26, -1.414e+26)
+#            v24: 0xeeedecebeeedecebeeedecebeeedeceb (-3.682e+28, -3.682e+28, -3.682e+28, -3.682e+28)
+#            v25: 0xf2f1f0eff2f1f0eff2f1f0eff2f1f0ef (-9.584e+30, -9.584e+30, -9.584e+30, -9.584e+30)
+#            v26: 0xf6f5f4f3f6f5f4f3f6f5f4f3f6f5f4f3 (-2.494e+33, -2.494e+33, -2.494e+33, -2.494e+33)
+#                          ╙───────╨───────╨───────╨─ 0xf6f5f4f3'f2f1f0ef'eeedeceb'eae9e8e7 <- 0x~~~~~~~~~~~~~~~~
+#            d22:                 0x0101010101010101
+#            d23:                 0xffffffffffffffff
+#            d24:                 0x0202020202020202
+#            d25:                 0x0000000000000000
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0x00'02'ff'01 <- 0x~~~~~~~~~~~~~~~~
+#            d27:                 0xf7f7f7f7f7f7f7f7
+#            d28:                 0xf8f8f8f8f8f8f8f8
+#            d29:                 0xf9f9f9f9f9f9f9f9
+#            d30:                 0xfafafafafafafafa
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xfa'f9'f8'f7 <- 0x~~~~~~~~~~~~~~~~
+#            d29:                 0xf6f6f6f6f6f6f6f6
+#            d30:                 0xf7f7f7f7f7f7f7f7
+#            d31:                 0xf8f8f8f8f8f8f8f8
+#             d0:                 0xf9f9f9f9f9f9f9f9
+#                                    ╙─╨─╨─╨─╨─╨─╨─╨─ 0xf9'f8'f7'f6 <- 0x~~~~~~~~~~~~~~~~
+#            v28: 0xff01ff01ff01ff01ff01ff01ff01ff01 (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v29: 0x00020002000200020002000200020002 (1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07, 1.192e-07)
+#            v30: 0x00850085008500850085008500850085 (7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06, 7.927e-06)
+#            v31: 0xff00ff00ff00ff00ff00ff00ff00ff00 (nan, nan, nan, nan, nan, nan, nan, nan)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0xff00'0085'0002'ff01 <- 0x~~~~~~~~~~~~~~~~
+#            v25: 0xfbfafbfafbfafbfafbfafbfafbfafbfa (-6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04, -6.534e+04)
+#            v26: 0xfdfcfdfcfdfcfdfcfdfcfdfcfdfcfdfc (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v27: 0xfffefffefffefffefffefffefffefffe (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v28: 0x01000100010001000100010001000100 (1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05, 1.526e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x0100'fffe'fdfc'fbfa <- 0x~~~~~~~~~~~~~~~~
+#            v22: 0xfaf9faf9faf9faf9faf9faf9faf9faf9 (-5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04, -5.712e+04)
+#            v23: 0xfcfbfcfbfcfbfcfbfcfbfcfbfcfbfcfb (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v24: 0xfefdfefdfefdfefdfefdfefdfefdfefd (nan, nan, nan, nan, nan, nan, nan, nan)
+#            v25: 0x00ff00ff00ff00ff00ff00ff00ff00ff (1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05, 1.520e-05)
+#                      ╙───╨───╨───╨───╨───╨───╨───╨─ 0x00ff'fefd'fcfb'faf9 <- 0x~~~~~~~~~~~~~~~~
+#            v29: 0x0002000200020002e73aed42f34af952
+#             v6: 0x0000000000000000dcbb11e0e6481e68
+#             v9: 0x00000000000000000000000000fffeff
+#             v5: 0x0000000000000000a4a2261ba09e2217
+#            v24: 0x000000000000000082b3330de36793c1
+#            v12: 0x00000000000000006f49f4f5e911f705
+#            v10: 0x00000000000000001700000000000000
+#             v3: 0x000000000000000035342d2c25221f1b
+#            v19: 0xfe070c07fe070c07fe070c07fe070c07
+#             v6: 0x0000000000000000dcbb11e0e6481e68
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v28: 0x00000000000000000100010001000100
+#             v2: 0x0000000000000000ac03d811ac03d811
+#            v18: 0x000000000000000000fffeff00fffeff
+#             v6: 0x00000000000000006347100f6cd41c97
+#            v23: 0xfcfbfcfbfcfbfcfbf0fbfcfbfcfbfcfb
+#            v26: 0x0000000000000000bd4365396d436539
+#            v10: 0x00000000000000008800000000000000
+#            v14: 0x0000000000000000d8e1d7ddd8e1d7dd
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v26: 0x0000000000000000000000000000e3e2
+#            v26: 0x000000000000000000000000fe070c07
+#            v26: 0x0000000000000000d4d3d2d1d4d3d2d1
+#            v20: 0x0000000000000000f9f9f9f9f9f9f9f9
+#            v19: 0xfe070f07fe070c07fe070c07fe070c07
+#             v4: 0x00000000000000009b9a999897969594
+#            v11: 0xff0000850002ff01d4d3d2d1d4d3d2d1
+#             v3: 0x00000000000000000000000000000000
+#            v29: 0x000200020002ff00e73aed42f34af952
+#             v2: 0x0000ffff00000000ac03d811ac03d811
+#            v22: 0x00000000000000000000000000000000
+#            v24: 0x000000000000000082b3330de36793c1
+#            v24: 0x000000000000000000ffff0000ffffff
+#            v29: 0x80808080808080808080808080808080
+#            v12: 0xffff00ff00ffff00ffff00ff00ffff00
+#            v12: 0x0000000000000000ec000000ec000000
+#            v10: 0x0000000000000000004cffff004cffff
+#            v26: 0x000000000000000000c000c000c000c0
+#            v24: 0x00980000009800000098000000980000
+#             v1: 0x00deffff00deffff00deffff00deffff
+#            v21: 0x00000000000000004d4d4d4d4d4d4d4d
+#            v29: 0x00690069006900690069006900690069
+#             v1: 0x4700008e4b00007a4700008e4b00007a
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
+#            v19: 0x00000000000000000000000000000000
+#            v29: 0x0000000000000000427957e1427957e1
+#             v2: 0x00000000000000000000000000000000
+#            v25: 0x000000000000000042ff40c042ff40c0
+#            v26: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x0000000000000000470049004b004d00
+#            v20: 0x48004a004c004e0048004a004c004e00
+#            v29: 0x00000000000000000000000000000000
+#            v13: 0xffffffffffffffffe03d1120e03d1120
+#            v28: 0x0000000000000000ffffffffffffffff
+#            v25: 0x0000000000000000ffff47ffffff47ff
+#            v17: 0x0000000000000000ff930000ff930000
+#            v29: 0x0000000000000000ffb7ffb7ffb7ffb7
+#            v20: 0xff85ffffff85ffffff85ffffff85ffff
+#             v0: 0xffffe100ffffe100ffffe100ffffe100
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v25: 0x0000000000000000b8ffb6ffb4ffb300
+#             v4: 0x00000000000000000000000000010201
+#            v11: 0x0000000000000000470049004b004d00
+#             v7: 0x0000000000000000ff000101ff000101
+#             v7: 0x00000000000000004648484a4a4c4c4e
+#            v17: 0x0000000000000000ff000101ff000101
+#            v20: 0x00000000000000000100ffff0100ffff
+#             v0: 0x0000000000000000b900b700b500b300
+#            v13: 0x003e003e003e003e473e493e4b3e4d3e
+#            v22: 0x0000000000000000ffffffffffffffff
+#            v17: 0xfcfbfcfbfcfbfcfbfffbfdfbfffbfdfb
+#             v8: 0x0000000000000000ff0000e70002ffe3
+#            v11: 0x0000000000000000d700df00df00df00
+#             v7: 0x000000ab000000ab464848eb4a4c4cef
+#             v8: 0x00000000000000000000000000010201
+#            v31: 0xffc1ffc1ffc1ffc1ffc1ffc1ffc1ffc1
+#            v11: 0x000000000000000000a9a8a900a9a8a9
+#             v8: 0x00000000000000000030000000100000
+#            v24: 0x0000555555aa55550000555555aa5555
+#            v13: 0x00000000000000000000000000000000
+#            v22: 0x000000000000000000000000200feede
+#             v5: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000fdfdfdfd9da5d974
+#             v9: 0x00000000000000000000000000fffeff
+#            v27: 0xfcfbfcfc8e2ba46bfffefffefffefffe
+#             v0: 0x0000000046004a04b900b700b500b300
+#            v22: 0x9d1ded6dad2dcd4d9d1ded6dad2dcd4d
+#            v30: 0x00000000000000000000000000000000
+#            v31: 0xfbfcfcfc2b8e6ba4fefffefffefffeff
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
+#             v5: 0x00000000000000000000000001020100
+#            v16: 0x0000000000000000a76e9d2f75fed8a5
+#            v20: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000ffffffffffffffff
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000075fed8a5a76e9d2f
+#             v7: 0x0000000000000000fefffefffefffeff
+#            v15: 0x0000000000000000d8a575fe9d2fa76e
+#            v25: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000009d2fa76ed8a575fe
+#            v18: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v3: 0x0000000063106d1d0000000000000000
+#             v0: 0x00000000dbffdc00b900b700b500b300
+#            v27: 0x000000003a5fb14bfffefffefffefffe
+#            v15: 0x00000000000000000000000000000000
+#            v23: 0x000000000000000000009cf000000000
+#             v6: 0x000000000000000000abaaab00abaaab
+#             v4: 0x00555655005556550000000000010201
+#             v1: 0x62e2129262e2af824700008e4b00007a
+#            v19: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000ffffffffffffffff
+#             v9: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000fffbfdfbfffbfdfb
+#            v29: 0x000000003a5fb14b75b7d85e58486286
+#            v20: 0x00000000000000001e3d11201e3d1120
+#            v27: 0x000000003a5fb14b0003020300030203
+#            v20: 0x00000000010001011e3d11201f3d1221
+#             v4: 0x005585f20055c4fc00005a290001058d
+#            v23: 0x001e003d0044003500369d8300430034
+#            v26: 0x00000000000000009d2fa76ed8a575fe
+#            v27: 0x000000003a5fb14b0003020300030203
+#            v12: 0x00000000000000002f9d6ea7a5d8fe75
+#             v0: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000100010101000101
+#            v17: 0x00000000000000002fa270ac5a23007a
+#             v7: 0x633798855327f7af62e26cbc52d33840
+#            v23: 0x0000000000000000632f596e285b7502
+#            v20: 0x000000000000000075ff275a589162d0
+#            v27: 0x00000000d8e139ed00000000ab639583
+#            v31: 0x000012d0000032140000303600001232
+#             v0: 0x007500010027005a00ad00d200cd004d
+#            v31: 0x00000000000000000000000063106d1d
+#            v26: 0x00000000000000000000271f000039ed
+#             v6: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000003000000010610c
+#            v12: 0x00000000000000002f9d6ea7a5d95f81
+#            v12: 0x00000000000000002f9d95c6a5d9996e
+#             v4: 0x0000000000000000004759b7004c0607
+#            v15: 0x00000000000000000100a14f01005b9e
+#            v21: 0x00000000000000001fc2eedf1fc2eedf
+#             v5: 0xffffffffd6dfd5daffffffff7687b151
+#            v18: 0x00000100ffffa14f0000010000005b9e
+#            v15: 0x0063002f0059006e0028005b00750002
+#            v16: 0x0000000000000000ffffffffd8e139ed
+#             v6: 0x0000007500005556000055d1000055af
+#             v7: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffd8e139ec
+#            v18: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000004600000026
+#            v10: 0x00007574000012640000478e00004b7a
+#             v0: 0x0000000000000000ffe1ffcdffe1ffcd
+#            v12: 0x00000000000000000000000000000000
+#            v14: 0x0000000000000000000000000000fff8
+#            v30: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v16: 0x000000000000000000000000000012cc
+#            v24: 0x00000000000000009d2fa76ed8a575fe
+#            v13: 0x00000000000055d100000000000055af
+#            v19: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000632f596e285b7502
+#            v15: 0x00000000000000000000000000000000
+#             v7: 0x000000000000000000232cdb00260303
+#            v29: 0x0000000000000000ce97d3b7ec52baff
+#            v31: 0x0000000000000000000023c700005094
+#            v21: 0x000000000000000000180000000839ec
+#            v14: 0x0000000000000000b5dae012cc3fc326
+#            v19: 0x00000000000000000997e764189b6c67
+#            v22: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000008000000000800000
+#             v2: 0x000000000000000036e00980c0e00000
+#             v4: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000ff00ff00ff00ff00
+#             v4: 0x0000000000000000c700000094000000
+#            v18: 0x00000000000000000000000000004830
+#             v0: 0x0000000000000000e9783b70c528aff0
+#             v5: 0x9d2fa76e00000000d8a575fe00000000
+#            v26: 0x75ff0000275a00005891000062d00000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x62e200001292000062e20000af820000
+#            v30: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000002e212926700008e4
+#            v29: 0x00000000000000000000000000000090
+#            v17: 0x00000000000000000000000000000024
+#             v5: 0x00000000000000002e212926700008e4
+#            v24: 0x317157c12580003d9d2fa76ed8a575fe
+#             v5: 0x00000000b5dacc3f2e212926700008e4
+#            v30: 0x31f1000009c90000ffd9d3c9c393c5ff
+#            v22: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000dc80ffb9da80ffc3
+#            v10: 0x0000000000000000ce805349ebda7605
+#             v6: 0x00000000000000000000ee1c0000d836
+#             v8: 0x0000000000000000ffe811e3fff8f7c4
+#            v19: 0x000000000000000000000000090b6c67
+#             v9: 0x317157c12580003d9d2fa76ed8a575fe
+#            v22: 0xc55f04960000f400be9dbb6295d7f800
+#            v11: 0x0000000000000000000fa76e000575fe
+#            v16: 0x0000000000000000000000000000000c
+#             v8: 0x0000000000000000c7e811e389f8f7c4
+#            v10: 0x0000000000000000ffd9d3c9c393c5ff
+#             v7: 0x0000000000000000ffe3ffdbffe6ffc3
+#            v18: 0x6200120062000000470011e34b00007a
+#            v30: 0x00000000000000004700008e700008e4
+#            v17: 0x000000000000000000000000090b6c67
+#             v1: 0x317157c12580003d000023c700005094
+#            v17: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x75ff0000275a00005891000062d00000
+#            v12: 0x00000000ffffffff00000000da123f26
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#            v10: 0x0000000000000000ffd9c5ff00000090
+#            v18: 0x00000000ffe6ffc375ff000062d00000
+#            v21: 0x000000000000000075006200787028f0
+#            v26: 0x00000000000000000000000011e3f7c4
+#             v4: 0x00000000000000000000000000000070
+#            v23: 0x00000000000000000000000000000078
+#             v6: 0x00000000000000000000000000003b70
+#            v24: 0x000000000000000000000000000011e3
+#             v3: 0x0000000000000000000000000000000c
+#            v24: 0x00000000ffe6ffc3c7e800e389d0f7c4
+#            v29: 0x0000000000000000c7e811e389f8f7c4
+#             v6: 0x00000000000000005891000062d00000
+#            v24: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000000000000000000c
+#            v12: 0x0000000000000000ffd9c5ff00000090
+#            v13: 0x00000000ffffffff0000e6c3ff00d000
+#            v22: 0x000000000000000000000000ffffffff
+#            v15: 0x0000000000000000292608e4c5ff0000
+#            v15: 0x0000000000000000000000009d2fa76e
+#            v21: 0x00000000000000009100d000e080c000
+#            v21: 0x000000000000000000000000c5ff0000
+#             v8: 0x00000000000000000000000000000091
+#             v6: 0x000000000000000000000000000000d0
+#            v20: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000009d2f
+#            v21: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#             v7: 0x00000000000000000000000000009d2f
+#            v19: 0x0000000000000000000000000906ca9b
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#            v30: 0x00000000000000004700008e700008e4
+#            v31: 0x00000000000000000000ee1cd8a575fe
+#            v17: 0x00000000000000009d2fa76ed8a575fe
+#            v11: 0x75ff0000275a00005891000062d00000
+#            v30: 0x00000000000000004700008e700008e4
+#             v1: 0x317157c12580003d000023c700005094
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#             v0: 0x0000000000000000e9783b70c7c032a0
+#             v3: 0x0000000000000000000000000000000c
+#             v4: 0x000000000000000003c9f8c001c2e9f0
+#            v14: 0x0000000000000000b5dae012cc3fc326
+#            v15: 0x0000000000000000f9797b018bdbc6de
+#            v29: 0x00000000fba0fbfec7e811e376e8e7bc
+#             v6: 0x000000000000000000000000000000d0
+#            v30: 0x00000000000000004700008e700008e4
+#             v4: 0x15a6d000c90fc48aedb876b6692ad888
+#            v30: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000042ae0
+#             v8: 0x185dc92015d7004009b45060e2e7be40
+#            v31: 0x00000000f3d5e78200000000249000d8
+#             v3: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v14: 0x000000000000000062d05891275a8a02
+#            v31: 0x00000000000000000000000000000001
+#             v8: 0x000000000000000000000000383fcd60
+#            v14: 0x0000000000000000000000000000632f
+#            v23: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000001687c490383fcd60
+#            v29: 0x000000000000000016793c70383f3360
+#            v17: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000060
+#             v2: 0x00000000000000000000000011e3f7c4
+#             v7: 0x00000000000000000000000000003360
+#            v11: 0x00000000000000000000000000003360
+#            v20: 0x000000000000000016793c70383f336c
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v8: 0x00000000000000000000000011e3f7c4
+#            v20: 0x0000000000000000ffd9c5ff00000090
+#            v14: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000016792233373f0360
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000060
+#            v14: 0x000000000000000000000000ffe772e8
+#            v30: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v8: 0x0672308605c005640fa6a0001322041c
+#             v1: 0x317157c12580003d000023c700005094
+#            v19: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000011e3f7c4
+#             v6: 0x00000000000000000000000000000000
+#            v10: 0x0000000000000000ffffffc0b8e63400
+#            v10: 0x0000000000000000ffffffc0b8e66400
+#            v30: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000000000000ff00d000
+#            v27: 0xffffffffece2ff800000004ffccf8000
+#            v23: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v22: 0x000000000000000000000000ffffffff
+#            v12: 0x0000000000000000ffd9c5ff00000090
+#            v20: 0x0000000000000000ffd9c5ff00000090
+#            v25: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000000000000000ff70
+#            v16: 0x00000000000000000000000000000391
+#             v1: 0x00000000000000000000000000000000
+#             v1: 0x0000000000000000000000000000018a
+#            v28: 0x0000000000000000000000000000003a
+#            v28: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000fffe0529
+#            v25: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000fff726ef1b546ce0
+#            v29: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000e59831500
+#            v18: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000060
+#            v24: 0x0000000000000000ffffffffffffffa0
+#            v29: 0x00000000000000000000000000000000
+#             v4: 0x000000000000000000000000ffffffa0
+#            v14: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000263a00ffffff70
+#            v28: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000010060
+#             v9: 0x00000000000000000000000000000000
+#            v20: 0x000000000000000001273b0100000070
+#            v27: 0x000000000000000000010040471a9c00
+#             v7: 0x0000000000000000000000000000ffda
+#            v14: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v22: 0x0000000000000000ffa408a4ff20b5ee
+#            v22: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v2: 0x0000000000000000000000000000fff1
+#            v16: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000007fffffffffffffff
+#            v28: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v19: 0x000000000000000000000000ed800048
+#            v19: 0x000000000000000000000000ed800048
+#            v29: 0x00000000000000007fffffffffffffff
+#            v12: 0x0000000000000040ffd9c5ff00000090
+#            v16: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000e598315
+#            v31: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000000000000004ffff
+#            v24: 0x0000000000000000ffffffffffffffa0
+#            v22: 0x00000000000000000000000000000000
+#            v28: 0x0000000000000000000000000e598315
+#             v6: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000007fed000000000
+#            v20: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x0000000000000000000000000e598315
+#             v0: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v24: 0x00000000000200000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#             v8: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v30: 0x00000000002000000000000000000000
+#             v1: 0x00000000000000000000000000000080
+#            v31: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v14: 0x0000000000077f7f0000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v31: 0x000000000000ffff0000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000000000000007ffff
+#            v10: 0x00000000000000000010000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v27: 0x00000001000000000000000000000000
+#            v23: 0x0000ffff000000000000000e59831500
+#            v19: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000010000000000000
+#             v8: 0x000000000000000000000000ffff000f
+#            v18: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v17: 0x0000000000000000fff0000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000800000000e59831500
+#            v13: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v26: 0x000000000000000000000000ffff0000
+#             v7: 0x00000000000000000000000000000000
+#            v21: 0x000007ff000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000800000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000040
+#            v24: 0x00000000000000000000000000007ff9
+#             v6: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v23: 0x0000000000000080000000005f8f1000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000000000000000b0002
+#            v27: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000040
+#            v29: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000040
+#            v22: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000fe0000000000000000
+#            v20: 0x00000000000000000000000000000020
+#             v0: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v18: 0x00000000000000000000000000000000
+#            v21: 0x000000000000000000000000000000c0
+#            v31: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v5: 0x000000000000000000000000000b0002
+#            v23: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000020000000
+#            v11: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#             v3: 0x00000000000000000000000000000000
+#            v12: 0x000000000000000000000000ffffffff
+#            v29: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000020
+#            v14: 0x00000000000000000000000000000001
+#            v18: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000040
+#            v13: 0x0000000000000000ffffffffffffffe1
+#             v5: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v21: 0x000000000000000000000000ffff8007
+#            v30: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007ff9
+#            v31: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v12: 0x0000000000000000ffffffffffffffc0
+#            v20: 0x00000000000000000000000000007ff9
+#             v8: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000000000000ffff8007
+#            v24: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v16: 0x000000000000000000000000010180f9
+#            v20: 0x0000000000000000000100010001001f
+#             v5: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000ff0000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v20: 0x000000000000ffff000100010001001f
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x0000000000000000ffffffffffffffe1
+#             v0: 0x00000000000000000000000000000040
+#            v22: 0x00000000000000000000000000000000
+#            v24: 0x000000000000007f0000000000000000
+#            v26: 0x00000000000000000000000000000001
+#             v7: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000007fff7fff7fff7fff
+#             v4: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000001
+#            v31: 0x00000000000000000000000000000000
+#            v16: 0x0000000000010001000000000001001f
+#            v27: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000100000001
+#            v25: 0x00000000000000000000000000000000
+#            v28: 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
+#             v3: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#             v6: 0x01010101010101010101010101010101
+#            v13: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#             v2: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v30: 0x0000000000000000ff00ff0000000000
+#            v24: 0x00000000000000000000010100000101
+#             v2: 0x000000000000000000000000ff00ff00
+#            v25: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000001
+#             v9: 0x00000000000000000000000000000000
+#             v6: 0x01010101010101010101010100020001
+#            v16: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ff00ff0000000001
+#            v10: 0x00000000ff00ff000000000000000000
+#            v30: 0x0000ff000000ff00ff01fe000000c000
+#             v4: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#            v26: 0x00000000000000000000000000000001
+#            v19: 0x0000000000000000ff00ff00ff00c000
+#            v18: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000001
+#            v20: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v9: 0x000000000000000000000000ff00ff01
+#            v14: 0x00000000000000000000000000000001
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ff00ff0000000001
+#             v1: 0x00000000000000000000000000000001
+#            v31: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v5: 0x00000000010101010000000001010101
+#             v1: 0x00000000000000000000010100000101
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x000000000000000000000000ff00ff01
+#            v26: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000010100000101
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000ff00ff
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000001
+#             v9: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000010100000101
+#            v18: 0x00000000010101010000000001010101
+#            v17: 0x0000000000000000ff00ff0000000001
+#            v29: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000008000800000000000800080
+#             v1: 0x00000000000000000000000000000000
+#            v14: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v26: 0x00000000ff7f7f7f00000000ff7f7f7f
+#             v3: 0x0000000000000000000000007f007f00
+#            v25: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000ff00ff
+#            v20: 0x000000000000000000000000ff7f7f7f
+#             v0: 0x00000000000000000000000001010101
+#             v6: 0x00000000000000000000000000ff00ff
+#             v0: 0x000000000000000000000000ff7fff7f
+#             v4: 0x00000000000000000000000000000000
+#             v1: 0x0000000000000000000000000000ffff
+#            v19: 0x00000000000000000000000100000000
+#            v21: 0x00000000000000000000ff0100000000
+#             v9: 0x000000000000000000000000ff7f7f7f
+#            v13: 0x000000000000000000000000000000ff
+#            v19: 0x0000ff7f0000ff7f0000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v31: 0x0000000000000000000000000000ff00
+#            v15: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#            v22: 0x0000000000000000000000000000ff01
+#             v1: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v24: 0x000000000000000000000000000000ff
+#            v20: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v21: 0x0000000000000000000000000000ff7f
+#             v0: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007e81
+#            v17: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000007e81
+#            v15: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#             v7: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v18: 0x0000000000000000000000000000ff01
+#            v28: 0x00000000000000000000000000ff00ff
+#            v11: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v10: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000000000ff
+#            v27: 0x00000000000000000000000000007e81
+#             v7: 0x000000000000000000000000000000ff
+#            v28: 0x00000000000000000000000000000000
+#            v19: 0x0000000000000000000000000000ff7f
+#            v16: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x0000000000000000000000000000ff00
+#            v23: 0x0000000000000000000000007f007f00
+#            v17: 0x00000000000000000000000000007e81
+#            v10: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v10: 0x000000000000000000000000000000ff
+#             v9: 0x0000000000000000000000000000ff01
+#            v24: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000008
+#            v10: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000001fe0
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000400000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000200000000000000ff
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x000000000000000000000000000000ff
+#            v23: 0x00000000000000000000000000ff00ff
+#             v8: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v14: 0x000000000000000000000000000000ff
+#             v6: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000003fc0000
+#            v25: 0x00000000000000000000000000000000
+#            v13: 0x000000000000000000000000ffffffff
+#            v28: 0x00000000000000000000000000000000
+#             v4: 0x0000000000000000000000000000fd02
+#             v9: 0x00000000000000000000000000007f80
+#            v18: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000008
+#            v26: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000ff00ff
+#            v14: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000007e81
+#            v10: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000001fe0
+#            v23: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v29: 0x000000000000ffff0000000000000000
+#            v13: 0x0000000000007e810000000000000000
+#            v28: 0x0000000000007e810000000000000000
+#            v23: 0x0000000000000000ffffffffffffffff
+#            v27: 0xffffffffffffffffffffffffffffffff
+#             v2: 0x80808080808080808080808080808080
+#            v15: 0x00000000000000000000000000000000
+#            v17: 0x00000000000000000000000000007e81
+#             v2: 0x80000000800000008000000080000000
+#             v5: 0x00000000000000000000000000003f41
+#            v30: 0x40000000400000004000000040000000
+#             v4: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v14: 0x0000000000000000ffffffffffffffff
+#            v10: 0x00000000000000000000000000000008
+#            v15: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v30: 0xffffffffffffffffffffffffffffffff
+#             v4: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000010
+#             v4: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000ffffffffffffffff
+#            v28: 0xffffffffffffffffffffffffffffffff
+#            v27: 0x0000000000000000ffffffffffffffff
+#            v18: 0x00000000000000000000000000001010
+#            v26: 0x00000000000000400000000000000040
+#             v8: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v18: 0x00000000000000000008000800081018
+#            v31: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000008
+#            v14: 0x0000000000000000ffffffffffffffff
+#            v22: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v2: 0x000000000000000000000000007e8100
+#            v11: 0x01fe01fe01fe01fe01fe01fe01fe01fe
+#             v8: 0x000000000000000000000000007fff80
+#            v29: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v16: 0x0000000000000000000000007f007f00
+#            v31: 0x00000000000000000000000000000000
+#             v8: 0x000000000000000000000000007fff80
+#            v18: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v16: 0x0000000000000000000000007e007e00
+#            v12: 0x0000000000000000000000007e007e00
+#            v28: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000008
+#             v4: 0x0000000000000000000000000000003f
+#             v9: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007f007f00
+#            v29: 0x0000000000000000000000007e007e00
+#            v29: 0x00000000000000000000000000000000
+#            v12: 0xff01ff01ff01ff01ff01ff01ff01ff40
+#             v1: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#             v9: 0x0000000000000000ffffffffffffffff
+#            v20: 0x0000000000000000000000007e007e00
+#            v25: 0x000000000000000000000000007fff80
+#            v18: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v30: 0x000000000000008100000000ffffffff
+#             v7: 0x00000000000000000000000000000040
+#            v26: 0x0000000000000000000000007e007e00
+#            v14: 0x00000000000000000000000000000000
+#            v17: 0x00000081ffffffff0000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v17: 0xff01ff01ff01ff400000000000000000
+#             v8: 0x0000000000007e7e0000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v20: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v25: 0x000000000000000001fe01fe01fe01fe
+#            v31: 0x00000000000000000000000000000000
+#             v8: 0x0000000000000000ff01ff0100000000
+#            v17: 0x0000000000000000000000007e007e00
+#             v3: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000001010000
+#             v0: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v22: 0x00ff00ff00ff00ff00ff00ff00ff00ff
+#            v23: 0x000000000000000001fe01fe01fe01fe
+#            v26: 0x0000000000000000ffffffff00000000
+#             v1: 0x00000000000000000000ffff0040ffff
+#             v0: 0x000000000000000000000000ffffffff
+#            v30: 0x0000000000000000007e0000007e0000
+#            v17: 0x0000ff010000ff010000000000000000
+#            v23: 0x0100fe000100fe000100fe000100fe00
+#            v30: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v0: 0x0100fe00000000000100fe0000000000
+#            v25: 0x00000000000000000001000000fe0000
+#             v7: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000001000000fe0000
+#            v14: 0x000000000000000001fe01fe01fe01fe
+#             v9: 0x00ff00ff00ff00ff00ff00ff0002ff01
+#             v1: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000001000000fe0000
+#            v18: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffffffffff
+#            v30: 0xffffffffffffffff0000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#            v22: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000100fe000100fe00
+#            v16: 0x01fe01fe01fe01feffffffffffffffff
+#            v27: 0x00000000000000000000000000000000
+#            v20: 0x0000000000000000000000000180fe00
+#            v21: 0x020e01fe01fe01fe0000000000000000
+#            v31: 0x000000000000000000000000ffffffff
+#            v13: 0x00000000000000000000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
+#            v24: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v24: 0x0000000000000000ffffffffffffffff
+#             v8: 0xffffffffffffffff0000000000000000
+#            v26: 0xffffffffffffffff0000000000000000
+#            v27: 0xffffffffffffffffffffffffffffffff
+#            v22: 0x0000000000000000ffffffffffffffff
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x0000000000000000ffffffffffffffff
+#            v29: 0x00000000000000000000000000000000
+#            v22: 0xffffffffffffffffffffffffffffffff
+#             v1: 0x00000000000000000000000000000000
+#            v15: 0xffffffffffffffffffffffffffffffff
+#            v21: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v14: 0xffffffff00000000ffffffff00000000
+#            v13: 0x00000000000000000000000000000000
+#             v4: 0xffffffffffffffffffffffffffffffff
+#            v24: 0x0000000000000000ffffffff00000000
+#             v8: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v8: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v8: 0x37a0000000000000381fc00000000000
+#            v27: 0xffffe000ffffe0000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#            v24: 0x377f0000377f0000377f0000377f0000
+#             v9: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#             v8: 0x37a00000000000000000000000000000
+#            v24: 0x0000000000000000377f0000377f0000
+#             v4: 0x0000000000000000ffffffffffffffff
+#            v25: 0x00000000000000000000000000000000
+#             v4: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v11: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#            v31: 0x000000000000000000000000ffffffff
+#            v19: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#            v13: 0x00000000000000000000000000000000
+#            v28: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x7ff00000000000007ff8000000000000
+#            v12: 0x00000000000000007fc000007fc00000
+#            v19: 0xffffffffffffffffffffffffffffffff
+#            v19: 0x37a00000000000000000000000000000
+#            v25: 0x00000000000000007fc000007fc00000
+#             v6: 0x7ff00000000000007ff8000000000000
+#            v16: 0x37a0000000000000000000000180fe00
+#            v15: 0x00000000000000000000000000000000
+#            v23: 0x37a0000000000000000000000180fe00
+#             v6: 0x000000000000000037a0000000000000
+#            v27: 0x00000000000000000000000000000000
+#             v8: 0x37a00000000000007fc000007fc00000
+#            v13: 0x0000000000000000ffffffff7fc00000
+#            v15: 0xffffffff000000000000000000000000
+#            v27: 0x00000000000000000000000037a00000
+#            v20: 0x0000000000000000ffffffff00000000
+#            v18: 0x00000000000000000000000000000000
+#             v9: 0x00000000ffffffff37a0000000000000
+#             v7: 0x0000000000000000ffffffffffffffff
+#            v18: 0x000000000000000000000000ffffffff
+#            v31: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v22: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v21: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v26: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#            v24: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v29: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000000000000000000000
+#            v25: 0x0000000000000000000000007fc00000
+#            v23: 0x00000000000000000000000000000000
+#            v23: 0x00000000000000000000000000000000
+#            v17: 0xffffffffffffffff0000000000000000
+#            v30: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000007fc000007fc00000
+#            v24: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#            v27: 0x00000000000000000000000037a00000
+#            v27: 0x00000000000000000000000037a00000
+#            v21: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v18: 0x000000000000000000000000ffffffff
+#             v5: 0x00000000000000000000000000000000
+#             v3: 0x0000000000000000000000007fffffff
+#            v27: 0x00000000000000000000000037a00000
+#            v26: 0x00000000000000007fffffff00000000
+#            v14: 0xbfd6000000000000bfd6000000000000
+#            v26: 0x00000000000000003f6800003f680000
+#            v31: 0xc0a00000c0a00000c0a00000c0a00000
+#            v28: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v30: 0x000000000000000000000000ffffffff
+#            v25: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#             v1: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000000000000000000000
+#            v11: 0x7fc000007fc000007fc000007fffffff
+#            v28: 0x00000000000000000000000000000000
+#            v25: 0x00000000000000000000000000000000
+#            v31: 0x00000000000000000000000000000000
+#             v3: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#            v16: 0x00000000000000000000000000000000
+#             v2: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#             v1: 0x80000000000000008000000000000000
+#            v14: 0x00000000000000008000000080000000
+#             v5: 0x80000000800000008000000080000000
+#            v18: 0x7ff00000000000007ff0000000000000
+#            v10: 0x00000000000000007f8000007f800000
+#             v5: 0x7f8000007f800000474c80007f800000
+#            v22: 0x40000000000000004000000000000000
+#            v31: 0x00000000000000004000000040000000
+#            v18: 0x40000000400000004000000040000000
+#            v26: 0x0000000000000000ffffffff7fc00000
+#            v15: 0x0000000000000000ffffffff7fc00000
+#            v13: 0x00000000000000000000000000000000
+#             v9: 0x00000000000000000000000000000000
+#             v5: 0x00000000000000007fc000007fc00000
+#            v15: 0x7fc000007fc000007fc000007fffffff
+#            v17: 0x00000000000000000000000000000000
+#            v30: 0x00000000000000007fc000007fffffff
+#             v1: 0x0000000000000000ffffffff00000000
+#            v24: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000000000000000000000
+#            v29: 0x7fc000007fc000007fc000007fffffff
+#            v10: 0x00000000000000000000000000000000
+#            v12: 0x00000000000000004000000040000000
+#            v26: 0x00000000000000004000000040000000
+#            v24: 0x00000000000000000000000000000000
+#             v7: 0x00000000000000000000000000000000
+#            v18: 0x00000000000000000000000000000000
+#            v19: 0x00000000000000000000000000000000
+#            v15: 0x00000000000000007fc000007fc00000
+#            v20: 0x00000000000000000000000000000000
+#            v23: 0x7ff00000000000002006900000000000
+#             v9: 0x00000000000000007f8000007f800000
+#             v3: 0x7f8000007f8000000000000000000000
+#            v25: 0x3ff80000000000003ff8000000000000
+#             v9: 0x00000000000000003fc000003fc00000
+#             v5: 0x3fc000003fc000007fffffff3fc00000
+#             v6: 0x00000000000000000000000000000000
+#             v6: 0x00000000000000000000000000000000
+#             v0: 0x00000000000000003fb504f33fb504f3
+#            v31: 0x00000000000000007fc000007fffffff
+#            v11: 0x00000000000000007fc000007fc00000
+#            v16: 0x00000000000000007fc000007fffffff
+#            v25: 0x000000000000000043dff00000200000
+#            v10: 0x00000000000000000000000000000000
+#            v10: 0x00000000000000004eff80004eff8000
+#            v18: 0x00000000000000000000000000000000
+#            v17: 0x4e7f00004e7f00004f0000004e7f0000
+#            v11: 0x00000000000000004287bfe03e000000
+#             v9: 0x43dfe000001fe0000000000000000000
+#            v26: 0x000000000000000040fff00000200000
+#            v11: 0x00000000000000000000000000000000
+#            v29: 0x7fc000007fc000000000000000000000
+#            v22: 0x4effe000000000004e001a4000000000
+#            v18: 0x4207bfc03d7f00000000000000000000
+#       p8<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p8<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p8<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#       p9<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#      p9<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p9<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p10<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p10<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p10<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#      p11<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 <- 0x~~~~~~~~~~~~~~~~
+#     p11<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     p11<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x7f000000008000000000000000000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x80 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x7f <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x2f000000000029000000000023000000
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ║ ╙─────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ║ ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ║   ╙─────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ║ ╙─────────────────── 0x29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x2f <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ║ ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ║   ╙─────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ║ ╙─────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ║ ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║   ╙─────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x0d0c0b0a09080706050403020100fffe (0.0003080, 0.0002148, 0.0001535, 0.0001072, 7.653e-05, 4.590e-05, 1.526e-05, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xfffe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0100 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0302 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0504 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0706 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0908 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0b0a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0d0c <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x1d1c1b1a191817161514131211100f0e (0.004990, 0.003468, 0.002487, 0.001730, 0.001240, 0.0008631, 0.0006180, 0.0004306)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0f0e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x1110 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x1312 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x1918 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x1b1a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x1d1c <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x2d2c2b2a292827262524232221201f1e (0.08081, 0.05597, 0.04028, 0.02792, 0.02008, 0.01393, 0.01001, 0.006950)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x1f1e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x2120 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x2524 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x2726 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2928 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2b2a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (...)
+#
+#   z21<639:512>: 0x4d4c4b4a494847464544434241403f3e (21.19, 14.58, 10.56, 7.273, 5.266, 3.629, 2.625, 1.811)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3f3e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x4342 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x4948 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x4b4a <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x4d4c <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x7f800000000000000000000000000000 (inf, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z22<511:384>: 0x2f2e0000000000000000000023220000 (1.583e-10, ..., 0.000, 8.782e-18)
+#                          ║               ║       ╙─ 0x23220000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x2f2e0000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (...)
+#
+#   z23<511:384>: 0x00000000000000000000000023220000 (..., 2.912e-315)
+#                                                  ╙─ 0x0000000023220000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#                          ║   ║       ║   ║       ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000230022000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x22 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x23 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000
+#
+#   z22<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x0000000000000000000000000000007f
+#                                  ║               ╙─ 0x7f <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000
+#
+#   z23<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x00000000000000860000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0086 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000304
+#                          ║       ║       ║       ╙─ 0x0304 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#
+#   z24<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x00000000000000000000000000000000
+#
+#   z20<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000
+#
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z20<127:0>: 0x0000000000000000000000000000007f
+#     z21<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<255:128>: 0x000000000000002f0000290000230000
+#   z21<255:128>: 0x00000000000000002e00000000002200
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x22'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'23 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'29 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x2e'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'2f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<383:256>: 0x0000007f007f00000000000000000000
+#   z21<383:256>: 0x00000000800000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x80'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'7f <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<511:384>: 0x00000000000000000000000000000000
+#   z21<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z20<639:512>: 0x00000000000000000000000000000000
+#   z21<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z21<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     z22<127:0>: 0x000000007f807f800000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z21<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#     z22<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#     z23<127:0>: 0x000000007f8000000000000000000000 (0.000, inf, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'7f800000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z22<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z23<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#     z24<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z24<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z23<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z24<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z24<127:0>: 0x0000000000000000000000ff00000000
+#     z25<127:0>: 0xa000000000000000000000ffc0000000
+#     z26<127:0>: 0x3700000000000000000000007f000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x7f'c0'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0x00'ff'ff <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x37'a0'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<255:128>: 0x00000000000000000000000000000000
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<383:256>: 0x00000000000000000000000000000000
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<511:384>: 0x00000000000000000000000000000000
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z24<639:512>: 0x00000000000000000000000000000000
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z25<127:0>: 0x292823221d1c17160000000000000000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z26<127:0>: 0x2b2a25241f1e191813120d0c07060100 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#     z27<127:0>: 0x2d2c272621201b1a1514000009080000 (0.04028, 0.01393, 0.004990, 0.001730, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0100'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0908'0706'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0d0c'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x1514'1312'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x1b1a'1918'1716 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x2120'1f1e'1d1c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x2726'2524'2322 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x2d2c'2b2a'2928 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x595853524d4c474641403b3a35342f2e (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z26<255:128>: 0x5b5a55544f4e494843423d3c37363130 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#   z27<255:128>: 0x5d5c575651504b4a45443f3e39383332 (171.0, 58.56, 21.19, 7.273, 2.625, 0.9033, 0.3252, 0.1122)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x3332'3130'2f2e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x3938'3736'3534 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x3f3e'3d3c'3b3a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x4544'4342'4140 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x4b4a'4948'4746 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x5150'4f4e'4d4c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x5756'5554'5352 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x5d5c'5b5a'5958 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x898883827d7c777671706b6a65645f5e (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z26<383:256>: 0x8b8a85847f7e797873726d6c67666160 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#   z27<383:256>: 0x8d8c878681807b7a75746f6e69686362 (-0.0001688, -5.352e-05, nan, 3.056e+04, 1.114e+04, 3796., 1380., 471.5)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x6362'6160'5f5e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x6968'6766'6564 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x6f6e'6d6c'6b6a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x7574'7372'7170 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x7b7a'7978'7776 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x8180'7f7e'7d7c <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x8786'8584'8382 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x8d8c'8b8a'8988 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0xb9b8b3b2adaca7a6a1a09b9a95948f8e (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z26<511:384>: 0xbbbab5b4afaea9a8a3a29d9c97969190 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#   z27<511:384>: 0xbdbcb7b6b1b0abaaa5a49f9e99989392 (-0.7148, -0.2405, -0.08862, -0.02988, -0.01099, -0.003712, -0.001362, -0.0004611)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x9392'9190'8f8e <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x9998'9796'9594 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x9f9e'9d9c'9b9a <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xa5a4'a3a2'a1a0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xabaa'a9a8'a7a6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xb1b0'afae'adac <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xb7b6'b5b4'b3b2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xbdbc'bbba'b9b8 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0xe9e8e3e2dddcd7d6d1d0cbcac5c4bfbe (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z26<639:512>: 0xebeae5e4dfded9d8d3d2cdccc7c6c1c0 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#   z27<639:512>: 0xedece7e6e1e0dbdad5d4cfcec9c8c3c2 (-3024., -1009., -375.0, -125.4, -46.50, -15.58, -5.766, -1.936)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xc3c2'c1c0'bfbe <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xc9c8'c7c6'c5c4 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0xcfce'cdcc'cbca <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0xd5d4'd3d2'd1d0 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0xdbda'd9d8'd7d6 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0xe1e0'dfde'dddc <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0xe7e6'e5e4'e3e2 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0xedec'ebea'e9e8 <- 0x~~~~~~~~~~~~~~~~
+#     z26<127:0>: 0x00000000000000000000ffff00000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z27<127:0>: 0x00000000000000007fff000000000000 (0.000, 0.000, 9.183e-41, 0.000)
+#     z28<127:0>: 0x37a0000000000000000000007fc00000 (0.000, 0.000, 9.183e-41, 0.000)
+#                          ║       ║       ║       ╙─ 0x7fc00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'7fff0000'0000ffff <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#     z27<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000ffff7fc00000 (0.000, 0.000)
+#     z29<127:0>: 0x37a0000000000000000000007fff0000 (0.000, 0.000)
+#                                  ║               ╙─ 0x000000007fff0000'0000ffff7fc00000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x37a0000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#     z25<127:0>: 0x0000000000000000000000f300000000
+#     z26<127:0>: 0x00000000000000000000000400000000
+#     z27<127:0>: 0x0080000000800000000000ff00000000
+#     z28<127:0>: 0x007f0000007f0000000000ff00000000
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───────── 0xff'ff'04'f3 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ║   ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x7f'80'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<255:128>: 0x00000000000000000000000000000000
+#   z26<255:128>: 0x00000000000000000000000000000000
+#   z27<255:128>: 0x00000000000000000000000000000000
+#   z28<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<383:256>: 0x00000000000000000000000000000000
+#   z26<383:256>: 0x00000000000000000000000000000000
+#   z27<383:256>: 0x00000000000000000000000000000000
+#   z28<383:256>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<511:384>: 0x00000000000000000000000000000000
+#   z26<511:384>: 0x00000000000000000000000000000000
+#   z27<511:384>: 0x00000000000000000000000000000000
+#   z28<511:384>: 0x00000000000000000000000000000000
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ║ ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ║ ╙───────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║   ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#   z25<639:512>: 0x00000000000000000000000000000000
+#   z26<639:512>: 0x00000000000000000000000000000000
+#   z27<639:512>: 0x00000000000000000000000000000000
+#   z28<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ║ ╙───────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ║ ╙─────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ║ ╙───────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║   ╙─────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 <- 0x~~~~~~~~~~~~~~~~
+#     z26<127:0>: 0x00000000000000003fb504f300000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z27<127:0>: 0x7f8000007f800000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'7f80'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#   z26<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z27<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 <- 0x~~~~~~~~~~~~~~~~
+#     z27<127:0>: 0x2f2e2d2c000000000000000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z28<127:0>: 0x33323130000000007f80000000000000 (1.584e-10, 0.000, 0.000, 0.000)
+#     z29<127:0>: 0x00000000000000000000000007060504 (1.584e-10, 0.000, 0.000, 0.000)
+#     z30<127:0>: 0x00000000000000007f8000000b0a0908 (1.584e-10, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x7f800000'00000000'7f800000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#   z27<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#   z29<255:128>: 0x00000000000000005756555400000000 (0.000, 0.000, 0.000, 0.000)
+#   z30<255:128>: 0x00000000000000005b5a595800000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x5b5a5958'57565554'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 <- 0x~~~~~~~~~~~~~~~~
+#   z27<383:256>: 0xafaeadac9f9e9d9c8f8e8d8c7f7e7d7c (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z28<383:256>: 0xb3b2b1b0a3a2a1a09392919083828180 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z29<383:256>: 0xb7b6b5b4a7a6a5a49796959487868584 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#   z30<383:256>: 0xbbbab9b8abaaa9a89b9a99988b8a8988 (-3.177e-10, -6.718e-20, -1.406e-29, 3.383e+38)
+#                          ║       ║       ║       ╙─ 0x8b8a8988'87868584'83828180'7f7e7d7c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x9b9a9998'97969594'93929190'8f8e8d8c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xabaaa9a8'a7a6a5a4'a3a2a1a0'9f9e9d9c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xbbbab9b8'b7b6b5b4'b3b2b1b0'afaeadac <- 0x~~~~~~~~~~~~~~~~
+#   z27<511:384>: 0xefeeedecdfdedddccfcecdccbfbebdbc (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z28<511:384>: 0xf3f2f1f0e3e2e1e0d3d2d1d0c3c2c1c0 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z29<511:384>: 0xf7f6f5f4e7e6e5e4d7d6d5d4c7c6c5c4 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#   z30<511:384>: 0xfbfaf9f8ebeae9e8dbdad9d8cbcac9c8 (-1.479e+29, -3.212e+19, -6.939e+09, -1.490)
+#                          ║       ║       ║       ╙─ 0xcbcac9c8'c7c6c5c4'c3c2c1c0'bfbebdbc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xdbdad9d8'd7d6d5d4'd3d2d1d0'cfcecdcc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0xebeae9e8'e7e6e5e4'e3e2e1e0'dfdedddc <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0xfbfaf9f8'f7f6f5f4'f3f2f1f0'efeeedec <- 0x~~~~~~~~~~~~~~~~
+#   z27<639:512>: 0x2f2e2d2c1f1e1d1c0f0e0d0cfffefdfc (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z28<639:512>: 0x33323130232221201312111003020100 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z29<639:512>: 0x37363534272625241716151407060504 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#   z30<639:512>: 0x3b3a39382b2a29281b1a19180b0a0908 (1.584e-10, 3.348e-20, 7.004e-30, nan)
+#                          ║       ║       ║       ╙─ 0x0b0a0908'07060504'03020100'fffefdfc <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x1b1a1918'17161514'13121110'0f0e0d0c <- 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x2b2a2928'27262524'23222120'1f1e1d1c <- 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x3b3a3938'37363534'33323130'2f2e2d2c <- 0x~~~~~~~~~~~~~~~~
+#     z28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     z29<127:0>: 0x000000007f8000000000000000000000 (0.000, 0.000)
+#     z30<127:0>: 0x000000000000000000000000ffff04f3 (0.000, 0.000)
+#     z31<127:0>: 0x000000007f80000000000000ffff3fb5 (0.000, 0.000)
+#                                  ║               ╙─ 0x00000000ffff3fb5'00000000ffff04f3'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x000000007f800000'0000000000000000'000000007f800000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z29<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z30<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#   z31<511:384>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#   z28<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z29<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z30<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#   z31<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 <- 0x~~~~~~~~~~~~~~~~
diff --git a/test/test-trace-reference/log-write b/test/test-trace-reference/log-write
index 88a4e99..fff3143 100644
--- a/test/test-trace-reference/log-write
+++ b/test/test-trace-reference/log-write
@@ -1,595 +1,3190 @@
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
-#   w20<7:0>:          0x04 -> 0x~~~~~~~~~~~~~~~~
-#   w21<7:0>:          0x03 -> 0x~~~~~~~~~~~~~~~~
-#   w22<15:0>:       0x0004 -> 0x~~~~~~~~~~~~~~~~
-#   w23<15:0>:       0x0100 -> 0x~~~~~~~~~~~~~~~~
-#   w14:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
-#   w15:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
-#   x16: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
-#   x17: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w28:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    w2<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#    w3<7:0>:          0xff -> 0x~~~~~~~~~~~~~~~~
-#    w4<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#    w5<15:0>:       0x8500 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (d29: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff (d12: 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (d17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 (d19: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 (d27: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (d23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (1.25493e-321, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#   v25:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    v4:               0x00                 -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                             0x0000 -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000                             -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v0:                         0x00000000 (s0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000000000000000000001 (0.00000, 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v7:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#    v8:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (d25: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (d26: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v0:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v22:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v23:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v0:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (..., nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (..., 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 0.00000, 0.00000, 4.48416e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v31:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v0:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v4:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v5:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v6:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v5:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v6:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v7:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v0:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v1:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v14:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v15:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v16:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v21:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v22:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v23:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v21:                         0xffff8007 (s21: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                         0x00000000 (s22: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                         0x00000000 (s23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffff         (..., nan, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                         0x00000000 (s15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                         0x00007ff9 (s16: 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                         0x00000000 (s17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000000000000000000001 (0.00000, 0.00000, 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v0:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v1:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v2:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v3:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v4:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v5:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v6:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v7:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v9:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v10:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v11:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v12:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (d9: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (d10: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v3:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v4:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v5:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v24:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v25:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v26:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v27:             0x00fe                 -> 0x~~~~~~~~~~~~~~~~
-#   v18:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v19:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v20:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v21:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v6:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v8:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v9:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<63:0>: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
+#       x20<7:0>:               0x04 -> 0x~~~~~~~~~~~~~~~~
+#       x21<7:0>:               0x03 -> 0x~~~~~~~~~~~~~~~~
+#      x22<15:0>:             0x0004 -> 0x~~~~~~~~~~~~~~~~
+#      x23<15:0>:             0x0100 -> 0x~~~~~~~~~~~~~~~~
+#      x14<31:0>:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      x15<31:0>:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
+#      x16<63:0>: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
+#      x17<63:0>: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x28<31:0>:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
+#      x29<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#        x2<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#        x3<7:0>:               0xff -> 0x~~~~~~~~~~~~~~~~
+#       x4<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#       x5<15:0>:             0x8500 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (2.122e-314)
+#                                                  ╙─ 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (3.162e-322)
+#                                                  ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#                                  ║               ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (1.255e-321, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000000000fe -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#                          ║       ║       ║       ╙─ 0xffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v20<63:0>:                 0x0000000000000020
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                                ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 4.941e-324)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#       v5<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                                          ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'fe'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan)
+#      v14<63:0>:                 0x0000000000000001 (0.000, 1.401e-45)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v0<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 4.484e-44)
+#                          ║       ║       ║       ╙─ 0x00000020'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                                        ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                                                ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#                                                  ╙─ 0x0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (..., 0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                          ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., nan)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00000000'ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (..., 0.000, ...)
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan, ...)
+#                                          ╙───────── 0xffffffff'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'f9'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'7f'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#     v17<127:0>: 0x00000000000000000000000000000000
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000'0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'7ff9'0000'0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v2<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 0.000, 0.000, 1.401e-45)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#                          ║       ║       ║       ╙─ 0x00007ff9'00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#      v20<63:0>:                 0x0000000000000020
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07'20'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'ffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0040'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#      v2<127:0>: 0x00000000000000000000000000000040
+#      v3<127:0>: 0x00000000000000000000000000000000
+#                        ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#     v10<127:0>: 0x00000000000000000000000000000000
+#     v11<127:0>: 0x00000000000000000000000000000000
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                                ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                              ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v29<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 1.514e-05, ...)
+#                                  ╙───────────────── 0x00fe'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v19<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v20<127:0>: 0x00000000000000000000000000000020 (..., 0.000, ...)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 -> 0x~~~~~~~~~~~~~~~~
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (..., 0.000, 0.000, ..., nan, nan, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, ..., 0.000, 0.000, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z4<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                          ║               ║       ╙─ 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'04 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0xff'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0xff'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0xff'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z4<127:0>: 0x00000000000000000000000000000000
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000
+#      z6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#    z5<255:128>: 0x00000000000000000000000000000000
+#    z6<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#    z5<383:256>: 0x00000000000000000000000000000000
+#    z6<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<511:384>: 0x00000000000000000000000000000000
+#    z5<511:384>: 0x00000000000000000000000000000000
+#    z6<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#    z5<639:512>: 0x00000000000000000000000000000000
+#    z6<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z6<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'7fff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x7fc00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000)
+#      z9<127:0>: 0x43dfe000001fe0000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'7fc000007fc00000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x43dfe000001fe000'37a0000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     z31<127:0>: 0x00000000000000007fc000007fffffff
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'f3'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'04'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'b5'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'f3'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'b5'c0 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'ff'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<255:128>: 0x00000000000000000000000000000000
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<383:256>: 0x00000000000000000000000000000000
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#    z2<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<511:384>: 0x00000000000000000000000000000000
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<639:512>: 0x00000000000000000000000000000000
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, ..., 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (0.000, 0.000)
+#                                  ║               ╙─ 0x7fffffff3fc00000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3fc000003fc00000'0000000000000000'7f8000007f800000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
diff --git a/test/test-trace-reference/log-write-colour b/test/test-trace-reference/log-write-colour
index 8020757..92faa1f 100644
--- a/test/test-trace-reference/log-write-colour
+++ b/test/test-trace-reference/log-write-colour
@@ -1,595 +1,3190 @@
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   x19: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
-#   w20<7:0>:          0x04 -> 0x~~~~~~~~~~~~~~~~
-#   w21<7:0>:          0x03 -> 0x~~~~~~~~~~~~~~~~
-#   w22<15:0>:       0x0004 -> 0x~~~~~~~~~~~~~~~~
-#   w23<15:0>:       0x0100 -> 0x~~~~~~~~~~~~~~~~
-#   w14:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
-#   w15:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
-#   x16: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
-#   x17: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   w18:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
-#   w19:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   x20: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
-#   x21: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   w22:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   x23: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w24<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w25<7:0>:          0x00 -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w26<15:0>:       0xfcff -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w27<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#   w28:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
-#   x29: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    w2<7:0>:          0x01 -> 0x~~~~~~~~~~~~~~~~
-#    w3<7:0>:          0xff -> 0x~~~~~~~~~~~~~~~~
-#    w4<15:0>:       0x0001 -> 0x~~~~~~~~~~~~~~~~
-#    w5<15:0>:       0x8500 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (d29: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff (d12: 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 (d31: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (d17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (d14: 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (d15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (d16: 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (d18: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 (d19: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (d4: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 (d27: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (d23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (1.25493e-321, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 (0.00000, 2.12198e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v30: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#   v25:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    v4:               0x00                 -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (d13: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 (d30: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (d3: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                             0x0000 -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000                             -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v0:                         0x00000000 (s0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000000000000000000001 (0.00000, 4.94066e-324) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00                               -> 0x~~~~~~~~~~~~~~~~
-#    v7:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#    v8:                       0x00         -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (d25: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (d26: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#    v0:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v22:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v23:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000                         (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v0:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (..., 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffffffffffe1 (..., nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 (..., 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 0.00000, 0.00000, 4.48416e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 (0.00000, 3.55930e-43, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v31:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v0:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v1:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v4:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v5:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v6:                     0x00           -> 0x~~~~~~~~~~~~~~~~
-#    v5:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v6:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v7:                             0x00   -> 0x~~~~~~~~~~~~~~~~
-#    v5:                 0x0000000000000000 (d5: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v6:                 0x0000000000000000 (d6: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v0:                 0x0000000000000000 (d0: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 (d1: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 (d2: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v31:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v0:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#    v1:                     0x0000         -> 0x~~~~~~~~~~~~~~~~
-#   v14:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v15:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v16:         0x0000                     -> 0x~~~~~~~~~~~~~~~~
-#   v21:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v22:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v23:     0x0000                         -> 0x~~~~~~~~~~~~~~~~
-#   v21:                         0xffff8007 (s21: nan) -> 0x~~~~~~~~~~~~~~~~
-#   v22:                         0x00000000 (s22: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                         0x00000000 (s23: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v12:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v13:                 0xffffffff         (..., nan, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                         0x00000000 (s15: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                         0x00007ff9 (s16: 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                         0x00000000 (s17: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v23: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v24: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v25: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27: 0x00000000000000fe0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 1.61861e-319) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 (0.00000, 1.58101e-322) -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 (0.00000, 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v11: 0x00000000000000000000000000000000 (0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v12: 0x000000000000000000000000ffffffff (0.00000, 2.12200e-314) -> 0x~~~~~~~~~~~~~~~~
-#   v23:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v24:                 0x0000000000007ff9 (..., 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 (..., 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v14:                 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
-#   v15:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16:                 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#    v1:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2:                 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v3:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v4:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v13: 0x0000000000000000ffffffffffffffe1 (0.00000, 0.00000, nan, nan) -> 0x~~~~~~~~~~~~~~~~
-#   v14: 0x00000000000000000000000000000001 (0.00000, 0.00000, 0.00000, 1.40130e-45) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#    v6: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v7: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9: 0x00000000000000000000000000000040 (0.00000, 0.00000, 0.00000, 8.96831e-44) -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 (0.00000, 0.00000, 0.00000, 4.59079e-41) -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 (0.00000, 0.00000, 0.00000, 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20:                 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21:                 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22:                 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v19: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v20: 0x00000000000000000000000000000020 -> 0x~~~~~~~~~~~~~~~~
-#   v21: 0x000000000000000000000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
-#   v22: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v15: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v16: 0x00000000000000000000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
-#   v17: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v18: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x00000000000000000000000000000040 -> 0x~~~~~~~~~~~~~~~~
-#    v0:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v1:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v2:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v3:     0x00                           -> 0x~~~~~~~~~~~~~~~~
-#    v4:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v5:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v6:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v7:           0x00                     -> 0x~~~~~~~~~~~~~~~~
-#    v9:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v10:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v11:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#   v12:             0x00                   -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v3: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v4: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v5: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7:                 0x0000000000000000 (d7: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v8:                 0x0000000000000000 (d8: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#    v9:                 0x0000000000000040 (d9: 3.16202e-322) -> 0x~~~~~~~~~~~~~~~~
-#   v10:                 0x0000000000000000 (d10: 0.00000) -> 0x~~~~~~~~~~~~~~~~
-#   v31: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v0: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v1: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v2: 0x0000000000000000                 (0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v2:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v3:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v4:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#    v5:                         0x0000     -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v29:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v30:                 0x0000             -> 0x~~~~~~~~~~~~~~~~
-#   v24:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v25:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v26:             0x0000                 -> 0x~~~~~~~~~~~~~~~~
-#   v27:             0x00fe                 -> 0x~~~~~~~~~~~~~~~~
-#   v18:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v19:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v20:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v21:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v6:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v7:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v8:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#    v9:         0x00000000                 (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v25:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v26:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v27:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
-#   v28:                 0x00000000         (..., 0.00000, ...) -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<63:0>: 0x0000000000000086 -> 0x~~~~~~~~~~~~~~~~
+#       x20<7:0>:               0x04 -> 0x~~~~~~~~~~~~~~~~
+#       x21<7:0>:               0x03 -> 0x~~~~~~~~~~~~~~~~
+#      x22<15:0>:             0x0004 -> 0x~~~~~~~~~~~~~~~~
+#      x23<15:0>:             0x0100 -> 0x~~~~~~~~~~~~~~~~
+#      x14<31:0>:         0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      x15<31:0>:         0x00000082 -> 0x~~~~~~~~~~~~~~~~
+#      x16<63:0>: 0x000000000000000c -> 0x~~~~~~~~~~~~~~~~
+#      x17<63:0>: 0x00000000ffffff7b -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x18<31:0>:         0x00000060 -> 0x~~~~~~~~~~~~~~~~
+#      x19<31:0>:         0x00000086 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x20<63:0>: 0x0000000000000304 -> 0x~~~~~~~~~~~~~~~~
+#      x21<63:0>: 0x0000000000000403 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x22<31:0>:         0x00000004 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#      x23<63:0>: 0x0000000003020100 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x24<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#       x25<7:0>:               0x00 -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x26<15:0>:             0xfcff -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x27<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#      x28<31:0>:         0xfffeffff -> 0x~~~~~~~~~~~~~~~~
+#      x29<63:0>: 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#        x2<7:0>:               0x01 -> 0x~~~~~~~~~~~~~~~~
+#        x3<7:0>:               0xff -> 0x~~~~~~~~~~~~~~~~
+#       x4<15:0>:             0x0001 -> 0x~~~~~~~~~~~~~~~~
+#       x5<15:0>:             0x8500 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (2.122e-314)
+#                                                  ╙─ 0x00000000ffffffff -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (1.619e-319)
+#                                                  ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (4.941e-324)
+#                                                  ╙─ 0x0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v5<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (3.162e-322)
+#                                                  ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#                                  ║               ╙─ 0x0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#                                  ║               ╙─ 0x0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (1.255e-321, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000000000fe -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#                                          ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v6<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff (0.000, 0.000, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#                                      ║   ║   ║   ╙─ 0x0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan, nan, nan)
+#                                      ║   ║   ║   ╙─ 0xffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#                          ║       ║       ║       ╙─ 0xffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0xffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v17<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v20<63:0>:                 0x0000000000000020
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x20 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v11<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v10<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xe1 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#      v12<63:0>:                 0x00000000ffffffff
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0xff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v3<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x40 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v16<63:0>:                 0x0000000000007ff9
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0xf9 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x7f -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v28<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x8007 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 0.000, 0.000, 1.514e-05, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x00fe -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x7ff9 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v29<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ╙─────────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                                ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan)
+#                                                  ╙─ 0xffffffffffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000
+#     v19<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 4.941e-324)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000001 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#       v5<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#       v2<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#                                      ║   ║   ║   ╙─ 0x7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#                                      ║   ║   ║   ╙─ 0x0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v7<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#       v0<63:0>:                 0x0000000000000000
+#       v1<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000
+#      v9<127:0>: 0x00000000000000000000000000000040
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000
+#      v8<127:0>: 0x00000000000000000000000000000000
+#                                          ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, ...)
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#     v28<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'fe'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'07 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'80 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v23<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000007ff9'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#       v9<63:0>:                 0x0000000000000040 (0.000, 8.968e-44)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v11<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000040 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v13<63:0>:                 0xffffffffffffffe1 (nan, nan)
+#      v14<63:0>:                 0x0000000000000001 (0.000, 1.401e-45)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#      v22<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#                                          ║       ╙─ 0x00007ff9'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v31<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v0<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v8<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v9<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#      v10<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 4.484e-44)
+#                          ║       ║       ║       ╙─ 0x00000020'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v26<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (0.000, 3.559e-43, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x000000fe'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v29<63:0>:                 0x0000000000000000
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v30<63:0>:                 0x0000000000000000
+#      v31<63:0>:                 0x0000000000000000
+#       v0<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#                                        ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                                                ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#                                                  ╙─ 0x0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v14<127:0>: 0x00000000000000000000000000000001 (..., 0.000, ...)
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#                              ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                          ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., nan)
+#     v22<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v23<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00000000'ffff8007 -> 0x~~~~~~~~~~~~~~~~
+#     v11<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (..., 0.000, ...)
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (..., nan, ...)
+#                                          ╙───────── 0xffffffff'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (..., 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v22<127:0>: 0x00000000000000000000000000000000
+#     v23<127:0>: 0x00000000000000000000000000000000
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'f9'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'7f'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9
+#     v25<127:0>: 0x00000000000000000000000000000000
+#     v26<127:0>: 0x00000000000000000000000000000000
+#     v27<127:0>: 0x00000000000000fe0000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'f9 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0xfe'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000
+#     v16<127:0>: 0x00000000000000000000000000007ff9
+#     v17<127:0>: 0x00000000000000000000000000000000
+#     v18<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'f9'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 1.619e-319)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 1.581e-322)
+#                                  ║               ╙─ 0x0000000000000020'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v11<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#     v12<127:0>: 0x000000000000000000000000ffffffff (0.000, 2.122e-314)
+#                                  ║               ╙─ 0x00000000ffffffff'0000000000000000'0000000000000000'0000000000000040 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v23<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v24<63:0>:                 0x0000000000007ff9 (0.000, 4.591e-41)
+#      v25<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v26<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#      v27<63:0>:                 0x0000000000000000 (0.000, 0.000)
+#                                          ║       ╙─ 0x00000000'00000000'00000000'00007ff9 -> 0x~~~~~~~~~~~~~~~~
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v14<63:0>:                 0x0000000000000001 (0.000, 0.000, 0.000, 5.960e-08)
+#      v15<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v16<63:0>:                 0x0000000000007ff9 (0.000, 0.000, 0.000, nan)
+#      v17<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'7ff9'0000'0001 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v18<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v19<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v20<63:0>:                 0x0000000000000020 (0.000, 0.000, 0.000, 1.907e-06)
+#      v21<63:0>:                 0x00000000ffff8007 (0.000, 0.000, nan, -4.172e-07)
+#                                      ║   ║   ║   ╙─ 0x8007'0020'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0xffff'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#       v1<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v2<63:0>:                 0x0000000000000040 (0.000, 0.000, 0.000, 3.815e-06)
+#       v3<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#       v4<63:0>:                 0x0000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                                      ║   ║   ║   ╙─ 0x0000'0000'0040'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v13<127:0>: 0x0000000000000000ffffffffffffffe1 (0.000, 0.000, nan, nan)
+#     v14<127:0>: 0x00000000000000000000000000000001 (0.000, 0.000, 0.000, 1.401e-45)
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#                          ║       ║       ║       ╙─ 0x00007ff9'00000000'00000001'ffffffe1 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'ffffffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 8.968e-44)
+#                          ║       ║       ║       ╙─ 0x00000040'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 4.591e-41)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00007ff9'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#      v29<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v25<63:0>:                 0x0000000000000000
+#      v26<63:0>:                 0x0000000000000000
+#      v27<63:0>:                 0x0000000000000000
+#      v28<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v19<63:0>:                 0x0000000000000000
+#      v20<63:0>:                 0x0000000000000020
+#      v21<63:0>:                 0x00000000ffff8007
+#      v22<63:0>:                 0x0000000000000000
+#                                    ║ ║ ║ ║ ║ ║ ║ ╙─ 0x00'07'20'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ║ ╙─── 0x00'80'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ║ ╙───── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ║ ╙─────── 0x00'ff'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                                    ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#     v19<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v20<127:0>: 0x00000000000000000000000000000020 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.907e-06)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan, -4.172e-07)
+#     v22<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'8007'0020'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'ffff'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v15<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v16<127:0>: 0x00000000000000000000000000007ff9 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, nan)
+#     v17<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#     v18<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'7ff9'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 3.815e-06)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0040'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      v0<127:0>: 0x00000000000000000000000000000000
+#      v1<127:0>: 0x00000000000000000000000000000000
+#      v2<127:0>: 0x00000000000000000000000000000040
+#      v3<127:0>: 0x00000000000000000000000000000000
+#                        ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v4<127:0>: 0x00000000000000000000000000000000
+#      v5<127:0>: 0x00000000000000000000000000000000
+#      v6<127:0>: 0x00000000000000000000000000000000
+#      v7<127:0>: 0x00000000000000000000000000000000
+#                              ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v9<127:0>: 0x00000000000000000000000000000040
+#     v10<127:0>: 0x00000000000000000000000000000000
+#     v11<127:0>: 0x00000000000000000000000000000000
+#     v12<127:0>: 0x000000000000000000000000ffffffff
+#                                ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 3.162e-322)
+#     v10<127:0>: 0x00000000000000000000000000000000 (..., 0.000)
+#                                                  ╙─ 0x0000000000000000'0000000000000040'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     v31<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v0<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v1<127:0>: 0x00000000000000000000000000000000 (0.000, ...)
+#      v2<127:0>: 0x00000000000000000000000000000040 (0.000, ...)
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      v2<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#      v3<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v4<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v5<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                              ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v29<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v30<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                      ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v24<127:0>: 0x00000000000000000000000000007ff9 (..., 0.000, ...)
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 1.514e-05, ...)
+#                                  ╙───────────────── 0x00fe'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#     v18<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v19<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v20<127:0>: 0x00000000000000000000000000000020 (..., 0.000, ...)
+#     v21<127:0>: 0x000000000000000000000000ffff8007 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      v6<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v7<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v8<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#      v9<127:0>: 0x00000000000000000000000000000040 (..., 0.000, ...)
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#     v25<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v26<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#     v27<127:0>: 0x00000000000000fe0000000000000000 (..., 0.000, ...)
+#     v28<127:0>: 0x00000000000000000000000000000000 (..., 0.000, ...)
+#                                          ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      p12<15:0>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<31:16>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<47:32>: 0b 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<63:48>: 0b 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p12<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p13<15:0>: 0b 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<31:16>: 0b 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<47:32>: 0b 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<63:48>: 0b 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p13<79:64>: 0b 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p14<15:0>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<31:16>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<47:32>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<63:48>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p14<79:64>: 0b 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      p15<15:0>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<31:16>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 -> 0x~~~~~~~~~~~~~~~~
+#     p15<47:32>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<63:48>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 -> 0x~~~~~~~~~~~~~~~~
+#     p15<79:64>: 0b 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0xf3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x04 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0xb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ║ ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ║ ╙─── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ║   ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ║ ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ║ ╙─────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ║ ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ║ ╙─────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (..., 0.000, 0.000, ..., nan, nan, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0xffff -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, ..., 0.000, 0.000, ..., 0.000)
+#                          ║   ║       ║   ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000, 0.000, ..., 0.000, 0.000)
+#                      ║   ║       ║   ║       ║   ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                          ║   ║       ║   ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ║   ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ║       ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║   ╙───────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                      ║   ║       ║   ║       ║   ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ║       ╙───── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ║   ╙───────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║       ║       ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z4<127:0>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#                          ║               ║       ╙─ 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x04f3 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#                          ║               ║       ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#                          ║       ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                                                  ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                                  ║               ╙─ 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'04 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0xff'f3 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0xff'b5 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0xff'3f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, nan, nan, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x7f800000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (1.404e+306, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (1.404e+306, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'7f8000007f800000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#      z4<127:0>: 0x00000000000000000000000000000000
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000
+#      z6<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'7f'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'c0'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'3f'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<255:128>: 0x00000000000000000000000000000000
+#    z5<255:128>: 0x00000000000000000000000000000000
+#    z6<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<383:256>: 0x00000000000000000000000000000000
+#    z5<383:256>: 0x00000000000000000000000000000000
+#    z6<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<511:384>: 0x00000000000000000000000000000000
+#    z5<511:384>: 0x00000000000000000000000000000000
+#    z6<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#    z4<639:512>: 0x00000000000000000000000000000000
+#    z5<639:512>: 0x00000000000000000000000000000000
+#    z6<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z6<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (1.938, 0.000, 1.938, 0.000, nan, nan, 1.938, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'7fff -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'3fc0 -> 0x~~~~~~~~~~~~~~~~
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z6<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z6<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x7fc00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x37a00000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z7<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z6<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z7<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z8<127:0>: 0x37a00000000000007fc000007fc00000 (0.000, 0.000)
+#      z9<127:0>: 0x43dfe000001fe0000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'7fc000007fc00000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x43dfe000001fe000'37a0000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z7<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z8<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z9<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#     z31<127:0>: 0x00000000000000007fc000007fffffff
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3
+#      z1<127:0>: 0x0000000000000000ffffffff00000000
+#      z2<127:0>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'f3'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'04'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'b5'ff -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'ff'f3'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'ff'b5'c0 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'ff'3f'7f -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<255:128>: 0x00000000000000000000000000000000
+#    z0<255:128>: 0x00000000000000000000000000000000
+#    z1<255:128>: 0x00000000000000000000000000000000
+#    z2<255:128>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<383:256>: 0x00000000000000000000000000000000
+#    z0<383:256>: 0x00000000000000000000000000000000
+#    z1<383:256>: 0x00000000000000000000000000000000
+#    z2<383:256>: 0x00000000000000000000000000000000
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ║   ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<511:384>: 0x00000000000000000000000000000000
+#    z0<511:384>: 0x00000000000000000000000000000000
+#    z1<511:384>: 0x00000000000000000000000000000000
+#    z2<511:384>: 0x00000000000000000000000000000000
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ║ ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ║ ╙─────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ║   ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ║ ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║ ╙─────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#   z31<639:512>: 0x00000000000000000000000000000000
+#    z0<639:512>: 0x00000000000000000000000000000000
+#    z1<639:512>: 0x00000000000000000000000000000000
+#    z2<639:512>: 0x00000000000000000000000000000000
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ║   ╙─ 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ║ ╙───── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ║ ╙─────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ║ ╙───────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ║ ╙─────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ║   ╙───────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ║ ╙───────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ║ ╙─────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ║ ╙───────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ║ ╙─────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ║   ╙───────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ║ ╙───────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#                    ╙─────────────────────────────── 0x00'00'00'00 -> 0x~~~~~~~~~~~~~~~~
+#      z0<127:0>: 0x00000000000000003fb504f33fb504f3 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, 0.000, 0.000, 1.927, 7.552e-05, 1.927, 7.552e-05)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'ffff'04f3 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'ffff'3fb5 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x7f80'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#    z0<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z1<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000)
+#                      ║   ║   ║   ║   ║   ║   ║   ╙─ 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ║   ╙───── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ║   ╙───────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ║   ╙───────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ║   ╙───────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ║   ╙───────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ║   ╙───────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#                      ╙───────────────────────────── 0x0000'0000'0000'0000 -> 0x~~~~~~~~~~~~~~~~
+#      z1<127:0>: 0x0000000000000000ffffffff00000000 (0.000, 0.000, ..., 0.000)
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000, ..., 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000, ..., 0.000)
+#                          ║       ║               ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'7f800000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, ..., 0.000, 0.000)
+#                          ║               ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║               ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z2<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (..., 0.000, 0.000, 0.000)
+#                                  ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#    z1<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000, 0.000, 0.000)
+#                          ║       ║       ║       ╙─ 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ║       ╙───────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ║       ╙───────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#                          ╙───────────────────────── 0x00000000'00000000'00000000'00000000 -> 0x~~~~~~~~~~~~~~~~
+#      z2<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z3<127:0>: 0x7f8000007f8000000000000000000000 (0.000, 0.000)
+#      z4<127:0>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#      z5<127:0>: 0x3fc000003fc000007fffffff3fc00000 (0.000, 0.000)
+#                                  ║               ╙─ 0x7fffffff3fc00000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x3fc000003fc00000'0000000000000000'7f8000007f800000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<255:128>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<383:256>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<511:384>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#    z2<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z3<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z4<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#    z5<639:512>: 0x00000000000000000000000000000000 (0.000, 0.000)
+#                                  ║               ╙─ 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
+#                                  ╙───────────────── 0x0000000000000000'0000000000000000'0000000000000000'0000000000000000 -> 0x~~~~~~~~~~~~~~~~
diff --git a/tools/clang_format.py b/tools/clang_format.py
index 7351506..a0d000c 100755
--- a/tools/clang_format.py
+++ b/tools/clang_format.py
@@ -38,8 +38,8 @@
 import printer
 import util
 
-CLANG_FORMAT_VERSION_MAJOR = 3
-CLANG_FORMAT_VERSION_MINOR = 8
+CLANG_FORMAT_VERSION_MAJOR = 4
+CLANG_FORMAT_VERSION_MINOR = 0
 
 DEFAULT_CLANG_FORMAT = \
     'clang-format-{}.{}'.format(CLANG_FORMAT_VERSION_MAJOR,
diff --git a/tools/clang_tidy.py b/tools/clang_tidy.py
index 42a1422..7ba1874 100755
--- a/tools/clang_tidy.py
+++ b/tools/clang_tidy.py
@@ -156,9 +156,8 @@
 
   queue = TestQueue(prefix = progress_prefix)
 
-  cpp_versions = ['c++98', 'c++11']
   for file in to_check:
-    for cpp_version in cpp_versions:
+    for cpp_version in config.tested_cpp_standards:
       command = [clang_tidy, file] + opts + ['-std=%s' % cpp_version]
       queue.AddTest(file, command=command)
 
diff --git a/tools/config.py b/tools/config.py
index 62a06c6..f178d4e 100644
--- a/tools/config.py
+++ b/tools/config.py
@@ -43,8 +43,8 @@
 # The following set of options are tested in all combinations.
 # The full list of available build modes.
 build_options_modes = ['debug', 'release']
-# The list of C++ standard to test for.
-tested_cpp_standards = ['c++98', 'c++11']
+# The list of C++ standard to test for. The first value is used as the default.
+tested_cpp_standards = ['c++14']
 # The list of compilers tested.
 tested_compilers = ['clang++', 'g++']
 # The list of target arch/isa options to test with. Do not list 'all' as an
diff --git a/tools/generate_simulator_traces.py b/tools/generate_simulator_traces.py
index f0c43b3..3e25b0d 100755
--- a/tools/generate_simulator_traces.py
+++ b/tools/generate_simulator_traces.py
@@ -77,7 +77,7 @@
 #include <stdint.h>
 }
 
-// To add a new simulator test to test-simulator-aarch64.cc, add dummy array(s)
+// To add a new simulator test to test-simulator-aarch64.cc, add placeholder array(s)
 // below to build test-simulator-aarch64 for reference platform. Then, run
 // tools/generate_simulator_traces.py on a reference platform to regenerate this
 // file and traces files.
@@ -85,11 +85,11 @@
 // ---------------------------------------------------------------------
 // ADD DUMMY ARRAYS FOR NEW SIMULATOR TEST HERE.
 // ---------------------------------------------------------------------
-const uint64_t kExpected_dummy_64[] = {0};
-const size_t kExpectedCount_dummy_64 = 0;
+const uint64_t kExpected_placeholder_64[] = {0};
+const size_t kExpectedCount_placeholder_64 = 0;
 
-const uint32_t kExpected_dummy_32[] = {0};
-const size_t kExpectedCount_dummy_32 = 0;
+const uint32_t kExpected_placeholder_32[] = {0};
+const size_t kExpectedCount_placeholder_32 = 0;
 
 // ---------------------------------------------------------------------
 // Simulator test trace output files.
diff --git a/tools/generate_tests.py b/tools/generate_tests.py
index 37f5dc0..c64bf4f 100755
--- a/tools/generate_tests.py
+++ b/tools/generate_tests.py
@@ -34,7 +34,7 @@
 
     $ ./tools/generate_tests.py
 
-The script assumes that `clang-format-3.8` is in the current path. If it isn't,
+The script assumes that `clang-format-4.0` is in the current path. If it isn't,
 you can provide your own:
 
     $ ./tools/generate_tests.py --clang-format /patch/to/clang-format
@@ -48,7 +48,7 @@
 - test/aarch32/test-assembler-cond-rd-rn-rm-ge-a32.cc
 
 Because these test cases need traces in order to build, the script will have
-generated dummy trace files in `test/aarch32/traces/`. If you look at them
+generated placeholder trace files in `test/aarch32/traces/`. If you look at them
 you'll see they are basically empty:
 
     $ cat test/aarch32/traces/sim-cond-rd-rn-immediate-adc-a32.h
@@ -687,12 +687,12 @@
                       metavar='FILE',
                       help='Configuration files, each will generate a test file.')
   result.add_argument('--clang-format',
-                      default='clang-format-3.8', help='Path to clang-format.')
+                      default='clang-format-4.0', help='Path to clang-format.')
   result.add_argument('--jobs', '-j', type=int, metavar='N',
                       default=multiprocessing.cpu_count(),
                       help='Allow N jobs at once')
   result.add_argument('--skip-traces', action='store_true',
-                      help='Skip generation of dummy traces.')
+                      help='Skip generation of placeholder traces.')
   return result.parse_args()
 
 
@@ -773,7 +773,7 @@
     out, _ = proc.communicate(generated_file.encode())
     f.write(out.decode())
   if not skip_traces:
-    # Write dummy trace files into 'test/aarch32/traces/'.
+    # Write placeholder trace files into 'test/aarch32/traces/'.
     generator.WriteEmptyTraces("test/aarch32/traces/")
   print("Generated {} {} test for \"{}\".".format(generator.test_isa.upper(),
                                                   generator.test_type,
diff --git a/tools/lint.py b/tools/lint.py
index 3ceb94f..d4c9f65 100755
--- a/tools/lint.py
+++ b/tools/lint.py
@@ -92,9 +92,13 @@
   printer.Print(outerr)
 
   # Find the number of errors in this file.
-  res = re.search('Total errors found: (\d+)$', outerr)
-  n_errors_str = res.string[res.start(1):res.end(1)]
-  n_errors = int(n_errors_str)
+  res = re.search('Total errors found: (\d+)', outerr)
+  if res:
+    n_errors_str = res.string[res.start(1):res.end(1)]
+    n_errors = int(n_errors_str)
+  else:
+    print("Couldn't parse cpplint.py output.")
+    n_errors = -1
 
   return (filename, n_errors)
 
diff --git a/tools/test.py b/tools/test.py
index 66f315d..9a081d0 100755
--- a/tools/test.py
+++ b/tools/test.py
@@ -377,6 +377,7 @@
     list_options += ListCombinations(
         compiler = args.compiler,
         negative_testing = 'on',
+        std = args.std,
         mode = 'debug',
         target = 'a64,a32,t32')
 
@@ -388,21 +389,13 @@
         mode = 'release',
         target = 'a64,a32,t32')
 
-    # c++98 builds for Thumb32 target only.
+    # Debug builds for individual targets.
     list_options += ListCombinations(
-        compiler = args.compiler,
+        compiler = args.compiler[0],
         negative_testing = 'off',
-        std = 'c++98',
-        mode = args.mode,
-        target = 't32')
-
-    # c++11 builds for Aarch64 target only.
-    list_options += ListCombinations(
-        compiler = args.compiler,
-        negative_testing = 'off',
-        std = 'c++11',
-        mode = args.mode,
-        target = 'a64')
+        std = args.std,
+        mode = 'debug',
+        target = ['a32', 't32', 'a64'])
   else:
     list_options = ListCombinations(
         compiler = args.compiler,
diff --git a/tools/test_runner.py b/tools/test_runner.py
index 6a7d8b4..3a3f459 100644
--- a/tools/test_runner.py
+++ b/tools/test_runner.py
@@ -35,8 +35,9 @@
 
 # Scan matching tests and return a test manifest.
 def GetTests(runner, filters = []):
-  rc, output = util.getstatusoutput(runner +  ' --list')
-  if rc != 0: util.abort('Failed to list all tests')
+  cmd = runner +  ' --list'
+  rc, output = util.getstatusoutput(cmd)
+  if rc != 0: util.abort("Failed to list all tests. Output of " + cmd + ":\n" + output)
 
   tests = output.split()
   for f in filters:
diff --git a/tools/util.py b/tools/util.py
index bc8dcd1..9152584 100644
--- a/tools/util.py
+++ b/tools/util.py
@@ -87,7 +87,8 @@
   args += ['-E', '-dM', '-']
 
   # Instruct the compiler to dump all its preprocessor macros.
-  dump = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
+  dump = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+                          universal_newlines=True)
   out, _ = dump.communicate()
   return {
     # Extract the macro name as key and value as element.